UNPKG

221 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","raf","h","__zone_symbol__requestAnimationFrame","requestAnimationFrame","setTimeout","ValueAccessor","el","onChange","onTouched","writeValue","nativeElement","lastValue","setIonicClasses","handleChangeEvent","_handleBlurEvent","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","disabled","tslib_1.__decorate","HostListener","element","input","classes","getClasses","setClasses","item","closest","classList","startsWith","substr","forEach","remove","add","search","BooleanValueAccessor","_super","tslib_1.__extends","checked","_handleIonChange","ElementRef","BooleanValueAccessor_1","Directive","selector","providers","provide","NG_VALUE_ACCESSOR","useExisting","multi","NumericValueAccessor","parseFloat","NumericValueAccessor_1","RadioValueAccessor","_handleIonSelect","RadioValueAccessor_1","SelectValueAccessor","_handleChangeEvent","SelectValueAccessor_1","TextValueAccessor","_handleInputEvent","TextValueAccessor_1","Platform","doc","zone","_this","backButton","Subject","pause","resume","resize","run","readyResolve","win","defaultView","subscribeWithPriority","priority","callback","subscribe","ev","register","proxyEvent","_readyPromise","res","addEventListener","once","is","platformName","isPlatform","platforms","getPlatforms","ready","dir","getQueryParam","readQueryParam","location","href","isLandscape","isPortrait","matchMedia","matches","testUserAgent","expression","nav","navigator","userAgent","indexOf","url","width","innerWidth","height","innerHeight","Inject","args","DOCUMENT","NgZone","Injectable","providedIn","tslib_1.__param","replace","results","RegExp","exec","decodeURIComponent","emitter","eventName","detail","undefined","NavController","platform","serializer","router","direction","DEFAULT_DIRECTION","animated","DEFAULT_ANIMATED","guessDirection","lastNavId","events","NavigationStart","id","restoredState","navigationId","guessAnimation","navigateForward","options","setDirection","animationDirection","navigate","navigateBack","navigateRoot","back","outlet","topOutlet","_a","parentOutlet","getAnimation","setTopOutlet","consumeTransition","animation","isArray","urlTree","parse","toString","queryParams","fragment","navigateByUrl","Location","UrlSerializer","Router","type","Optional","proxyOutputs","instance","fromEvent","ProxyCmp","opts","cls","Cmp","inputs","Prototype","get","set","val","z","runOutsideAngular","methods","methodName","proxyMethods","IonApp","detach","ChangeDetectorRef","Component","changeDetection","ChangeDetectionStrategy","OnPush","template","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","Config","fallback","getConfig","getBoolean","getNumber","console","warn","ConfigToken","InjectionToken","window","Ionic","config","NavParams","data","param","AngularDelegate","appRef","resolver","injector","AngularFrameworkDelegate","ApplicationRef","elRefMap","WeakMap","elEventsMap","attachViewToDom","container","component","params","cssClasses","attachView","removeViewFromDom","_container","componentRef","destroy","delete","unbindEvents","factory","resolveComponentFactory","childInjector","Injector","getProviders","parent","createComponent","hostElement","cssClasses_1","tslib_1.__values","cssClasses_1_1","clazz","bindLifecycleEvents","appendChild","hostView","changeDetectorRef","reattach","LIFECYCLES","LIFECYCLE_WILL_ENTER","LIFECYCLE_DID_ENTER","LIFECYCLE_WILL_LEAVE","LIFECYCLE_DID_LEAVE","LIFECYCLE_WILL_UNLOAD","unregisters","filter","map","handler","removeEventListener","NavParamsToken","useValue","useFactory","provideNavParamsInjectable","deps","setRoot","views","view","stackId","setForward","setBack","getUrl","activatedRoute","createUrlTree","relativeTo","serializeUrl","computeStackId","prefixUrl","segments","toSegments","path","split","trim","destroyView","ref","unlistenEvents","StackController","tabsPrefix","containerEl","navCtrl","skipTransition","nextId","createView","getExistingView","activatedUrlKey","find","vw","setActive","enteringView","leavingView","activeView","tabSwitch","isTabSwitch","currentNavigation","viewsSnapshot","slice","getCurrentNavigation","navigations","extras","replaceUrl","splice","reused","includes","insertView","detectChanges","wait","transition","canGoBack","cleanupAsync","deep","getActiveStackId","getStack","viewSavedData","savedData","primaryOutlet","route","_routerState","snapshot","savedExtras","startBackTransition","enteringView_1","endBackTransition","shouldComplete","cleanup","getLastUrl","getRootUrl","showGoBack","progressAnimation","enteringEl","leavingEl","parentElement","commit","deepWait","duration","task","runningTask","activeRoute","locationWithoutFragment","setAttribute","IonRouterOutlet","parentContexts","name","tabs","commonLocation","elementRef","activated","activatedView","_activatedRoute","proxyMap","currentActivatedRoute$","BehaviorSubject","stackEvents","EventEmitter","activateEvents","deactivateEvents","nativeEl","PRIMARY_OUTLET","stackCtrl","onChildOutletCreated","swipe","_swipeGesture","swipeHandler","canStart","onStart","onEnd","shouldContinue","ngOnDestroy","getContext","ngOnInit","context","activateWith","componentOnReady","swipeGesture","mode","Error","attach","_ref","deactivate","Map","children","contextSnapshot","emit","cmpRef","isActivated","saved","updateActivatedRouteProxy","_futureSnapshot","routeConfig","childContexts","getOrCreateContext","component$","activatedRouteProxy","createActivatedRouteProxy","OutletInjector","active","getLastRouteView","getRootView","proxy","ActivatedRoute","_paramMap","proxyObservable","_queryParamMap","pipe","switchMap","current","distinctUntilChanged","ChildrenOutletContexts","ViewContainerRef","ComponentFactoryResolver","Attribute","SkipSelf","Output","exportAs","token","notFoundValue","IonTabs","ionTabsWillChange","ionTabsDidChange","onPageSelected","tabBar","selectedTab","tab","select","alreadySelected","tabRootUrl","rootView","navigationExtras","lastRoute","getSelected","ViewChild","read","static","ContentChild","IonBackButtonDelegate","routerOutlet","onClick","preventDefault","defaultHref","NavDelegate","angularDelegate","delegate","RouterLinkDelegate","locationStrategy","routerLink","routerDirection","updateTargetUrlAndHref","ngOnChanges","subscription","unsubscribe","prepareExternalUrl","LocationStrategy","RouterLink","VirtualFooter","templateRef","TemplateRef","VirtualHeader","VirtualItem","viewContainer","IonVirtualScroll","iterableDiffers","refMap","nodeRender","bind","changes","trackBy","currentValue","differ","ngDoCheck","items","diff","checkRange","cell","index","node","ctx","$implicit","itmTmp","createEmbeddedView","getComponent","getElement","hdrTmp","ftrTmp","IterableDiffers","rootNodes","nodeType","OverlayBaseController","ctrl","dismiss","role","getTop","ActionSheetController","actionSheetController","AlertController","alertController","LoadingController","loadingController","MenuController","open","menuId","menuController","close","toggle","enable","shouldEnable","isOpen","isEnabled","getOpen","getMenus","PickerController","pickerController","ModalController","modalController","PopoverController","popoverController","ToastController","toastController","DomController","cb","getQueue","write","queue","AnimationController","animationId","createAnimation","easingTime","p0","p1","p2","p3","progression","getTimeGivenProgression","GestureController","createGesture","IonicRouteStrategy","shouldDetach","_route","shouldAttach","store","_detachedTree","retrieve","shouldReuseRoute","future","curr","futureParams","currentParams","keysA","keys","keysB","keysA_1","keysA_1_1","didInitialize","appInitialize","_zoneGate","aelFn_1","applyPolyfills","defineCustomElements","exclude","syncQueue","jmp","ael","elm","rel","DECLARATIONS","IonicModule","forRoot","ngModule","IonicModule_1","APP_INITIALIZER","NgModule","declarations","exports","imports","CommonModule"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","\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 { ElementRef, HostListener } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport { raf } from '../../util/util';\n\nexport class ValueAccessor implements ControlValueAccessor {\n\n private onChange: (value: any) => void = () => {/**/};\n private onTouched: () => void = () => {/**/};\n protected lastValue: any;\n\n constructor(protected el: ElementRef) {}\n\n writeValue(value: any) {\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\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 } 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(el: ElementRef) {\n super(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 } 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(el: ElementRef) {\n super(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 } 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(el: ElementRef) {\n super(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 } 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(el: ElementRef) {\n super(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 } 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(el: ElementRef) {\n super(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, Platforms, getPlatforms, isPlatform } from '@ionic/core';\nimport { Subject, Subscription } from 'rxjs';\n\nexport interface BackButtonEmitter extends Subject<BackButtonEventDetail> {\n subscribeWithPriority(priority: number, callback: () => 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 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 ev.register(priority, () => zone.run(callback))\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\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 * | 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 portait 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 { 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 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 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, () => this.pop());\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);\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);\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);\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);\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') {\n this.direction = direction;\n this.animated = getAnimation(direction, animated, animationDirection);\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\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\n return {\n direction,\n animation\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","/* 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\n// tslint:disable-next-line: only-arrow-functions\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","/* tslint:disable */\n/* auto-generated angular directive proxies */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, NgZone } from '@angular/core';\nimport { ProxyCmp, proxyOutputs } from './proxies-utils';\n\nimport { Components } from '@ionic/core';\n\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}\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}\n\nexport declare interface IonBackButton extends Components.IonBackButton {}\n@ProxyCmp({inputs: ['color', 'defaultHref', 'disabled', 'icon', 'mode', 'text', 'type']})\n@Component({ selector: 'ion-back-button', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['color', 'defaultHref', 'disabled', 'icon', 'mode', '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}\n\nexport declare interface IonBackdrop extends Components.IonBackdrop {}\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}\n\nexport declare interface IonBadge extends Components.IonBadge {}\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}\n\nexport declare interface IonButton extends Components.IonButton {}\n@ProxyCmp({inputs: ['buttonType', 'color', 'disabled', 'download', 'expand', 'fill', 'href', 'mode', 'rel', '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', '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}\n\nexport declare interface IonButtons extends Components.IonButtons {}\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}\n\nexport declare interface IonCard extends Components.IonCard {}\n@ProxyCmp({inputs: ['button', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerDirection', 'target', 'type']})\n@Component({ selector: 'ion-card', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['button', 'color', 'disabled', 'download', 'href', 'mode', 'rel', '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}\n\nexport declare interface IonCardContent extends Components.IonCardContent {}\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}\n\nexport declare interface IonCardHeader extends Components.IonCardHeader {}\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}\n\nexport declare interface IonCardSubtitle extends Components.IonCardSubtitle {}\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}\n\nexport declare interface IonCardTitle extends Components.IonCardTitle {}\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}\n\nexport declare interface IonCheckbox extends Components.IonCheckbox {}\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}\n\nexport declare interface IonChip extends Components.IonChip {}\n@ProxyCmp({inputs: ['color', 'mode', 'outline']})\n@Component({ selector: 'ion-chip', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['color', '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}\n\nexport declare interface IonCol extends Components.IonCol {}\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}\n\nexport declare interface IonContent extends Components.IonContent {}\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}\n\nexport declare interface IonDatetime extends Components.IonDatetime {}\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}\n\nexport declare interface IonFab extends Components.IonFab {}\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}\n\nexport declare interface IonFabButton extends Components.IonFabButton {}\n@ProxyCmp({inputs: ['activated', 'color', 'disabled', 'download', 'href', 'mode', 'rel', 'routerDirection', 'show', 'size', 'target', 'translucent', 'type']})\n@Component({ selector: 'ion-fab-button', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['activated', 'color', 'disabled', 'download', 'href', 'mode', 'rel', '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}\n\nexport declare interface IonFabList extends Components.IonFabList {}\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}\n\nexport declare interface IonFooter extends Components.IonFooter {}\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}\n\nexport declare interface IonGrid extends Components.IonGrid {}\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}\n\nexport declare interface IonHeader extends Components.IonHeader {}\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}\n\nexport declare interface IonIcon extends Components.IonIcon {}\n@ProxyCmp({inputs: ['ariaLabel', 'color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', 'size', 'src']})\n@Component({ selector: 'ion-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['ariaLabel', 'color', 'flipRtl', 'icon', 'ios', 'lazy', 'md', 'mode', 'name', '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}\n\nexport declare interface IonImg extends Components.IonImg {}\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}\n\nexport declare interface IonInfiniteScroll extends Components.IonInfiniteScroll {}\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}\n\nexport declare interface IonInfiniteScrollContent extends Components.IonInfiniteScrollContent {}\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}\n\nexport declare interface IonInput extends Components.IonInput {}\n@ProxyCmp({inputs: ['accept', 'autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearInput', 'clearOnEdit', 'color', 'debounce', 'disabled', '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', '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}\n\nexport declare interface IonItem extends Components.IonItem {}\n@ProxyCmp({inputs: ['button', 'color', 'detail', 'detailIcon', 'disabled', 'download', 'href', 'lines', 'mode', 'rel', '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', '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}\n\nexport declare interface IonItemDivider extends Components.IonItemDivider {}\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}\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}\n\nexport declare interface IonItemOption extends Components.IonItemOption {}\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}\n\nexport declare interface IonItemOptions extends Components.IonItemOptions {}\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}\n\nexport declare interface IonItemSliding extends Components.IonItemSliding {}\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}\n\nexport declare interface IonLabel extends Components.IonLabel {}\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}\n\nexport declare interface IonList extends Components.IonList {}\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}\n\nexport declare interface IonListHeader extends Components.IonListHeader {}\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}\n\nexport declare interface IonMenu extends Components.IonMenu {}\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}\n\nexport declare interface IonMenuButton extends Components.IonMenuButton {}\n@ProxyCmp({inputs: ['autoHide', 'color', 'disabled', 'menu', 'type']})\n@Component({ selector: 'ion-menu-button', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['autoHide', 'color', 'disabled', 'menu', '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}\n\nexport declare interface IonMenuToggle extends Components.IonMenuToggle {}\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}\n\nexport declare interface IonNav extends Components.IonNav {}\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}\n\nexport declare interface IonNavLink extends Components.IonNavLink {}\n@ProxyCmp({inputs: ['component', 'componentProps', 'routerDirection']})\n@Component({ selector: 'ion-nav-link', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['component', 'componentProps', '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}\n\nexport declare interface IonNote extends Components.IonNote {}\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}\n\nexport declare interface IonProgressBar extends Components.IonProgressBar {}\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}\n\nexport declare interface IonRadio extends Components.IonRadio {}\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}\n\nexport declare interface IonRadioGroup extends Components.IonRadioGroup {}\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}\n\nexport declare interface IonRange extends Components.IonRange {}\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}\n\nexport declare interface IonRefresher extends Components.IonRefresher {}\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}\n\nexport declare interface IonRefresherContent extends Components.IonRefresherContent {}\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}\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}\n\nexport declare interface IonReorderGroup extends Components.IonReorderGroup {}\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}\n\nexport declare interface IonRippleEffect extends Components.IonRippleEffect {}\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}\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}\n\nexport declare interface IonSearchbar extends Components.IonSearchbar {}\n@ProxyCmp({inputs: ['animated', 'autocomplete', 'autocorrect', 'cancelButtonIcon', 'cancelButtonText', 'clearIcon', 'color', 'debounce', 'disabled', 'inputmode', 'mode', 'placeholder', 'searchIcon', 'showCancelButton', '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', 'inputmode', 'mode', 'placeholder', 'searchIcon', 'showCancelButton', '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}\n\nexport declare interface IonSegment extends Components.IonSegment {}\n@ProxyCmp({inputs: ['color', 'disabled', 'mode', 'scrollable', 'value']})\n@Component({ selector: 'ion-segment', changeDetection: ChangeDetectionStrategy.OnPush, template: '<ng-content></ng-content>', inputs: ['color', 'disabled', 'mode', 'scrollable', '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}\n\nexport declare interface IonSegmentButton extends Components.IonSegmentButton {}\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}\n\nexport declare interface IonSelect extends Components.IonSelect {}\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}\n\nexport declare interface IonSelectOption extends Components.IonSelectOption {}\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}\n\nexport declare interface IonSkeletonText extends Components.IonSkeletonText {}\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}\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}\n\nexport declare interface IonSlides extends Components.IonSlides {}\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}\n\nexport declare interface IonSpinner extends Components.IonSpinner {}\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}\n\nexport declare interface IonSplitPane extends Components.IonSplitPane {}\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}\n\nexport declare interface IonTabBar extends Components.IonTabBar {}\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}\n\nexport declare interface IonTabButton extends Components.IonTabButton {}\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}\n\nexport declare interface IonText extends Components.IonText {}\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}\n\nexport declare interface IonTextarea extends Components.IonTextarea {}\n@ProxyCmp({inputs: ['autoGrow', 'autocapitalize', 'autofocus', 'clearOnEdit', 'color', 'cols', 'debounce', 'disabled', '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', '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}\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}\n\nexport declare interface IonTitle extends Components.IonTitle {}\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}\n\nexport declare interface IonToggle extends Components.IonToggle {}\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}\n\nexport declare interface IonToolbar extends Components.IonToolbar {}\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 { 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}\n","import { Location } from '@angular/common';\nimport { ComponentRef, NgZone } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { 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 let { direction, animation } = this.navCtrl.consumeTransition();\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 // 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)\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\n return this.navCtrl.navigateBack(url, view.savedExtras).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 return this.wait(() => {\n return this.transition(\n enteringView, // entering view\n leavingView, // leaving view\n 'back',\n this.canGoBack(2),\n true\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 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 ) {\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 });\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 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 { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\n\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', 'swipeGesture']\n})\nexport class IonRouterOutlet implements OnDestroy, OnInit {\n nativeEl: HTMLIonRouterOutletElement;\n\n private activated: ComponentRef<any> | null = null;\n private 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 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),\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 if ((this.nativeEl as any).componentOnReady) {\n this.nativeEl.componentOnReady().then(() => {\n if (this._swipeGesture === undefined) {\n this.swipeGesture = this.config.getBoolean('swipeBackEnabled', (this.nativeEl as any).mode === 'ios');\n }\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 this.activatedView.savedData = new Map(this.getContext()!.children['contexts']);\n\n /**\n * Ensure we are saving the NavigationExtras\n * data otherwise it will be lost\n */\n this.activatedView.savedExtras = {};\n const context = this.getContext()!;\n\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 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';\n\nimport { NavController } from '../../providers/nav-controller';\n\nimport { IonRouterOutlet } from './ion-router-outlet';\n\n@Directive({\n selector: 'ion-back-button',\n inputs: ['defaultHref'],\n})\nexport class IonBackButtonDelegate {\n\n defaultHref: string | undefined | null;\n\n constructor(\n @Optional() private routerOutlet: IonRouterOutlet,\n private navCtrl: NavController\n ) {}\n\n /**\n * @internal\n */\n @HostListener('click', ['$event'])\n onClick(ev: Event) {\n if (this.routerOutlet && this.routerOutlet.canGoBack()) {\n this.routerOutlet.pop();\n ev.preventDefault();\n } else if (this.defaultHref != null) {\n this.navCtrl.navigateBack(this.defaultHref);\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 { RouterDirection } from '@ionic/core';\nimport { Subscription } from 'rxjs';\n\nimport { NavController } from '../../providers/nav-controller';\n\n@Directive({\n selector: '[routerLink]',\n inputs: ['routerDirection']\n})\nexport class RouterLinkDelegate {\n\n private subscription?: Subscription;\n\n routerDirection: RouterDirection = 'forward';\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);\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[];\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 } from '@angular/core';\nimport { Gesture, GestureConfig, createGesture } from '@ionic/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GestureController {\n /**\n * Create a new gesture\n */\n create(opts: GestureConfig): Gesture {\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\nlet didInitialize = false;\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 if (didInitialize) {\n console.warn('Ionic Angular was already initialized. Make sure IonicModule.forRoot() is just called once.');\n }\n didInitialize = true;\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"]}
\No newline at end of file