UNPKG

246 kBSource Map (JSON)View Raw
1{"version":3,"file":"ionic-angular.js","sources":["ng://@ionic/angular/util/util.ts","ng://@ionic/angular/directives/control-value-accessors/value-accessor.ts","ng://@ionic/angular/directives/control-value-accessors/boolean-value-accessor.ts","ng://@ionic/angular/directives/control-value-accessors/numeric-value-accesssor.ts","ng://@ionic/angular/directives/control-value-accessors/radio-value-accessor.ts","ng://@ionic/angular/directives/control-value-accessors/select-value-accessor.ts","ng://@ionic/angular/directives/control-value-accessors/text-value-accessor.ts","ng://@ionic/angular/providers/platform.ts","ng://@ionic/angular/providers/nav-controller.ts","ng://@ionic/angular/directives/proxies-utils.ts","ng://@ionic/angular/directives/proxies.ts","ng://@ionic/angular/providers/config.ts","ng://@ionic/angular/directives/navigation/nav-params.ts","ng://@ionic/angular/providers/angular-delegate.ts","ng://@ionic/angular/directives/navigation/stack-utils.ts","ng://@ionic/angular/directives/navigation/stack-controller.ts","ng://@ionic/angular/directives/navigation/ion-router-outlet.ts","ng://@ionic/angular/directives/navigation/ion-tabs.ts","ng://@ionic/angular/directives/navigation/ion-back-button.ts","ng://@ionic/angular/directives/navigation/nav-delegate.ts","ng://@ionic/angular/directives/navigation/router-link-delegate.ts","ng://@ionic/angular/directives/virtual-scroll/virtual-footer.ts","ng://@ionic/angular/directives/virtual-scroll/virtual-header.ts","ng://@ionic/angular/directives/virtual-scroll/virtual-item.ts","ng://@ionic/angular/directives/virtual-scroll/virtual-scroll.ts","ng://@ionic/angular/util/overlay.ts","ng://@ionic/angular/providers/action-sheet-controller.ts","ng://@ionic/angular/providers/alert-controller.ts","ng://@ionic/angular/providers/loading-controller.ts","ng://@ionic/angular/providers/menu-controller.ts","ng://@ionic/angular/providers/picker-controller.ts","ng://@ionic/angular/providers/modal-controller.ts","ng://@ionic/angular/providers/popover-controller.ts","ng://@ionic/angular/providers/toast-controller.ts","ng://@ionic/angular/providers/dom-controller.ts","ng://@ionic/angular/providers/animation-controller.ts","ng://@ionic/angular/providers/gesture-controller.ts","ng://@ionic/angular/util/ionic-router-reuse-strategy.ts","ng://@ionic/angular/app-initialize.ts","ng://@ionic/angular/ionic-module.ts","ng://@ionic/angular/index.ts","ng://@ionic/angular/ionic-angular.ts"],"sourcesContent":["\ndeclare const __zone_symbol__requestAnimationFrame: any;\ndeclare const requestAnimationFrame: any;\n\nexport const raf = (h: any) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(h);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(h);\n }\n return setTimeout(h);\n};\n","import { AfterViewInit, ElementRef, HostListener, Injector, OnDestroy, Type } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nimport { raf } from '../../util/util';\n\nexport class ValueAccessor implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\n private onChange: (value: any) => void = () => {/**/};\n private onTouched: () => void = () => {/**/};\n protected lastValue: any;\n private statusChanges?: Subscription;\n\n constructor(protected injector: Injector, protected el: ElementRef) {}\n\n writeValue(value: any) {\n /**\n * TODO for Ionic 6:\n * Change `value == null ? '' : value;`\n * to `value`. This was a fix for IE9, but IE9\n * is no longer supported; however, this change\n * is potentially a breaking change\n */\n this.el.nativeElement.value = this.lastValue = value == null ? '' : value;\n setIonicClasses(this.el);\n }\n\n handleChangeEvent(el: HTMLElement, value: any) {\n if (el === this.el.nativeElement) {\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.onChange(value);\n }\n setIonicClasses(this.el);\n }\n }\n\n @HostListener('ionBlur', ['$event.target'])\n _handleBlurEvent(el: any) {\n if (el === this.el.nativeElement) {\n this.onTouched();\n setIonicClasses(this.el);\n }\n }\n\n registerOnChange(fn: (value: any) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.el.nativeElement.disabled = isDisabled;\n }\n\n ngOnDestroy() {\n if (this.statusChanges) {\n this.statusChanges.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n let ngControl;\n try {\n ngControl = this.injector.get<NgControl>(NgControl as Type<NgControl>);\n } catch { /* No FormControl or ngModel binding */ }\n\n if (!ngControl) { return; }\n\n // Listen for changes in validity, disabled, or pending states\n if (ngControl.statusChanges) {\n this.statusChanges = ngControl.statusChanges.subscribe(() => setIonicClasses(this.el));\n }\n\n /**\n * TODO Remove this in favor of https://github.com/angular/angular/issues/10887\n * whenever it is implemented. Currently, Ionic's form status classes\n * do not react to changes when developers manually call\n * Angular form control methods such as markAsTouched.\n * This results in Ionic's form status classes being out\n * of sync with the ng form status classes.\n * This patches the methods to manually sync\n * the classes until this feature is implemented in Angular.\n */\n const formControl = ngControl.control;\n if (formControl) {\n const methodsToPatch = ['markAsTouched', 'markAllAsTouched', 'markAsUntouched', 'markAsDirty', 'markAsPristine'];\n methodsToPatch.forEach(method => {\n if (formControl[method]) {\n const oldFn = formControl[method].bind(formControl);\n formControl[method] = (...params) => {\n oldFn(...params);\n setIonicClasses(this.el);\n };\n }\n });\n }\n }\n}\n\nexport const setIonicClasses = (element: ElementRef) => {\n raf(() => {\n const input = element.nativeElement as HTMLElement;\n const classes = getClasses(input);\n setClasses(input, classes);\n\n const item = input.closest('ion-item');\n if (item) {\n setClasses(item, classes);\n }\n });\n};\n\nconst getClasses = (element: HTMLElement) => {\n const classList = element.classList;\n const classes = [];\n for (let i = 0; i < classList.length; i++) {\n const item = classList.item(i);\n if (item !== null && startsWith(item, 'ng-')) {\n classes.push(`ion-${item.substr(3)}`);\n }\n }\n return classes;\n};\n\nconst setClasses = (element: HTMLElement, classes: string[]) => {\n const classList = element.classList;\n [\n 'ion-valid',\n 'ion-invalid',\n 'ion-touched',\n 'ion-untouched',\n 'ion-dirty',\n 'ion-pristine'\n ].forEach(c => classList.remove(c));\n\n classes.forEach(c => classList.add(c));\n};\n\nconst startsWith = (input: string, search: string): boolean => {\n return input.substr(0, search.length) === search;\n};\n","import { Directive, ElementRef, HostListener, Injector } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ValueAccessor, setIonicClasses } from './value-accessor';\n\n@Directive({\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-checkbox,ion-toggle',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BooleanValueAccessor,\n multi: true\n }\n ]\n})\nexport class BooleanValueAccessor extends ValueAccessor {\n\n constructor(injector: Injector, el: ElementRef) {\n super(injector, el);\n }\n\n writeValue(value: any) {\n this.el.nativeElement.checked = this.lastValue = value == null ? false : value;\n setIonicClasses(this.el);\n }\n\n @HostListener('ionChange', ['$event.target'])\n _handleIonChange(el: any) {\n this.handleChangeEvent(el, el.checked);\n }\n}\n","import { Directive, ElementRef, HostListener, Injector } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ValueAccessor } from './value-accessor';\n\n@Directive({\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-input[type=number]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NumericValueAccessor,\n multi: true\n }\n ]\n})\nexport class NumericValueAccessor extends ValueAccessor {\n\n constructor(injector: Injector, el: ElementRef) {\n super(injector, el);\n }\n\n @HostListener('ionChange', ['$event.target'])\n _handleIonChange(el: any) {\n this.handleChangeEvent(el, el.value);\n }\n\n registerOnChange(fn: (_: number | null) => void) {\n super.registerOnChange(value => {\n fn(value === '' ? null : parseFloat(value));\n });\n }\n}\n","import { Directive, ElementRef, HostListener, Injector } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ValueAccessor } from './value-accessor';\n\n@Directive({\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-radio',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioValueAccessor,\n multi: true\n }\n ]\n})\nexport class RadioValueAccessor extends ValueAccessor {\n\n constructor(injector: Injector, el: ElementRef) {\n super(injector, el);\n }\n\n @HostListener('ionSelect', ['$event.target'])\n _handleIonSelect(el: any) {\n this.handleChangeEvent(el, el.checked);\n }\n}\n","import { Directive, ElementRef, HostListener, Injector } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ValueAccessor } from './value-accessor';\n\n@Directive({\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SelectValueAccessor,\n multi: true\n }\n ]\n})\nexport class SelectValueAccessor extends ValueAccessor {\n\n constructor(injector: Injector, el: ElementRef) {\n super(injector, el);\n }\n\n @HostListener('ionChange', ['$event.target'])\n _handleChangeEvent(el: any) {\n this.handleChangeEvent(el, el.value);\n }\n}\n","import { Directive, ElementRef, HostListener, Injector } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ValueAccessor } from './value-accessor';\n\n@Directive({\n /* tslint:disable-next-line:directive-selector */\n selector: 'ion-input:not([type=number]),ion-textarea,ion-searchbar',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: TextValueAccessor,\n multi: true\n }\n ]\n})\nexport class TextValueAccessor extends ValueAccessor {\n\n constructor(injector: Injector, el: ElementRef) {\n super(injector, el);\n }\n\n @HostListener('ionChange', ['$event.target'])\n _handleInputEvent(el: any) {\n this.handleChangeEvent(el, el.value);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, NgZone } from '@angular/core';\nimport { BackButtonEventDetail, KeyboardEventDetail, Platforms, getPlatforms, isPlatform } from '@ionic/core';\nimport { Subject, Subscription } from 'rxjs';\n\nexport interface BackButtonEmitter extends Subject<BackButtonEventDetail> {\n subscribeWithPriority(priority: number, callback: (processNextHandler: () => void) => Promise<any> | void): Subscription;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Platform {\n\n private _readyPromise: Promise<string>;\n private win: any;\n\n /**\n * @hidden\n */\n backButton: BackButtonEmitter = new Subject<BackButtonEventDetail>() as any;\n\n /**\n * The keyboardDidShow event emits when the\n * on-screen keyboard is presented.\n */\n keyboardDidShow = new Subject<KeyboardEventDetail>() as any;\n\n /**\n * The keyboardDidHide event emits when the\n * on-screen keyboard is hidden.\n */\n keyboardDidHide = new Subject<void>();\n\n /**\n * The pause event emits when the native platform puts the application\n * into the background, typically when the user switches to a different\n * application. This event would emit when a Cordova app is put into\n * the background, however, it would not fire on a standard web browser.\n */\n pause = new Subject<void>();\n\n /**\n * The resume event emits when the native platform pulls the application\n * out from the background. This event would emit when a Cordova app comes\n * out from the background, however, it would not fire on a standard web browser.\n */\n resume = new Subject<void>();\n\n /**\n * The resize event emits when the browser window has changed dimensions. This\n * could be from a browser window being physically resized, or from a device\n * changing orientation.\n */\n resize = new Subject<void>();\n\n constructor(@Inject(DOCUMENT) private doc: any, zone: NgZone) {\n zone.run(() => {\n this.win = doc.defaultView;\n this.backButton.subscribeWithPriority = function(priority, callback) {\n return this.subscribe(ev => {\n return ev.register(priority, processNextHandler => zone.run(() => callback(processNextHandler)));\n });\n };\n\n proxyEvent(this.pause, doc, 'pause');\n proxyEvent(this.resume, doc, 'resume');\n proxyEvent(this.backButton, doc, 'ionBackButton');\n proxyEvent(this.resize, this.win, 'resize');\n proxyEvent(this.keyboardDidShow, this.win, 'ionKeyboardDidShow');\n proxyEvent(this.keyboardDidHide, this.win, 'ionKeyboardDidHide');\n\n let readyResolve: (value: string) => void;\n this._readyPromise = new Promise(res => { readyResolve = res; });\n if (this.win && this.win['cordova']) {\n doc.addEventListener('deviceready', () => {\n readyResolve('cordova');\n }, { once: true });\n } else {\n readyResolve!('dom');\n }\n });\n }\n\n /**\n * @returns returns true/false based on platform.\n * @description\n * Depending on the platform the user is on, `is(platformName)` will\n * return `true` or `false`. Note that the same app can return `true`\n * for more than one platform name. For example, an app running from\n * an iPad would return `true` for the platform names: `mobile`,\n * `ios`, `ipad`, and `tablet`. Additionally, if the app was running\n * from Cordova then `cordova` would be true, and if it was running\n * from a web browser on the iPad then `mobileweb` would be `true`.\n *\n * ```\n * import { Platform } from 'ionic-angular';\n *\n * @Component({...})\n * export MyPage {\n * constructor(public platform: Platform) {\n * if (this.platform.is('ios')) {\n * // This will only print when on iOS\n * console.log('I am an iOS device!');\n * }\n * }\n * }\n * ```\n *\n * | Platform Name | Description |\n * |-----------------|------------------------------------|\n * | android | on a device running Android. |\n * | capacitor | on a device running Capacitor. |\n * | cordova | on a device running Cordova. |\n * | ios | on a device running iOS. |\n * | ipad | on an iPad device. |\n * | iphone | on an iPhone device. |\n * | phablet | on a phablet device. |\n * | tablet | on a tablet device. |\n * | electron | in Electron on a desktop device. |\n * | pwa | as a PWA app. |\n * | mobile | on a mobile device. |\n * | mobileweb | on a mobile device in a browser. |\n * | desktop | on a desktop device. |\n * | hybrid | is a cordova or capacitor app. |\n *\n */\n is(platformName: Platforms): boolean {\n return isPlatform(this.win, platformName);\n }\n\n /**\n * @returns the array of platforms\n * @description\n * Depending on what device you are on, `platforms` can return multiple values.\n * Each possible value is a hierarchy of platforms. For example, on an iPhone,\n * it would return `mobile`, `ios`, and `iphone`.\n *\n * ```\n * import { Platform } from 'ionic-angular';\n *\n * @Component({...})\n * export MyPage {\n * constructor(public platform: Platform) {\n * // This will print an array of the current platforms\n * console.log(this.platform.platforms());\n * }\n * }\n * ```\n */\n platforms(): string[] {\n return getPlatforms(this.win);\n }\n\n /**\n * Returns a promise when the platform is ready and native functionality\n * can be called. If the app is running from within a web browser, then\n * the promise will resolve when the DOM is ready. When the app is running\n * from an application engine such as Cordova, then the promise will\n * resolve when Cordova triggers the `deviceready` event.\n *\n * The resolved value is the `readySource`, which states which platform\n * ready was used. For example, when Cordova is ready, the resolved ready\n * source is `cordova`. The default ready source value will be `dom`. The\n * `readySource` is useful if different logic should run depending on the\n * platform the app is running from. For example, only Cordova can execute\n * the status bar plugin, so the web should not run status bar plugin logic.\n *\n * ```\n * import { Component } from '@angular/core';\n * import { Platform } from 'ionic-angular';\n *\n * @Component({...})\n * export MyApp {\n * constructor(public platform: Platform) {\n * this.platform.ready().then((readySource) => {\n * console.log('Platform ready from', readySource);\n * // Platform now ready, execute any required native code\n * });\n * }\n * }\n * ```\n */\n ready(): Promise<string> {\n return this._readyPromise;\n }\n\n /**\n * Returns if this app is using right-to-left language direction or not.\n * We recommend the app's `index.html` file already has the correct `dir`\n * attribute value set, such as `<html dir=\"ltr\">` or `<html dir=\"rtl\">`.\n * [W3C: Structural markup and right-to-left text in HTML](http://www.w3.org/International/questions/qa-html-dir)\n */\n get isRTL(): boolean {\n return this.doc.dir === 'rtl';\n }\n\n /**\n * Get the query string parameter\n */\n getQueryParam(key: string): string | null {\n return readQueryParam(this.win.location.href, key);\n }\n\n /**\n * Returns `true` if the app is in landscape mode.\n */\n isLandscape(): boolean {\n return !this.isPortrait();\n }\n\n /**\n * Returns `true` if the app is in portrait mode.\n */\n isPortrait(): boolean {\n return this.win.matchMedia && this.win.matchMedia('(orientation: portrait)').matches;\n }\n\n testUserAgent(expression: string): boolean {\n const nav = this.win.navigator;\n return !!(nav && nav.userAgent && nav.userAgent.indexOf(expression) >= 0);\n }\n\n /**\n * Get the current url.\n */\n url() {\n return this.win.location.href;\n }\n\n /**\n * Gets the width of the platform's viewport using `window.innerWidth`.\n */\n width() {\n return this.win.innerWidth;\n }\n\n /**\n * Gets the height of the platform's viewport using `window.innerHeight`.\n */\n height(): number {\n return this.win.innerHeight;\n }\n}\n\nconst readQueryParam = (url: string, key: string) => {\n key = key.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n const regex = new RegExp('[\\\\?&]' + key + '=([^&#]*)');\n const results = regex.exec(url);\n return results ? decodeURIComponent(results[1].replace(/\\+/g, ' ')) : null;\n};\n\nconst proxyEvent = <T>(emitter: Subject<T>, el: EventTarget, eventName: string) => {\n if ((el as any)) {\n el.addEventListener(eventName, (ev: Event | undefined | null) => {\n // ?? cordova might emit \"null\" events\n emitter.next(ev != null ? (ev as any).detail as T : undefined);\n });\n }\n};\n","import { Location } from '@angular/common';\nimport { Injectable, Optional } from '@angular/core';\nimport { NavigationExtras, NavigationStart, Router, UrlSerializer, UrlTree } from '@angular/router';\nimport { AnimationBuilder, NavDirection, RouterDirection } from '@ionic/core';\n\nimport { IonRouterOutlet } from '../directives/navigation/ion-router-outlet';\n\nimport { Platform } from './platform';\n\nexport interface AnimationOptions {\n animated?: boolean;\n animation?: AnimationBuilder;\n animationDirection?: 'forward' | 'back';\n}\n\nexport interface NavigationOptions extends NavigationExtras, AnimationOptions {}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NavController {\n\n private topOutlet?: IonRouterOutlet;\n private direction: 'forward' | 'back' | 'root' | 'auto' = DEFAULT_DIRECTION;\n private animated?: NavDirection = DEFAULT_ANIMATED;\n private animationBuilder?: AnimationBuilder;\n private guessDirection: RouterDirection = 'forward';\n private guessAnimation?: NavDirection;\n private lastNavId = -1;\n\n constructor(\n platform: Platform,\n private location: Location,\n private serializer: UrlSerializer,\n @Optional() private router?: Router,\n ) {\n // Subscribe to router events to detect direction\n if (router) {\n router.events.subscribe(ev => {\n if (ev instanceof NavigationStart) {\n const id = (ev.restoredState) ? ev.restoredState.navigationId : ev.id;\n this.guessDirection = id < this.lastNavId ? 'back' : 'forward';\n this.guessAnimation = !ev.restoredState ? this.guessDirection : undefined;\n this.lastNavId = this.guessDirection === 'forward' ? ev.id : id;\n }\n });\n }\n\n // Subscribe to backButton events\n platform.backButton.subscribeWithPriority(0, processNextHandler => {\n this.pop();\n processNextHandler();\n });\n }\n\n /**\n * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,\n * it's equivalent to calling `this.router.navigateByUrl()`, but it's explicit about the **direction** of the transition.\n *\n * Going **forward** means that a new page is going to be pushed to the stack of the outlet (ion-router-outlet),\n * and that it will show a \"forward\" animation by default.\n *\n * Navigating forward can also be triggered in a declarative manner by using the `[routerDirection]` directive:\n *\n * ```html\n * <a routerLink=\"/path/to/page\" routerDirection=\"forward\">Link</a>\n * ```\n */\n navigateForward(url: string | UrlTree | any[], options: NavigationOptions = {}): Promise<boolean> {\n this.setDirection('forward', options.animated, options.animationDirection, options.animation);\n return this.navigate(url, options);\n }\n\n /**\n * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,\n * it's equivalent to calling:\n *\n * ```ts\n * this.navController.setDirection('back');\n * this.router.navigateByUrl(path);\n * ```\n *\n * Going **back** means that all the pages in the stack until the navigated page is found will be popped,\n * and that it will show a \"back\" animation by default.\n *\n * Navigating back can also be triggered in a declarative manner by using the `[routerDirection]` directive:\n *\n * ```html\n * <a routerLink=\"/path/to/page\" routerDirection=\"back\">Link</a>\n * ```\n */\n navigateBack(url: string | UrlTree | any[], options: NavigationOptions = {}): Promise<boolean> {\n this.setDirection('back', options.animated, options.animationDirection, options.animation);\n return this.navigate(url, options);\n }\n\n /**\n * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,\n * it's equivalent to calling:\n *\n * ```ts\n * this.navController.setDirection('root');\n * this.router.navigateByUrl(path);\n * ```\n *\n * Going **root** means that all existing pages in the stack will be removed,\n * and the navigated page will become the single page in the stack.\n *\n * Navigating root can also be triggered in a declarative manner by using the `[routerDirection]` directive:\n *\n * ```html\n * <a routerLink=\"/path/to/page\" routerDirection=\"root\">Link</a>\n * ```\n */\n navigateRoot(url: string | UrlTree | any[], options: NavigationOptions = {}): Promise<boolean> {\n this.setDirection('root', options.animated, options.animationDirection, options.animation);\n return this.navigate(url, options);\n }\n\n /**\n * Same as [Location](https://angular.io/api/common/Location)'s back() method.\n * It will use the standard `window.history.back()` under the hood, but featuring a `back` animation\n * by default.\n */\n back(options: AnimationOptions = { animated: true, animationDirection: 'back' }) {\n this.setDirection('back', options.animated, options.animationDirection, options.animation);\n return this.location.back();\n }\n\n /**\n * This methods goes back in the context of Ionic's stack navigation.\n *\n * It recursively finds the top active `ion-router-outlet` and calls `pop()`.\n * This is the recommended way to go back when you are using `ion-router-outlet`.\n */\n async pop() {\n let outlet = this.topOutlet;\n\n while (outlet) {\n if (await outlet.pop()) {\n break;\n } else {\n outlet = outlet.parentOutlet;\n }\n }\n }\n\n /**\n * This methods specifies the direction of the next navigation performed by the Angular router.\n *\n * `setDirection()` does not trigger any transition, it just sets some flags to be consumed by `ion-router-outlet`.\n *\n * It's recommended to use `navigateForward()`, `navigateBack()` and `navigateRoot()` instead of `setDirection()`.\n */\n setDirection(direction: RouterDirection, animated?: boolean, animationDirection?: 'forward' | 'back', animationBuilder?: AnimationBuilder) {\n this.direction = direction;\n this.animated = getAnimation(direction, animated, animationDirection);\n this.animationBuilder = animationBuilder;\n }\n\n /**\n * @internal\n */\n setTopOutlet(outlet: IonRouterOutlet) {\n this.topOutlet = outlet;\n }\n\n /**\n * @internal\n */\n consumeTransition() {\n let direction: RouterDirection = 'root';\n let animation: NavDirection | undefined;\n const animationBuilder = this.animationBuilder;\n\n if (this.direction === 'auto') {\n direction = this.guessDirection;\n animation = this.guessAnimation;\n } else {\n animation = this.animated;\n direction = this.direction;\n }\n this.direction = DEFAULT_DIRECTION;\n this.animated = DEFAULT_ANIMATED;\n this.animationBuilder = undefined;\n\n return {\n direction,\n animation,\n animationBuilder\n };\n }\n\n private navigate(url: string | UrlTree | any[], options: NavigationOptions) {\n if (Array.isArray(url)) {\n return this.router!.navigate(url, options);\n } else {\n\n /**\n * navigateByUrl ignores any properties that\n * would change the url, so things like queryParams\n * would be ignored unless we create a url tree\n * More Info: https://github.com/angular/angular/issues/18798\n */\n const urlTree = this.serializer.parse(url.toString());\n\n if (options.queryParams !== undefined) {\n urlTree.queryParams = { ...options.queryParams };\n }\n\n if (options.fragment !== undefined) {\n urlTree.fragment = options.fragment;\n }\n\n /**\n * `navigateByUrl` will still apply `NavigationExtras` properties\n * that do not modify the url, such as `replaceUrl` which is why\n * `options` is passed in here.\n */\n return this.router!.navigateByUrl(urlTree, options);\n }\n }\n}\n\nconst getAnimation = (direction: RouterDirection, animated: boolean | undefined, animationDirection: 'forward' | 'back' | undefined): NavDirection | undefined => {\n if (animated === false) {\n return undefined;\n }\n if (animationDirection !== undefined) {\n return animationDirection;\n }\n if (direction === 'forward' || direction === 'back') {\n return direction;\n } else if (direction === 'root' && animated === true) {\n return 'forward';\n }\n return undefined;\n};\n\nconst DEFAULT_DIRECTION = 'auto';\nconst DEFAULT_ANIMATED = undefined;\n","/* eslint-disable */\n/* tslint:disable */\nimport { fromEvent } from 'rxjs';\n\nexport const proxyInputs = (Cmp: any, inputs: string[]) => {\n const Prototype = Cmp.prototype;\n inputs.forEach(item => {\n Object.defineProperty(Prototype, item, {\n get() {\n return this.el[item];\n },\n set(val: any) {\n this.z.runOutsideAngular(() => (this.el[item] = val));\n }\n });\n });\n};\n\nexport const proxyMethods = (Cmp: any, methods: string[]) => {\n const Prototype = Cmp.prototype;\n methods.forEach(methodName => {\n Prototype[methodName] = function () {\n const args = arguments;\n return this.z.runOutsideAngular(() =>\n this.el[methodName].apply(this.el, args)\n );\n };\n });\n};\n\nexport const proxyOutputs = (instance: any, el: any, events: string[]) => {\n events.forEach(eventName => instance[eventName] = fromEvent(el, eventName));\n}\n\nexport function ProxyCmp(opts: { inputs?: any; methods?: any }) {\n const decorator = function(cls: any){\n if (opts.inputs) {\n proxyInputs(cls, opts.inputs);\n }\n if (opts.methods) {\n proxyMethods(cls, opts.methods);\n }\n return cls;\n };\n return decorator;\n}\n","/* eslint-disable */\n/* tslint:disable */\n/* auto-generated angular directive proxies */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, NgZone } from \"@angular/core\";\nimport { ProxyCmp, proxyOutputs } from \"./proxies-utils\";\nimport { Components } from \"@ionic/core\";\nexport declare interface IonApp extends Components.IonApp {\n}\n@Component({ selector: \"ion-app\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonApp {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonAvatar extends Components.IonAvatar {\n}\n@Component({ selector: \"ion-avatar\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonAvatar {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonBackButton extends Components.IonBackButton {\n}\n@ProxyCmp({ inputs: [\"color\", \"defaultHref\", \"disabled\", \"icon\", \"mode\", \"routerAnimation\", \"text\", \"type\"] })\n@Component({ selector: \"ion-back-button\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"defaultHref\", \"disabled\", \"icon\", \"mode\", \"routerAnimation\", \"text\", \"type\"] })\nexport class IonBackButton {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonBackdrop extends Components.IonBackdrop {\n}\n@ProxyCmp({ inputs: [\"stopPropagation\", \"tappable\", \"visible\"] })\n@Component({ selector: \"ion-backdrop\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"stopPropagation\", \"tappable\", \"visible\"] })\nexport class IonBackdrop {\n ionBackdropTap!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionBackdropTap\"]);\n }\n}\nexport declare interface IonBadge extends Components.IonBadge {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\"] })\n@Component({ selector: \"ion-badge\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\"] })\nexport class IonBadge {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonButton extends Components.IonButton {\n}\n@ProxyCmp({ inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] })\n@Component({ selector: \"ion-button\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] })\nexport class IonButton {\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonButtons extends Components.IonButtons {\n}\n@ProxyCmp({ inputs: [\"collapse\"] })\n@Component({ selector: \"ion-buttons\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"collapse\"] })\nexport class IonButtons {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCard extends Components.IonCard {\n}\n@ProxyCmp({ inputs: [\"button\", \"color\", \"disabled\", \"download\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"target\", \"type\"] })\n@Component({ selector: \"ion-card\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"button\", \"color\", \"disabled\", \"download\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"target\", \"type\"] })\nexport class IonCard {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCardContent extends Components.IonCardContent {\n}\n@ProxyCmp({ inputs: [\"mode\"] })\n@Component({ selector: \"ion-card-content\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"mode\"] })\nexport class IonCardContent {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCardHeader extends Components.IonCardHeader {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\", \"translucent\"] })\n@Component({ selector: \"ion-card-header\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\", \"translucent\"] })\nexport class IonCardHeader {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCardSubtitle extends Components.IonCardSubtitle {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\"] })\n@Component({ selector: \"ion-card-subtitle\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\"] })\nexport class IonCardSubtitle {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCardTitle extends Components.IonCardTitle {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\"] })\n@Component({ selector: \"ion-card-title\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\"] })\nexport class IonCardTitle {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCheckbox extends Components.IonCheckbox {\n}\n@ProxyCmp({ inputs: [\"checked\", \"color\", \"disabled\", \"indeterminate\", \"mode\", \"name\", \"value\"] })\n@Component({ selector: \"ion-checkbox\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"checked\", \"color\", \"disabled\", \"indeterminate\", \"mode\", \"name\", \"value\"] })\nexport class IonCheckbox {\n ionChange!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\", \"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonChip extends Components.IonChip {\n}\n@ProxyCmp({ inputs: [\"color\", \"disabled\", \"mode\", \"outline\"] })\n@Component({ selector: \"ion-chip\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"disabled\", \"mode\", \"outline\"] })\nexport class IonChip {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonCol extends Components.IonCol {\n}\n@ProxyCmp({ inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] })\n@Component({ selector: \"ion-col\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] })\nexport class IonCol {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonContent extends Components.IonContent {\n}\n@ProxyCmp({ inputs: [\"color\", \"forceOverscroll\", \"fullscreen\", \"scrollEvents\", \"scrollX\", \"scrollY\"], \"methods\": [\"getScrollElement\", \"scrollToTop\", \"scrollToBottom\", \"scrollByPoint\", \"scrollToPoint\"] })\n@Component({ selector: \"ion-content\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"forceOverscroll\", \"fullscreen\", \"scrollEvents\", \"scrollX\", \"scrollY\"] })\nexport class IonContent {\n ionScrollStart!: EventEmitter<CustomEvent>;\n ionScroll!: EventEmitter<CustomEvent>;\n ionScrollEnd!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionScrollStart\", \"ionScroll\", \"ionScrollEnd\"]);\n }\n}\nexport declare interface IonDatetime extends Components.IonDatetime {\n}\n@ProxyCmp({ inputs: [\"cancelText\", \"dayNames\", \"dayShortNames\", \"dayValues\", \"disabled\", \"displayFormat\", \"displayTimezone\", \"doneText\", \"hourValues\", \"max\", \"min\", \"minuteValues\", \"mode\", \"monthNames\", \"monthShortNames\", \"monthValues\", \"name\", \"pickerFormat\", \"pickerOptions\", \"placeholder\", \"readonly\", \"value\", \"yearValues\"], \"methods\": [\"open\"] })\n@Component({ selector: \"ion-datetime\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"cancelText\", \"dayNames\", \"dayShortNames\", \"dayValues\", \"disabled\", \"displayFormat\", \"displayTimezone\", \"doneText\", \"hourValues\", \"max\", \"min\", \"minuteValues\", \"mode\", \"monthNames\", \"monthShortNames\", \"monthValues\", \"name\", \"pickerFormat\", \"pickerOptions\", \"placeholder\", \"readonly\", \"value\", \"yearValues\"] })\nexport class IonDatetime {\n ionCancel!: EventEmitter<CustomEvent>;\n ionChange!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionCancel\", \"ionChange\", \"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonFab extends Components.IonFab {\n}\n@ProxyCmp({ inputs: [\"activated\", \"edge\", \"horizontal\", \"vertical\"], \"methods\": [\"close\"] })\n@Component({ selector: \"ion-fab\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"activated\", \"edge\", \"horizontal\", \"vertical\"] })\nexport class IonFab {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonFabButton extends Components.IonFabButton {\n}\n@ProxyCmp({ inputs: [\"activated\", \"closeIcon\", \"color\", \"disabled\", \"download\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"show\", \"size\", \"target\", \"translucent\", \"type\"] })\n@Component({ selector: \"ion-fab-button\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"activated\", \"closeIcon\", \"color\", \"disabled\", \"download\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"show\", \"size\", \"target\", \"translucent\", \"type\"] })\nexport class IonFabButton {\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonFabList extends Components.IonFabList {\n}\n@ProxyCmp({ inputs: [\"activated\", \"side\"] })\n@Component({ selector: \"ion-fab-list\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"activated\", \"side\"] })\nexport class IonFabList {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonFooter extends Components.IonFooter {\n}\n@ProxyCmp({ inputs: [\"mode\", \"translucent\"] })\n@Component({ selector: \"ion-footer\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"mode\", \"translucent\"] })\nexport class IonFooter {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonGrid extends Components.IonGrid {\n}\n@ProxyCmp({ inputs: [\"fixed\"] })\n@Component({ selector: \"ion-grid\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"fixed\"] })\nexport class IonGrid {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonHeader extends Components.IonHeader {\n}\n@ProxyCmp({ inputs: [\"collapse\", \"mode\", \"translucent\"] })\n@Component({ selector: \"ion-header\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"collapse\", \"mode\", \"translucent\"] })\nexport class IonHeader {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonIcon extends Components.IonIcon {\n}\n@ProxyCmp({ inputs: [\"ariaHidden\", \"ariaLabel\", \"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] })\n@Component({ selector: \"ion-icon\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"ariaHidden\", \"ariaLabel\", \"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] })\nexport class IonIcon {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonImg extends Components.IonImg {\n}\n@ProxyCmp({ inputs: [\"alt\", \"src\"] })\n@Component({ selector: \"ion-img\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"alt\", \"src\"] })\nexport class IonImg {\n ionImgWillLoad!: EventEmitter<CustomEvent>;\n ionImgDidLoad!: EventEmitter<CustomEvent>;\n ionError!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionImgWillLoad\", \"ionImgDidLoad\", \"ionError\"]);\n }\n}\nexport declare interface IonInfiniteScroll extends Components.IonInfiniteScroll {\n}\n@ProxyCmp({ inputs: [\"disabled\", \"position\", \"threshold\"], \"methods\": [\"complete\"] })\n@Component({ selector: \"ion-infinite-scroll\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"disabled\", \"position\", \"threshold\"] })\nexport class IonInfiniteScroll {\n ionInfinite!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionInfinite\"]);\n }\n}\nexport declare interface IonInfiniteScrollContent extends Components.IonInfiniteScrollContent {\n}\n@ProxyCmp({ inputs: [\"loadingSpinner\", \"loadingText\"] })\n@Component({ selector: \"ion-infinite-scroll-content\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"loadingSpinner\", \"loadingText\"] })\nexport class IonInfiniteScrollContent {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonInput extends Components.IonInput {\n}\n@ProxyCmp({ inputs: [\"accept\", \"autocapitalize\", \"autocomplete\", \"autocorrect\", \"autofocus\", \"clearInput\", \"clearOnEdit\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"max\", \"maxlength\", \"min\", \"minlength\", \"mode\", \"multiple\", \"name\", \"pattern\", \"placeholder\", \"readonly\", \"required\", \"size\", \"spellcheck\", \"step\", \"type\", \"value\"], \"methods\": [\"setFocus\", \"getInputElement\"] })\n@Component({ selector: \"ion-input\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"accept\", \"autocapitalize\", \"autocomplete\", \"autocorrect\", \"autofocus\", \"clearInput\", \"clearOnEdit\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"max\", \"maxlength\", \"min\", \"minlength\", \"mode\", \"multiple\", \"name\", \"pattern\", \"placeholder\", \"readonly\", \"required\", \"size\", \"spellcheck\", \"step\", \"type\", \"value\"] })\nexport class IonInput {\n ionInput!: EventEmitter<CustomEvent>;\n ionChange!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionInput\", \"ionChange\", \"ionBlur\", \"ionFocus\"]);\n }\n}\nexport declare interface IonItem extends Components.IonItem {\n}\n@ProxyCmp({ inputs: [\"button\", \"color\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"target\", \"type\"] })\n@Component({ selector: \"ion-item\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"button\", \"color\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"target\", \"type\"] })\nexport class IonItem {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonItemDivider extends Components.IonItemDivider {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\", \"sticky\"] })\n@Component({ selector: \"ion-item-divider\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\", \"sticky\"] })\nexport class IonItemDivider {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonItemGroup extends Components.IonItemGroup {\n}\n@Component({ selector: \"ion-item-group\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonItemGroup {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonItemOption extends Components.IonItemOption {\n}\n@ProxyCmp({ inputs: [\"color\", \"disabled\", \"download\", \"expandable\", \"href\", \"mode\", \"rel\", \"target\", \"type\"] })\n@Component({ selector: \"ion-item-option\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"disabled\", \"download\", \"expandable\", \"href\", \"mode\", \"rel\", \"target\", \"type\"] })\nexport class IonItemOption {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonItemOptions extends Components.IonItemOptions {\n}\n@ProxyCmp({ inputs: [\"side\"] })\n@Component({ selector: \"ion-item-options\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"side\"] })\nexport class IonItemOptions {\n ionSwipe!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionSwipe\"]);\n }\n}\nexport declare interface IonItemSliding extends Components.IonItemSliding {\n}\n@ProxyCmp({ inputs: [\"disabled\"], \"methods\": [\"getOpenAmount\", \"getSlidingRatio\", \"open\", \"close\", \"closeOpened\"] })\n@Component({ selector: \"ion-item-sliding\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"disabled\"] })\nexport class IonItemSliding {\n ionDrag!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionDrag\"]);\n }\n}\nexport declare interface IonLabel extends Components.IonLabel {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\", \"position\"] })\n@Component({ selector: \"ion-label\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\", \"position\"] })\nexport class IonLabel {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonList extends Components.IonList {\n}\n@ProxyCmp({ inputs: [\"inset\", \"lines\", \"mode\"], \"methods\": [\"closeSlidingItems\"] })\n@Component({ selector: \"ion-list\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"inset\", \"lines\", \"mode\"] })\nexport class IonList {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonListHeader extends Components.IonListHeader {\n}\n@ProxyCmp({ inputs: [\"color\", \"lines\", \"mode\"] })\n@Component({ selector: \"ion-list-header\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"lines\", \"mode\"] })\nexport class IonListHeader {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonMenu extends Components.IonMenu {\n}\n@ProxyCmp({ inputs: [\"contentId\", \"disabled\", \"maxEdgeStart\", \"menuId\", \"side\", \"swipeGesture\", \"type\"], \"methods\": [\"isOpen\", \"isActive\", \"open\", \"close\", \"toggle\", \"setOpen\"] })\n@Component({ selector: \"ion-menu\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"contentId\", \"disabled\", \"maxEdgeStart\", \"menuId\", \"side\", \"swipeGesture\", \"type\"] })\nexport class IonMenu {\n ionWillOpen!: EventEmitter<CustomEvent>;\n ionWillClose!: EventEmitter<CustomEvent>;\n ionDidOpen!: EventEmitter<CustomEvent>;\n ionDidClose!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionWillOpen\", \"ionWillClose\", \"ionDidOpen\", \"ionDidClose\"]);\n }\n}\nexport declare interface IonMenuButton extends Components.IonMenuButton {\n}\n@ProxyCmp({ inputs: [\"autoHide\", \"color\", \"disabled\", \"menu\", \"mode\", \"type\"] })\n@Component({ selector: \"ion-menu-button\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"autoHide\", \"color\", \"disabled\", \"menu\", \"mode\", \"type\"] })\nexport class IonMenuButton {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonMenuToggle extends Components.IonMenuToggle {\n}\n@ProxyCmp({ inputs: [\"autoHide\", \"menu\"] })\n@Component({ selector: \"ion-menu-toggle\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"autoHide\", \"menu\"] })\nexport class IonMenuToggle {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonNav extends Components.IonNav {\n}\n@ProxyCmp({ inputs: [\"animated\", \"animation\", \"root\", \"rootParams\", \"swipeGesture\"], \"methods\": [\"push\", \"insert\", \"insertPages\", \"pop\", \"popTo\", \"popToRoot\", \"removeIndex\", \"setRoot\", \"setPages\", \"getActive\", \"getByIndex\", \"canGoBack\", \"getPrevious\"] })\n@Component({ selector: \"ion-nav\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"animated\", \"animation\", \"root\", \"rootParams\", \"swipeGesture\"] })\nexport class IonNav {\n ionNavWillChange!: EventEmitter<CustomEvent>;\n ionNavDidChange!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionNavWillChange\", \"ionNavDidChange\"]);\n }\n}\nexport declare interface IonNavLink extends Components.IonNavLink {\n}\n@ProxyCmp({ inputs: [\"component\", \"componentProps\", \"routerAnimation\", \"routerDirection\"] })\n@Component({ selector: \"ion-nav-link\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"component\", \"componentProps\", \"routerAnimation\", \"routerDirection\"] })\nexport class IonNavLink {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonNote extends Components.IonNote {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\"] })\n@Component({ selector: \"ion-note\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\"] })\nexport class IonNote {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonProgressBar extends Components.IonProgressBar {\n}\n@ProxyCmp({ inputs: [\"buffer\", \"color\", \"mode\", \"reversed\", \"type\", \"value\"] })\n@Component({ selector: \"ion-progress-bar\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"buffer\", \"color\", \"mode\", \"reversed\", \"type\", \"value\"] })\nexport class IonProgressBar {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonRadio extends Components.IonRadio {\n}\n@ProxyCmp({ inputs: [\"color\", \"disabled\", \"mode\", \"name\", \"value\"] })\n@Component({ selector: \"ion-radio\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"disabled\", \"mode\", \"name\", \"value\"] })\nexport class IonRadio {\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonRadioGroup extends Components.IonRadioGroup {\n}\n@ProxyCmp({ inputs: [\"allowEmptySelection\", \"name\", \"value\"] })\n@Component({ selector: \"ion-radio-group\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"allowEmptySelection\", \"name\", \"value\"] })\nexport class IonRadioGroup {\n ionChange!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\"]);\n }\n}\nexport declare interface IonRange extends Components.IonRange {\n}\n@ProxyCmp({ inputs: [\"color\", \"debounce\", \"disabled\", \"dualKnobs\", \"max\", \"min\", \"mode\", \"name\", \"pin\", \"snaps\", \"step\", \"ticks\", \"value\"] })\n@Component({ selector: \"ion-range\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"debounce\", \"disabled\", \"dualKnobs\", \"max\", \"min\", \"mode\", \"name\", \"pin\", \"snaps\", \"step\", \"ticks\", \"value\"] })\nexport class IonRange {\n ionChange!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\", \"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonRefresher extends Components.IonRefresher {\n}\n@ProxyCmp({ inputs: [\"closeDuration\", \"disabled\", \"pullFactor\", \"pullMax\", \"pullMin\", \"snapbackDuration\"], \"methods\": [\"complete\", \"cancel\", \"getProgress\"] })\n@Component({ selector: \"ion-refresher\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"closeDuration\", \"disabled\", \"pullFactor\", \"pullMax\", \"pullMin\", \"snapbackDuration\"] })\nexport class IonRefresher {\n ionRefresh!: EventEmitter<CustomEvent>;\n ionPull!: EventEmitter<CustomEvent>;\n ionStart!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionRefresh\", \"ionPull\", \"ionStart\"]);\n }\n}\nexport declare interface IonRefresherContent extends Components.IonRefresherContent {\n}\n@ProxyCmp({ inputs: [\"pullingIcon\", \"pullingText\", \"refreshingSpinner\", \"refreshingText\"] })\n@Component({ selector: \"ion-refresher-content\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"pullingIcon\", \"pullingText\", \"refreshingSpinner\", \"refreshingText\"] })\nexport class IonRefresherContent {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonReorder extends Components.IonReorder {\n}\n@Component({ selector: \"ion-reorder\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonReorder {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonReorderGroup extends Components.IonReorderGroup {\n}\n@ProxyCmp({ inputs: [\"disabled\"], \"methods\": [\"complete\"] })\n@Component({ selector: \"ion-reorder-group\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"disabled\"] })\nexport class IonReorderGroup {\n ionItemReorder!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionItemReorder\"]);\n }\n}\nexport declare interface IonRippleEffect extends Components.IonRippleEffect {\n}\n@ProxyCmp({ inputs: [\"type\"], \"methods\": [\"addRipple\"] })\n@Component({ selector: \"ion-ripple-effect\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"type\"] })\nexport class IonRippleEffect {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonRow extends Components.IonRow {\n}\n@Component({ selector: \"ion-row\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonRow {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonSearchbar extends Components.IonSearchbar {\n}\n@ProxyCmp({ inputs: [\"animated\", \"autocomplete\", \"autocorrect\", \"cancelButtonIcon\", \"cancelButtonText\", \"clearIcon\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"mode\", \"placeholder\", \"searchIcon\", \"showCancelButton\", \"showClearButton\", \"spellcheck\", \"type\", \"value\"], \"methods\": [\"setFocus\", \"getInputElement\"] })\n@Component({ selector: \"ion-searchbar\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"animated\", \"autocomplete\", \"autocorrect\", \"cancelButtonIcon\", \"cancelButtonText\", \"clearIcon\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"mode\", \"placeholder\", \"searchIcon\", \"showCancelButton\", \"showClearButton\", \"spellcheck\", \"type\", \"value\"] })\nexport class IonSearchbar {\n ionInput!: EventEmitter<CustomEvent>;\n ionChange!: EventEmitter<CustomEvent>;\n ionCancel!: EventEmitter<CustomEvent>;\n ionClear!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionInput\", \"ionChange\", \"ionCancel\", \"ionClear\", \"ionBlur\", \"ionFocus\"]);\n }\n}\nexport declare interface IonSegment extends Components.IonSegment {\n}\n@ProxyCmp({ inputs: [\"color\", \"disabled\", \"mode\", \"scrollable\", \"swipeGesture\", \"value\"] })\n@Component({ selector: \"ion-segment\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"disabled\", \"mode\", \"scrollable\", \"swipeGesture\", \"value\"] })\nexport class IonSegment {\n ionChange!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\"]);\n }\n}\nexport declare interface IonSegmentButton extends Components.IonSegmentButton {\n}\n@ProxyCmp({ inputs: [\"disabled\", \"layout\", \"mode\", \"type\", \"value\"] })\n@Component({ selector: \"ion-segment-button\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"disabled\", \"layout\", \"mode\", \"type\", \"value\"] })\nexport class IonSegmentButton {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonSelect extends Components.IonSelect {\n}\n@ProxyCmp({ inputs: [\"cancelText\", \"compareWith\", \"disabled\", \"interface\", \"interfaceOptions\", \"mode\", \"multiple\", \"name\", \"okText\", \"placeholder\", \"selectedText\", \"value\"], \"methods\": [\"open\"] })\n@Component({ selector: \"ion-select\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"cancelText\", \"compareWith\", \"disabled\", \"interface\", \"interfaceOptions\", \"mode\", \"multiple\", \"name\", \"okText\", \"placeholder\", \"selectedText\", \"value\"] })\nexport class IonSelect {\n ionChange!: EventEmitter<CustomEvent>;\n ionCancel!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\", \"ionCancel\", \"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonSelectOption extends Components.IonSelectOption {\n}\n@ProxyCmp({ inputs: [\"disabled\", \"value\"] })\n@Component({ selector: \"ion-select-option\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"disabled\", \"value\"] })\nexport class IonSelectOption {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonSkeletonText extends Components.IonSkeletonText {\n}\n@ProxyCmp({ inputs: [\"animated\"] })\n@Component({ selector: \"ion-skeleton-text\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"animated\"] })\nexport class IonSkeletonText {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonSlide extends Components.IonSlide {\n}\n@Component({ selector: \"ion-slide\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonSlide {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonSlides extends Components.IonSlides {\n}\n@ProxyCmp({ inputs: [\"mode\", \"options\", \"pager\", \"scrollbar\"], \"methods\": [\"update\", \"updateAutoHeight\", \"slideTo\", \"slideNext\", \"slidePrev\", \"getActiveIndex\", \"getPreviousIndex\", \"length\", \"isEnd\", \"isBeginning\", \"startAutoplay\", \"stopAutoplay\", \"lockSwipeToNext\", \"lockSwipeToPrev\", \"lockSwipes\", \"getSwiper\"] })\n@Component({ selector: \"ion-slides\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"mode\", \"options\", \"pager\", \"scrollbar\"] })\nexport class IonSlides {\n ionSlidesDidLoad!: EventEmitter<CustomEvent>;\n ionSlideTap!: EventEmitter<CustomEvent>;\n ionSlideDoubleTap!: EventEmitter<CustomEvent>;\n ionSlideWillChange!: EventEmitter<CustomEvent>;\n ionSlideDidChange!: EventEmitter<CustomEvent>;\n ionSlideNextStart!: EventEmitter<CustomEvent>;\n ionSlidePrevStart!: EventEmitter<CustomEvent>;\n ionSlideNextEnd!: EventEmitter<CustomEvent>;\n ionSlidePrevEnd!: EventEmitter<CustomEvent>;\n ionSlideTransitionStart!: EventEmitter<CustomEvent>;\n ionSlideTransitionEnd!: EventEmitter<CustomEvent>;\n ionSlideDrag!: EventEmitter<CustomEvent>;\n ionSlideReachStart!: EventEmitter<CustomEvent>;\n ionSlideReachEnd!: EventEmitter<CustomEvent>;\n ionSlideTouchStart!: EventEmitter<CustomEvent>;\n ionSlideTouchEnd!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionSlidesDidLoad\", \"ionSlideTap\", \"ionSlideDoubleTap\", \"ionSlideWillChange\", \"ionSlideDidChange\", \"ionSlideNextStart\", \"ionSlidePrevStart\", \"ionSlideNextEnd\", \"ionSlidePrevEnd\", \"ionSlideTransitionStart\", \"ionSlideTransitionEnd\", \"ionSlideDrag\", \"ionSlideReachStart\", \"ionSlideReachEnd\", \"ionSlideTouchStart\", \"ionSlideTouchEnd\"]);\n }\n}\nexport declare interface IonSpinner extends Components.IonSpinner {\n}\n@ProxyCmp({ inputs: [\"color\", \"duration\", \"name\", \"paused\"] })\n@Component({ selector: \"ion-spinner\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"duration\", \"name\", \"paused\"] })\nexport class IonSpinner {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonSplitPane extends Components.IonSplitPane {\n}\n@ProxyCmp({ inputs: [\"contentId\", \"disabled\", \"when\"] })\n@Component({ selector: \"ion-split-pane\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"contentId\", \"disabled\", \"when\"] })\nexport class IonSplitPane {\n ionSplitPaneVisible!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionSplitPaneVisible\"]);\n }\n}\nexport declare interface IonTabBar extends Components.IonTabBar {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\", \"selectedTab\", \"translucent\"] })\n@Component({ selector: \"ion-tab-bar\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\", \"selectedTab\", \"translucent\"] })\nexport class IonTabBar {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonTabButton extends Components.IonTabButton {\n}\n@ProxyCmp({ inputs: [\"disabled\", \"download\", \"href\", \"layout\", \"mode\", \"rel\", \"selected\", \"tab\", \"target\"] })\n@Component({ selector: \"ion-tab-button\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"disabled\", \"download\", \"href\", \"layout\", \"mode\", \"rel\", \"selected\", \"tab\", \"target\"] })\nexport class IonTabButton {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonText extends Components.IonText {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\"] })\n@Component({ selector: \"ion-text\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\"] })\nexport class IonText {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonTextarea extends Components.IonTextarea {\n}\n@ProxyCmp({ inputs: [\"autoGrow\", \"autocapitalize\", \"autofocus\", \"clearOnEdit\", \"color\", \"cols\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"maxlength\", \"minlength\", \"mode\", \"name\", \"placeholder\", \"readonly\", \"required\", \"rows\", \"spellcheck\", \"value\", \"wrap\"], \"methods\": [\"setFocus\", \"getInputElement\"] })\n@Component({ selector: \"ion-textarea\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"autoGrow\", \"autocapitalize\", \"autofocus\", \"clearOnEdit\", \"color\", \"cols\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"maxlength\", \"minlength\", \"mode\", \"name\", \"placeholder\", \"readonly\", \"required\", \"rows\", \"spellcheck\", \"value\", \"wrap\"] })\nexport class IonTextarea {\n ionChange!: EventEmitter<CustomEvent>;\n ionInput!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\", \"ionInput\", \"ionBlur\", \"ionFocus\"]);\n }\n}\nexport declare interface IonThumbnail extends Components.IonThumbnail {\n}\n@Component({ selector: \"ion-thumbnail\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\" })\nexport class IonThumbnail {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonTitle extends Components.IonTitle {\n}\n@ProxyCmp({ inputs: [\"color\", \"size\"] })\n@Component({ selector: \"ion-title\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"size\"] })\nexport class IonTitle {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\nexport declare interface IonToggle extends Components.IonToggle {\n}\n@ProxyCmp({ inputs: [\"checked\", \"color\", \"disabled\", \"mode\", \"name\", \"value\"] })\n@Component({ selector: \"ion-toggle\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"checked\", \"color\", \"disabled\", \"mode\", \"name\", \"value\"] })\nexport class IonToggle {\n ionChange!: EventEmitter<CustomEvent>;\n ionFocus!: EventEmitter<CustomEvent>;\n ionBlur!: EventEmitter<CustomEvent>;\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n proxyOutputs(this, this.el, [\"ionChange\", \"ionFocus\", \"ionBlur\"]);\n }\n}\nexport declare interface IonToolbar extends Components.IonToolbar {\n}\n@ProxyCmp({ inputs: [\"color\", \"mode\"] })\n@Component({ selector: \"ion-toolbar\", changeDetection: ChangeDetectionStrategy.OnPush, template: \"<ng-content></ng-content>\", inputs: [\"color\", \"mode\"] })\nexport class IonToolbar {\n protected el: HTMLElement;\n constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {\n c.detach();\n this.el = r.nativeElement;\n }\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { Config as CoreConfig, IonicConfig } from '@ionic/core';\n\nimport { IonicWindow } from '../types/interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Config {\n\n get(key: keyof IonicConfig, fallback?: any): any {\n const c = getConfig();\n if (c) {\n return c.get(key, fallback);\n }\n return null;\n }\n\n getBoolean(key: keyof IonicConfig, fallback?: boolean): boolean {\n const c = getConfig();\n if (c) {\n return c.getBoolean(key, fallback);\n }\n return false;\n }\n\n getNumber(key: keyof IonicConfig, fallback?: number): number {\n const c = getConfig();\n if (c) {\n return c.getNumber(key, fallback);\n }\n return 0;\n }\n\n set(key: keyof IonicConfig, value?: any) {\n console.warn(`[DEPRECATION][Config]: The Config.set() method is deprecated and will be removed in Ionic Framework 6.0. Please see https://ionicframework.com/docs/angular/config for alternatives.`);\n const c = getConfig();\n if (c) {\n c.set(key, value);\n }\n }\n}\n\nexport const ConfigToken = new InjectionToken<any>('USERCONFIG');\n\nconst getConfig = (): CoreConfig | null => {\n if (typeof (window as any) !== 'undefined') {\n const Ionic = (window as any as IonicWindow).Ionic;\n if (Ionic && Ionic.config) {\n return Ionic.config;\n }\n }\n return null;\n};\n","/**\n * @description\n * NavParams are an object that exists on a page and can contain data for that particular view.\n * Similar to how data was pass to a view in V1 with `$stateParams`, NavParams offer a much more flexible\n * option with a simple `get` method.\n *\n * @usage\n * ```ts\n * import { NavParams } from '@ionic/angular';\n *\n * export class MyClass{\n *\n * constructor(navParams: NavParams){\n * // userParams is an object we have in our nav-parameters\n * navParams.get('userParams');\n * }\n *\n * }\n * ```\n */\nexport class NavParams {\n\n constructor(public data: {[key: string]: any} = {}) {}\n\n /**\n * Get the value of a nav-parameter for the current view\n *\n * ```ts\n * import { NavParams } from 'ionic-angular';\n *\n * export class MyClass{\n * constructor(public navParams: NavParams){\n * // userParams is an object we have in our nav-parameters\n * this.navParams.get('userParams');\n * }\n * }\n * ```\n *\n * @param param Which param you want to look up\n */\n get<T = any>(param: string): T {\n return this.data[param];\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, InjectionToken, Injector, NgZone, ViewContainerRef } from '@angular/core';\nimport { FrameworkDelegate, LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_WILL_UNLOAD } from '@ionic/core';\n\nimport { NavParams } from '../directives/navigation/nav-params';\n\n@Injectable()\nexport class AngularDelegate {\n\n constructor(\n private zone: NgZone,\n private appRef: ApplicationRef\n ) {}\n\n create(\n resolver: ComponentFactoryResolver,\n injector: Injector,\n location?: ViewContainerRef,\n ) {\n return new AngularFrameworkDelegate(resolver, injector, location, this.appRef, this.zone);\n }\n}\n\nexport class AngularFrameworkDelegate implements FrameworkDelegate {\n\n private elRefMap = new WeakMap<HTMLElement, any>();\n private elEventsMap = new WeakMap<HTMLElement, () => void>();\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private location: ViewContainerRef | undefined,\n private appRef: ApplicationRef,\n private zone: NgZone,\n ) {}\n\n attachViewToDom(container: any, component: any, params?: any, cssClasses?: string[]): Promise<any> {\n return this.zone.run(() => {\n return new Promise(resolve => {\n const el = attachView(\n this.zone, this.resolver, this.injector, this.location, this.appRef,\n this.elRefMap, this.elEventsMap,\n container, component, params, cssClasses\n );\n resolve(el);\n });\n });\n }\n\n removeViewFromDom(_container: any, component: any): Promise<void> {\n return this.zone.run(() => {\n return new Promise(resolve => {\n const componentRef = this.elRefMap.get(component);\n if (componentRef) {\n componentRef.destroy();\n this.elRefMap.delete(component);\n const unbindEvents = this.elEventsMap.get(component);\n if (unbindEvents) {\n unbindEvents();\n this.elEventsMap.delete(component);\n }\n }\n resolve();\n });\n });\n }\n}\n\nexport const attachView = (\n zone: NgZone,\n resolver: ComponentFactoryResolver,\n injector: Injector,\n location: ViewContainerRef | undefined,\n appRef: ApplicationRef,\n elRefMap: WeakMap<HTMLElement, any>,\n elEventsMap: WeakMap<HTMLElement, () => void>,\n container: any, component: any, params: any, cssClasses: string[] | undefined\n) => {\n const factory = resolver.resolveComponentFactory(component);\n const childInjector = Injector.create({\n providers: getProviders(params),\n parent: injector\n });\n const componentRef = (location)\n ? location.createComponent(factory, location.length, childInjector)\n : factory.create(childInjector);\n\n const instance = componentRef.instance;\n const hostElement = componentRef.location.nativeElement;\n if (params) {\n Object.assign(instance, params);\n }\n if (cssClasses) {\n for (const clazz of cssClasses) {\n hostElement.classList.add(clazz);\n }\n }\n const unbindEvents = bindLifecycleEvents(zone, instance, hostElement);\n container.appendChild(hostElement);\n\n if (!location) {\n appRef.attachView(componentRef.hostView);\n }\n componentRef.changeDetectorRef.reattach();\n elRefMap.set(hostElement, componentRef);\n elEventsMap.set(hostElement, unbindEvents);\n return hostElement;\n};\n\nconst LIFECYCLES = [\n LIFECYCLE_WILL_ENTER,\n LIFECYCLE_DID_ENTER,\n LIFECYCLE_WILL_LEAVE,\n LIFECYCLE_DID_LEAVE,\n LIFECYCLE_WILL_UNLOAD\n];\n\nexport const bindLifecycleEvents = (zone: NgZone, instance: any, element: HTMLElement) => {\n return zone.run(() => {\n const unregisters = LIFECYCLES\n .filter(eventName => typeof instance[eventName] === 'function')\n .map(eventName => {\n const handler = (ev: any) => instance[eventName](ev.detail);\n element.addEventListener(eventName, handler);\n return () => element.removeEventListener(eventName, handler);\n });\n return () => unregisters.forEach(fn => fn());\n });\n};\n\nconst NavParamsToken = new InjectionToken<any>('NavParamsToken');\n\nconst getProviders = (params: {[key: string]: any}) => {\n return [\n {\n provide: NavParamsToken, useValue: params\n },\n {\n provide: NavParams, useFactory: provideNavParamsInjectable, deps: [NavParamsToken]\n }\n ];\n};\n\nconst provideNavParamsInjectable = (params: {[key: string]: any}) => {\n return new NavParams(params);\n};\n","import { ComponentRef } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\nimport { AnimationBuilder, NavDirection, RouterDirection } from '@ionic/core';\n\nexport const insertView = (views: RouteView[], view: RouteView, direction: RouterDirection) => {\n if (direction === 'root') {\n return setRoot(views, view);\n } else if (direction === 'forward') {\n return setForward(views, view);\n } else {\n return setBack(views, view);\n }\n};\n\nconst setRoot = (views: RouteView[], view: RouteView) => {\n views = views.filter(v => v.stackId !== view.stackId);\n views.push(view);\n return views;\n};\n\nconst setForward = (views: RouteView[], view: RouteView) => {\n const index = views.indexOf(view);\n if (index >= 0) {\n views = views.filter(v => v.stackId !== view.stackId || v.id <= view.id);\n } else {\n views.push(view);\n }\n return views;\n};\n\nconst setBack = (views: RouteView[], view: RouteView) => {\n const index = views.indexOf(view);\n if (index >= 0) {\n return views.filter(v => v.stackId !== view.stackId || v.id <= view.id);\n } else {\n return setRoot(views, view);\n }\n};\n\nexport const getUrl = (router: Router, activatedRoute: ActivatedRoute) => {\n const urlTree = router.createUrlTree(['.'], { relativeTo: activatedRoute });\n return router.serializeUrl(urlTree);\n};\n\nexport const isTabSwitch = (enteringView: RouteView, leavingView: RouteView | undefined) => {\n if (!leavingView) {\n return true;\n }\n return enteringView.stackId !== leavingView.stackId;\n};\n\nexport const computeStackId = (prefixUrl: string[] | undefined, url: string) => {\n if (!prefixUrl) {\n return undefined;\n }\n const segments = toSegments(url);\n for (let i = 0; i < segments.length; i++) {\n if (i >= prefixUrl.length) {\n return segments[i];\n }\n if (segments[i] !== prefixUrl[i]) {\n return undefined;\n }\n }\n return undefined;\n};\n\nexport const toSegments = (path: string) => {\n return path\n .split('/')\n .map(s => s.trim())\n .filter(s => s !== '');\n};\n\nexport const destroyView = (view: RouteView | undefined) => {\n if (view) {\n // TODO lifecycle event\n view.ref.destroy();\n view.unlistenEvents();\n }\n};\n\nexport interface StackEvent {\n enteringView: RouteView;\n direction: RouterDirection;\n animation: NavDirection | undefined;\n tabSwitch: boolean;\n}\n\nexport interface RouteView {\n id: number;\n url: string;\n stackId: string | undefined;\n element: HTMLElement;\n ref: ComponentRef<any>;\n savedData?: any;\n savedExtras?: NavigationExtras;\n unlistenEvents: () => void;\n animationBuilder?: AnimationBuilder;\n}\n","import { Location } from '@angular/common';\nimport { ComponentRef, NgZone } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AnimationBuilder, RouterDirection } from '@ionic/core';\n\nimport { bindLifecycleEvents } from '../../providers/angular-delegate';\nimport { NavController } from '../../providers/nav-controller';\n\nimport { RouteView, StackEvent, computeStackId, destroyView, getUrl, insertView, isTabSwitch, toSegments } from './stack-utils';\n\nexport class StackController {\n\n private views: RouteView[] = [];\n private runningTask?: Promise<any>;\n private skipTransition = false;\n private tabsPrefix: string[] | undefined;\n private activeView: RouteView | undefined;\n private nextId = 0;\n\n constructor(\n tabsPrefix: string | undefined,\n private containerEl: HTMLIonRouterOutletElement,\n private router: Router,\n private navCtrl: NavController,\n private zone: NgZone,\n private location: Location\n ) {\n this.tabsPrefix = tabsPrefix !== undefined ? toSegments(tabsPrefix) : undefined;\n }\n\n createView(ref: ComponentRef<any>, activatedRoute: ActivatedRoute): RouteView {\n const url = getUrl(this.router, activatedRoute);\n const element = (ref && ref.location && ref.location.nativeElement) as HTMLElement;\n const unlistenEvents = bindLifecycleEvents(this.zone, ref.instance, element);\n return {\n id: this.nextId++,\n stackId: computeStackId(this.tabsPrefix, url),\n unlistenEvents,\n element,\n ref,\n url,\n };\n }\n\n getExistingView(activatedRoute: ActivatedRoute): RouteView | undefined {\n const activatedUrlKey = getUrl(this.router, activatedRoute);\n const view = this.views.find(vw => vw.url === activatedUrlKey);\n if (view) {\n view.ref.changeDetectorRef.reattach();\n }\n return view;\n }\n\n setActive(enteringView: RouteView): Promise<StackEvent> {\n const consumeResult = this.navCtrl.consumeTransition();\n let { direction, animation, animationBuilder } = consumeResult;\n const leavingView = this.activeView;\n const tabSwitch = isTabSwitch(enteringView, leavingView);\n if (tabSwitch) {\n direction = 'back';\n animation = undefined;\n }\n\n const viewsSnapshot = this.views.slice();\n\n let currentNavigation;\n\n const router = (this.router as any);\n\n // Angular >= 7.2.0\n if (router.getCurrentNavigation) {\n currentNavigation = router.getCurrentNavigation();\n\n // Angular < 7.2.0\n } else if (\n router.navigations &&\n router.navigations.value\n ) {\n currentNavigation = router.navigations.value;\n }\n\n /**\n * If the navigation action\n * sets `replaceUrl: true`\n * then we need to make sure\n * we remove the last item\n * from our views stack\n */\n if (\n currentNavigation &&\n currentNavigation.extras &&\n currentNavigation.extras.replaceUrl\n ) {\n if (this.views.length > 0) {\n this.views.splice(-1, 1);\n }\n }\n\n const reused = this.views.includes(enteringView);\n const views = this.insertView(enteringView, direction);\n\n // Trigger change detection before transition starts\n // This will call ngOnInit() the first time too, just after the view\n // was attached to the dom, but BEFORE the transition starts\n if (!reused) {\n enteringView.ref.changeDetectorRef.detectChanges();\n }\n\n /**\n * If we are going back from a page that\n * was presented using a custom animation\n * we should default to using that\n * unless the developer explicitly\n * provided another animation.\n */\n const customAnimation = enteringView.animationBuilder;\n if (\n animationBuilder === undefined &&\n direction === 'back' &&\n !tabSwitch &&\n customAnimation !== undefined\n ) {\n animationBuilder = customAnimation;\n }\n\n /**\n * Save any custom animation so that navigating\n * back will use this custom animation by default.\n */\n if (leavingView) {\n leavingView.animationBuilder = animationBuilder;\n }\n\n // Wait until previous transitions finish\n return this.zone.runOutsideAngular(() => {\n return this.wait(() => {\n // disconnect leaving page from change detection to\n // reduce jank during the page transition\n if (leavingView) {\n leavingView.ref.changeDetectorRef.detach();\n }\n // In case the enteringView is the same as the leavingPage we need to reattach()\n enteringView.ref.changeDetectorRef.reattach();\n\n return this.transition(enteringView, leavingView, animation, this.canGoBack(1), false, animationBuilder)\n .then(() => cleanupAsync(enteringView, views, viewsSnapshot, this.location))\n .then(() => ({\n enteringView,\n direction,\n animation,\n tabSwitch\n }));\n });\n });\n }\n\n canGoBack(deep: number, stackId = this.getActiveStackId()): boolean {\n return this.getStack(stackId).length > deep;\n }\n\n pop(deep: number, stackId = this.getActiveStackId()) {\n return this.zone.run(() => {\n const views = this.getStack(stackId);\n if (views.length <= deep) {\n return Promise.resolve(false);\n }\n const view = views[views.length - deep - 1];\n let url = view.url;\n\n const viewSavedData = view.savedData;\n if (viewSavedData) {\n const primaryOutlet = viewSavedData.get('primary');\n if (\n primaryOutlet &&\n primaryOutlet.route &&\n primaryOutlet.route._routerState &&\n primaryOutlet.route._routerState.snapshot &&\n primaryOutlet.route._routerState.snapshot.url\n ) {\n url = primaryOutlet.route._routerState.snapshot.url;\n }\n }\n const { animationBuilder } = this.navCtrl.consumeTransition();\n return this.navCtrl.navigateBack(url, { ...view.savedExtras, animation: animationBuilder }).then(() => true);\n });\n }\n\n startBackTransition() {\n const leavingView = this.activeView;\n if (leavingView) {\n const views = this.getStack(leavingView.stackId);\n const enteringView = views[views.length - 2];\n const customAnimation = enteringView.animationBuilder;\n\n return this.wait(() => {\n return this.transition(\n enteringView, // entering view\n leavingView, // leaving view\n 'back',\n this.canGoBack(2),\n true,\n customAnimation\n );\n });\n }\n return Promise.resolve();\n }\n\n endBackTransition(shouldComplete: boolean) {\n if (shouldComplete) {\n this.skipTransition = true;\n this.pop(1);\n } else if (this.activeView) {\n cleanup(this.activeView, this.views, this.views, this.location);\n }\n }\n\n getLastUrl(stackId?: string) {\n const views = this.getStack(stackId);\n return views.length > 0 ? views[views.length - 1] : undefined;\n }\n\n /**\n * @internal\n */\n getRootUrl(stackId?: string) {\n const views = this.getStack(stackId);\n return views.length > 0 ? views[0] : undefined;\n }\n\n getActiveStackId(): string | undefined {\n return this.activeView ? this.activeView.stackId : undefined;\n }\n\n hasRunningTask(): boolean {\n return this.runningTask !== undefined;\n }\n\n destroy() {\n this.containerEl = undefined!;\n this.views.forEach(destroyView);\n this.activeView = undefined;\n this.views = [];\n }\n\n private getStack(stackId: string | undefined) {\n return this.views.filter(v => v.stackId === stackId);\n }\n\n private insertView(enteringView: RouteView, direction: RouterDirection) {\n this.activeView = enteringView;\n this.views = insertView(this.views, enteringView, direction);\n return this.views.slice();\n }\n\n private transition(\n enteringView: RouteView | undefined,\n leavingView: RouteView | undefined,\n direction: 'forward' | 'back' | undefined,\n showGoBack: boolean,\n progressAnimation: boolean,\n animationBuilder?: AnimationBuilder\n ) {\n if (this.skipTransition) {\n this.skipTransition = false;\n return Promise.resolve(false);\n }\n if (leavingView === enteringView) {\n return Promise.resolve(false);\n }\n const enteringEl = enteringView ? enteringView.element : undefined;\n const leavingEl = leavingView ? leavingView.element : undefined;\n const containerEl = this.containerEl;\n if (enteringEl && enteringEl !== leavingEl) {\n enteringEl.classList.add('ion-page');\n enteringEl.classList.add('ion-page-invisible');\n if (enteringEl.parentElement !== containerEl) {\n containerEl.appendChild(enteringEl);\n }\n\n if ((containerEl as any).commit) {\n return containerEl.commit(enteringEl, leavingEl, {\n deepWait: true,\n duration: direction === undefined ? 0 : undefined,\n direction,\n showGoBack,\n progressAnimation,\n animationBuilder\n });\n }\n }\n return Promise.resolve(false);\n }\n\n private async wait<T>(task: () => Promise<T>): Promise<T> {\n if (this.runningTask !== undefined) {\n await this.runningTask;\n this.runningTask = undefined;\n }\n const promise = this.runningTask = task();\n promise.finally(() => this.runningTask = undefined);\n return promise;\n }\n}\n\nconst cleanupAsync = (activeRoute: RouteView, views: RouteView[], viewsSnapshot: RouteView[], location: Location) => {\n if (typeof (requestAnimationFrame as any) === 'function') {\n return new Promise<any>(resolve => {\n requestAnimationFrame(() => {\n cleanup(activeRoute, views, viewsSnapshot, location);\n resolve();\n });\n });\n }\n return Promise.resolve();\n};\n\nconst cleanup = (activeRoute: RouteView, views: RouteView[], viewsSnapshot: RouteView[], location: Location) => {\n viewsSnapshot\n .filter(view => !views.includes(view))\n .forEach(destroyView);\n\n views.forEach(view => {\n /**\n * In the event that a user navigated multiple\n * times in rapid succession, we want to make sure\n * we don't pre-emptively detach a view while\n * it is in mid-transition.\n *\n * In this instance we also do not care about query\n * params or fragments as it will be the same view regardless\n */\n const locationWithoutParams = location.path().split('?')[0];\n const locationWithoutFragment = locationWithoutParams.split('#')[0];\n\n if (view !== activeRoute && view.url !== locationWithoutFragment) {\n const element = view.element;\n element.setAttribute('aria-hidden', 'true');\n element.classList.add('ion-page-hidden');\n view.ref.changeDetectorRef.detach();\n }\n });\n};\n","import { Location } from '@angular/common';\nimport { Attribute, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, Injector, NgZone, OnDestroy, OnInit, Optional, Output, SkipSelf, ViewContainerRef } from '@angular/core';\nimport { ActivatedRoute, ChildrenOutletContexts, OutletContext, PRIMARY_OUTLET, Router } from '@angular/router';\nimport { componentOnReady } from '@ionic/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\n\nimport { AnimationBuilder } from '../../';\nimport { Config } from '../../providers/config';\nimport { NavController } from '../../providers/nav-controller';\n\nimport { StackController } from './stack-controller';\nimport { RouteView, getUrl } from './stack-utils';\n\n@Directive({\n selector: 'ion-router-outlet',\n exportAs: 'outlet',\n inputs: ['animated', 'animation', 'swipeGesture']\n})\nexport class IonRouterOutlet implements OnDestroy, OnInit {\n nativeEl: HTMLIonRouterOutletElement;\n\n private activated: ComponentRef<any> | null = null;\n activatedView: RouteView | null = null;\n\n private _activatedRoute: ActivatedRoute | null = null;\n private _swipeGesture?: boolean;\n private name: string;\n private stackCtrl: StackController;\n\n // Maintain map of activated route proxies for each component instance\n private proxyMap = new WeakMap<any, ActivatedRoute>();\n\n // Keep the latest activated route in a subject for the proxy routes to switch map to\n private currentActivatedRoute$ = new BehaviorSubject<{ component: any; activatedRoute: ActivatedRoute } | null>(null);\n\n tabsPrefix: string | undefined;\n\n @Output() stackEvents = new EventEmitter<any>();\n @Output('activate') activateEvents = new EventEmitter<any>();\n @Output('deactivate') deactivateEvents = new EventEmitter<any>();\n\n set animation(animation: AnimationBuilder) {\n this.nativeEl.animation = animation;\n }\n\n set animated(animated: boolean) {\n this.nativeEl.animated = animated;\n }\n\n set swipeGesture(swipe: boolean) {\n this._swipeGesture = swipe;\n\n this.nativeEl.swipeHandler = swipe ? {\n canStart: () => this.stackCtrl.canGoBack(1) && !this.stackCtrl.hasRunningTask(),\n onStart: () => this.stackCtrl.startBackTransition(),\n onEnd: shouldContinue => this.stackCtrl.endBackTransition(shouldContinue)\n } : undefined;\n }\n\n constructor(\n private parentContexts: ChildrenOutletContexts,\n private location: ViewContainerRef,\n private resolver: ComponentFactoryResolver,\n @Attribute('name') name: string,\n @Optional() @Attribute('tabs') tabs: string,\n private config: Config,\n private navCtrl: NavController,\n commonLocation: Location,\n elementRef: ElementRef,\n router: Router,\n zone: NgZone,\n activatedRoute: ActivatedRoute,\n @SkipSelf() @Optional() readonly parentOutlet?: IonRouterOutlet\n ) {\n this.nativeEl = elementRef.nativeElement;\n this.name = name || PRIMARY_OUTLET;\n this.tabsPrefix = tabs === 'true' ? getUrl(router, activatedRoute) : undefined;\n this.stackCtrl = new StackController(this.tabsPrefix, this.nativeEl, router, navCtrl, zone, commonLocation);\n parentContexts.onChildOutletCreated(this.name, this as any);\n }\n\n ngOnDestroy(): void {\n this.stackCtrl.destroy();\n }\n\n getContext(): OutletContext | null {\n return this.parentContexts.getContext(this.name);\n }\n\n ngOnInit(): void {\n if (!this.activated) {\n // If the outlet was not instantiated at the time the route got activated we need to populate\n // the outlet when it is initialized (ie inside a NgIf)\n const context = this.getContext();\n if (context && context.route) {\n this.activateWith(context.route, context.resolver || null);\n }\n }\n\n new Promise(resolve => componentOnReady(this.nativeEl, resolve)).then(() => {\n if (this._swipeGesture === undefined) {\n this.swipeGesture = this.config.getBoolean('swipeBackEnabled', (this.nativeEl as any).mode === 'ios');\n }\n });\n }\n\n get isActivated(): boolean {\n return !!this.activated;\n }\n\n get component(): object {\n if (!this.activated) {\n throw new Error('Outlet is not activated');\n }\n return this.activated.instance;\n }\n\n get activatedRoute(): ActivatedRoute {\n if (!this.activated) {\n throw new Error('Outlet is not activated');\n }\n return this._activatedRoute as ActivatedRoute;\n }\n\n get activatedRouteData(): any {\n if (this._activatedRoute) {\n return this._activatedRoute.snapshot.data;\n }\n return {};\n }\n\n /**\n * Called when the `RouteReuseStrategy` instructs to detach the subtree\n */\n detach(): ComponentRef<any> {\n throw new Error('incompatible reuse strategy');\n }\n\n /**\n * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\n */\n attach(_ref: ComponentRef<any>, _activatedRoute: ActivatedRoute) {\n throw new Error('incompatible reuse strategy');\n }\n\n deactivate(): void {\n if (this.activated) {\n if (this.activatedView) {\n const context = this.getContext()!;\n this.activatedView.savedData = new Map(context.children['contexts']);\n\n /**\n * Angular v11.2.10 introduced a change\n * where this route context is cleared out when\n * a router-outlet is deactivated, However,\n * we need this route information in order to\n * return a user back to the correct tab when\n * leaving and then going back to the tab context.\n */\n const primaryOutlet = this.activatedView.savedData.get('primary');\n if (primaryOutlet && context.route) {\n primaryOutlet.route = { ...context.route };\n }\n\n /**\n * Ensure we are saving the NavigationExtras\n * data otherwise it will be lost\n */\n this.activatedView.savedExtras = {};\n if (context.route) {\n const contextSnapshot = context.route.snapshot;\n\n this.activatedView.savedExtras.queryParams = contextSnapshot.queryParams;\n this.activatedView.savedExtras.fragment = contextSnapshot.fragment;\n }\n }\n const c = this.component;\n this.activatedView = null;\n this.activated = null;\n this._activatedRoute = null;\n this.deactivateEvents.emit(c);\n }\n }\n\n activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver | null) {\n if (this.isActivated) {\n throw new Error('Cannot activate an already activated outlet');\n }\n this._activatedRoute = activatedRoute;\n\n let cmpRef: any;\n let enteringView = this.stackCtrl.getExistingView(activatedRoute);\n if (enteringView) {\n cmpRef = this.activated = enteringView.ref;\n const saved = enteringView.savedData;\n if (saved) {\n // self-restore\n const context = this.getContext()!;\n context.children['contexts'] = saved;\n }\n // Updated activated route proxy for this component\n this.updateActivatedRouteProxy(cmpRef.instance, activatedRoute);\n } else {\n const snapshot = (activatedRoute as any)._futureSnapshot;\n const component = snapshot.routeConfig!.component as any;\n resolver = resolver || this.resolver;\n\n const factory = resolver.resolveComponentFactory(component);\n const childContexts = this.parentContexts.getOrCreateContext(this.name).children;\n\n // We create an activated route proxy object that will maintain future updates for this component\n // over its lifecycle in the stack.\n const component$ = new BehaviorSubject<any>(null);\n const activatedRouteProxy = this.createActivatedRouteProxy(component$, activatedRoute);\n\n const injector = new OutletInjector(activatedRouteProxy, childContexts, this.location.injector);\n cmpRef = this.activated = this.location.createComponent(factory, this.location.length, injector);\n\n // Once the component is created we can push it to our local subject supplied to the proxy\n component$.next(cmpRef.instance);\n\n // Calling `markForCheck` to make sure we will run the change detection when the\n // `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component.\n enteringView = this.stackCtrl.createView(this.activated, activatedRoute);\n\n // Store references to the proxy by component\n this.proxyMap.set(cmpRef.instance, activatedRouteProxy);\n this.currentActivatedRoute$.next({ component: cmpRef.instance, activatedRoute });\n }\n\n this.activatedView = enteringView;\n this.stackCtrl.setActive(enteringView).then(data => {\n this.navCtrl.setTopOutlet(this);\n this.activateEvents.emit(cmpRef.instance);\n this.stackEvents.emit(data);\n });\n }\n\n /**\n * Returns `true` if there are pages in the stack to go back.\n */\n canGoBack(deep = 1, stackId?: string): boolean {\n return this.stackCtrl.canGoBack(deep, stackId);\n }\n\n /**\n * Resolves to `true` if it the outlet was able to sucessfully pop the last N pages.\n */\n pop(deep = 1, stackId?: string): Promise<boolean> {\n return this.stackCtrl.pop(deep, stackId);\n }\n\n /**\n * Returns the URL of the active page of each stack.\n */\n getLastUrl(stackId?: string): string | undefined {\n const active = this.stackCtrl.getLastUrl(stackId);\n return active ? active.url : undefined;\n }\n\n /**\n * Returns the RouteView of the active page of each stack.\n * @internal\n */\n getLastRouteView(stackId?: string): RouteView | undefined {\n return this.stackCtrl.getLastUrl(stackId);\n }\n\n /**\n * Returns the root view in the tab stack.\n * @internal\n */\n getRootView(stackId?: string): RouteView | undefined {\n return this.stackCtrl.getRootUrl(stackId);\n }\n\n /**\n * Returns the active stack ID. In the context of ion-tabs, it means the active tab.\n */\n getActiveStackId(): string | undefined {\n return this.stackCtrl.getActiveStackId();\n }\n\n /**\n * Since the activated route can change over the life time of a component in an ion router outlet, we create\n * a proxy so that we can update the values over time as a user navigates back to components already in the stack.\n */\n private createActivatedRouteProxy(component$: Observable<any>, activatedRoute: ActivatedRoute): ActivatedRoute {\n const proxy: any = new ActivatedRoute();\n\n proxy._futureSnapshot = (activatedRoute as any)._futureSnapshot;\n proxy._routerState = (activatedRoute as any)._routerState;\n proxy.snapshot = activatedRoute.snapshot;\n proxy.outlet = activatedRoute.outlet;\n proxy.component = activatedRoute.component;\n\n // Setup wrappers for the observables so consumers don't have to worry about switching to new observables as the state updates\n (proxy as any)._paramMap = this.proxyObservable(component$, 'paramMap');\n (proxy as any)._queryParamMap = this.proxyObservable(component$, 'queryParamMap');\n proxy.url = this.proxyObservable(component$, 'url');\n proxy.params = this.proxyObservable(component$, 'params');\n proxy.queryParams = this.proxyObservable(component$, 'queryParams');\n proxy.fragment = this.proxyObservable(component$, 'fragment');\n proxy.data = this.proxyObservable(component$, 'data');\n\n return proxy as ActivatedRoute;\n }\n\n /**\n * Create a wrapped observable that will switch to the latest activated route matched by the given component\n */\n private proxyObservable(component$: Observable<any>, path: string): Observable<any> {\n return component$.pipe(\n // First wait until the component instance is pushed\n filter(component => !!component),\n switchMap(component =>\n this.currentActivatedRoute$.pipe(\n filter(current => current !== null && current.component === component),\n switchMap(current => current && (current.activatedRoute as any)[path]),\n distinctUntilChanged()\n )\n )\n );\n }\n\n /**\n * Updates the activated route proxy for the given component to the new incoming router state\n */\n private updateActivatedRouteProxy(component: any, activatedRoute: ActivatedRoute): void {\n const proxy = this.proxyMap.get(component);\n if (!proxy) {\n throw new Error(`Could not find activated route proxy for view`);\n }\n\n (proxy as any)._futureSnapshot = (activatedRoute as any)._futureSnapshot;\n (proxy as any)._routerState = (activatedRoute as any)._routerState;\n proxy.snapshot = activatedRoute.snapshot;\n proxy.outlet = activatedRoute.outlet;\n proxy.component = activatedRoute.component;\n\n this.currentActivatedRoute$.next({ component, activatedRoute });\n }\n}\n\nclass OutletInjector implements Injector {\n constructor(\n private route: ActivatedRoute,\n private childContexts: ChildrenOutletContexts,\n private parent: Injector\n ) { }\n\n get(token: any, notFoundValue?: any): any {\n if (token === ActivatedRoute) {\n return this.route;\n }\n\n if (token === ChildrenOutletContexts) {\n return this.childContexts;\n }\n\n // tslint:disable-next-line\n return this.parent.get(token, notFoundValue);\n }\n}\n","import { Component, ContentChild, EventEmitter, HostListener, Output, ViewChild } from '@angular/core';\n\nimport { NavController } from '../../providers/nav-controller';\nimport { IonTabBar } from '../proxies';\n\nimport { IonRouterOutlet } from './ion-router-outlet';\nimport { StackEvent } from './stack-utils';\n\n@Component({\n selector: 'ion-tabs',\n template: `\n <ng-content select=\"[slot=top]\"></ng-content>\n <div class=\"tabs-inner\">\n <ion-router-outlet #outlet tabs=\"true\" (stackEvents)=\"onPageSelected($event)\"></ion-router-outlet>\n </div>\n <ng-content></ng-content>`,\n styles: [`\n :host {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n flex-direction: column;\n\n width: 100%;\n height: 100%;\n\n contain: layout size style;\n z-index: $z-index-page-container;\n }\n .tabs-inner {\n position: relative;\n\n flex: 1;\n\n contain: layout size style;\n }`\n ]\n})\nexport class IonTabs {\n\n @ViewChild('outlet', { read: IonRouterOutlet, static: false }) outlet: IonRouterOutlet;\n @ContentChild(IonTabBar, { static: false }) tabBar: IonTabBar | undefined;\n\n @Output() ionTabsWillChange = new EventEmitter<{ tab: string }>();\n @Output() ionTabsDidChange = new EventEmitter<{ tab: string }>();\n\n constructor(\n private navCtrl: NavController,\n ) { }\n\n /**\n * @internal\n */\n onPageSelected(detail: StackEvent) {\n const stackId = detail.enteringView.stackId;\n if (detail.tabSwitch && stackId !== undefined) {\n if (this.tabBar) {\n this.tabBar.selectedTab = stackId;\n }\n this.ionTabsWillChange.emit({ tab: stackId });\n this.ionTabsDidChange.emit({ tab: stackId });\n }\n }\n\n /**\n * When a tab button is clicked, there are several scenarios:\n * 1. If the selected tab is currently active (the tab button has been clicked\n * again), then it should go to the root view for that tab.\n *\n * a. Get the saved root view from the router outlet. If the saved root view\n * matches the tabRootUrl, set the route view to this view including the\n * navigation extras.\n * b. If the saved root view from the router outlet does\n * not match, navigate to the tabRootUrl. No navigation extras are\n * included.\n *\n * 2. If the current tab tab is not currently selected, get the last route\n * view from the router outlet.\n *\n * a. If the last route view exists, navigate to that view including any\n * navigation extras\n * b. If the last route view doesn't exist, then navigate\n * to the default tabRootUrl\n */\n @HostListener('ionTabButtonClick', ['$event.detail.tab'])\n select(tab: string) {\n const alreadySelected = this.outlet.getActiveStackId() === tab;\n const tabRootUrl = `${this.outlet.tabsPrefix}/${tab}`;\n if (alreadySelected) {\n const activeStackId = this.outlet.getActiveStackId();\n const activeView = this.outlet.getLastRouteView(activeStackId);\n\n // If on root tab, do not navigate to root tab again\n if (activeView.url === tabRootUrl) { return; }\n\n const rootView = this.outlet.getRootView(tab);\n const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;\n return this.navCtrl.navigateRoot(tabRootUrl, {\n ...(navigationExtras),\n animated: true,\n animationDirection: 'back',\n });\n } else {\n const lastRoute = this.outlet.getLastRouteView(tab);\n /**\n * If there is a lastRoute, goto that, otherwise goto the fallback url of the\n * selected tab\n */\n const url = lastRoute && lastRoute.url || tabRootUrl;\n const navigationExtras = lastRoute && lastRoute.savedExtras;\n\n return this.navCtrl.navigateRoot(url, {\n ...(navigationExtras),\n animated: true,\n animationDirection: 'back',\n });\n }\n }\n\n getSelected(): string | undefined {\n return this.outlet.getActiveStackId();\n }\n}\n","import { Directive, HostListener, Optional } from '@angular/core';\nimport { AnimationBuilder } from '@ionic/core';\n\nimport { Config } from '../../providers/config';\nimport { NavController } from '../../providers/nav-controller';\n\nimport { IonRouterOutlet } from './ion-router-outlet';\n\n@Directive({\n selector: 'ion-back-button',\n inputs: ['defaultHref', 'routerAnimation'],\n})\nexport class IonBackButtonDelegate {\n\n defaultHref: string | undefined | null;\n routerAnimation?: AnimationBuilder;\n\n constructor(\n @Optional() private routerOutlet: IonRouterOutlet,\n private navCtrl: NavController,\n private config: Config\n ) {}\n\n /**\n * @internal\n */\n @HostListener('click', ['$event'])\n onClick(ev: Event) {\n const defaultHref = this.defaultHref || this.config.get('backButtonDefaultHref');\n\n if (this.routerOutlet && this.routerOutlet.canGoBack()) {\n this.navCtrl.setDirection('back', undefined, undefined, this.routerAnimation);\n this.routerOutlet.pop();\n ev.preventDefault();\n } else if (defaultHref != null) {\n this.navCtrl.navigateBack(defaultHref, { animation: this.routerAnimation });\n ev.preventDefault();\n }\n }\n}\n","import { ComponentFactoryResolver, Directive, ElementRef, Injector, ViewContainerRef } from '@angular/core';\n\nimport { AngularDelegate } from '../../providers/angular-delegate';\nimport { ProxyCmp, proxyOutputs } from '../proxies-utils';\n\n@ProxyCmp({\n inputs: ['animated', 'animation', 'root', 'rootParams', 'swipeGesture'],\n methods: ['push', 'insert', 'insertPages', 'pop', 'popTo', 'popToRoot', 'removeIndex', 'setRoot', 'setPages', 'getActive', 'getByIndex', 'canGoBack', 'getPrevious']\n})\n@Directive({\n selector: 'ion-nav'\n})\nexport class NavDelegate {\n protected el: HTMLElement;\n constructor(\n ref: ElementRef,\n resolver: ComponentFactoryResolver,\n injector: Injector,\n angularDelegate: AngularDelegate,\n location: ViewContainerRef\n ) {\n this.el = ref.nativeElement;\n ref.nativeElement.delegate = angularDelegate.create(resolver, injector, location);\n proxyOutputs(this, this.el, ['ionNavDidChange' , 'ionNavWillChange' ]);\n }\n}\n","import { LocationStrategy } from '@angular/common';\nimport { Directive, ElementRef, HostListener, Optional } from '@angular/core';\nimport { Router, RouterLink } from '@angular/router';\nimport { AnimationBuilder, RouterDirection } from '@ionic/core';\nimport { Subscription } from 'rxjs';\n\nimport { NavController } from '../../providers/nav-controller';\n\n@Directive({\n selector: '[routerLink]',\n inputs: ['routerDirection', 'routerAnimation']\n})\nexport class RouterLinkDelegate {\n\n private subscription?: Subscription;\n\n routerDirection: RouterDirection = 'forward';\n routerAnimation?: AnimationBuilder;\n\n constructor(\n private locationStrategy: LocationStrategy,\n private navCtrl: NavController,\n private elementRef: ElementRef,\n private router: Router,\n @Optional() private routerLink?: RouterLink,\n ) { }\n\n ngOnInit() {\n this.updateTargetUrlAndHref();\n }\n\n ngOnChanges(): any {\n this.updateTargetUrlAndHref();\n }\n\n ngOnDestroy(): any {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n private updateTargetUrlAndHref() {\n if (this.routerLink) {\n const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree));\n this.elementRef.nativeElement.href = href;\n }\n }\n\n /**\n * @internal\n */\n @HostListener('click', ['$event'])\n onClick(ev: UIEvent) {\n this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);\n ev.preventDefault();\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { VirtualContext } from './virtual-utils';\n\n/**\n * @hidden\n */\n@Directive({ selector: '[virtualFooter]' })\nexport class VirtualFooter {\n constructor(public templateRef: TemplateRef<VirtualContext>) {}\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { VirtualContext } from './virtual-utils';\n\n/**\n * @hidden\n */\n@Directive({ selector: '[virtualHeader]' })\nexport class VirtualHeader {\n constructor(public templateRef: TemplateRef<VirtualContext>) {}\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { VirtualContext } from './virtual-utils';\n\n/**\n * @hidden\n */\n@Directive({ selector: '[virtualItem]' })\nexport class VirtualItem {\n constructor(public templateRef: TemplateRef<VirtualContext>, public viewContainer: ViewContainerRef) {}\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, EmbeddedViewRef, IterableDiffer, IterableDiffers, NgZone, SimpleChanges, TrackByFunction } from '@angular/core';\nimport { Cell, CellType, FooterHeightFn, HeaderFn, HeaderHeightFn, ItemHeightFn } from '@ionic/core';\n\nimport { ProxyCmp } from '../proxies-utils';\n\nimport { VirtualFooter } from './virtual-footer';\nimport { VirtualHeader } from './virtual-header';\nimport { VirtualItem } from './virtual-item';\nimport { VirtualContext } from './virtual-utils';\n\nexport declare interface IonVirtualScroll {\n /**\n * It is important to provide this\n * if virtual item height will be significantly larger than the default\n * The approximate height of each virtual item template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n approxItemHeight: number;\n\n /**\n * The approximate height of each header template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n approxHeaderHeight: number;\n\n /**\n * The approximate width of each footer template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n approxFooterHeight: number;\n\n /**\n * Section headers and the data used within its given\n * template can be dynamically created by passing a function to `headerFn`.\n * For example, a large list of contacts usually has dividers between each\n * letter in the alphabet. App's can provide their own custom `headerFn`\n * which is called with each record within the dataset. The logic within\n * the header function can decide if the header template should be used,\n * and what data to give to the header template. The function must return\n * `null` if a header cell shouldn't be created.\n */\n headerFn?: HeaderFn;\n\n /**\n * Section footers and the data used within its given\n * template can be dynamically created by passing a function to `footerFn`.\n * The logic within the footer function can decide if the footer template\n * should be used, and what data to give to the footer template. The function\n * must return `null` if a footer cell shouldn't be created.\n */\n footerFn?: HeaderFn;\n\n /**\n * The data that builds the templates within the virtual scroll.\n * It's important to note that when this data has changed, then the\n * entire virtual scroll is reset, which is an expensive operation and\n * should be avoided if possible.\n */\n items?: any[] | null;\n\n /**\n * An optional function that maps each item within their height.\n * When this function is provided, heavy optimizations and fast path can be taked by\n * `ion-virtual-scroll` leading to massive performance improvements.\n *\n * This function allows to skip all DOM reads, which can be Doing so leads\n * to massive performance\n */\n itemHeight?: ItemHeightFn;\n\n /**\n * An optional function that maps each item header within their height.\n */\n headerHeight?: HeaderHeightFn;\n\n /**\n * An optional function that maps each item footer within their height.\n */\n footerHeight?: FooterHeightFn;\n\n /**\n * Same as `ngForTrackBy` which can be used on `ngFor`.\n */\n trackBy: TrackByFunction<any>;\n\n /**\n * This method marks the tail the items array as dirty, so they can be re-rendered. It's equivalent to calling: ```js * virtualScroll.checkRange(lastItemLen, items.length - lastItemLen); * ```\n */\n 'checkEnd': () => void;\n /**\n * This method marks a subset of items as dirty, so they can be re-rendered. Items should be marked as dirty any time the content or their style changes. The subset of items to be updated can are specifing by an offset and a length.\n */\n 'checkRange': (offset: number, len?: number) => void;\n /**\n * Returns the position of the virtual item at the given index.\n */\n 'positionForItem': (index: number) => Promise<number>;\n}\n\n@ProxyCmp({\n inputs: ['approxItemHeight', 'approxHeaderHeight', 'approxFooterHeight', 'headerFn', 'footerFn', 'items', 'itemHeight', 'headerHeight', 'footerHeight'],\n methods: ['checkEnd', 'checkRange', 'positionForItem']\n})\n@Component({\n selector: 'ion-virtual-scroll',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: [\n 'approxItemHeight',\n 'approxHeaderHeight',\n 'approxFooterHeight',\n 'headerFn',\n 'footerFn',\n 'items',\n 'itemHeight',\n 'headerHeight',\n 'footerHeight',\n 'trackBy'\n ]\n})\nexport class IonVirtualScroll {\n\n private differ?: IterableDiffer<any>;\n private el: HTMLIonVirtualScrollElement;\n private refMap = new WeakMap<HTMLElement, EmbeddedViewRef<VirtualContext>>();\n\n @ContentChild(VirtualItem, { static: false }) itmTmp!: VirtualItem;\n @ContentChild(VirtualHeader, { static: false }) hdrTmp!: VirtualHeader;\n @ContentChild(VirtualFooter, { static: false }) ftrTmp!: VirtualFooter;\n\n constructor(\n private z: NgZone,\n private iterableDiffers: IterableDiffers,\n elementRef: ElementRef,\n ) {\n this.el = elementRef.nativeElement as HTMLIonVirtualScrollElement;\n this.el.nodeRender = this.nodeRender.bind(this);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.trackBy && 'items' in changes) {\n // React on virtualScroll changes only once all inputs have been initialized\n const value = changes['items'].currentValue;\n if (this.differ === undefined && value != null) {\n try {\n this.differ = this.iterableDiffers.find(value).create(this.trackBy);\n } catch (e) {\n throw new Error(\n `Cannot find a differ supporting object '${value}'. VirtualScroll only supports binding to Iterables such as Arrays.`);\n }\n }\n }\n }\n\n ngDoCheck() {\n // and if there actually are changes\n const changes = this.differ !== undefined && this.items ? this.differ.diff(this.items) : null;\n if (changes === null) {\n return;\n }\n // TODO: optimize\n this.checkRange(0);\n }\n\n private nodeRender(el: HTMLElement | null, cell: Cell, index: number): HTMLElement {\n return this.z.run(() => {\n let node: EmbeddedViewRef<VirtualContext>;\n if (!el) {\n node = this.itmTmp.viewContainer.createEmbeddedView(\n this.getComponent(cell.type),\n { $implicit: cell.value, index },\n index\n );\n el = getElement(node);\n this.refMap.set(el, node);\n } else {\n node = this.refMap.get(el)!;\n const ctx = node.context;\n ctx.$implicit = cell.value;\n ctx.index = cell.index;\n }\n // run sync change detections\n node.detectChanges();\n return el;\n });\n }\n\n private getComponent(type: CellType) {\n switch (type) {\n case 'item': return this.itmTmp.templateRef;\n case 'header': return this.hdrTmp.templateRef;\n case 'footer': return this.ftrTmp.templateRef;\n }\n throw new Error('template for virtual item was not provided');\n }\n}\n\nconst getElement = (view: EmbeddedViewRef<VirtualContext>): HTMLElement => {\n const rootNodes = view.rootNodes;\n for (let i = 0; i < rootNodes.length; i++) {\n if (rootNodes[i].nodeType === 1) {\n return rootNodes[i];\n }\n }\n throw new Error('virtual element was not created');\n};\n","\ninterface ControllerShape<Opts, HTMLElm> {\n create(options: Opts): Promise<HTMLElm>;\n dismiss(data?: any, role?: string, id?: string): Promise<boolean>;\n getTop(): Promise<HTMLElm | undefined>;\n}\n\nexport class OverlayBaseController<Opts, Overlay> implements ControllerShape<Opts, Overlay> {\n constructor(private ctrl: ControllerShape<Opts, Overlay>) {}\n\n /**\n * Creates a new overlay\n */\n create(opts?: Opts) {\n // TODO: next major release opts is not optional\n return this.ctrl.create((opts || {}) as any);\n }\n\n /**\n * When `id` is not provided, it dismisses the top overlay.\n */\n dismiss(data?: any, role?: string, id?: string) {\n return this.ctrl.dismiss(data, role, id);\n }\n\n /**\n * Returns the top overlay.\n */\n getTop() {\n return this.ctrl.getTop();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActionSheetOptions, actionSheetController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ActionSheetController extends OverlayBaseController<ActionSheetOptions, HTMLIonActionSheetElement> {\n constructor() {\n super(actionSheetController);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AlertOptions, alertController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlertController extends OverlayBaseController<AlertOptions, HTMLIonAlertElement> {\n constructor() {\n super(alertController);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LoadingOptions, loadingController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingController extends OverlayBaseController<LoadingOptions, HTMLIonLoadingElement> {\n constructor() {\n super(loadingController);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { menuController } from '@ionic/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuController {\n\n /**\n * Programmatically open the Menu.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return returns a promise when the menu is fully opened\n */\n open(menuId?: string) {\n return menuController.open(menuId);\n }\n\n /**\n * Programmatically close the Menu. If no `menuId` is given as the first\n * argument then it'll close any menu which is open. If a `menuId`\n * is given then it'll close that exact menu.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return returns a promise when the menu is fully closed\n */\n close(menuId?: string) {\n return menuController.close(menuId);\n }\n\n /**\n * Toggle the menu. If it's closed, it will open, and if opened, it\n * will close.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return returns a promise when the menu has been toggled\n */\n toggle(menuId?: string) {\n return menuController.toggle(menuId);\n }\n\n /**\n * Used to enable or disable a menu. For example, there could be multiple\n * left menus, but only one of them should be able to be opened at the same\n * time. If there are multiple menus on the same side, then enabling one menu\n * will also automatically disable all the others that are on the same side.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns the instance of the menu, which is useful for chaining.\n */\n enable(shouldEnable: boolean, menuId?: string) {\n return menuController.enable(shouldEnable, menuId);\n }\n\n /**\n * Used to enable or disable the ability to swipe open the menu.\n * @param shouldEnable True if it should be swipe-able, false if not.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns the instance of the menu, which is useful for chaining.\n */\n swipeGesture(shouldEnable: boolean, menuId?: string) {\n return menuController.swipeGesture(shouldEnable, menuId);\n }\n\n /**\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns true if the specified menu is currently open, otherwise false.\n * If the menuId is not specified, it returns true if ANY menu is currenly open.\n */\n isOpen(menuId?: string) {\n return menuController.isOpen(menuId);\n }\n\n /**\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns true if the menu is currently enabled, otherwise false.\n */\n isEnabled(menuId?: string) {\n return menuController.isEnabled(menuId);\n }\n\n /**\n * Used to get a menu instance. If a `menuId` is not provided then it'll\n * return the first menu found. If a `menuId` is `left` or `right`, then\n * it'll return the enabled menu on that side. Otherwise, if a `menuId` is\n * provided, then it'll try to find the menu using the menu's `id`\n * property. If a menu is not found then it'll return `null`.\n * @param [menuId] Optionally get the menu by its id, or side.\n * @return Returns the instance of the menu if found, otherwise `null`.\n */\n get(menuId?: string) {\n return menuController.get(menuId);\n }\n\n /**\n * @return Returns the instance of the menu already opened, otherwise `null`.\n */\n getOpen() {\n return menuController.getOpen();\n }\n\n /**\n * @return Returns an array of all menu instances.\n */\n getMenus() {\n return menuController.getMenus();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PickerOptions, pickerController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PickerController extends OverlayBaseController<PickerOptions, HTMLIonPickerElement> {\n constructor() {\n super(pickerController);\n }\n}\n","import { ComponentFactoryResolver, Injectable, Injector } from '@angular/core';\nimport { ModalOptions, modalController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\nimport { AngularDelegate } from './angular-delegate';\n\n@Injectable()\nexport class ModalController extends OverlayBaseController<ModalOptions, HTMLIonModalElement> {\n\n constructor(\n private angularDelegate: AngularDelegate,\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n ) {\n super(modalController);\n }\n\n create(opts: ModalOptions): Promise<HTMLIonModalElement> {\n return super.create({\n ...opts,\n delegate: this.angularDelegate.create(this.resolver, this.injector)\n });\n }\n}\n","import { ComponentFactoryResolver, Injectable, Injector } from '@angular/core';\nimport { PopoverOptions, popoverController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\nimport { AngularDelegate } from './angular-delegate';\n\n@Injectable()\nexport class PopoverController extends OverlayBaseController<PopoverOptions, HTMLIonPopoverElement> {\n\n constructor(\n private angularDelegate: AngularDelegate,\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n ) {\n super(popoverController);\n }\n\n create(opts: PopoverOptions): Promise<HTMLIonPopoverElement> {\n return super.create({\n ...opts,\n delegate: this.angularDelegate.create(this.resolver, this.injector)\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToastOptions, toastController } from '@ionic/core';\n\nimport { OverlayBaseController } from '../util/overlay';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToastController extends OverlayBaseController<ToastOptions, HTMLIonToastElement> {\n constructor() {\n super(toastController);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DomController {\n\n /**\n * Schedules a task to run during the READ phase of the next frame.\n * This task should only read the DOM, but never modify it.\n */\n read(cb: RafCallback) {\n getQueue().read(cb);\n }\n\n /**\n * Schedules a task to run during the WRITE phase of the next frame.\n * This task should write the DOM, but never READ it.\n */\n write(cb: RafCallback) {\n getQueue().write(cb);\n }\n}\n\nconst getQueue = () => {\n const win = typeof (window as any) !== 'undefined' ? window : null as any;\n\n if (win != null) {\n const Ionic = win.Ionic;\n if (Ionic && Ionic.queue) {\n return Ionic.queue;\n }\n\n return {\n read: (cb: any) => win.requestAnimationFrame(cb),\n write: (cb: any) => win.requestAnimationFrame(cb)\n };\n }\n\n return {\n read: (cb: any) => cb(),\n write: (cb: any) => cb()\n };\n};\n\nexport type RafCallback = (timeStamp?: number) => void;\n","import { Injectable } from '@angular/core';\nimport { Animation, createAnimation, getTimeGivenProgression } from '@ionic/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AnimationController {\n /**\n * Create a new animation\n */\n create(animationId?: string): Animation {\n return createAnimation(animationId);\n }\n\n /**\n * EXPERIMENTAL\n *\n * Given a progression and a cubic bezier function,\n * this utility returns the time value(s) at which the\n * cubic bezier reaches the given time progression.\n *\n * If the cubic bezier never reaches the progression\n * the result will be an empty array.\n *\n * This is most useful for switching between easing curves\n * when doing a gesture animation (i.e. going from linear easing\n * during a drag, to another easing when `progressEnd` is called)\n */\n easingTime(p0: number[], p1: number[], p2: number[], p3: number[], progression: number): number[] {\n return getTimeGivenProgression(p0, p1, p2, p3, progression);\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Gesture, GestureConfig, createGesture } from '@ionic/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GestureController {\n constructor(private zone: NgZone) {}\n /**\n * Create a new gesture\n */\n create(opts: GestureConfig, runInsideAngularZone = false): Gesture {\n if (runInsideAngularZone) {\n Object.getOwnPropertyNames(opts).forEach(key => {\n if (typeof opts[key] === 'function') {\n const fn = opts[key];\n opts[key] = (...props) => this.zone.run(() => fn(...props));\n }\n });\n }\n\n return createGesture(opts);\n }\n}\n","import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';\n\nexport class IonicRouteStrategy implements RouteReuseStrategy {\n\n shouldDetach(_route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n shouldAttach(_route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n store(_route: ActivatedRouteSnapshot, _detachedTree: DetachedRouteHandle): void {\n return;\n }\n\n retrieve(_route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n return null;\n }\n\n shouldReuseRoute(\n future: ActivatedRouteSnapshot,\n curr: ActivatedRouteSnapshot\n ): boolean {\n if (future.routeConfig !== curr.routeConfig) {\n return false;\n }\n\n // checking router params\n const futureParams = future.params;\n const currentParams = curr.params;\n const keysA = Object.keys(futureParams);\n const keysB = Object.keys(currentParams);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (const key of keysA) {\n if (currentParams[key] !== futureParams[key]) {\n return false;\n }\n }\n return true;\n }\n}\n","import { NgZone } from '@angular/core';\nimport { applyPolyfills, defineCustomElements } from '@ionic/core/loader';\n\nimport { Config } from './providers/config';\nimport { IonicWindow } from './types/interfaces';\nimport { raf } from './util/util';\n\nexport const appInitialize = (config: Config, doc: Document, zone: NgZone) => {\n return (): any => {\n const win: IonicWindow | undefined = doc.defaultView as any;\n if (win && typeof (window as any) !== 'undefined') {\n const Ionic = win.Ionic = win.Ionic || {};\n\n Ionic.config = {\n ...config,\n _zoneGate: (h: any) => zone.run(h)\n };\n\n const aelFn = '__zone_symbol__addEventListener' in (doc.body as any)\n ? '__zone_symbol__addEventListener'\n : 'addEventListener';\n\n return applyPolyfills().then(() => {\n return defineCustomElements(win, {\n exclude: ['ion-tabs', 'ion-tab'],\n syncQueue: true,\n raf,\n jmp: (h: any) => zone.runOutsideAngular(h),\n ael(elm, eventName, cb, opts) {\n (elm as any)[aelFn](eventName, cb, opts);\n },\n rel(elm, eventName, cb, opts) {\n elm.removeEventListener(eventName, cb, opts);\n }\n });\n });\n }\n };\n};\n","import { CommonModule, DOCUMENT } from '@angular/common';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule, NgZone } from '@angular/core';\nimport { IonicConfig } from '@ionic/core';\n\nimport { appInitialize } from './app-initialize';\nimport { BooleanValueAccessor } from './directives/control-value-accessors/boolean-value-accessor';\nimport { NumericValueAccessor } from './directives/control-value-accessors/numeric-value-accesssor';\nimport { RadioValueAccessor } from './directives/control-value-accessors/radio-value-accessor';\nimport { SelectValueAccessor } from './directives/control-value-accessors/select-value-accessor';\nimport { TextValueAccessor } from './directives/control-value-accessors/text-value-accessor';\nimport { IonBackButtonDelegate } from './directives/navigation/ion-back-button';\nimport { IonRouterOutlet } from './directives/navigation/ion-router-outlet';\nimport { IonTabs } from './directives/navigation/ion-tabs';\nimport { NavDelegate } from './directives/navigation/nav-delegate';\nimport { RouterLinkDelegate } from './directives/navigation/router-link-delegate';\nimport { 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, IonNavLink, 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';\nimport { VirtualFooter } from './directives/virtual-scroll/virtual-footer';\nimport { VirtualHeader } from './directives/virtual-scroll/virtual-header';\nimport { VirtualItem } from './directives/virtual-scroll/virtual-item';\nimport { IonVirtualScroll } from './directives/virtual-scroll/virtual-scroll';\nimport { AngularDelegate } from './providers/angular-delegate';\nimport { ConfigToken } from './providers/config';\nimport { ModalController } from './providers/modal-controller';\nimport { PopoverController } from './providers/popover-controller';\n\nconst DECLARATIONS = [\n // proxies\n IonApp,\n IonAvatar,\n IonBackButton,\n IonBackdrop,\n IonBadge,\n IonButton,\n IonButtons,\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardSubtitle,\n IonCardTitle,\n IonCheckbox,\n IonChip,\n IonCol,\n IonContent,\n IonDatetime,\n IonFab,\n IonFabButton,\n IonFabList,\n IonFooter,\n IonGrid,\n IonHeader,\n IonIcon,\n IonImg,\n IonInfiniteScroll,\n IonInfiniteScrollContent,\n IonInput,\n IonItem,\n IonItemDivider,\n IonItemGroup,\n IonItemOption,\n IonItemOptions,\n IonItemSliding,\n IonLabel,\n IonList,\n IonListHeader,\n IonMenu,\n IonMenuButton,\n IonMenuToggle,\n IonNav,\n IonNavLink,\n IonNote,\n IonProgressBar,\n IonRadio,\n IonRadioGroup,\n IonRange,\n IonRefresher,\n IonRefresherContent,\n IonReorder,\n IonReorderGroup,\n IonRippleEffect,\n IonRow,\n IonSearchbar,\n IonSegment,\n IonSegmentButton,\n IonSelect,\n IonSelectOption,\n IonSkeletonText,\n IonSlide,\n IonSlides,\n IonSpinner,\n IonSplitPane,\n IonTabBar,\n IonTabButton,\n IonText,\n IonTextarea,\n IonThumbnail,\n IonToggle,\n IonToolbar,\n IonTitle,\n\n IonTabs,\n\n // ngModel accessors\n BooleanValueAccessor,\n NumericValueAccessor,\n RadioValueAccessor,\n SelectValueAccessor,\n TextValueAccessor,\n\n // navigation\n IonRouterOutlet,\n IonBackButtonDelegate,\n NavDelegate,\n RouterLinkDelegate,\n\n // virtual scroll\n VirtualFooter,\n VirtualHeader,\n VirtualItem,\n IonVirtualScroll\n];\n\n@NgModule({\n declarations: DECLARATIONS,\n exports: DECLARATIONS,\n providers: [AngularDelegate, ModalController, PopoverController],\n imports: [CommonModule]\n})\nexport class IonicModule {\n static forRoot(config?: IonicConfig): ModuleWithProviders<IonicModule> {\n return {\n ngModule: IonicModule,\n providers: [\n {\n provide: ConfigToken,\n useValue: config\n },\n {\n provide: APP_INITIALIZER,\n useFactory: appInitialize,\n multi: true,\n deps: [\n ConfigToken,\n DOCUMENT,\n NgZone\n ]\n }\n ]\n };\n }\n}\n","// DIRECTIVES\nexport { BooleanValueAccessor } from './directives/control-value-accessors/boolean-value-accessor';\nexport { NumericValueAccessor } from './directives/control-value-accessors/numeric-value-accesssor';\nexport { RadioValueAccessor } from './directives/control-value-accessors/radio-value-accessor';\nexport { SelectValueAccessor } from './directives/control-value-accessors/select-value-accessor';\nexport { TextValueAccessor } from './directives/control-value-accessors/text-value-accessor';\nexport { IonTabs } from './directives/navigation/ion-tabs';\nexport { IonBackButtonDelegate } from './directives/navigation/ion-back-button';\nexport { NavDelegate } from './directives/navigation/nav-delegate';\nexport { IonRouterOutlet } from './directives/navigation/ion-router-outlet';\nexport { RouterLinkDelegate } from './directives/navigation/router-link-delegate';\nexport { NavParams } from './directives/navigation/nav-params';\nexport { IonVirtualScroll } from './directives/virtual-scroll/virtual-scroll';\nexport { VirtualItem } from './directives/virtual-scroll/virtual-item';\nexport { VirtualHeader } from './directives/virtual-scroll/virtual-header';\nexport { VirtualFooter } from './directives/virtual-scroll/virtual-footer';\nexport * from './directives/proxies';\n\n// PROVIDERS\nexport { AngularDelegate } from './providers/angular-delegate';\nexport { ActionSheetController } from './providers/action-sheet-controller';\nexport { AlertController } from './providers/alert-controller';\nexport { LoadingController } from './providers/loading-controller';\nexport { MenuController } from './providers/menu-controller';\nexport { PickerController } from './providers/picker-controller';\nexport { ModalController } from './providers/modal-controller';\nexport { Platform } from './providers/platform';\nexport { PopoverController } from './providers/popover-controller';\nexport { ToastController } from './providers/toast-controller';\nexport { NavController } from './providers/nav-controller';\nexport { DomController } from './providers/dom-controller';\nexport { Config } from './providers/config';\nexport { AnimationController } from './providers/animation-controller';\nexport { GestureController } from './providers/gesture-controller';\n\n// ROUTER STRATEGY\nexport { IonicRouteStrategy } from './util/ionic-router-reuse-strategy';\n\n// TYPES\nexport * from './types/ionic-lifecycle-hooks';\n\n// PACKAGE MODULE\nexport { IonicModule } from './ionic-module';\n\n// UTILS\nexport { IonicSafeString, getPlatforms, isPlatform, createAnimation } from '@ionic/core';\n\n// CORE TYPES\nexport {\n Animation,\n AnimationBuilder,\n AnimationCallbackOptions,\n AnimationDirection,\n AnimationFill,\n AnimationKeyFrames,\n AnimationLifecycle,\n Gesture,\n GestureConfig,\n GestureDetail,\n mdTransitionAnimation,\n iosTransitionAnimation,\n NavComponentWithProps,\n\n SpinnerTypes,\n\n ActionSheetOptions,\n ActionSheetButton,\n\n AlertOptions,\n AlertInput,\n AlertTextareaAttributes,\n AlertInputAttributes,\n AlertButton,\n\n LoadingOptions,\n\n ModalOptions,\n\n PickerOptions,\n PickerButton,\n PickerColumn,\n PickerColumnOption,\n\n PopoverOptions,\n\n ToastOptions,\n ToastButton\n\n} from '@ionic/core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {appInitialize as ɵf} from './app-initialize';\nexport {ValueAccessor as ɵb} from './directives/control-value-accessors/value-accessor';\nexport {ProxyCmp as ɵc} from './directives/proxies-utils';\nexport {VirtualContext as ɵd} from './directives/virtual-scroll/virtual-utils';\nexport {ConfigToken as ɵa} from './providers/config';\nexport {OverlayBaseController as ɵe} from './util/overlay';"],"names":["tslib_1.__decorate","tslib_1.__extends","tslib_1.__param","tslib_1.__values"],"mappings":"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"}
\No newline at end of file