shared.module.ts 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import { OverlayModule } from '@angular/cdk/overlay';
  2. import { CommonModule } from '@angular/common';
  3. import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
  4. import { FormsModule, ReactiveFormsModule } from '@angular/forms';
  5. import { RouterModule } from '@angular/router';
  6. import { ClarityModule } from '@clr/angular';
  7. import { NgSelectModule } from '@ng-select/ng-select';
  8. import { TranslateModule } from '@ngx-translate/core';
  9. import { NgxPaginationModule } from 'ngx-pagination';
  10. import {
  11. ActionBarComponent,
  12. ActionBarLeftComponent,
  13. ActionBarRightComponent,
  14. } from './components/action-bar/action-bar.component';
  15. import { AffixedInputComponent } from './components/affixed-input/affixed-input.component';
  16. import { PercentageSuffixInputComponent } from './components/affixed-input/percentage-suffix-input.component';
  17. import { ChipComponent } from './components/chip/chip.component';
  18. import { ConfigurableInputComponent } from './components/configurable-input/configurable-input.component';
  19. import { CurrencyInputComponent } from './components/currency-input/currency-input.component';
  20. import { CustomFieldControlComponent } from './components/custom-field-control/custom-field-control.component';
  21. import { CustomerLabelComponent } from './components/customer-label/customer-label.component';
  22. import { DataTableColumnComponent } from './components/data-table/data-table-column.component';
  23. import { DataTableComponent } from './components/data-table/data-table.component';
  24. import { DropdownItemDirective } from './components/dropdown/dropdown-item.directive';
  25. import { DropdownMenuComponent } from './components/dropdown/dropdown-menu.component';
  26. import { DropdownTriggerDirective } from './components/dropdown/dropdown-trigger.directive';
  27. import { DropdownComponent } from './components/dropdown/dropdown.component';
  28. import { FacetValueChipComponent } from './components/facet-value-chip/facet-value-chip.component';
  29. import { FacetValueSelectorComponent } from './components/facet-value-selector/facet-value-selector.component';
  30. import { FormFieldControlDirective } from './components/form-field/form-field-control.directive';
  31. import { FormFieldComponent } from './components/form-field/form-field.component';
  32. import { FormItemComponent } from './components/form-item/form-item.component';
  33. import { FormattedAddressComponent } from './components/formatted-address/formatted-address.component';
  34. import { ItemsPerPageControlsComponent } from './components/items-per-page-controls/items-per-page-controls.component';
  35. import { LabeledDataComponent } from './components/labeled-data/labeled-data.component';
  36. import { LanguageSelectorComponent } from './components/language-selector/language-selector.component';
  37. import { DialogButtonsDirective } from './components/modal-dialog/dialog-buttons.directive';
  38. import { DialogComponentOutletComponent } from './components/modal-dialog/dialog-component-outlet.component';
  39. import { DialogTitleDirective } from './components/modal-dialog/dialog-title.directive';
  40. import { ModalDialogComponent } from './components/modal-dialog/modal-dialog.component';
  41. import { OrderStateLabelComponent } from './components/order-state-label/order-state-label.component';
  42. import { PaginationControlsComponent } from './components/pagination-controls/pagination-controls.component';
  43. import { RichTextEditorComponent } from './components/rich-text-editor/rich-text-editor.component';
  44. import { SelectToggleComponent } from './components/select-toggle/select-toggle.component';
  45. import { SimpleDialogComponent } from './components/simple-dialog/simple-dialog.component';
  46. import { TableRowActionComponent } from './components/table-row-action/table-row-action.component';
  47. import { TitleInputComponent } from './components/title-input/title-input.component';
  48. import { CurrencyNamePipe } from './pipes/currency-name.pipe';
  49. import { FileSizePipe } from './pipes/file-size.pipe';
  50. import { SentenceCasePipe } from './pipes/sentence-case.pipe';
  51. import { SortPipe } from './pipes/sort.pipe';
  52. import { StringToColorPipe } from './pipes/string-to-color.pipe';
  53. import { ModalService } from './providers/modal/modal.service';
  54. import { CanDeactivateDetailGuard } from './providers/routing/can-deactivate-detail-guard';
  55. const IMPORTS = [
  56. ClarityModule,
  57. CommonModule,
  58. FormsModule,
  59. ReactiveFormsModule,
  60. RouterModule,
  61. NgSelectModule,
  62. NgxPaginationModule,
  63. TranslateModule,
  64. OverlayModule,
  65. ];
  66. const DECLARATIONS = [
  67. ActionBarComponent,
  68. ActionBarLeftComponent,
  69. ActionBarRightComponent,
  70. ConfigurableInputComponent,
  71. AffixedInputComponent,
  72. ChipComponent,
  73. CurrencyInputComponent,
  74. CurrencyNamePipe,
  75. CustomerLabelComponent,
  76. CustomFieldControlComponent,
  77. DataTableComponent,
  78. DataTableColumnComponent,
  79. FacetValueSelectorComponent,
  80. ItemsPerPageControlsComponent,
  81. PaginationControlsComponent,
  82. TableRowActionComponent,
  83. FacetValueChipComponent,
  84. FileSizePipe,
  85. FormFieldComponent,
  86. FormFieldControlDirective,
  87. FormItemComponent,
  88. ModalDialogComponent,
  89. PercentageSuffixInputComponent,
  90. DialogComponentOutletComponent,
  91. DialogButtonsDirective,
  92. DialogTitleDirective,
  93. SelectToggleComponent,
  94. LanguageSelectorComponent,
  95. RichTextEditorComponent,
  96. SimpleDialogComponent,
  97. TitleInputComponent,
  98. SentenceCasePipe,
  99. DropdownComponent,
  100. DropdownMenuComponent,
  101. SortPipe,
  102. DropdownTriggerDirective,
  103. DropdownItemDirective,
  104. OrderStateLabelComponent,
  105. FormattedAddressComponent,
  106. LabeledDataComponent,
  107. StringToColorPipe,
  108. ];
  109. @NgModule({
  110. imports: IMPORTS,
  111. exports: [...IMPORTS, ...DECLARATIONS],
  112. declarations: DECLARATIONS,
  113. providers: [
  114. // This needs to be shared, since lazy-loaded
  115. // modules have their own entryComponents which
  116. // are unknown to the CoreModule instance of ModalService.
  117. // See https://github.com/angular/angular/issues/14324#issuecomment-305650763
  118. ModalService,
  119. CanDeactivateDetailGuard,
  120. ],
  121. entryComponents: [ModalDialogComponent, SimpleDialogComponent],
  122. schemas: [CUSTOM_ELEMENTS_SCHEMA],
  123. })
  124. export class SharedModule {}