mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
refactor(index): update import/exports for component refactors, add DeepLinkModule
update import/exports for component refactors, add DeepLinkModule
This commit is contained in:
193
src/index.ts
193
src/index.ts
@@ -1,19 +1,25 @@
|
||||
|
||||
|
||||
/**
|
||||
* Import Angular
|
||||
*/
|
||||
import { ANALYZE_FOR_ENTRY_COMPONENTS, APP_INITIALIZER, Inject, ModuleWithProviders, NgModule, NgZone, Optional } from '@angular/core';
|
||||
import { ANALYZE_FOR_ENTRY_COMPONENTS, APP_INITIALIZER, ComponentFactoryResolver, Inject, Injector, ModuleWithProviders, NgModule, NgZone, Optional } from '@angular/core';
|
||||
import { APP_BASE_HREF, Location, LocationStrategy, HashLocationStrategy, PathLocationStrategy, PlatformLocation } from '@angular/common';
|
||||
import { DOCUMENT, BrowserModule, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
|
||||
import { DOCUMENT } from '@angular/platform-browser';
|
||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||
import { HttpModule } from '@angular/http';
|
||||
import { CommonModule } from '@angular/common';
|
||||
|
||||
/**
|
||||
* Import Other
|
||||
*/
|
||||
import { DeepLinkConfig } from './navigation/nav-util';
|
||||
|
||||
/**
|
||||
* Import Providers
|
||||
*/
|
||||
import { ActionSheetController } from './components/action-sheet/action-sheet';
|
||||
import { AlertController } from './components/alert/alert';
|
||||
import { ActionSheetController } from './components/action-sheet/action-sheet-controller';
|
||||
import { AlertController } from './components/alert/alert-controller';
|
||||
import { App } from './components/app/app';
|
||||
import { AppRootToken } from './components/app/app-root';
|
||||
import { Config, setupConfig, ConfigToken } from './config/config';
|
||||
@@ -23,19 +29,19 @@ import { Events, setupProvideEvents } from './util/events';
|
||||
import { Form } from './util/form';
|
||||
import { GestureController } from './gestures/gesture-controller';
|
||||
import { Haptic } from './tap-click/haptic';
|
||||
import { IonicGestureConfig } from './gestures/gesture-config';
|
||||
import { Keyboard } from './platform/keyboard';
|
||||
import { LoadingController } from './components/loading/loading';
|
||||
import { LoadingController } from './components/loading/loading-controller';
|
||||
import { MenuController } from './components/menu/menu-controller';
|
||||
import { ModalController } from './components/modal/modal';
|
||||
import { PickerController } from './components/picker/picker';
|
||||
import { ModalController } from './components/modal/modal-controller';
|
||||
import { ModuleLoader, provideModuleLoader, LAZY_LOADED_TOKEN } from './util/module-loader';
|
||||
import { NgModuleLoader } from './util/ng-module-loader';
|
||||
import { PickerController } from './components/picker/picker-controller';
|
||||
import { Platform, setupPlatform } from './platform/platform';
|
||||
import { PlatformConfigToken, providePlatformConfigs } from './platform/platform-registry';
|
||||
import { PopoverController } from './components/popover/popover';
|
||||
import { PopoverController } from './components/popover/popover-controller';
|
||||
import { TapClick, setupTapClick } from './tap-click/tap-click';
|
||||
import { ToastController } from './components/toast/toast';
|
||||
import { ToastController } from './components/toast/toast-controller';
|
||||
import { registerModeConfigs } from './config/mode-registry';
|
||||
import { registerTransitions } from './transitions/transition-registry';
|
||||
import { TransitionController } from './transitions/transition-controller';
|
||||
import { UrlSerializer, setupUrlSerializer, DeepLinkConfigToken } from './navigation/url-serializer';
|
||||
|
||||
@@ -60,13 +66,18 @@ import { Avatar } from './components/avatar/avatar';
|
||||
import { Backdrop } from './components/backdrop/backdrop';
|
||||
import { Badge } from './components/badge/badge';
|
||||
import { Button } from './components/button/button';
|
||||
import { Card, CardContent, CardHeader, CardTitle } from './components/card/card';
|
||||
import { Card } from './components/card/card';
|
||||
import { CardContent } from './components/card/card-content';
|
||||
import { CardHeader } from './components/card/card-header';
|
||||
import { CardTitle } from './components/card/card-title';
|
||||
import { Checkbox } from './components/checkbox/checkbox';
|
||||
import { Chip } from './components/chip/chip';
|
||||
import { ClickBlock } from './util/click-block';
|
||||
import { Content } from './components/content/content';
|
||||
import { DateTime } from './components/datetime/datetime';
|
||||
import { FabContainer, FabButton, FabList } from './components/fab/fab';
|
||||
import { FabButton } from './components/fab/fab';
|
||||
import { FabContainer } from './components/fab/fab-container';
|
||||
import { FabList } from './components/fab/fab-list';
|
||||
import { Col } from './components/grid/col';
|
||||
import { Grid } from './components/grid/grid';
|
||||
import { Row } from './components/grid/row';
|
||||
@@ -74,24 +85,32 @@ import { Icon } from './components/icon/icon';
|
||||
import { Img } from './components/img/img';
|
||||
import { InfiniteScroll } from './components/infinite-scroll/infinite-scroll';
|
||||
import { InfiniteScrollContent } from './components/infinite-scroll/infinite-scroll-content';
|
||||
import { Item, ItemContent, ItemDivider, ItemGroup } from './components/item/item';
|
||||
import { ItemReorder, Reorder } from './components/item/item-reorder';
|
||||
import { ItemSliding, ItemOptions } from './components/item/item-sliding';
|
||||
import { Item } from './components/item/item';
|
||||
import { ItemContent } from './components/item/item-content';
|
||||
import { ItemDivider } from './components/item/item-divider';
|
||||
import { ItemGroup } from './components/item/item-group';
|
||||
import { ItemReorder } from './components/item/item-reorder';
|
||||
import { Reorder } from './components/item/reorder';
|
||||
import { ItemSliding } from './components/item/item-sliding';
|
||||
import { ItemOptions } from './components/item/item-options';
|
||||
import { Label } from './components/label/label';
|
||||
import { List } from './components/list/list';
|
||||
import { ListHeader } from './components/list/list-header';
|
||||
import { Menu } from './components/menu/menu';
|
||||
import { MenuClose } from './components/menu/menu-close';
|
||||
import { MenuToggle } from './components/menu/menu-toggle';
|
||||
import { NativeInput, NextInput } from './components/input/native-input';
|
||||
import { NativeInput } from './components/input/native-input';
|
||||
import { NextInput } from './components/input/next-input';
|
||||
import { Nav } from './components/nav/nav';
|
||||
import { NavPop, NavPopAnchor } from './components/nav/nav-pop';
|
||||
import { NavPush, NavPushAnchor } from './components/nav/nav-push';
|
||||
import { NavPop } from './components/nav/nav-pop';
|
||||
import { NavPopAnchor } from './components/nav/nav-pop-anchor';
|
||||
import { NavPush } from './components/nav/nav-push';
|
||||
import { NavPushAnchor } from './components/nav/nav-push-anchor';
|
||||
import { Navbar } from './components/navbar/navbar';
|
||||
import { Note } from './components/note/note';
|
||||
import { Option } from './components/option/option';
|
||||
import { OverlayPortal } from './components/nav/overlay-portal';
|
||||
import { PickerColumnCmp } from './components/picker/picker-component';
|
||||
import { PickerColumnCmp } from './components/picker/picker-column';
|
||||
import { RadioButton } from './components/radio/radio-button';
|
||||
import { RadioGroup } from './components/radio/radio-group';
|
||||
import { Range } from './components/range/range';
|
||||
@@ -100,9 +119,11 @@ import { Refresher } from './components/refresher/refresher';
|
||||
import { RefresherContent } from './components/refresher/refresher-content';
|
||||
import { Scroll } from './components/scroll/scroll';
|
||||
import { Searchbar } from './components/searchbar/searchbar';
|
||||
import { Segment, SegmentButton } from './components/segment/segment';
|
||||
import { Segment } from './components/segment/segment';
|
||||
import { SegmentButton } from './components/segment/segment-button';
|
||||
import { Select } from './components/select/select';
|
||||
import { ShowWhen, HideWhen } from './components/show-hide-when/show-hide-when';
|
||||
import { ShowWhen } from './components/show-hide-when/show-hide-when';
|
||||
import { HideWhen } from './components/show-hide-when/hide-when';
|
||||
import { Slide } from './components/slides/slide';
|
||||
import { Slides } from './components/slides/slides';
|
||||
import { Spinner } from './components/spinner/spinner';
|
||||
@@ -113,33 +134,45 @@ import { TabHighlight } from './components/tabs/tab-highlight';
|
||||
import { TextInput } from './components/input/input';
|
||||
import { Thumbnail } from './components/thumbnail/thumbnail';
|
||||
import { Toggle } from './components/toggle/toggle';
|
||||
import { Toolbar, Header, Footer } from './components/toolbar/toolbar';
|
||||
import { Toolbar } from './components/toolbar/toolbar';
|
||||
import { Header } from './components/toolbar/toolbar-header';
|
||||
import { Footer } from './components/toolbar/toolbar-footer';
|
||||
import { ToolbarItem } from './components/toolbar/toolbar-item';
|
||||
import { ToolbarTitle } from './components/toolbar/toolbar-title';
|
||||
import { Typography } from './components/typography/typography';
|
||||
import { VirtualScroll } from './components/virtual-scroll/virtual-scroll';
|
||||
import { VirtualItem, VirtualHeader, VirtualFooter } from './components/virtual-scroll/virtual-item';
|
||||
|
||||
import { VirtualItem } from './components/virtual-scroll/virtual-item';
|
||||
import { VirtualHeader } from './components/virtual-scroll/virtual-header';
|
||||
import { VirtualFooter } from './components/virtual-scroll/virtual-footer';
|
||||
|
||||
|
||||
/**
|
||||
* Export Components/Directives
|
||||
*/
|
||||
export { ActionSheet, ActionSheetController } from './components/action-sheet/action-sheet';
|
||||
export { ActionSheet } from './components/action-sheet/action-sheet';
|
||||
export { ActionSheetController } from './components/action-sheet/action-sheet-controller';
|
||||
export { ActionSheetOptions } from './components/action-sheet/action-sheet-options';
|
||||
export { Alert, AlertController } from './components/alert/alert';
|
||||
export { AlertController } from './components/alert/alert-controller';
|
||||
export { Alert } from './components/alert/alert';
|
||||
export { AlertOptions, AlertInputOptions } from './components/alert/alert-options';
|
||||
export { App } from './components/app/app';
|
||||
export { Avatar } from './components/avatar/avatar';
|
||||
export { Backdrop } from './components/backdrop/backdrop';
|
||||
export { Badge } from './components/badge/badge';
|
||||
export { Button } from './components/button/button';
|
||||
export { Card, CardContent, CardHeader, CardTitle } from './components/card/card';
|
||||
export { Card } from './components/card/card';
|
||||
export { CardContent } from './components/card/card-content';
|
||||
export { CardHeader } from './components/card/card-header';
|
||||
export { CardTitle } from './components/card/card-title';
|
||||
export { Checkbox } from './components/checkbox/checkbox';
|
||||
export { Chip } from './components/chip/chip';
|
||||
export { ClickBlock } from './util/click-block';
|
||||
export { Content, ScrollEvent } from './components/content/content';
|
||||
export { DateTime } from './components/datetime/datetime';
|
||||
export { FabContainer, FabButton, FabList } from './components/fab/fab';
|
||||
export { FabButton } from './components/fab/fab';
|
||||
export { FabContainer } from './components/fab/fab-container';
|
||||
export { FabList } from './components/fab/fab-list';
|
||||
export { Col } from './components/grid/col';
|
||||
export { Grid } from './components/grid/grid';
|
||||
export { Row } from './components/grid/row';
|
||||
@@ -150,32 +183,46 @@ export { InfiniteScroll } from './components/infinite-scroll/infinite-scroll';
|
||||
export { InfiniteScrollContent } from './components/infinite-scroll/infinite-scroll-content';
|
||||
export { TextInput } from './components/input/input';
|
||||
export { IonicApp } from './components/app/app-root';
|
||||
export { Item, ItemContent, ItemDivider, ItemGroup } from './components/item/item';
|
||||
export { ItemReorder, Reorder } from './components/item/item-reorder';
|
||||
export { ItemSliding, ItemOptions, ItemSideFlags } from './components/item/item-sliding';
|
||||
|
||||
export { Item } from './components/item/item';
|
||||
export { ItemContent } from './components/item/item-content';
|
||||
export { ItemDivider } from './components/item/item-divider';
|
||||
export { ItemGroup } from './components/item/item-group';
|
||||
export { ItemReorder } from './components/item/item-reorder';
|
||||
export { Reorder } from './components/item/reorder';
|
||||
export { ItemSliding } from './components/item/item-sliding';
|
||||
export { ItemOptions } from './components/item/item-options';
|
||||
|
||||
export { Label } from './components/label/label';
|
||||
export { List } from './components/list/list';
|
||||
export { ListHeader } from './components/list/list-header';
|
||||
export { Loading, LoadingController } from './components/loading/loading';
|
||||
export { Loading } from './components/loading/loading';
|
||||
export { LoadingController } from './components/loading/loading-controller';
|
||||
export { LoadingOptions } from './components/loading/loading-options';
|
||||
export { Menu } from './components/menu/menu';
|
||||
export { MenuClose } from './components/menu/menu-close';
|
||||
export { MenuController } from './components/menu/menu-controller';
|
||||
export { MenuToggle } from './components/menu/menu-toggle';
|
||||
export { MenuType } from './components/menu/menu-types';
|
||||
export { Modal, ModalController } from './components/modal/modal';
|
||||
export { Modal } from './components/modal/modal';
|
||||
export { ModalController } from './components/modal/modal-controller';
|
||||
export { ModalOptions } from './components/modal/modal-options';
|
||||
export { Nav } from './components/nav/nav';
|
||||
export { NavPop, NavPopAnchor } from './components/nav/nav-pop';
|
||||
export { NavPush, NavPushAnchor } from './components/nav/nav-push';
|
||||
export { NavPop } from './components/nav/nav-pop';
|
||||
export { NavPopAnchor } from './components/nav/nav-pop-anchor';
|
||||
export { NavPush } from './components/nav/nav-push';
|
||||
export { NavPushAnchor } from './components/nav/nav-push-anchor';
|
||||
export { Navbar } from './components/navbar/navbar';
|
||||
export { NativeInput, NextInput } from './components/input/native-input';
|
||||
export { NativeInput } from './components/input/native-input';
|
||||
export { NextInput } from './components/input/next-input';
|
||||
export { Note } from './components/note/note';
|
||||
export { Option } from './components/option/option';
|
||||
export { OverlayPortal } from './components/nav/overlay-portal';
|
||||
export { Picker, PickerController } from './components/picker/picker';
|
||||
export { Picker } from './components/picker/picker';
|
||||
export { PickerController } from './components/picker/picker-controller';
|
||||
export { PickerOptions, PickerColumn, PickerColumnOption } from './components/picker/picker-options';
|
||||
export { Popover, PopoverController } from './components/popover/popover';
|
||||
export { Popover } from './components/popover/popover';
|
||||
export { PopoverController } from './components/popover/popover-controller';
|
||||
export { PopoverOptions } from './components/popover/popover-options';
|
||||
export { RadioButton } from './components/radio/radio-button';
|
||||
export { RadioGroup } from './components/radio/radio-group';
|
||||
@@ -185,9 +232,12 @@ export { Refresher } from './components/refresher/refresher';
|
||||
export { RefresherContent } from './components/refresher/refresher-content';
|
||||
export { Scroll } from './components/scroll/scroll';
|
||||
export { Searchbar } from './components/searchbar/searchbar';
|
||||
export { Segment, SegmentButton } from './components/segment/segment';
|
||||
export { Segment } from './components/segment/segment';
|
||||
export { SegmentButton } from './components/segment/segment-button';
|
||||
export { Select } from './components/select/select';
|
||||
export { ShowWhen, HideWhen, DisplayWhen } from './components/show-hide-when/show-hide-when';
|
||||
export { ShowWhen } from './components/show-hide-when/show-hide-when';
|
||||
export { DisplayWhen } from './components/show-hide-when/show-hide-when';
|
||||
export { HideWhen } from './components/show-hide-when/hide-when';
|
||||
export { Slide } from './components/slides/slide';
|
||||
export { Slides } from './components/slides/slides';
|
||||
export { Spinner } from './components/spinner/spinner';
|
||||
@@ -196,10 +246,14 @@ export { TabButton } from './components/tabs/tab-button';
|
||||
export { TabHighlight } from './components/tabs/tab-highlight';
|
||||
export { Tabs } from './components/tabs/tabs';
|
||||
export { TapClick, setupTapClick, isActivatable } from './tap-click/tap-click';
|
||||
export { Toast, ToastController } from './components/toast/toast';
|
||||
export { Toast } from './components/toast/toast';
|
||||
export { ToastController } from './components/toast/toast-controller';
|
||||
export { ToastOptions } from './components/toast/toast-options';
|
||||
export { Toggle } from './components/toggle/toggle';
|
||||
export { Toolbar, ToolbarBase, Header, Footer } from './components/toolbar/toolbar';
|
||||
export { ToolbarBase } from './components/toolbar/toolbar-base';
|
||||
export { Toolbar } from './components/toolbar/toolbar';
|
||||
export { Header } from './components/toolbar/toolbar-header';
|
||||
export { Footer } from './components/toolbar/toolbar-footer';
|
||||
export { ToolbarItem } from './components/toolbar/toolbar-item';
|
||||
export { ToolbarTitle } from'./components/toolbar/toolbar-title';
|
||||
export { Thumbnail } from './components/thumbnail/thumbnail';
|
||||
@@ -225,7 +279,8 @@ export { ActionSheetCmp } from './components/action-sheet/action-sheet-component
|
||||
export { AlertCmp } from './components/alert/alert-component';
|
||||
export { LoadingCmp } from './components/loading/loading-component';
|
||||
export { ModalCmp } from './components/modal/modal-component';
|
||||
export { PickerCmp, PickerColumnCmp } from './components/picker/picker-component';
|
||||
export { PickerCmp } from './components/picker/picker-component';
|
||||
export { PickerColumnCmp } from './components/picker/picker-column';
|
||||
export { PopoverCmp } from './components/popover/popover-component';
|
||||
export { ToastCmp } from './components/toast/toast-component';
|
||||
|
||||
@@ -245,7 +300,6 @@ export {
|
||||
GESTURE_ITEM_SWIPE,
|
||||
GESTURE_REFRESHER,
|
||||
GESTURE_TOGGLE,
|
||||
GesturePriority,
|
||||
GestureOptions,
|
||||
GestureController,
|
||||
GestureDelegate,
|
||||
@@ -297,12 +351,18 @@ export { Transition } from './transitions/transition';
|
||||
* ```
|
||||
*/
|
||||
@NgModule({
|
||||
imports: [BrowserModule, HttpModule, FormsModule, ReactiveFormsModule],
|
||||
exports: [
|
||||
BrowserModule,
|
||||
imports: [
|
||||
CommonModule,
|
||||
HttpModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
],
|
||||
exports: [
|
||||
CommonModule,
|
||||
HttpModule,
|
||||
FormsModule,
|
||||
ReactiveFormsModule,
|
||||
|
||||
|
||||
Avatar,
|
||||
Backdrop,
|
||||
@@ -494,13 +554,23 @@ export { Transition } from './transitions/transition';
|
||||
]
|
||||
})
|
||||
export class IonicModule {
|
||||
|
||||
static forChild(cls: any) {
|
||||
return {
|
||||
ngModule: DeepLinkModule,
|
||||
providers: [
|
||||
{ provide: <any>LAZY_LOADED_TOKEN, useValue: cls }
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the root app component for you IonicModule
|
||||
* @param {any} appRoot The root AppComponent for this app.
|
||||
* @param {any} config Config Options for the app. Accepts any config property.
|
||||
* @param {any} deepLinkConfig Any configuration needed for the Ionic Deeplinker.
|
||||
*/
|
||||
static forRoot(appRoot: any, config: any = null, deepLinkConfig: any = null): ModuleWithProviders {
|
||||
static forRoot(appRoot: any, config: any = null, deepLinkConfig: DeepLinkConfig = null): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: IonicModule,
|
||||
providers: [
|
||||
@@ -508,6 +578,7 @@ export class IonicModule {
|
||||
{ provide: AppRootToken, useValue: appRoot },
|
||||
{ provide: ConfigToken, useValue: config },
|
||||
{ provide: DeepLinkConfigToken, useValue: deepLinkConfig },
|
||||
{ provide: APP_BASE_HREF, useValue: '/'},
|
||||
|
||||
// useFactory: user values
|
||||
{ provide: PlatformConfigToken, useFactory: providePlatformConfigs },
|
||||
@@ -518,12 +589,11 @@ export class IonicModule {
|
||||
|
||||
// useFactory: ionic app initializers
|
||||
{ provide: APP_INITIALIZER, useFactory: registerModeConfigs, deps: [ Config ], multi: true },
|
||||
{ provide: APP_INITIALIZER, useFactory: registerTransitions, deps: [ Config ], multi: true },
|
||||
{ provide: APP_INITIALIZER, useFactory: setupProvideEvents, deps: [ Platform, DomController ], multi: true },
|
||||
{ provide: APP_INITIALIZER, useFactory: setupTapClick, deps: [ Config, Platform, DomController, App, NgZone, GestureController ], multi: true },
|
||||
|
||||
// useClass
|
||||
{ provide: HAMMER_GESTURE_CONFIG, useClass: IonicGestureConfig },
|
||||
// { provide: HAMMER_GESTURE_CONFIG, useClass: IonicGestureConfig },
|
||||
|
||||
// useValue
|
||||
{ provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: appRoot, multi: true },
|
||||
@@ -544,13 +614,32 @@ export class IonicModule {
|
||||
ModalController,
|
||||
PickerController,
|
||||
PopoverController,
|
||||
NgModuleLoader,
|
||||
TapClick,
|
||||
ToastController,
|
||||
TransitionController,
|
||||
|
||||
{ provide: LocationStrategy, useFactory: provideLocationStrategy, deps: [ PlatformLocation, [ new Inject(APP_BASE_HREF), new Optional()], Config ] },
|
||||
{ provide: ModuleLoader, useFactory: provideModuleLoader, deps: [NgModuleLoader, Injector]},
|
||||
{ provide: LocationStrategy, useFactory: provideLocationStrategy, deps: [ PlatformLocation, [new Inject(APP_BASE_HREF), new Optional()], Config ] },
|
||||
{ provide: UrlSerializer, useFactory: setupUrlSerializer, deps: [ DeepLinkConfigToken ] },
|
||||
{ provide: DeepLinker, useFactory: setupDeepLinker, deps: [ App, UrlSerializer, Location ] },
|
||||
{ provide: DeepLinker, useFactory: setupDeepLinker, deps: [ App, UrlSerializer, Location, ModuleLoader, ComponentFactoryResolver ] },
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@NgModule({
|
||||
imports: [IonicModule],
|
||||
exports: [IonicModule]
|
||||
})
|
||||
export class DeepLinkModule {
|
||||
|
||||
static forChild(page: any): ModuleWithProviders {
|
||||
return {
|
||||
ngModule: DeepLinkModule,
|
||||
providers: [
|
||||
{ provide: <any>LAZY_LOADED_TOKEN, useValue: page },
|
||||
{ provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: page, multi: true },
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user