perf(angular): flat ng modules (#17007)

fixes #17001
This commit is contained in:
Manu MA
2019-01-08 21:33:30 +01:00
committed by GitHub
parent 76e9e02c28
commit 0b84e27c61
8 changed files with 144 additions and 106 deletions

View File

@ -3,112 +3,128 @@ import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';
import { IonicConfig } from '@ionic/core';
import { appInitialize } from './app-initialize';
import * as d from './directives';
import * as p from './providers';
import { BooleanValueAccessor } from './directives/control-value-accessors/boolean-value-accessor';
import { NumericValueAccessor } from './directives/control-value-accessors/numeric-value-accesssor';
import { RadioValueAccessor } from './directives/control-value-accessors/radio-value-accessor';
import { SelectValueAccessor } from './directives/control-value-accessors/select-value-accessor';
import { TextValueAccessor } from './directives/control-value-accessors/text-value-accessor';
import { IonBackButtonDelegate } from './directives/navigation/ion-back-button';
import { IonRouterOutlet } from './directives/navigation/ion-router-outlet';
import { IonTabs } from './directives/navigation/ion-tabs';
import { NavDelegate } from './directives/navigation/nav-delegate';
import { RouterLinkDelegate } from './directives/navigation/router-link-delegate';
import { IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonFab, IonFabButton, IonFabList, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonMenu, IonMenuButton, IonMenuToggle, IonNav, IonNavPop, IonNavPush, IonNavSetRoot, IonNote, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSlide, IonSlides, IonSpinner, IonSplitPane, IonTabBar, IonTabButton, IonText, IonTextarea, IonThumbnail, IonTitle, IonToggle, IonToolbar } from './directives/proxies';
import { VirtualFooter } from './directives/virtual-scroll/virtual-footer';
import { VirtualHeader } from './directives/virtual-scroll/virtual-header';
import { VirtualItem } from './directives/virtual-scroll/virtual-item';
import { IonVirtualScroll } from './directives/virtual-scroll/virtual-scroll';
import { AngularDelegate } from './providers/angular-delegate';
import { ConfigToken } from './providers/config';
import { ModalController } from './providers/modal-controller';
import { PopoverController } from './providers/popover-controller';
const DECLARATIONS = [
// proxies
d.IonApp,
d.IonAvatar,
d.IonBackButton,
d.IonBackdrop,
d.IonBadge,
d.IonButton,
d.IonButtons,
d.IonCard,
d.IonCardContent,
d.IonCardHeader,
d.IonCardSubtitle,
d.IonCardTitle,
d.IonCheckbox,
d.IonChip,
d.IonCol,
d.IonContent,
d.IonDatetime,
d.IonFab,
d.IonFabButton,
d.IonFabList,
d.IonFooter,
d.IonGrid,
d.IonHeader,
d.IonIcon,
d.IonImg,
d.IonInfiniteScroll,
d.IonInfiniteScrollContent,
d.IonInput,
d.IonItem,
d.IonItemDivider,
d.IonItemGroup,
d.IonItemOption,
d.IonItemOptions,
d.IonItemSliding,
d.IonLabel,
d.IonList,
d.IonListHeader,
d.IonMenu,
d.IonMenuButton,
d.IonMenuToggle,
d.IonNav,
d.IonNavPop,
d.IonNavPush,
d.IonNavSetRoot,
d.IonNote,
d.IonProgressBar,
d.IonRadio,
d.IonRadioGroup,
d.IonRange,
d.IonRefresher,
d.IonRefresherContent,
d.IonReorder,
d.IonReorderGroup,
d.IonRippleEffect,
d.IonRow,
d.IonSearchbar,
d.IonSegment,
d.IonSegmentButton,
d.IonSelect,
d.IonSelectOption,
d.IonSkeletonText,
d.IonSlide,
d.IonSlides,
d.IonSpinner,
d.IonSplitPane,
d.IonTabBar,
d.IonTabButton,
d.IonText,
d.IonTextarea,
d.IonThumbnail,
d.IonToggle,
d.IonToolbar,
d.IonTitle,
IonApp,
IonAvatar,
IonBackButton,
IonBackdrop,
IonBadge,
IonButton,
IonButtons,
IonCard,
IonCardContent,
IonCardHeader,
IonCardSubtitle,
IonCardTitle,
IonCheckbox,
IonChip,
IonCol,
IonContent,
IonDatetime,
IonFab,
IonFabButton,
IonFabList,
IonFooter,
IonGrid,
IonHeader,
IonIcon,
IonImg,
IonInfiniteScroll,
IonInfiniteScrollContent,
IonInput,
IonItem,
IonItemDivider,
IonItemGroup,
IonItemOption,
IonItemOptions,
IonItemSliding,
IonLabel,
IonList,
IonListHeader,
IonMenu,
IonMenuButton,
IonMenuToggle,
IonNav,
IonNavPop,
IonNavPush,
IonNavSetRoot,
IonNote,
IonProgressBar,
IonRadio,
IonRadioGroup,
IonRange,
IonRefresher,
IonRefresherContent,
IonReorder,
IonReorderGroup,
IonRippleEffect,
IonRow,
IonSearchbar,
IonSegment,
IonSegmentButton,
IonSelect,
IonSelectOption,
IonSkeletonText,
IonSlide,
IonSlides,
IonSpinner,
IonSplitPane,
IonTabBar,
IonTabButton,
IonText,
IonTextarea,
IonThumbnail,
IonToggle,
IonToolbar,
IonTitle,
d.IonTabs,
IonTabs,
// ngModel accessors
d.BooleanValueAccessor,
d.NumericValueAccessor,
d.RadioValueAccessor,
d.SelectValueAccessor,
d.TextValueAccessor,
BooleanValueAccessor,
NumericValueAccessor,
RadioValueAccessor,
SelectValueAccessor,
TextValueAccessor,
// navigation
d.IonRouterOutlet,
d.IonBackButtonDelegate,
d.NavDelegate,
d.RouterLinkDelegate,
IonRouterOutlet,
IonBackButtonDelegate,
NavDelegate,
RouterLinkDelegate,
// virtual scroll
d.VirtualFooter,
d.VirtualHeader,
d.VirtualItem,
d.IonVirtualScroll
VirtualFooter,
VirtualHeader,
VirtualItem,
IonVirtualScroll
];
@NgModule({
declarations: DECLARATIONS,
exports: DECLARATIONS,
providers: [p.AngularDelegate, p.ModalController, p.PopoverController],
providers: [AngularDelegate, ModalController, PopoverController],
imports: [CommonModule]
})
export class IonicModule {