import { ModuleWithProviders, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import * as c from './directives'; import * as d from './directives/proxies'; import * as p from './providers'; const DECLARATIONS = [ // proxies d.App, d.Avatar, d.BackButton, d.Badge, d.Button, d.Buttons, d.Card, d.CardContent, d.CardHeader, d.CardSubtitle, d.CardTitle, d.Checkbox, d.Chip, d.ChipButton, d.Col, d.Content, d.Datetime, d.Fab, d.FabButton, d.FabList, d.Footer, d.Grid, d.Header, d.HideWhen, d.InfiniteScroll, d.InfiniteScrollContent, d.Input, d.Item, d.ItemDivider, d.ItemGroup, d.ItemOption, d.ItemOptions, d.ItemSliding, d.Label, d.List, d.ListHeader, d.Menu, d.MenuButton, d.MenuToggle, d.Nav, d.NavPop, d.NavPush, d.NavSetRoot, d.Note, d.Radio, d.RadioGroup, d.Range, d.Refresher, d.RefresherContent, d.Reorder, d.ReorderGroup, d.RippleEffect, d.Row, d.Scroll, d.Searchbar, d.Segment, d.SegmentButton, d.Select, d.SelectOption, d.SelectPopover, d.ShowWhen, d.SkeletonText, d.Slide, d.Slides, d.Spinner, d.SplitPane, d.Tab, d.Tabs, d.Text, d.Textarea, d.Thumbnail, d.Toggle, d.Toolbar, d.ToolbarTitle, // custom proxy c.Icon, // ngModel accessors c.BooleanValueAccessor, c.NumericValueAccessor, c.RadioValueAccessor, c.SelectValueAccessor, c.TextValueAccessor, // navigation c.GoBack, c.IonBackButton, c.IonRouterOutlet, c.NavDelegate, c.TabDelegate, c.TabsDelegate, // virtual scroll c.VirtualFooter, c.VirtualHeader, c.VirtualItem, c.VirtualScroll, ]; const PROVIDERS = [ p.ActionSheetController, p.AlertController, p.LoadingController, p.ModalController, p.PickerController, p.PopoverController, p.ToastController, p.MenuController, p.NavController, p.Platform, p.Events, ]; @NgModule({ declarations: DECLARATIONS, exports: DECLARATIONS, providers: [ p.AngularDelegate ], imports: [ CommonModule, ] }) export class IonicModule { static forRoot(): ModuleWithProviders { return { ngModule: IonicModule, providers: [ ...PROVIDERS, ] }; } }