mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-17 02:31:34 +08:00
152 lines
2.8 KiB
TypeScript
152 lines
2.8 KiB
TypeScript
import { CommonModule } from '@angular/common';
|
|
import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';
|
|
import { IonicConfig } from '@ionic/core';
|
|
|
|
import { appInitialize } from './app-initialize';
|
|
import * as c from './directives';
|
|
import * as d from './directives/proxies';
|
|
import * as p from './providers';
|
|
import { ConfigToken } from './providers/config';
|
|
|
|
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.IonSelectPopover,
|
|
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,
|
|
|
|
c.IonTabs,
|
|
|
|
// ngModel accessors
|
|
c.BooleanValueAccessor,
|
|
c.NumericValueAccessor,
|
|
c.RadioValueAccessor,
|
|
c.SelectValueAccessor,
|
|
c.TextValueAccessor,
|
|
|
|
// navigation
|
|
c.IonRouterOutlet,
|
|
c.IonBackButtonDelegate,
|
|
c.NavDelegate,
|
|
c.RouterLinkDelegate,
|
|
|
|
// virtual scroll
|
|
c.VirtualFooter,
|
|
c.VirtualHeader,
|
|
c.VirtualItem,
|
|
c.IonVirtualScroll
|
|
];
|
|
|
|
const PROVIDERS = [
|
|
p.ActionSheetController,
|
|
p.AlertController,
|
|
p.Config,
|
|
p.LoadingController,
|
|
p.PickerController,
|
|
p.ToastController,
|
|
p.MenuController,
|
|
p.NavController,
|
|
p.Platform,
|
|
p.Events,
|
|
p.DomController
|
|
];
|
|
|
|
@NgModule({
|
|
declarations: DECLARATIONS,
|
|
exports: DECLARATIONS,
|
|
providers: [p.AngularDelegate, p.ModalController, p.PopoverController],
|
|
imports: [CommonModule]
|
|
})
|
|
export class IonicModule {
|
|
static forRoot(config?: IonicConfig): ModuleWithProviders {
|
|
return {
|
|
ngModule: IonicModule,
|
|
providers: [
|
|
{
|
|
provide: ConfigToken,
|
|
useValue: config
|
|
},
|
|
{
|
|
provide: APP_INITIALIZER,
|
|
useFactory: appInitialize,
|
|
multi: true,
|
|
deps: [
|
|
ConfigToken
|
|
]
|
|
},
|
|
...PROVIDERS
|
|
]
|
|
};
|
|
}
|
|
}
|