diff --git a/src/behaviors/localization/localization.module.ts b/src/behaviors/localization/localization.module.ts index b8598cc3e..10666e65a 100644 --- a/src/behaviors/localization/localization.module.ts +++ b/src/behaviors/localization/localization.module.ts @@ -1,10 +1,31 @@ -import { NgModule } from "@angular/core"; +import { NgModule, Optional, SkipSelf, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiLocalizationService } from "./services/localization.service"; +const imports = [ + CommonModule +]; + +@NgModule({ + imports: [ + ...imports + ], + providers: [ + SuiLocalizationService + ] +}) +export class SuiLocalizationRootModule {} + @NgModule({ - imports: [CommonModule], - providers: [SuiLocalizationService] + imports: [ + ...imports + ] }) -export class SuiLocalizationModule {} +export class SuiLocalizationModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiLocalizationRootModule + }; + } +} diff --git a/src/collections/message/message.module.ts b/src/collections/message/message.module.ts index a5a1e5339..a64c26a1a 100644 --- a/src/collections/message/message.module.ts +++ b/src/collections/message/message.module.ts @@ -1,18 +1,42 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiTransitionModule } from "../../modules/transition"; import { SuiMessage } from "./components/message"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiMessage +]; + +const exports = [ + SuiMessage +]; + @NgModule({ imports: [ - CommonModule, - SuiTransitionModule + ...imports, + SuiTransitionModule.forRoot() ], - declarations: [ - SuiMessage + declarations, + exports +}) +export class SuiMessageRootModule {} + +@NgModule({ + imports: [ + ...imports, + SuiTransitionModule ], - exports: [ - SuiMessage - ] + declarations, + exports }) -export class SuiMessageModule {} +export class SuiMessageModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiMessageRootModule + }; + } +} diff --git a/src/collections/pagination/pagination.module.ts b/src/collections/pagination/pagination.module.ts index b02dcd6a4..b9b70c43e 100644 --- a/src/collections/pagination/pagination.module.ts +++ b/src/collections/pagination/pagination.module.ts @@ -1,12 +1,40 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiPagination } from "./components/pagination"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiPagination +]; + +const exports = [ + SuiPagination +]; + +@NgModule({ + imports: [ + ...imports + ], + declarations, + exports +}) +export class SuiPaginationRootModule {} + @NgModule({ - imports: [CommonModule], - exports: [SuiPagination], - declarations: [SuiPagination], - providers: [] + imports: [ + ...imports + ], + declarations, + exports }) -export class SuiPaginationModule { } +export class SuiPaginationModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiPaginationModule + }; + } +} diff --git a/src/misc/util/util.module.ts b/src/misc/util/util.module.ts index f1b7fc88f..96ad8df7f 100644 --- a/src/misc/util/util.module.ts +++ b/src/misc/util/util.module.ts @@ -1,11 +1,33 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiComponentFactory } from "./services/component-factory.service"; +const imports = [ + CommonModule +]; + +const providers = [ + SuiComponentFactory +]; + +@NgModule({ + imports: [ + ...imports + ], + providers +}) +export class SuiUtilityRootModule {} + @NgModule({ - imports: [CommonModule], - providers: [ - SuiComponentFactory - ] + imports: [ + ...imports + ], + providers }) -export class SuiUtilityModule {} +export class SuiUtilityModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiUtilityModule + }; + } +} diff --git a/src/modules/accordion/accordion.module.ts b/src/modules/accordion/accordion.module.ts index 8e5e52e68..490609aea 100644 --- a/src/modules/accordion/accordion.module.ts +++ b/src/modules/accordion/accordion.module.ts @@ -1,24 +1,48 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiCollapseModule } from "../collapse"; import { SuiTransitionModule } from "../transition"; import { SuiAccordion } from "./components/accordion"; import { SuiAccordionPanel } from "./components/accordion-panel"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiAccordion, + SuiAccordionPanel +]; + +const exports = [ + SuiAccordion, + SuiAccordionPanel +]; + +@NgModule({ + imports: [ + ...imports, + SuiCollapseModule.forRoot(), + SuiTransitionModule.forRoot() + ], + declarations, + exports +}) +export class SuiAccordionRootModule {} + @NgModule({ imports: [ - CommonModule, + ...imports, SuiCollapseModule, SuiTransitionModule ], - declarations: [ - SuiAccordion, - SuiAccordionPanel - ], - exports: [ - SuiAccordion, - SuiAccordionPanel - ], - providers: [] + declarations, + exports }) -export class SuiAccordionModule {} +export class SuiAccordionModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiAccordionRootModule + }; + } +} diff --git a/src/modules/checkbox/checkbox.module.ts b/src/modules/checkbox/checkbox.module.ts index ced31139b..52805db03 100644 --- a/src/modules/checkbox/checkbox.module.ts +++ b/src/modules/checkbox/checkbox.module.ts @@ -1,28 +1,51 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { FormsModule } from "@angular/forms"; import { SuiCheckbox, SuiCheckboxValueAccessor } from "./components/checkbox"; import { SuiRadio, SuiRadioValueAccessor } from "./components/radio"; import { SuiRadioManager } from "./directives/radio-manager"; +const imports = [ + CommonModule, + FormsModule +]; + +const declarations = [ + SuiCheckbox, + SuiCheckboxValueAccessor, + SuiRadio, + SuiRadioValueAccessor, + SuiRadioManager +]; + +const exports = [ + SuiCheckbox, + SuiCheckboxValueAccessor, + SuiRadio, + SuiRadioValueAccessor, + SuiRadioManager +]; + @NgModule({ imports: [ - CommonModule, - FormsModule + ...imports ], - declarations: [ - SuiCheckbox, - SuiCheckboxValueAccessor, - SuiRadio, - SuiRadioValueAccessor, - SuiRadioManager + declarations, + exports +}) +export class SuiCheckboxRootModule {} + +@NgModule({ + imports: [ + ...imports ], - exports: [ - SuiCheckbox, - SuiCheckboxValueAccessor, - SuiRadio, - SuiRadioValueAccessor, - SuiRadioManager - ] + declarations, + exports }) -export class SuiCheckboxModule {} +export class SuiCheckboxModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiCheckboxRootModule + }; + } +} diff --git a/src/modules/collapse/collapse.module.ts b/src/modules/collapse/collapse.module.ts index 4b12212e2..fdfaa5583 100644 --- a/src/modules/collapse/collapse.module.ts +++ b/src/modules/collapse/collapse.module.ts @@ -1,16 +1,39 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiCollapse } from "./directives/collapse"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiCollapse +]; + +const exports = [ + SuiCollapse +]; + @NgModule({ imports: [ - CommonModule + ...imports ], - declarations: [ - SuiCollapse + declarations, + exports +}) +export class SuiCollapseRootModule {} + +@NgModule({ + imports: [ + ...imports ], - exports: [ - SuiCollapse - ] + declarations, + exports }) -export class SuiCollapseModule {} +export class SuiCollapseModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiCollapseRootModule + }; + } +} diff --git a/src/modules/datepicker/datepicker.module.ts b/src/modules/datepicker/datepicker.module.ts index b46a4b92a..3fe950b29 100644 --- a/src/modules/datepicker/datepicker.module.ts +++ b/src/modules/datepicker/datepicker.module.ts @@ -1,4 +1,4 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { FormsModule } from "@angular/forms"; import { SuiPopupModule } from "../popup"; @@ -17,37 +17,66 @@ import { SuiDatepickerDirectiveValidator } from "./directives/datepicker.directive"; +const imports = [ + CommonModule, + FormsModule +]; + +const declarations = [ + SuiCalendarItem, + + SuiCalendarYearView, + SuiCalendarMonthView, + SuiCalendarDateView, + SuiCalendarHourView, + SuiCalendarMinuteView, + + SuiDatepicker, + SuiDatepickerDirective, + SuiDatepickerDirectiveValueAccessor, + SuiDatepickerDirectiveValidator, + SuiDatepickerInputDirective +]; + +const entryComponents = [ + SuiDatepicker +]; + +const exports = [ + SuiDatepickerDirective, + SuiDatepickerDirectiveValueAccessor, + SuiDatepickerDirectiveValidator, + SuiDatepickerInputDirective +]; + @NgModule({ imports: [ - CommonModule, - FormsModule, + ...imports, + SuiPopupModule.forRoot(), + SuiLocalizationModule.forRoot(), + SuiUtilityModule.forRoot() + ], + declarations, + entryComponents, + exports +}) +export class SuiDatepickerRootModule {} + +@NgModule({ + imports: [ + ...imports, SuiPopupModule, SuiLocalizationModule, SuiUtilityModule ], - declarations: [ - SuiCalendarItem, - - SuiCalendarYearView, - SuiCalendarMonthView, - SuiCalendarDateView, - SuiCalendarHourView, - SuiCalendarMinuteView, - - SuiDatepicker, - SuiDatepickerDirective, - SuiDatepickerDirectiveValueAccessor, - SuiDatepickerDirectiveValidator, - SuiDatepickerInputDirective - ], - exports: [ - SuiDatepickerDirective, - SuiDatepickerDirectiveValueAccessor, - SuiDatepickerDirectiveValidator, - SuiDatepickerInputDirective - ], - entryComponents: [ - SuiDatepicker - ] + declarations, + entryComponents, + exports }) -export class SuiDatepickerModule {} +export class SuiDatepickerModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiDatepickerRootModule + }; + } +} diff --git a/src/modules/dimmer/dimmer.module.ts b/src/modules/dimmer/dimmer.module.ts index 6c186b35a..9567cd865 100644 --- a/src/modules/dimmer/dimmer.module.ts +++ b/src/modules/dimmer/dimmer.module.ts @@ -1,18 +1,42 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiTransitionModule } from "../transition"; import { SuiDimmer } from "./components/dimmer"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiDimmer +]; + +const exports = [ + SuiDimmer +]; + @NgModule({ imports: [ - CommonModule, - SuiTransitionModule + ...imports, + SuiTransitionModule.forRoot() ], - declarations: [ - SuiDimmer + declarations, + exports +}) +export class SuiDimmerRootModule {} + +@NgModule({ + imports: [ + ...imports, + SuiTransitionModule ], - exports: [ - SuiDimmer - ] + declarations, + exports }) -export class SuiDimmerModule {} +export class SuiDimmerModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiDimmerRootModule + }; + } +} diff --git a/src/modules/dropdown/dropdown.module.ts b/src/modules/dropdown/dropdown.module.ts index 77588956b..3c9e18b85 100644 --- a/src/modules/dropdown/dropdown.module.ts +++ b/src/modules/dropdown/dropdown.module.ts @@ -1,23 +1,47 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiTransitionModule } from "../transition"; import { SuiDropdown } from "./directives/dropdown"; import { SuiDropdownMenu, SuiDropdownMenuItem } from "./directives/dropdown-menu"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiDropdown, + SuiDropdownMenu, + SuiDropdownMenuItem +]; + +const exports = [ + SuiDropdown, + SuiDropdownMenu, + SuiDropdownMenuItem +]; + @NgModule({ imports: [ - CommonModule, - SuiTransitionModule + ...imports, + SuiTransitionModule.forRoot() ], - declarations: [ - SuiDropdown, - SuiDropdownMenu, - SuiDropdownMenuItem + declarations, + exports +}) +export class SuiDropdownRootModule {} + +@NgModule({ + imports: [ + ...imports, + SuiTransitionModule ], - exports: [ - SuiDropdown, - SuiDropdownMenu, - SuiDropdownMenuItem - ] + declarations, + exports }) -export class SuiDropdownModule {} +export class SuiDropdownModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiDropdownRootModule + }; + } +} diff --git a/src/modules/modal/modal.module.ts b/src/modules/modal/modal.module.ts index d5874f0e5..ba3bffdec 100644 --- a/src/modules/modal/modal.module.ts +++ b/src/modules/modal/modal.module.ts @@ -1,4 +1,4 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiDimmerModule } from "../dimmer"; import { SuiTransitionModule } from "../transition"; @@ -6,24 +6,50 @@ import { SuiUtilityModule } from "../../misc/util"; import { SuiModalService } from "./services/modal.service"; import { SuiModal } from "./components/modal"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiModal +]; + +const entryComponents = [ + SuiModal +]; + +const exports = [ + SuiModal +]; + +@NgModule({ + imports: [ + ...imports, + SuiDimmerModule.forRoot(), + SuiTransitionModule.forRoot(), + SuiUtilityModule.forRoot() + ], + declarations, + entryComponents, + exports +}) +export class SuiModalRootModule {} + @NgModule({ imports: [ - CommonModule, + ...imports, SuiDimmerModule, SuiTransitionModule, SuiUtilityModule ], - declarations: [ - SuiModal - ], - exports: [ - SuiModal - ], - providers: [ - SuiModalService - ], - entryComponents: [ - SuiModal - ] + declarations, + entryComponents, + exports }) -export class SuiModalModule {} +export class SuiModalModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiModalRootModule + }; + } +} diff --git a/src/modules/popup/popup.module.ts b/src/modules/popup/popup.module.ts index 1711e7cf4..c28d2b17f 100644 --- a/src/modules/popup/popup.module.ts +++ b/src/modules/popup/popup.module.ts @@ -1,4 +1,4 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiTransitionModule } from "../transition"; import { SuiUtilityModule } from "../../misc/util"; @@ -7,27 +7,54 @@ import { SuiPopupArrow } from "./components/popup-arrow"; import { SuiPopup } from "./components/popup"; import { SuiPopupConfig } from "./services/popup.service"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiPopupDirective, + SuiPopupArrow, + SuiPopup +]; + +const exports = [ + SuiPopupDirective, + SuiPopup +]; + +const entryComponents = [ + SuiPopup +]; + @NgModule({ imports: [ - CommonModule, - SuiTransitionModule, - SuiUtilityModule - ], - declarations: [ - SuiPopupDirective, - SuiPopupArrow, - SuiPopup - ], - exports: [ - SuiPopupDirective, - SuiPopup + ...imports, + SuiTransitionModule.forRoot(), + SuiUtilityModule.forRoot() ], + declarations, + entryComponents, providers: [ SuiPopupConfig ], - entryComponents: [ - SuiPopup - ] + exports }) +export class SuiPopupRootModule {} -export class SuiPopupModule {} +@NgModule({ + imports: [ + ...imports, + SuiTransitionModule, + SuiUtilityModule + ], + declarations, + entryComponents, + exports +}) +export class SuiPopupModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiPopupRootModule + }; + } +} diff --git a/src/modules/progress/progress.module.ts b/src/modules/progress/progress.module.ts index 99731ebf5..7dcc2837e 100644 --- a/src/modules/progress/progress.module.ts +++ b/src/modules/progress/progress.module.ts @@ -1,16 +1,39 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiProgress } from "./components/progress"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiProgress +]; + +const exports = [ + SuiProgress +]; + @NgModule({ imports: [ - CommonModule + ...imports ], - declarations: [ - SuiProgress + declarations, + exports +}) +export class SuiProgressRootModule {} + +@NgModule({ + imports: [ + ...imports ], - exports: [ - SuiProgress - ] + declarations, + exports }) -export class SuiProgressModule {} +export class SuiProgressModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiProgressModule + }; + } +} diff --git a/src/modules/rating/rating.module.ts b/src/modules/rating/rating.module.ts index dbfa8149b..3fa88fee2 100644 --- a/src/modules/rating/rating.module.ts +++ b/src/modules/rating/rating.module.ts @@ -1,20 +1,43 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { FormsModule } from "@angular/forms"; import { SuiRating, SuiRatingValueAccessor } from "./components/rating"; +const imports = [ + FormsModule, + CommonModule +]; + +const declarations = [ + SuiRating, + SuiRatingValueAccessor +]; + +const exports = [ + SuiRating, + SuiRatingValueAccessor +]; + @NgModule({ imports: [ - FormsModule, - CommonModule + ...imports ], - declarations: [ - SuiRating, - SuiRatingValueAccessor + declarations, + exports +}) +export class SuiRatingRootModule {} + +@NgModule({ + imports: [ + ...imports ], - exports: [ - SuiRating, - SuiRatingValueAccessor - ] + declarations, + exports }) -export class SuiRatingModule {} +export class SuiRatingModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiRatingRootModule + }; + } +} diff --git a/src/modules/search/search.module.ts b/src/modules/search/search.module.ts index 6caf2aa78..7ceb70a18 100644 --- a/src/modules/search/search.module.ts +++ b/src/modules/search/search.module.ts @@ -1,4 +1,4 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { FormsModule } from "@angular/forms"; import { SuiDropdownModule } from "../dropdown"; @@ -7,20 +7,46 @@ import { SuiUtilityModule } from "../../misc/util"; import { SuiSearch } from "./components/search"; import { SuiSearchResult } from "./components/search-result"; +const imports = [ + CommonModule, + FormsModule +]; + +const declarations = [ + SuiSearch, + SuiSearchResult +]; + +const exports = [ + SuiSearch +]; + @NgModule({ imports: [ - CommonModule, - FormsModule, + ...imports, + SuiDropdownModule.forRoot(), + SuiLocalizationModule.forRoot(), + SuiUtilityModule.forRoot() + ], + declarations, + exports +}) +export class SuiSearchRootModule {} + +@NgModule({ + imports: [ + ...imports, SuiDropdownModule, SuiLocalizationModule, SuiUtilityModule ], - declarations: [ - SuiSearch, - SuiSearchResult - ], - exports: [ - SuiSearch - ] + declarations, + exports }) -export class SuiSearchModule {} +export class SuiSearchModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiSearchRootModule + }; + } +} diff --git a/src/modules/select/select.module.ts b/src/modules/select/select.module.ts index 24fdfe55d..50c2b7de4 100644 --- a/src/modules/select/select.module.ts +++ b/src/modules/select/select.module.ts @@ -1,4 +1,4 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { FormsModule } from "@angular/forms"; import { SuiDropdownModule } from "../dropdown"; @@ -10,30 +10,56 @@ import { SuiSelectSearch } from "./directives/select-search"; import { SuiMultiSelect, SuiMultiSelectValueAccessor } from "./components/multi-select"; import { SuiMultiSelectLabel } from "./components/multi-select-label"; +const imports = [ + CommonModule, + FormsModule +]; + +const declarations = [ + SuiSelect, + SuiSelectOption, + SuiSelectSearch, + SuiSelectValueAccessor, + SuiMultiSelect, + SuiMultiSelectLabel, + SuiMultiSelectValueAccessor +]; + +const exports = [ + SuiSelect, + SuiSelectOption, + SuiSelectSearch, + SuiSelectValueAccessor, + SuiMultiSelect, + SuiMultiSelectValueAccessor +]; + @NgModule({ imports: [ - CommonModule, - FormsModule, + ...imports, + SuiDropdownModule.forRoot(), + SuiUtilityModule.forRoot(), + SuiLocalizationModule.forRoot() + ], + declarations, + exports +}) +export class SuiSelectRootModule {} + +@NgModule({ + imports: [ + ...imports, SuiDropdownModule, SuiUtilityModule, SuiLocalizationModule ], - declarations: [ - SuiSelect, - SuiSelectOption, - SuiSelectSearch, - SuiSelectValueAccessor, - SuiMultiSelect, - SuiMultiSelectLabel, - SuiMultiSelectValueAccessor - ], - exports: [ - SuiSelect, - SuiSelectOption, - SuiSelectSearch, - SuiSelectValueAccessor, - SuiMultiSelect, - SuiMultiSelectValueAccessor - ] + declarations, + exports }) -export class SuiSelectModule {} +export class SuiSelectModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiSelectRootModule + }; + } +} diff --git a/src/modules/sidebar/sidebar.module.ts b/src/modules/sidebar/sidebar.module.ts index 39ad490d0..73bc66b64 100644 --- a/src/modules/sidebar/sidebar.module.ts +++ b/src/modules/sidebar/sidebar.module.ts @@ -1,22 +1,45 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiSidebar } from "./components/sidebar"; import { SuiSidebarContainer } from "./components/sidebar-container"; import { SuiSidebarSibling } from "./components/sidebar-sibling"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiSidebar, + SuiSidebarContainer, + SuiSidebarSibling +]; + +const exports = [ + SuiSidebar, + SuiSidebarContainer, + SuiSidebarSibling +]; + @NgModule({ imports: [ - CommonModule + ...imports ], - declarations: [ - SuiSidebar, - SuiSidebarContainer, - SuiSidebarSibling + declarations, + exports +}) +export class SuiSidebarRootModule {} + +@NgModule({ + imports: [ + ...imports ], - exports: [ - SuiSidebar, - SuiSidebarContainer, - SuiSidebarSibling - ] + declarations, + exports }) -export class SuiSidebarModule {} +export class SuiSidebarModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiSidebarRootModule + }; + } +} diff --git a/src/modules/tabs/tab.module.ts b/src/modules/tabs/tab.module.ts index e6858818e..6f652eae1 100644 --- a/src/modules/tabs/tab.module.ts +++ b/src/modules/tabs/tab.module.ts @@ -1,22 +1,45 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiTabset } from "./components/tabset"; import { SuiTabHeader } from "./directives/tab-header"; import { SuiTabContent } from "./directives/tab-content"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiTabset, + SuiTabHeader, + SuiTabContent +]; + +const exports = [ + SuiTabset, + SuiTabHeader, + SuiTabContent +]; + @NgModule({ imports: [ - CommonModule + ...imports ], - declarations: [ - SuiTabset, - SuiTabHeader, - SuiTabContent + declarations, + exports +}) +export class SuiTabsRootModule {} + +@NgModule({ + imports: [ + ...imports ], - exports: [ - SuiTabset, - SuiTabHeader, - SuiTabContent - ] + declarations, + exports }) -export class SuiTabsModule {} +export class SuiTabsModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiTabsRootModule + }; + } +} diff --git a/src/modules/transition/transition.module.ts b/src/modules/transition/transition.module.ts index 33fe5c542..4a7dee79a 100644 --- a/src/modules/transition/transition.module.ts +++ b/src/modules/transition/transition.module.ts @@ -1,15 +1,39 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; import { CommonModule } from "@angular/common"; import { SuiTransition } from "./directives/transition"; +const imports = [ + CommonModule +]; + +const declarations = [ + SuiTransition +]; + +const exports = [ + SuiTransition +]; + @NgModule({ - imports: [CommonModule], - declarations: [ - SuiTransition + imports: [ + ...imports ], - exports: [ - SuiTransition + declarations, + exports +}) +export class SuiTransitionRootModule {} + +@NgModule({ + imports: [ + ...imports ], - providers: [] + declarations, + exports }) -export class SuiTransitionModule {} +export class SuiTransitionModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiTransitionRootModule + }; + } +} diff --git a/src/sui.module.ts b/src/sui.module.ts index 651b09f07..d6016425c 100644 --- a/src/sui.module.ts +++ b/src/sui.module.ts @@ -1,4 +1,4 @@ -import { NgModule } from "@angular/core"; +import { NgModule, ModuleWithProviders } from "@angular/core"; // Collections import { @@ -35,34 +35,49 @@ import { SuiUtilityModule } from "./misc"; -@NgModule({ - exports: [ - // Collections - SuiMessageModule, - SuiPaginationModule, +const suiModules = [ + // Collections + SuiMessageModule, + SuiPaginationModule, + + // Modules + SuiAccordionModule, + SuiCheckboxModule, + SuiCollapseModule, + SuiDatepickerModule, + SuiDimmerModule, + SuiDropdownModule, + SuiModalModule, + SuiPopupModule, + SuiProgressModule, + SuiRatingModule, + SuiSearchModule, + SuiSelectModule, + SuiSidebarModule, + SuiTabsModule, + SuiTransitionModule, - // Modules - SuiAccordionModule, - SuiCheckboxModule, - SuiCollapseModule, - SuiDatepickerModule, - SuiDimmerModule, - SuiDropdownModule, - SuiModalModule, - SuiPopupModule, - SuiProgressModule, - SuiRatingModule, - SuiSearchModule, - SuiSelectModule, - SuiSidebarModule, - SuiTabsModule, - SuiTransitionModule, + // Behaviors + SuiLocalizationModule, - // Behaviors - SuiLocalizationModule, + // Misc + SuiUtilityModule +]; - // Misc - SuiUtilityModule - ] +@NgModule({ + imports: suiModules.map(m => m.forRoot()), + exports: suiModules +}) +export class SuiRootModule {} + +@NgModule({ + imports: suiModules, + exports: suiModules }) -export class SuiModule {} +export class SuiModule { + public static forRoot():ModuleWithProviders { + return { + ngModule: SuiRootModule + }; + } +}