@ionic/angular 7.3.4-dev.11694015543.18bc484f → 7.3.4-dev.11694102380.128deb56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/README.md +20 -0
  2. package/app-initialize.d.ts +1 -1
  3. package/common/directives/navigation/back-button.d.ts +26 -0
  4. package/common/directives/navigation/nav.d.ts +13 -0
  5. package/common/directives/navigation/router-link-delegate.d.ts +50 -0
  6. package/common/directives/navigation/router-outlet.d.ts +103 -0
  7. package/{directives → common/directives}/navigation/stack-utils.d.ts +1 -1
  8. package/common/directives/navigation/tabs.d.ts +74 -0
  9. package/common/index.d.ts +26 -0
  10. package/common/overlays/modal.d.ts +50 -0
  11. package/common/overlays/popover.d.ts +46 -0
  12. package/{providers → common/providers}/action-sheet-controller.d.ts +2 -2
  13. package/{providers → common/providers}/alert-controller.d.ts +2 -2
  14. package/{providers → common/providers}/angular-delegate.d.ts +1 -1
  15. package/{providers → common/providers}/animation-controller.d.ts +1 -1
  16. package/{providers → common/providers}/config.d.ts +1 -1
  17. package/{providers → common/providers}/gesture-controller.d.ts +1 -1
  18. package/{providers → common/providers}/loading-controller.d.ts +2 -2
  19. package/{providers → common/providers}/modal-controller.d.ts +2 -2
  20. package/{providers → common/providers}/nav-controller.d.ts +2 -2
  21. package/{providers → common/providers}/picker-controller.d.ts +2 -2
  22. package/{providers → common/providers}/platform.d.ts +1 -1
  23. package/{providers → common/providers}/popover-controller.d.ts +2 -2
  24. package/{providers → common/providers}/toast-controller.d.ts +2 -2
  25. package/{types → common/types}/interfaces.d.ts +0 -4
  26. package/common/utils/proxy.d.ts +8 -0
  27. package/directives/navigation/ion-back-button.d.ts +6 -16
  28. package/directives/navigation/ion-nav.d.ts +8 -0
  29. package/directives/navigation/ion-router-outlet.d.ts +4 -122
  30. package/directives/navigation/ion-tabs.d.ts +4 -64
  31. package/directives/navigation/router-link-delegate.d.ts +7 -41
  32. package/directives/overlays/modal.d.ts +3 -47
  33. package/directives/overlays/popover.d.ts +3 -43
  34. package/directives/proxies-list.d.ts +1 -1
  35. package/directives/proxies.d.ts +0 -26
  36. package/esm2020/app-initialize.mjs +1 -1
  37. package/esm2020/common/directives/navigation/back-button.mjs +59 -0
  38. package/esm2020/common/directives/navigation/nav-params.mjs +45 -0
  39. package/esm2020/common/directives/navigation/nav.mjs +47 -0
  40. package/esm2020/common/directives/navigation/router-link-delegate.mjs +111 -0
  41. package/esm2020/common/directives/navigation/router-outlet.mjs +461 -0
  42. package/esm2020/common/directives/navigation/stack-controller.mjs +275 -0
  43. package/esm2020/common/directives/navigation/stack-utils.mjs +73 -0
  44. package/esm2020/common/directives/navigation/tabs.mjs +172 -0
  45. package/esm2020/common/index.mjs +26 -0
  46. package/esm2020/common/ionic-angular-common.mjs +5 -0
  47. package/esm2020/common/overlays/modal.mjs +87 -0
  48. package/esm2020/common/overlays/popover.mjs +79 -0
  49. package/esm2020/common/providers/action-sheet-controller.mjs +18 -0
  50. package/esm2020/common/providers/alert-controller.mjs +18 -0
  51. package/esm2020/common/providers/angular-delegate.mjs +152 -0
  52. package/esm2020/common/providers/animation-controller.mjs +37 -0
  53. package/esm2020/common/providers/config.mjs +44 -0
  54. package/esm2020/common/providers/dom-controller.mjs +44 -0
  55. package/esm2020/common/providers/gesture-controller.mjs +31 -0
  56. package/esm2020/common/providers/loading-controller.mjs +18 -0
  57. package/esm2020/common/providers/menu-controller.mjs +100 -0
  58. package/esm2020/common/providers/modal-controller.mjs +25 -0
  59. package/esm2020/common/providers/nav-controller.mjs +221 -0
  60. package/esm2020/common/providers/picker-controller.mjs +18 -0
  61. package/esm2020/common/providers/platform.mjs +246 -0
  62. package/esm2020/common/providers/popover-controller.mjs +25 -0
  63. package/esm2020/common/providers/toast-controller.mjs +18 -0
  64. package/esm2020/common/types/interfaces.mjs +2 -0
  65. package/esm2020/common/utils/overlay.mjs +25 -0
  66. package/esm2020/common/utils/proxy.mjs +47 -0
  67. package/esm2020/common/utils/routing.mjs +55 -0
  68. package/esm2020/directives/navigation/ion-back-button.mjs +15 -36
  69. package/esm2020/directives/navigation/ion-nav.mjs +21 -0
  70. package/esm2020/directives/navigation/ion-router-outlet.mjs +6 -435
  71. package/esm2020/directives/navigation/ion-tabs.mjs +9 -166
  72. package/esm2020/directives/navigation/router-link-delegate.mjs +11 -92
  73. package/esm2020/directives/overlays/modal.mjs +8 -88
  74. package/esm2020/directives/overlays/popover.mjs +8 -87
  75. package/esm2020/directives/proxies-list.mjs +1 -3
  76. package/esm2020/directives/proxies.mjs +1 -53
  77. package/esm2020/index.mjs +4 -21
  78. package/esm2020/ionic-module.mjs +14 -32
  79. package/esm2020/standalone/directives/angular-component-lib/utils.mjs +51 -0
  80. package/esm2020/standalone/directives/icon.mjs +33 -0
  81. package/esm2020/standalone/directives/proxies.mjs +2960 -0
  82. package/esm2020/standalone/index.mjs +12 -0
  83. package/esm2020/standalone/ionic-angular-standalone.mjs +5 -0
  84. package/esm2020/standalone/navigation/back-button.mjs +32 -0
  85. package/esm2020/standalone/navigation/nav.mjs +28 -0
  86. package/esm2020/standalone/navigation/router-link-delegate.mjs +30 -0
  87. package/esm2020/standalone/navigation/router-outlet.mjs +23 -0
  88. package/esm2020/standalone/navigation/tabs.mjs +46 -0
  89. package/esm2020/standalone/overlays/modal.mjs +32 -0
  90. package/esm2020/standalone/overlays/popover.mjs +28 -0
  91. package/esm2020/standalone/providers/ionic-angular.mjs +41 -0
  92. package/fesm2015/ionic-angular-common.mjs +2472 -0
  93. package/fesm2015/ionic-angular-common.mjs.map +1 -0
  94. package/fesm2015/ionic-angular-standalone.mjs +3190 -0
  95. package/fesm2015/ionic-angular-standalone.mjs.map +1 -0
  96. package/fesm2015/ionic-angular.mjs +121 -2471
  97. package/fesm2015/ionic-angular.mjs.map +1 -1
  98. package/fesm2020/ionic-angular-common.mjs +2461 -0
  99. package/fesm2020/ionic-angular-common.mjs.map +1 -0
  100. package/fesm2020/ionic-angular-standalone.mjs +3188 -0
  101. package/fesm2020/ionic-angular-standalone.mjs.map +1 -0
  102. package/fesm2020/ionic-angular.mjs +120 -2461
  103. package/fesm2020/ionic-angular.mjs.map +1 -1
  104. package/index.d.ts +3 -19
  105. package/ionic-module.d.ts +2 -2
  106. package/package.json +18 -2
  107. package/standalone/directives/angular-component-lib/utils.d.ts +9 -0
  108. package/standalone/directives/icon.d.ts +9 -0
  109. package/standalone/directives/proxies.d.ts +1217 -0
  110. package/standalone/index.d.ts +11 -0
  111. package/standalone/navigation/back-button.d.ts +9 -0
  112. package/standalone/navigation/nav.d.ts +8 -0
  113. package/standalone/navigation/router-link-delegate.d.ts +10 -0
  114. package/standalone/navigation/router-outlet.d.ts +6 -0
  115. package/standalone/navigation/tabs.d.ts +12 -0
  116. package/standalone/overlays/modal.d.ts +6 -0
  117. package/standalone/overlays/popover.d.ts +6 -0
  118. package/standalone/providers/ionic-angular.d.ts +3 -0
  119. package/test/README.md +8 -0
  120. package/directives/navigation/nav-delegate.d.ts +0 -9
  121. package/esm2020/directives/navigation/nav-delegate.mjs +0 -42
  122. package/esm2020/directives/navigation/nav-params.mjs +0 -45
  123. package/esm2020/directives/navigation/stack-controller.mjs +0 -275
  124. package/esm2020/directives/navigation/stack-utils.mjs +0 -73
  125. package/esm2020/ionic-core.mjs +0 -6
  126. package/esm2020/providers/action-sheet-controller.mjs +0 -18
  127. package/esm2020/providers/alert-controller.mjs +0 -18
  128. package/esm2020/providers/angular-delegate.mjs +0 -152
  129. package/esm2020/providers/animation-controller.mjs +0 -37
  130. package/esm2020/providers/config.mjs +0 -44
  131. package/esm2020/providers/dom-controller.mjs +0 -44
  132. package/esm2020/providers/gesture-controller.mjs +0 -31
  133. package/esm2020/providers/loading-controller.mjs +0 -18
  134. package/esm2020/providers/menu-controller.mjs +0 -100
  135. package/esm2020/providers/modal-controller.mjs +0 -25
  136. package/esm2020/providers/nav-controller.mjs +0 -221
  137. package/esm2020/providers/picker-controller.mjs +0 -18
  138. package/esm2020/providers/platform.mjs +0 -246
  139. package/esm2020/providers/popover-controller.mjs +0 -25
  140. package/esm2020/providers/toast-controller.mjs +0 -18
  141. package/esm2020/types/interfaces.mjs +0 -2
  142. package/esm2020/util/ionic-router-reuse-strategy.mjs +0 -55
  143. package/esm2020/util/overlay.mjs +0 -25
  144. package/ionic-core.d.ts +0 -2
  145. /package/{directives → common/directives}/navigation/nav-params.d.ts +0 -0
  146. /package/{directives → common/directives}/navigation/stack-controller.d.ts +0 -0
  147. /package/{providers → common/providers}/dom-controller.d.ts +0 -0
  148. /package/{providers → common/providers}/menu-controller.d.ts +0 -0
  149. /package/{util → common/utils}/overlay.d.ts +0 -0
  150. /package/{util/ionic-router-reuse-strategy.d.ts → common/utils/routing.d.ts} +0 -0
@@ -0,0 +1,11 @@
1
+ export { IonBackButton } from './navigation/back-button';
2
+ export { IonModal } from './overlays/modal';
3
+ export { IonPopover } from './overlays/popover';
4
+ export { IonRouterOutlet } from './navigation/router-outlet';
5
+ export { IonRouterLink, IonRouterLinkWithHref } from './navigation/router-link-delegate';
6
+ export { IonTabs } from './navigation/tabs';
7
+ export { provideIonicAngular } from './providers/ionic-angular';
8
+ export { ActionSheetController, AlertController, LoadingController, MenuController, ModalController, PickerController, PopoverController, ToastController, AnimationController, GestureController, DomController, NavController, Config, Platform, NavParams, IonicRouteStrategy, } from '@ionic/angular/common';
9
+ export { IonNav } from './navigation/nav';
10
+ export { IonIcon } from './directives/icon';
11
+ export * from './directives/proxies';
@@ -0,0 +1,9 @@
1
+ import { ElementRef, NgZone, ChangeDetectorRef } from '@angular/core';
2
+ import { IonBackButton as IonBackButtonBase, NavController, Config } from '@ionic/angular/common';
3
+ import { IonRouterOutlet } from './router-outlet';
4
+ import * as i0 from "@angular/core";
5
+ export declare class IonBackButton extends IonBackButtonBase {
6
+ constructor(routerOutlet: IonRouterOutlet, navCtrl: NavController, config: Config, r: ElementRef, z: NgZone, c: ChangeDetectorRef);
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonBackButton, [{ optional: true; }, null, null, null, null, null]>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonBackButton, "ion-back-button", never, {}, {}, never, ["*"], true>;
9
+ }
@@ -0,0 +1,8 @@
1
+ import { ElementRef, Injector, EnvironmentInjector, NgZone, ChangeDetectorRef } from '@angular/core';
2
+ import { IonNav as IonNavBase, AngularDelegate } from '@ionic/angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export declare class IonNav extends IonNavBase {
5
+ constructor(ref: ElementRef, environmentInjector: EnvironmentInjector, injector: Injector, angularDelegate: AngularDelegate, z: NgZone, c: ChangeDetectorRef);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonNav, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonNav, "ion-nav", never, {}, {}, never, ["*"], true>;
8
+ }
@@ -0,0 +1,10 @@
1
+ import { RouterLinkDelegateDirective as RouterLinkDelegateBase, RouterLinkWithHrefDelegateDirective as RouterLinkHrefDelegateBase } from '@ionic/angular/common';
2
+ import * as i0 from "@angular/core";
3
+ export declare class IonRouterLink extends RouterLinkDelegateBase {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonRouterLink, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonRouterLink, ":not(a):not(area)[routerLink]", never, {}, {}, never, ["*"], true>;
6
+ }
7
+ export declare class IonRouterLinkWithHref extends RouterLinkHrefDelegateBase {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonRouterLinkWithHref, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonRouterLinkWithHref, "a[routerLink],area[routerLink]", never, {}, {}, never, ["*"], true>;
10
+ }
@@ -0,0 +1,6 @@
1
+ import { IonRouterOutlet as IonRouterOutletBase } from '@ionic/angular/common';
2
+ import * as i0 from "@angular/core";
3
+ export declare class IonRouterOutlet extends IonRouterOutletBase {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonRouterOutlet, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<IonRouterOutlet, "ion-router-outlet", never, {}, {}, never, never, true>;
6
+ }
@@ -0,0 +1,12 @@
1
+ import { QueryList } from '@angular/core';
2
+ import { IonTabs as IonTabsBase } from '@ionic/angular/common';
3
+ import { IonTabBar } from '../directives/proxies';
4
+ import { IonRouterOutlet } from './router-outlet';
5
+ import * as i0 from "@angular/core";
6
+ export declare class IonTabs extends IonTabsBase {
7
+ outlet: IonRouterOutlet;
8
+ tabBar: IonTabBar | undefined;
9
+ tabBars: QueryList<IonTabBar>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonTabs, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonTabs, "ion-tabs", never, {}, {}, ["tabBar", "tabBars"], ["[slot=top]", "*"], true>;
12
+ }
@@ -0,0 +1,6 @@
1
+ import { IonModal as IonModalBase } from '@ionic/angular/common';
2
+ import * as i0 from "@angular/core";
3
+ export declare class IonModal extends IonModalBase {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonModal, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonModal, "ion-modal", never, {}, {}, never, never, true>;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { IonPopover as IonPopoverBase } from '@ionic/angular/common';
2
+ import * as i0 from "@angular/core";
3
+ export declare class IonPopover extends IonPopoverBase {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<IonPopover, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<IonPopover, "ion-popover", never, {}, {}, never, never, true>;
6
+ }
@@ -0,0 +1,3 @@
1
+ import type { Provider } from '@angular/core';
2
+ import type { IonicConfig } from '@ionic/core/components';
3
+ export declare const provideIonicAngular: (config?: IonicConfig) => Provider[];
package/test/README.md CHANGED
@@ -70,6 +70,14 @@ If you want to add a version-specific change, add the change inside of the appro
70
70
 
71
71
  If you need to add E2E tests that are only run on a specific version of the JS Framework, replicate the `VersionTest` component on each partial application. This ensures that tests for framework version X do not get run for framework version Y.
72
72
 
73
+ ### Testing Lazy Loaded Ionic Components
74
+
75
+ Tests for lazy loaded Ionic UI components should only be added under the `/lazy` route. This ensures the `IonicModule` is added.
76
+
77
+ ### Testing Standalone Ionic Components
78
+
79
+ Tests for standalone Ionic UI components should only be added under the `/standalone` route. This allows for an isolated environment where the lazy loaded `IonicModule` is not initialized. The standalone components use Stencil's custom element bundle instead of the lazy loaded bundle. If `IonicModule` is initialized then the Stencil components will fall back to using the lazy loaded implementation instead of the custom elements bundle implementation.
80
+
73
81
  ## Adding New Test Apps
74
82
 
75
83
  As we add support for new versions of Angular, we will also need to update this directory to test against new applications. The following steps can serve as a guide for adding new apps:
@@ -1,9 +0,0 @@
1
- import { ElementRef, Injector, EnvironmentInjector } from '@angular/core';
2
- import { AngularDelegate } from '../../providers/angular-delegate';
3
- import * as i0 from "@angular/core";
4
- export declare class NavDelegate {
5
- protected el: HTMLElement;
6
- constructor(ref: ElementRef, environmentInjector: EnvironmentInjector, injector: Injector, angularDelegate: AngularDelegate);
7
- static ɵfac: i0.ɵɵFactoryDeclaration<NavDelegate, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<NavDelegate, "ion-nav", never, {}, {}, never, never, false>;
9
- }
@@ -1,42 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Directive } from '@angular/core';
3
- import { ProxyCmp, proxyOutputs } from '../angular-component-lib/utils';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../providers/angular-delegate";
6
- let NavDelegate = class NavDelegate {
7
- constructor(ref, environmentInjector, injector, angularDelegate) {
8
- this.el = ref.nativeElement;
9
- ref.nativeElement.delegate = angularDelegate.create(environmentInjector, injector);
10
- proxyOutputs(this, this.el, ['ionNavDidChange', 'ionNavWillChange']);
11
- }
12
- };
13
- /** @nocollapse */ NavDelegate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NavDelegate, deps: [{ token: i0.ElementRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: i1.AngularDelegate }], target: i0.ɵɵFactoryTarget.Directive });
14
- /** @nocollapse */ NavDelegate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: NavDelegate, selector: "ion-nav", ngImport: i0 });
15
- NavDelegate = __decorate([
16
- ProxyCmp({
17
- inputs: ['animated', 'animation', 'root', 'rootParams', 'swipeGesture'],
18
- methods: [
19
- 'push',
20
- 'insert',
21
- 'insertPages',
22
- 'pop',
23
- 'popTo',
24
- 'popToRoot',
25
- 'removeIndex',
26
- 'setRoot',
27
- 'setPages',
28
- 'getActive',
29
- 'getByIndex',
30
- 'canGoBack',
31
- 'getPrevious',
32
- ],
33
- })
34
- ], NavDelegate);
35
- export { NavDelegate };
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NavDelegate, decorators: [{
37
- type: Directive,
38
- args: [{
39
- selector: 'ion-nav',
40
- }]
41
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: i1.AngularDelegate }]; } });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWRlbGVnYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9uYXYtZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBd0IsU0FBUyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7SUF3QjNELFdBQVcsU0FBWCxXQUFXO0lBRXRCLFlBQ0UsR0FBZSxFQUNmLG1CQUF3QyxFQUN4QyxRQUFrQixFQUNsQixlQUFnQztRQUVoQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDNUIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGLENBQUE7NEhBWlksV0FBVztnSEFBWCxXQUFXO0FBQVgsV0FBVztJQXRCdkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQztRQUN2RSxPQUFPLEVBQUU7WUFDUCxNQUFNO1lBQ04sUUFBUTtZQUNSLGFBQWE7WUFDYixLQUFLO1lBQ0wsT0FBTztZQUNQLFdBQVc7WUFDWCxhQUFhO1lBQ2IsU0FBUztZQUNULFVBQVU7WUFDVixXQUFXO1lBQ1gsWUFBWTtZQUNaLFdBQVc7WUFDWCxhQUFhO1NBQ2Q7S0FDRixDQUFDO0dBS1csV0FBVyxDQVl2QjtTQVpZLFdBQVc7NEZBQVgsV0FBVztrQkFKdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RvciwgRGlyZWN0aXZlLCBFbnZpcm9ubWVudEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFuZ3VsYXJEZWxlZ2F0ZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9hbmd1bGFyLWRlbGVnYXRlJztcbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYW5pbWF0aW9uJywgJ3Jvb3QnLCAncm9vdFBhcmFtcycsICdzd2lwZUdlc3R1cmUnXSxcbiAgbWV0aG9kczogW1xuICAgICdwdXNoJyxcbiAgICAnaW5zZXJ0JyxcbiAgICAnaW5zZXJ0UGFnZXMnLFxuICAgICdwb3AnLFxuICAgICdwb3BUbycsXG4gICAgJ3BvcFRvUm9vdCcsXG4gICAgJ3JlbW92ZUluZGV4JyxcbiAgICAnc2V0Um9vdCcsXG4gICAgJ3NldFBhZ2VzJyxcbiAgICAnZ2V0QWN0aXZlJyxcbiAgICAnZ2V0QnlJbmRleCcsXG4gICAgJ2NhbkdvQmFjaycsXG4gICAgJ2dldFByZXZpb3VzJyxcbiAgXSxcbn0pXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpb24tbmF2Jyxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOYXZEZWxlZ2F0ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlZjogRWxlbWVudFJlZixcbiAgICBlbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBhbmd1bGFyRGVsZWdhdGU6IEFuZ3VsYXJEZWxlZ2F0ZVxuICApIHtcbiAgICB0aGlzLmVsID0gcmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmVmLm5hdGl2ZUVsZW1lbnQuZGVsZWdhdGUgPSBhbmd1bGFyRGVsZWdhdGUuY3JlYXRlKGVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdG9yKTtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25OYXZEaWRDaGFuZ2UnLCAnaW9uTmF2V2lsbENoYW5nZSddKTtcbiAgfVxufVxuIl19
@@ -1,45 +0,0 @@
1
- /**
2
- * @description
3
- * NavParams are an object that exists on a page and can contain data for that particular view.
4
- * Similar to how data was pass to a view in V1 with `$stateParams`, NavParams offer a much more flexible
5
- * option with a simple `get` method.
6
- *
7
- * @usage
8
- * ```ts
9
- * import { NavParams } from '@ionic/angular';
10
- *
11
- * export class MyClass{
12
- *
13
- * constructor(navParams: NavParams){
14
- * // userParams is an object we have in our nav-parameters
15
- * navParams.get('userParams');
16
- * }
17
- *
18
- * }
19
- * ```
20
- */
21
- export class NavParams {
22
- constructor(data = {}) {
23
- this.data = data;
24
- }
25
- /**
26
- * Get the value of a nav-parameter for the current view
27
- *
28
- * ```ts
29
- * import { NavParams } from 'ionic-angular';
30
- *
31
- * export class MyClass{
32
- * constructor(public navParams: NavParams){
33
- * // userParams is an object we have in our nav-parameters
34
- * this.navParams.get('userParams');
35
- * }
36
- * }
37
- * ```
38
- *
39
- * @param param Which param you want to look up
40
- */
41
- get(param) {
42
- return this.data[param];
43
- }
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL25hdmlnYXRpb24vbmF2LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQW1CLE9BQStCLEVBQUU7UUFBakMsU0FBSSxHQUFKLElBQUksQ0FBNkI7SUFBRyxDQUFDO0lBRXhEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILEdBQUcsQ0FBVSxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvblxuICogTmF2UGFyYW1zIGFyZSBhbiBvYmplY3QgdGhhdCBleGlzdHMgb24gYSBwYWdlIGFuZCBjYW4gY29udGFpbiBkYXRhIGZvciB0aGF0IHBhcnRpY3VsYXIgdmlldy5cbiAqIFNpbWlsYXIgdG8gaG93IGRhdGEgd2FzIHBhc3MgdG8gYSB2aWV3IGluIFYxIHdpdGggYCRzdGF0ZVBhcmFtc2AsIE5hdlBhcmFtcyBvZmZlciBhIG11Y2ggbW9yZSBmbGV4aWJsZVxuICogb3B0aW9uIHdpdGggYSBzaW1wbGUgYGdldGAgbWV0aG9kLlxuICpcbiAqIEB1c2FnZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IE5hdlBhcmFtcyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbiAqXG4gKiBleHBvcnQgY2xhc3MgTXlDbGFzc3tcbiAqXG4gKiAgY29uc3RydWN0b3IobmF2UGFyYW1zOiBOYXZQYXJhbXMpe1xuICogICAgLy8gdXNlclBhcmFtcyBpcyBhbiBvYmplY3Qgd2UgaGF2ZSBpbiBvdXIgbmF2LXBhcmFtZXRlcnNcbiAqICAgIG5hdlBhcmFtcy5nZXQoJ3VzZXJQYXJhbXMnKTtcbiAqICB9XG4gKlxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZQYXJhbXMge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9KSB7fVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIGEgbmF2LXBhcmFtZXRlciBmb3IgdGhlIGN1cnJlbnQgdmlld1xuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbXBvcnQgeyBOYXZQYXJhbXMgfSBmcm9tICdpb25pYy1hbmd1bGFyJztcbiAgICpcbiAgICogZXhwb3J0IGNsYXNzIE15Q2xhc3N7XG4gICAqICBjb25zdHJ1Y3RvcihwdWJsaWMgbmF2UGFyYW1zOiBOYXZQYXJhbXMpe1xuICAgKiAgICAvLyB1c2VyUGFyYW1zIGlzIGFuIG9iamVjdCB3ZSBoYXZlIGluIG91ciBuYXYtcGFyYW1ldGVyc1xuICAgKiAgICB0aGlzLm5hdlBhcmFtcy5nZXQoJ3VzZXJQYXJhbXMnKTtcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtIFdoaWNoIHBhcmFtIHlvdSB3YW50IHRvIGxvb2sgdXBcbiAgICovXG4gIGdldDxUID0gYW55PihwYXJhbTogc3RyaW5nKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtwYXJhbV07XG4gIH1cbn1cbiJdfQ==
@@ -1,275 +0,0 @@
1
- import { bindLifecycleEvents } from '../../providers/angular-delegate';
2
- import { computeStackId, destroyView, getUrl, insertView, isTabSwitch, toSegments, } from './stack-utils';
3
- // TODO(FW-2827): types
4
- export class StackController {
5
- constructor(tabsPrefix, containerEl, router, navCtrl, zone, location) {
6
- this.containerEl = containerEl;
7
- this.router = router;
8
- this.navCtrl = navCtrl;
9
- this.zone = zone;
10
- this.location = location;
11
- this.views = [];
12
- this.skipTransition = false;
13
- this.nextId = 0;
14
- this.tabsPrefix = tabsPrefix !== undefined ? toSegments(tabsPrefix) : undefined;
15
- }
16
- createView(ref, activatedRoute) {
17
- const url = getUrl(this.router, activatedRoute);
18
- const element = ref?.location?.nativeElement;
19
- const unlistenEvents = bindLifecycleEvents(this.zone, ref.instance, element);
20
- return {
21
- id: this.nextId++,
22
- stackId: computeStackId(this.tabsPrefix, url),
23
- unlistenEvents,
24
- element,
25
- ref,
26
- url,
27
- };
28
- }
29
- getExistingView(activatedRoute) {
30
- const activatedUrlKey = getUrl(this.router, activatedRoute);
31
- const view = this.views.find((vw) => vw.url === activatedUrlKey);
32
- if (view) {
33
- view.ref.changeDetectorRef.reattach();
34
- }
35
- return view;
36
- }
37
- setActive(enteringView) {
38
- const consumeResult = this.navCtrl.consumeTransition();
39
- let { direction, animation, animationBuilder } = consumeResult;
40
- const leavingView = this.activeView;
41
- const tabSwitch = isTabSwitch(enteringView, leavingView);
42
- if (tabSwitch) {
43
- direction = 'back';
44
- animation = undefined;
45
- }
46
- const viewsSnapshot = this.views.slice();
47
- let currentNavigation;
48
- const router = this.router;
49
- // Angular >= 7.2.0
50
- if (router.getCurrentNavigation) {
51
- currentNavigation = router.getCurrentNavigation();
52
- // Angular < 7.2.0
53
- }
54
- else if (router.navigations?.value) {
55
- currentNavigation = router.navigations.value;
56
- }
57
- /**
58
- * If the navigation action
59
- * sets `replaceUrl: true`
60
- * then we need to make sure
61
- * we remove the last item
62
- * from our views stack
63
- */
64
- if (currentNavigation?.extras?.replaceUrl) {
65
- if (this.views.length > 0) {
66
- this.views.splice(-1, 1);
67
- }
68
- }
69
- const reused = this.views.includes(enteringView);
70
- const views = this.insertView(enteringView, direction);
71
- // Trigger change detection before transition starts
72
- // This will call ngOnInit() the first time too, just after the view
73
- // was attached to the dom, but BEFORE the transition starts
74
- if (!reused) {
75
- enteringView.ref.changeDetectorRef.detectChanges();
76
- }
77
- /**
78
- * If we are going back from a page that
79
- * was presented using a custom animation
80
- * we should default to using that
81
- * unless the developer explicitly
82
- * provided another animation.
83
- */
84
- const customAnimation = enteringView.animationBuilder;
85
- if (animationBuilder === undefined && direction === 'back' && !tabSwitch && customAnimation !== undefined) {
86
- animationBuilder = customAnimation;
87
- }
88
- /**
89
- * Save any custom animation so that navigating
90
- * back will use this custom animation by default.
91
- */
92
- if (leavingView) {
93
- leavingView.animationBuilder = animationBuilder;
94
- }
95
- // Wait until previous transitions finish
96
- return this.zone.runOutsideAngular(() => {
97
- return this.wait(() => {
98
- // disconnect leaving page from change detection to
99
- // reduce jank during the page transition
100
- if (leavingView) {
101
- leavingView.ref.changeDetectorRef.detach();
102
- }
103
- // In case the enteringView is the same as the leavingPage we need to reattach()
104
- enteringView.ref.changeDetectorRef.reattach();
105
- return this.transition(enteringView, leavingView, animation, this.canGoBack(1), false, animationBuilder)
106
- .then(() => cleanupAsync(enteringView, views, viewsSnapshot, this.location, this.zone))
107
- .then(() => ({
108
- enteringView,
109
- direction,
110
- animation,
111
- tabSwitch,
112
- }));
113
- });
114
- });
115
- }
116
- canGoBack(deep, stackId = this.getActiveStackId()) {
117
- return this.getStack(stackId).length > deep;
118
- }
119
- pop(deep, stackId = this.getActiveStackId()) {
120
- return this.zone.run(() => {
121
- const views = this.getStack(stackId);
122
- if (views.length <= deep) {
123
- return Promise.resolve(false);
124
- }
125
- const view = views[views.length - deep - 1];
126
- let url = view.url;
127
- const viewSavedData = view.savedData;
128
- if (viewSavedData) {
129
- const primaryOutlet = viewSavedData.get('primary');
130
- if (primaryOutlet?.route?._routerState?.snapshot.url) {
131
- url = primaryOutlet.route._routerState.snapshot.url;
132
- }
133
- }
134
- const { animationBuilder } = this.navCtrl.consumeTransition();
135
- return this.navCtrl.navigateBack(url, { ...view.savedExtras, animation: animationBuilder }).then(() => true);
136
- });
137
- }
138
- startBackTransition() {
139
- const leavingView = this.activeView;
140
- if (leavingView) {
141
- const views = this.getStack(leavingView.stackId);
142
- const enteringView = views[views.length - 2];
143
- const customAnimation = enteringView.animationBuilder;
144
- return this.wait(() => {
145
- return this.transition(enteringView, // entering view
146
- leavingView, // leaving view
147
- 'back', this.canGoBack(2), true, customAnimation);
148
- });
149
- }
150
- return Promise.resolve();
151
- }
152
- endBackTransition(shouldComplete) {
153
- if (shouldComplete) {
154
- this.skipTransition = true;
155
- this.pop(1);
156
- }
157
- else if (this.activeView) {
158
- cleanup(this.activeView, this.views, this.views, this.location, this.zone);
159
- }
160
- }
161
- getLastUrl(stackId) {
162
- const views = this.getStack(stackId);
163
- return views.length > 0 ? views[views.length - 1] : undefined;
164
- }
165
- /**
166
- * @internal
167
- */
168
- getRootUrl(stackId) {
169
- const views = this.getStack(stackId);
170
- return views.length > 0 ? views[0] : undefined;
171
- }
172
- getActiveStackId() {
173
- return this.activeView ? this.activeView.stackId : undefined;
174
- }
175
- /**
176
- * @internal
177
- */
178
- getActiveView() {
179
- return this.activeView;
180
- }
181
- hasRunningTask() {
182
- return this.runningTask !== undefined;
183
- }
184
- destroy() {
185
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
186
- this.containerEl = undefined;
187
- this.views.forEach(destroyView);
188
- this.activeView = undefined;
189
- this.views = [];
190
- }
191
- getStack(stackId) {
192
- return this.views.filter((v) => v.stackId === stackId);
193
- }
194
- insertView(enteringView, direction) {
195
- this.activeView = enteringView;
196
- this.views = insertView(this.views, enteringView, direction);
197
- return this.views.slice();
198
- }
199
- transition(enteringView, leavingView, direction, showGoBack, progressAnimation, animationBuilder) {
200
- if (this.skipTransition) {
201
- this.skipTransition = false;
202
- return Promise.resolve(false);
203
- }
204
- if (leavingView === enteringView) {
205
- return Promise.resolve(false);
206
- }
207
- const enteringEl = enteringView ? enteringView.element : undefined;
208
- const leavingEl = leavingView ? leavingView.element : undefined;
209
- const containerEl = this.containerEl;
210
- if (enteringEl && enteringEl !== leavingEl) {
211
- enteringEl.classList.add('ion-page');
212
- enteringEl.classList.add('ion-page-invisible');
213
- if (enteringEl.parentElement !== containerEl) {
214
- containerEl.appendChild(enteringEl);
215
- }
216
- if (containerEl.commit) {
217
- return containerEl.commit(enteringEl, leavingEl, {
218
- duration: direction === undefined ? 0 : undefined,
219
- direction,
220
- showGoBack,
221
- progressAnimation,
222
- animationBuilder,
223
- });
224
- }
225
- }
226
- return Promise.resolve(false);
227
- }
228
- async wait(task) {
229
- if (this.runningTask !== undefined) {
230
- await this.runningTask;
231
- this.runningTask = undefined;
232
- }
233
- const promise = (this.runningTask = task());
234
- promise.finally(() => (this.runningTask = undefined));
235
- return promise;
236
- }
237
- }
238
- const cleanupAsync = (activeRoute, views, viewsSnapshot, location, zone) => {
239
- if (typeof requestAnimationFrame === 'function') {
240
- return new Promise((resolve) => {
241
- requestAnimationFrame(() => {
242
- cleanup(activeRoute, views, viewsSnapshot, location, zone);
243
- resolve();
244
- });
245
- });
246
- }
247
- return Promise.resolve();
248
- };
249
- const cleanup = (activeRoute, views, viewsSnapshot, location, zone) => {
250
- /**
251
- * Re-enter the Angular zone when destroying page components. This will allow
252
- * lifecycle events (`ngOnDestroy`) to be run inside the Angular zone.
253
- */
254
- zone.run(() => viewsSnapshot.filter((view) => !views.includes(view)).forEach(destroyView));
255
- views.forEach((view) => {
256
- /**
257
- * In the event that a user navigated multiple
258
- * times in rapid succession, we want to make sure
259
- * we don't pre-emptively detach a view while
260
- * it is in mid-transition.
261
- *
262
- * In this instance we also do not care about query
263
- * params or fragments as it will be the same view regardless
264
- */
265
- const locationWithoutParams = location.path().split('?')[0];
266
- const locationWithoutFragment = locationWithoutParams.split('#')[0];
267
- if (view !== activeRoute && view.url !== locationWithoutFragment) {
268
- const element = view.element;
269
- element.setAttribute('aria-hidden', 'true');
270
- element.classList.add('ion-page-hidden');
271
- view.ref.changeDetectorRef.detach();
272
- }
273
- });
274
- };
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL25hdmlnYXRpb24vc3RhY2stY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd2RSxPQUFPLEVBR0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsdUJBQXVCO0FBRXZCLE1BQU0sT0FBTyxlQUFlO0lBUTFCLFlBQ0UsVUFBOEIsRUFDdEIsV0FBdUMsRUFDdkMsTUFBYyxFQUNkLE9BQXNCLEVBQ3RCLElBQVksRUFDWixRQUFrQjtRQUpsQixnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVU7UUFicEIsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFFeEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHdkIsV0FBTSxHQUFHLENBQUMsQ0FBQztRQVVqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBc0IsRUFBRSxjQUE4QjtRQUMvRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLGFBQTRCLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUMs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bW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBbmltYXRpb25CdWlsZGVyLCBSb3V0ZXJEaXJlY3Rpb24gfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbmltcG9ydCB7IGJpbmRMaWZlY3ljbGVFdmVudHMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYW5ndWxhci1kZWxlZ2F0ZSc7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL25hdi1jb250cm9sbGVyJztcblxuaW1wb3J0IHtcbiAgUm91dGVWaWV3LFxuICBTdGFja0RpZENoYW5nZUV2ZW50LFxuICBjb21wdXRlU3RhY2tJZCxcbiAgZGVzdHJveVZpZXcsXG4gIGdldFVybCxcbiAgaW5zZXJ0VmlldyxcbiAgaXNUYWJTd2l0Y2gsXG4gIHRvU2VnbWVudHMsXG59IGZyb20gJy4vc3RhY2stdXRpbHMnO1xuXG4vLyBUT0RPKEZXLTI4MjcpOiB0eXBlc1xuXG5leHBvcnQgY2xhc3MgU3RhY2tDb250cm9sbGVyIHtcbiAgcHJpdmF0ZSB2aWV3czogUm91dGVWaWV3W10gPSBbXTtcbiAgcHJpdmF0ZSBydW5uaW5nVGFzaz86IFByb21pc2U8YW55PjtcbiAgcHJpdmF0ZSBza2lwVHJhbnNpdGlvbiA9IGZhbHNlO1xuICBwcml2YXRlIHRhYnNQcmVmaXg6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGFjdGl2ZVZpZXc6IFJvdXRlVmlldyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBuZXh0SWQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRhYnNQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBwcml2YXRlIGNvbnRhaW5lckVsOiBIVE1MSW9uUm91dGVyT3V0bGV0RWxlbWVudCxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvblxuICApIHtcbiAgICB0aGlzLnRhYnNQcmVmaXggPSB0YWJzUHJlZml4ICE9PSB1bmRlZmluZWQgPyB0b1NlZ21lbnRzKHRhYnNQcmVmaXgpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgY3JlYXRlVmlldyhyZWY6IENvbXBvbmVudFJlZjxhbnk+LCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBSb3V0ZVZpZXcge1xuICAgIGNvbnN0IHVybCA9IGdldFVybCh0aGlzLnJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIGNvbnN0IGVsZW1lbnQgPSByZWY/LmxvY2F0aW9uPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHVubGlzdGVuRXZlbnRzID0gYmluZExpZmVjeWNsZUV2ZW50cyh0aGlzLnpvbmUsIHJlZi5pbnN0YW5jZSwgZWxlbWVudCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLm5leHRJZCsrLFxuICAgICAgc3RhY2tJZDogY29tcHV0ZVN0YWNrSWQodGhpcy50YWJzUHJlZml4LCB1cmwpLFxuICAgICAgdW5saXN0ZW5FdmVudHMsXG4gICAgICBlbGVtZW50LFxuICAgICAgcmVmLFxuICAgICAgdXJsLFxuICAgIH07XG4gIH1cblxuICBnZXRFeGlzdGluZ1ZpZXcoYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKTogUm91dGVWaWV3IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBhY3RpdmF0ZWRVcmxLZXkgPSBnZXRVcmwodGhpcy5yb3V0ZXIsIGFjdGl2YXRlZFJvdXRlKTtcbiAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3cy5maW5kKCh2dykgPT4gdncudXJsID09PSBhY3RpdmF0ZWRVcmxLZXkpO1xuICAgIGlmICh2aWV3KSB7XG4gICAgICB2aWV3LnJlZi5jaGFuZ2VEZXRlY3RvclJlZi5yZWF0dGFjaCgpO1xuICAgIH1cbiAgICByZXR1cm4gdmlldztcbiAgfVxuXG4gIHNldEFjdGl2ZShlbnRlcmluZ1ZpZXc6IFJvdXRlVmlldyk6IFByb21pc2U8U3RhY2tEaWRDaGFuZ2VFdmVudD4ge1xuICAgIGNvbnN0IGNvbnN1bWVSZXN1bHQgPSB0aGlzLm5hdkN0cmwuY29uc3VtZVRyYW5zaXRpb24oKTtcbiAgICBsZXQgeyBkaXJlY3Rpb24sIGFuaW1hdGlvbiwgYW5pbWF0aW9uQnVpbGRlciB9ID0gY29uc3VtZVJlc3VsdDtcbiAgICBjb25zdCBsZWF2aW5nVmlldyA9IHRoaXMuYWN0aXZlVmlldztcbiAgICBjb25zdCB0YWJTd2l0Y2ggPSBpc1RhYlN3aXRjaChlbnRlcmluZ1ZpZXcsIGxlYXZpbmdWaWV3KTtcbiAgICBpZiAodGFiU3dpdGNoKSB7XG4gICAgICBkaXJlY3Rpb24gPSAnYmFjayc7XG4gICAgICBhbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3Qgdmlld3NTbmFwc2hvdCA9IHRoaXMudmlld3Muc2xpY2UoKTtcblxuICAgIGxldCBjdXJyZW50TmF2aWdhdGlvbjtcblxuICAgIGNvbnN0IHJvdXRlciA9IHRoaXMucm91dGVyIGFzIGFueTtcblxuICAgIC8vIEFuZ3VsYXIgPj0gNy4yLjBcbiAgICBpZiAocm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKSB7XG4gICAgICBjdXJyZW50TmF2aWdhdGlvbiA9IHJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpO1xuXG4gICAgICAvLyBBbmd1bGFyIDwgNy4yLjBcbiAgICB9IGVsc2UgaWYgKHJvdXRlci5uYXZpZ2F0aW9ucz8udmFsdWUpIHtcbiAgICAgIGN1cnJlbnROYXZpZ2F0aW9uID0gcm91dGVyLm5hdmlnYXRpb25zLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBuYXZpZ2F0aW9uIGFjdGlvblxuICAgICAqIHNldHMgYHJlcGxhY2VVcmw6IHRydWVgXG4gICAgICogdGhlbiB3ZSBuZWVkIHRvIG1ha2Ugc3VyZVxuICAgICAqIHdlIHJlbW92ZSB0aGUgbGFzdCBpdGVtXG4gICAgICogZnJvbSBvdXIgdmlld3Mgc3RhY2tcbiAgICAgKi9cbiAgICBpZiAoY3VycmVudE5hdmlnYXRpb24/LmV4dHJhcz8ucmVwbGFjZVVybCkge1xuICAgICAgaWYgKHRoaXMudmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnZpZXdzLnNwbGljZSgtMSwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmV1c2VkID0gdGhpcy52aWV3cy5pbmNsdWRlcyhlbnRlcmluZ1ZpZXcpO1xuICAgIGNvbnN0IHZpZXdzID0gdGhpcy5pbnNlcnRWaWV3KGVudGVyaW5nVmlldywgZGlyZWN0aW9uKTtcblxuICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBiZWZvcmUgdHJhbnNpdGlvbiBzdGFydHNcbiAgICAvLyBUaGlzIHdpbGwgY2FsbCBuZ09uSW5pdCgpIHRoZSBmaXJzdCB0aW1lIHRvbywganVzdCBhZnRlciB0aGUgdmlld1xuICAgIC8vIHdhcyBhdHRhY2hlZCB0byB0aGUgZG9tLCBidXQgQkVGT1JFIHRoZSB0cmFuc2l0aW9uIHN0YXJ0c1xuICAgIGlmICghcmV1c2VkKSB7XG4gICAgICBlbnRlcmluZ1ZpZXcucmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSBhcmUgZ29pbmcgYmFjayBmcm9tIGEgcGFnZSB0aGF0XG4gICAgICogd2FzIHByZXNlbnRlZCB1c2luZyBhIGN1c3RvbSBhbmltYXRpb25cbiAgICAgKiB3ZSBzaG91bGQgZGVmYXVsdCB0byB1c2luZyB0aGF0XG4gICAgICogdW5sZXNzIHRoZSBkZXZlbG9wZXIgZXhwbGljaXRseVxuICAgICAqIHByb3ZpZGVkIGFub3RoZXIgYW5pbWF0aW9uLlxuICAgICAqL1xuICAgIGNvbnN0IGN1c3RvbUFuaW1hdGlvbiA9IGVudGVyaW5nVmlldy5hbmltYXRpb25CdWlsZGVyO1xuICAgIGlmIChhbmltYXRpb25CdWlsZGVyID09PSB1bmRlZmluZWQgJiYgZGlyZWN0aW9uID09PSAnYmFjaycgJiYgIXRhYlN3aXRjaCAmJiBjdXN0b21BbmltYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgYW5pbWF0aW9uQnVpbGRlciA9IGN1c3RvbUFuaW1hdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTYXZlIGFueSBjdXN0b20gYW5pbWF0aW9uIHNvIHRoYXQgbmF2aWdhdGluZ1xuICAgICAqIGJhY2sgd2lsbCB1c2UgdGhpcyBjdXN0b20gYW5pbWF0aW9uIGJ5IGRlZmF1bHQuXG4gICAgICovXG4gICAgaWYgKGxlYXZpbmdWaWV3KSB7XG4gICAgICBsZWF2aW5nVmlldy5hbmltYXRpb25CdWlsZGVyID0gYW5pbWF0aW9uQnVpbGRlcjtcbiAgICB9XG5cbiAgICAvLyBXYWl0IHVudGlsIHByZXZpb3VzIHRyYW5zaXRpb25zIGZpbmlzaFxuICAgIHJldHVybiB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMud2FpdCgoKSA9PiB7XG4gICAgICAgIC8vIGRpc2Nvbm5lY3QgbGVhdmluZyBwYWdlIGZyb20gY2hhbmdlIGRldGVjdGlvbiB0b1xuICAgICAgICAvLyByZWR1Y2UgamFuayBkdXJpbmcgdGhlIHBhZ2UgdHJhbnNpdGlvblxuICAgICAgICBpZiAobGVhdmluZ1ZpZXcpIHtcbiAgICAgICAgICBsZWF2aW5nVmlldy5yZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgZW50ZXJpbmdWaWV3IGlzIHRoZSBzYW1lIGFzIHRoZSBsZWF2aW5nUGFnZSB3ZSBuZWVkIHRvIHJlYXR0YWNoKClcbiAgICAgICAgZW50ZXJpbmdWaWV3LnJlZi5jaGFuZ2VEZXRlY3RvclJlZi5yZWF0dGFjaCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zaXRpb24oZW50ZXJpbmdWaWV3LCBsZWF2aW5nVmlldywgYW5pbWF0aW9uLCB0aGlzLmNhbkdvQmFjaygxKSwgZmFsc2UsIGFuaW1hdGlvbkJ1aWxkZXIpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gY2xlYW51cEFzeW5jKGVudGVyaW5nVmlldywgdmlld3MsIHZpZXdzU25hcHNob3QsIHRoaXMubG9jYXRpb24sIHRoaXMuem9uZSkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gKHtcbiAgICAgICAgICAgIGVudGVyaW5nVmlldyxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgICAgIHRhYlN3aXRjaCxcbiAgICAgICAgICB9KSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNhbkdvQmFjayhkZWVwOiBudW1iZXIsIHN0YWNrSWQgPSB0aGlzLmdldEFjdGl2ZVN0YWNrSWQoKSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldFN0YWNrKHN0YWNrSWQpLmxlbmd0aCA+IGRlZXA7XG4gIH1cblxuICBwb3AoZGVlcDogbnVtYmVyLCBzdGFja0lkID0gdGhpcy5nZXRBY3RpdmVTdGFja0lkKCkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICBjb25zdCB2aWV3cyA9IHRoaXMuZ2V0U3RhY2soc3RhY2tJZCk7XG4gICAgICBpZiAodmlld3MubGVuZ3RoIDw9IGRlZXApIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgICB9XG4gICAgICBjb25zdCB2aWV3ID0gdmlld3Nbdmlld3MubGVuZ3RoIC0gZGVlcCAtIDFdO1xuICAgICAgbGV0IHVybCA9IHZpZXcudXJsO1xuXG4gICAgICBjb25zdCB2aWV3U2F2ZWREYXRhID0gdmlldy5zYXZlZERhdGE7XG4gICAgICBpZiAodmlld1NhdmVkRGF0YSkge1xuICAgICAgICBjb25zdCBwcmltYXJ5T3V0bGV0ID0gdmlld1NhdmVkRGF0YS5nZXQoJ3ByaW1hcnknKTtcbiAgICAgICAgaWYgKHByaW1hcnlPdXRsZXQ/LnJvdXRlPy5fcm91dGVyU3RhdGU/LnNuYXBzaG90LnVybCkge1xuICAgICAgICAgIHVybCA9IHByaW1hcnlPdXRsZXQucm91dGUuX3JvdXRlclN0YXRlLnNuYXBzaG90LnVybDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgeyBhbmltYXRpb25CdWlsZGVyIH0gPSB0aGlzLm5hdkN0cmwuY29uc3VtZVRyYW5zaXRpb24oKTtcbiAgICAgIHJldHVybiB0aGlzLm5hdkN0cmwubmF2aWdhdGVCYWNrKHVybCwgeyAuLi52aWV3LnNhdmVkRXh0cmFzLCBhbmltYXRpb246IGFuaW1hdGlvbkJ1aWxkZXIgfSkudGhlbigoKSA9PiB0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXJ0QmFja1RyYW5zaXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB8IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxlYXZpbmdWaWV3ID0gdGhpcy5hY3RpdmVWaWV3O1xuICAgIGlmIChsZWF2aW5nVmlldykge1xuICAgICAgY29uc3Qgdmlld3MgPSB0aGlzLmdldFN0YWNrKGxlYXZpbmdWaWV3LnN0YWNrSWQpO1xuICAgICAgY29uc3QgZW50ZXJpbmdWaWV3ID0gdmlld3Nbdmlld3MubGVuZ3RoIC0gMl07XG4gICAgICBjb25zdCBjdXN0b21BbmltYXRpb24gPSBlbnRlcmluZ1ZpZXcuYW5pbWF0aW9uQnVpbGRlcjtcblxuICAgICAgcmV0dXJuIHRoaXMud2FpdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zaXRpb24oXG4gICAgICAgICAgZW50ZXJpbmdWaWV3LCAvLyBlbnRlcmluZyB2aWV3XG4gICAgICAgICAgbGVhdmluZ1ZpZXcsIC8vIGxlYXZpbmcgdmlld1xuICAgICAgICAgICdiYWNrJyxcbiAgICAgICAgICB0aGlzLmNhbkdvQmFjaygyKSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICAgIGN1c3RvbUFuaW1hdGlvblxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIGVuZEJhY2tUcmFuc2l0aW9uKHNob3VsZENvbXBsZXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHNob3VsZENvbXBsZXRlKSB7XG4gICAgICB0aGlzLnNraXBUcmFuc2l0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9wKDEpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICBjbGVhbnVwKHRoaXMuYWN0aXZlVmlldywgdGhpcy52aWV3cywgdGhpcy52aWV3cywgdGhpcy5sb2NhdGlvbiwgdGhpcy56b25lKTtcbiAgICB9XG4gIH1cblxuICBnZXRMYXN0VXJsKHN0YWNrSWQ/OiBzdHJpbmcpOiBSb3V0ZVZpZXcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHZpZXdzID0gdGhpcy5nZXRTdGFjayhzdGFja0lkKTtcbiAgICByZXR1cm4gdmlld3MubGVuZ3RoID4gMCA/IHZpZXdzW3ZpZXdzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0Um9vdFVybChzdGFja0lkPzogc3RyaW5nKTogUm91dGVWaWV3IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB2aWV3cyA9IHRoaXMuZ2V0U3RhY2soc3RhY2tJZCk7XG4gICAgcmV0dXJuIHZpZXdzLmxlbmd0aCA+IDAgPyB2aWV3c1swXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEFjdGl2ZVN0YWNrSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVWaWV3ID8gdGhpcy5hY3RpdmVWaWV3LnN0YWNrSWQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXRBY3RpdmVWaWV3KCk6IFJvdXRlVmlldyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlldztcbiAgfVxuXG4gIGhhc1J1bm5pbmdUYXNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJ1bm5pbmdUYXNrICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgdGhpcy5jb250YWluZXJFbCA9IHVuZGVmaW5lZCE7XG4gICAgdGhpcy52aWV3cy5mb3JFYWNoKGRlc3Ryb3lWaWV3KTtcbiAgICB0aGlzLmFjdGl2ZVZpZXcgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy52aWV3cyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdGFjayhzdGFja0lkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3cy5maWx0ZXIoKHYpID0+IHYuc3RhY2tJZCA9PT0gc3RhY2tJZCk7XG4gIH1cblxuICBwcml2YXRlIGluc2VydFZpZXcoZW50ZXJpbmdWaWV3OiBSb3V0ZVZpZXcsIGRpcmVjdGlvbjogUm91dGVyRGlyZWN0aW9uKSB7XG4gICAgdGhpcy5hY3RpdmVWaWV3ID0gZW50ZXJpbmdWaWV3O1xuICAgIHRoaXMudmlld3MgPSBpbnNlcnRWaWV3KHRoaXMudmlld3MsIGVudGVyaW5nVmlldywgZGlyZWN0aW9uKTtcbiAgICByZXR1cm4gdGhpcy52aWV3cy5zbGljZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2l0aW9uKFxuICAgIGVudGVyaW5nVmlldzogUm91dGVWaWV3IHwgdW5kZWZpbmVkLFxuICAgIGxlYXZpbmdWaWV3OiBSb3V0ZVZpZXcgfCB1bmRlZmluZWQsXG4gICAgZGlyZWN0aW9uOiAnZm9yd2FyZCcgfCAnYmFjaycgfCB1bmRlZmluZWQsXG4gICAgc2hvd0dvQmFjazogYm9vbGVhbixcbiAgICBwcm9ncmVzc0FuaW1hdGlvbjogYm9vbGVhbixcbiAgICBhbmltYXRpb25CdWlsZGVyPzogQW5pbWF0aW9uQnVpbGRlclxuICApIHtcbiAgICBpZiAodGhpcy5za2lwVHJhbnNpdGlvbikge1xuICAgICAgdGhpcy5za2lwVHJhbnNpdGlvbiA9IGZhbHNlO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgfVxuICAgIGlmIChsZWF2aW5nVmlldyA9PT0gZW50ZXJpbmdWaWV3KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG4gICAgY29uc3QgZW50ZXJpbmdFbCA9IGVudGVyaW5nVmlldyA/IGVudGVyaW5nVmlldy5lbGVtZW50IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGxlYXZpbmdFbCA9IGxlYXZpbmdWaWV3ID8gbGVhdmluZ1ZpZXcuZWxlbWVudCA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjb250YWluZXJFbCA9IHRoaXMuY29udGFpbmVyRWw7XG4gICAgaWYgKGVudGVyaW5nRWwgJiYgZW50ZXJpbmdFbCAhPT0gbGVhdmluZ0VsKSB7XG4gICAgICBlbnRlcmluZ0VsLmNsYXNzTGlzdC5hZGQoJ2lvbi1wYWdlJyk7XG4gICAgICBlbnRlcmluZ0VsLmNsYXNzTGlzdC5hZGQoJ2lvbi1wYWdlLWludmlzaWJsZScpO1xuICAgICAgaWYgKGVudGVyaW5nRWwucGFyZW50RWxlbWVudCAhPT0gY29udGFpbmVyRWwpIHtcbiAgICAgICAgY29udGFpbmVyRWwuYXBwZW5kQ2hpbGQoZW50ZXJpbmdFbCk7XG4gICAgICB9XG5cbiAgICAgIGlmICgoY29udGFpbmVyRWwgYXMgYW55KS5jb21taXQpIHtcbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lckVsLmNvbW1pdChlbnRlcmluZ0VsLCBsZWF2aW5nRWwsIHtcbiAgICAgICAgICBkdXJhdGlvbjogZGlyZWN0aW9uID09PSB1bmRlZmluZWQgPyAwIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICBzaG93R29CYWNrLFxuICAgICAgICAgIHByb2dyZXNzQW5pbWF0aW9uLFxuICAgICAgICAgIGFuaW1hdGlvbkJ1aWxkZXIsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdDxUPih0YXNrOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMucnVubmluZ1Rhc2sgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYXdhaXQgdGhpcy5ydW5uaW5nVGFzaztcbiAgICAgIHRoaXMucnVubmluZ1Rhc2sgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2UgPSAodGhpcy5ydW5uaW5nVGFzayA9IHRhc2soKSk7XG4gICAgcHJvbWlzZS5maW5hbGx5KCgpID0+ICh0aGlzLnJ1bm5pbmdUYXNrID0gdW5kZWZpbmVkKSk7XG4gICAgcmV0dXJuIHByb21pc2U7XG4gIH1cbn1cblxuY29uc3QgY2xlYW51cEFzeW5jID0gKFxuICBhY3RpdmVSb3V0ZTogUm91dGVWaWV3LFxuICB2aWV3czogUm91dGVWaWV3W10sXG4gIHZpZXdzU25hcHNob3Q6IFJvdXRlVmlld1tdLFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4gIHpvbmU6IE5nWm9uZVxuKSA9PiB7XG4gIGlmICh0eXBlb2YgKHJlcXVlc3RBbmltYXRpb25GcmFtZSBhcyBhbnkpID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBjbGVhbnVwKGFjdGl2ZVJvdXRlLCB2aWV3cywgdmlld3NTbmFwc2hvdCwgbG9jYXRpb24sIHpvbmUpO1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59O1xuXG5jb25zdCBjbGVhbnVwID0gKFxuICBhY3RpdmVSb3V0ZTogUm91dGVWaWV3LFxuICB2aWV3czogUm91dGVWaWV3W10sXG4gIHZpZXdzU25hcHNob3Q6IFJvdXRlVmlld1tdLFxuICBsb2NhdGlvbjogTG9jYXRpb24sXG4gIHpvbmU6IE5nWm9uZVxuKSA9PiB7XG4gIC8qKlxuICAgKiBSZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIHdoZW4gZGVzdHJveWluZyBwYWdlIGNvbXBvbmVudHMuIFRoaXMgd2lsbCBhbGxvd1xuICAgKiBsaWZlY3ljbGUgZXZlbnRzIChgbmdPbkRlc3Ryb3lgKSB0byBiZSBydW4gaW5zaWRlIHRoZSBBbmd1bGFyIHpvbmUuXG4gICAqL1xuICB6b25lLnJ1bigoKSA9PiB2aWV3c1NuYXBzaG90LmZpbHRlcigodmlldykgPT4gIXZpZXdzLmluY2x1ZGVzKHZpZXcpKS5mb3JFYWNoKGRlc3Ryb3lWaWV3KSk7XG5cbiAgdmlld3MuZm9yRWFjaCgodmlldykgPT4ge1xuICAgIC8qKlxuICAgICAqIEluIHRoZSBldmVudCB0aGF0IGEgdXNlciBuYXZpZ2F0ZWQgbXVsdGlwbGVcbiAgICAgKiB0aW1lcyBpbiByYXBpZCBzdWNjZXNzaW9uLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZVxuICAgICAqIHdlIGRvbid0IHByZS1lbXB0aXZlbHkgZGV0YWNoIGEgdmlldyB3aGlsZVxuICAgICAqIGl0IGlzIGluIG1pZC10cmFuc2l0aW9uLlxuICAgICAqXG4gICAgICogSW4gdGhpcyBpbnN0YW5jZSB3ZSBhbHNvIGRvIG5vdCBjYXJlIGFib3V0IHF1ZXJ5XG4gICAgICogcGFyYW1zIG9yIGZyYWdtZW50cyBhcyBpdCB3aWxsIGJlIHRoZSBzYW1lIHZpZXcgcmVnYXJkbGVzc1xuICAgICAqL1xuICAgIGNvbnN0IGxvY2F0aW9uV2l0aG91dFBhcmFtcyA9IGxvY2F0aW9uLnBhdGgoKS5zcGxpdCgnPycpWzBdO1xuICAgIGNvbnN0IGxvY2F0aW9uV2l0aG91dEZyYWdtZW50ID0gbG9jYXRpb25XaXRob3V0UGFyYW1zLnNwbGl0KCcjJylbMF07XG5cbiAgICBpZiAodmlldyAhPT0gYWN0aXZlUm91dGUgJiYgdmlldy51cmwgIT09IGxvY2F0aW9uV2l0aG91dEZyYWdtZW50KSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdmlldy5lbGVtZW50O1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaW9uLXBhZ2UtaGlkZGVuJyk7XG4gICAgICB2aWV3LnJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgICB9XG4gIH0pO1xufTtcbiJdfQ==
@@ -1,73 +0,0 @@
1
- export const insertView = (views, view, direction) => {
2
- if (direction === 'root') {
3
- return setRoot(views, view);
4
- }
5
- else if (direction === 'forward') {
6
- return setForward(views, view);
7
- }
8
- else {
9
- return setBack(views, view);
10
- }
11
- };
12
- const setRoot = (views, view) => {
13
- views = views.filter((v) => v.stackId !== view.stackId);
14
- views.push(view);
15
- return views;
16
- };
17
- const setForward = (views, view) => {
18
- const index = views.indexOf(view);
19
- if (index >= 0) {
20
- views = views.filter((v) => v.stackId !== view.stackId || v.id <= view.id);
21
- }
22
- else {
23
- views.push(view);
24
- }
25
- return views;
26
- };
27
- const setBack = (views, view) => {
28
- const index = views.indexOf(view);
29
- if (index >= 0) {
30
- return views.filter((v) => v.stackId !== view.stackId || v.id <= view.id);
31
- }
32
- else {
33
- return setRoot(views, view);
34
- }
35
- };
36
- export const getUrl = (router, activatedRoute) => {
37
- const urlTree = router.createUrlTree(['.'], { relativeTo: activatedRoute });
38
- return router.serializeUrl(urlTree);
39
- };
40
- export const isTabSwitch = (enteringView, leavingView) => {
41
- if (!leavingView) {
42
- return true;
43
- }
44
- return enteringView.stackId !== leavingView.stackId;
45
- };
46
- export const computeStackId = (prefixUrl, url) => {
47
- if (!prefixUrl) {
48
- return undefined;
49
- }
50
- const segments = toSegments(url);
51
- for (let i = 0; i < segments.length; i++) {
52
- if (i >= prefixUrl.length) {
53
- return segments[i];
54
- }
55
- if (segments[i] !== prefixUrl[i]) {
56
- return undefined;
57
- }
58
- }
59
- return undefined;
60
- };
61
- export const toSegments = (path) => {
62
- return path
63
- .split('/')
64
- .map((s) => s.trim())
65
- .filter((s) => s !== '');
66
- };
67
- export const destroyView = (view) => {
68
- if (view) {
69
- view.ref.destroy();
70
- view.unlistenEvents();
71
- }
72
- };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3N0YWNrLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWtCLEVBQUUsSUFBZSxFQUFFLFNBQTBCLEVBQWUsRUFBRTtJQUN6RyxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7UUFDeEIsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCO1NBQU0sSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO1FBQ2xDLE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNoQztTQUFNO1FBQ0wsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzdCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFrQixFQUFFLElBQWUsRUFBRSxFQUFFO0lBQ3RELEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFrQixFQUFFLElBQWUsRUFBRSxFQUFFO0lBQ3pELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQ2QsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtB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b25lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQW5pbWF0aW9uQnVpbGRlciwgTmF2RGlyZWN0aW9uLCBSb3V0ZXJEaXJlY3Rpb24gfSBmcm9tICdAaW9uaWMvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBpbnNlcnRWaWV3ID0gKHZpZXdzOiBSb3V0ZVZpZXdbXSwgdmlldzogUm91dGVWaWV3LCBkaXJlY3Rpb246IFJvdXRlckRpcmVjdGlvbik6IFJvdXRlVmlld1tdID0+IHtcbiAgaWYgKGRpcmVjdGlvbiA9PT0gJ3Jvb3QnKSB7XG4gICAgcmV0dXJuIHNldFJvb3Qodmlld3MsIHZpZXcpO1xuICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ2ZvcndhcmQnKSB7XG4gICAgcmV0dXJuIHNldEZvcndhcmQodmlld3MsIHZpZXcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzZXRCYWNrKHZpZXdzLCB2aWV3KTtcbiAgfVxufTtcblxuY29uc3Qgc2V0Um9vdCA9ICh2aWV3czogUm91dGVWaWV3W10sIHZpZXc6IFJvdXRlVmlldykgPT4ge1xuICB2aWV3cyA9IHZpZXdzLmZpbHRlcigodikgPT4gdi5zdGFja0lkICE9PSB2aWV3LnN0YWNrSWQpO1xuICB2aWV3cy5wdXNoKHZpZXcpO1xuICByZXR1cm4gdmlld3M7XG59O1xuXG5jb25zdCBzZXRGb3J3YXJkID0gKHZpZXdzOiBSb3V0ZVZpZXdbXSwgdmlldzogUm91dGVWaWV3KSA9PiB7XG4gIGNvbnN0IGluZGV4ID0gdmlld3MuaW5kZXhPZih2aWV3KTtcbiAgaWYgKGluZGV4ID49IDApIHtcbiAgICB2aWV3cyA9IHZpZXdzLmZpbHRlcigodikgPT4gdi5zdGFja0lkICE9PSB2aWV3LnN0YWNrSWQgfHwgdi5pZCA8PSB2aWV3LmlkKTtcbiAgfSBlbHNlIHtcbiAgICB2aWV3cy5wdXNoKHZpZXcpO1xuICB9XG4gIHJldHVybiB2aWV3cztcbn07XG5cbmNvbnN0IHNldEJhY2sgPSAodmlld3M6IFJvdXRlVmlld1tdLCB2aWV3OiBSb3V0ZVZpZXcpID0+IHtcbiAgY29uc3QgaW5kZXggPSB2aWV3cy5pbmRleE9mKHZpZXcpO1xuICBpZiAoaW5kZXggPj0gMCkge1xuICAgIHJldHVybiB2aWV3cy5maWx0ZXIoKHYpID0+IHYuc3RhY2tJZCAhPT0gdmlldy5zdGFja0lkIHx8IHYuaWQgPD0gdmlldy5pZCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNldFJvb3Qodmlld3MsIHZpZXcpO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXJsID0gKHJvdXRlcjogUm91dGVyLCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB1cmxUcmVlID0gcm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJ10sIHsgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUgfSk7XG4gIHJldHVybiByb3V0ZXIuc2VyaWFsaXplVXJsKHVybFRyZWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzVGFiU3dpdGNoID0gKGVudGVyaW5nVmlldzogUm91dGVWaWV3LCBsZWF2aW5nVmlldzogUm91dGVWaWV3IHwgdW5kZWZpbmVkKTogYm9vbGVhbiA9PiB7XG4gIGlmICghbGVhdmluZ1ZpZXcpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZW50ZXJpbmdWaWV3LnN0YWNrSWQgIT09IGxlYXZpbmdWaWV3LnN0YWNrSWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZVN0YWNrSWQgPSAocHJlZml4VXJsOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCwgdXJsOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAoIXByZWZpeFVybCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3Qgc2VnbWVudHMgPSB0b1NlZ21lbnRzKHVybCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoaSA+PSBwcmVmaXhVcmwubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gc2VnbWVudHNbaV07XG4gICAgfVxuICAgIGlmIChzZWdtZW50c1tpXSAhPT0gcHJlZml4VXJsW2ldKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvU2VnbWVudHMgPSAocGF0aDogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuICByZXR1cm4gcGF0aFxuICAgIC5zcGxpdCgnLycpXG4gICAgLm1hcCgocykgPT4gcy50cmltKCkpXG4gICAgLmZpbHRlcigocykgPT4gcyAhPT0gJycpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlc3Ryb3lWaWV3ID0gKHZpZXc6IFJvdXRlVmlldyB8IHVuZGVmaW5lZCk6IHZvaWQgPT4ge1xuICBpZiAodmlldykge1xuICAgIHZpZXcucmVmLmRlc3Ryb3koKTtcbiAgICB2aWV3LnVubGlzdGVuRXZlbnRzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhY2tXaWxsQ2hhbmdlRXZlbnQge1xuICBlbnRlcmluZ1ZpZXc6IFJvdXRlVmlldztcbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGUgZXZlbnQgaXMgdHJpZ2dlZCBhcyBhIHJlc3VsdCBvZiBhIHN3aXRjaFxuICAgKiBiZXR3ZWVuIHRhYiBuYXZpZ2F0aW9uIHN0YWNrcy5cbiAgICovXG4gIHRhYlN3aXRjaDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0RpZENoYW5nZUV2ZW50IHtcbiAgZW50ZXJpbmdWaWV3OiBSb3V0ZVZpZXc7XG4gIGRpcmVjdGlvbjogUm91dGVyRGlyZWN0aW9uO1xuICBhbmltYXRpb246IE5hdkRpcmVjdGlvbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGUgZXZlbnQgaXMgdHJpZ2dlZCBhcyBhIHJlc3VsdCBvZiBhIHN3aXRjaFxuICAgKiBiZXR3ZWVuIHRhYiBuYXZpZ2F0aW9uIHN0YWNrcy5cbiAgICovXG4gIHRhYlN3aXRjaDogYm9vbGVhbjtcbn1cblxuLy8gVE9ETyhGVy0yODI3KTogdHlwZXNcbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVWaWV3IHtcbiAgaWQ6IG51bWJlcjtcbiAgdXJsOiBzdHJpbmc7XG4gIHN0YWNrSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHJlZjogQ29tcG9uZW50UmVmPGFueT47XG4gIHNhdmVkRGF0YT86IGFueTtcbiAgc2F2ZWRFeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzO1xuICB1bmxpc3RlbkV2ZW50czogKCkgPT4gdm9pZDtcbiAgYW5pbWF0aW9uQnVpbGRlcj86IEFuaW1hdGlvbkJ1aWxkZXI7XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- // Re-exports from ionic/core
2
- // UTILS
3
- export { IonicSafeString, getPlatforms, isPlatform, createAnimation } from '@ionic/core';
4
- // CORE TYPES
5
- export { mdTransitionAnimation, iosTransitionAnimation, } from '@ionic/core';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pb25pYy1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQUU3QixRQUFRO0FBQ1IsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6RixhQUFhO0FBQ2IsT0FBTyxFQVdMLHFCQUFxQixFQUNyQixzQkFBc0IsR0FFdkIsTUFBTSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZS1leHBvcnRzIGZyb20gaW9uaWMvY29yZVxuXG4vLyBVVElMU1xuZXhwb3J0IHsgSW9uaWNTYWZlU3RyaW5nLCBnZXRQbGF0Zm9ybXMsIGlzUGxhdGZvcm0sIGNyZWF0ZUFuaW1hdGlvbiB9IGZyb20gJ0Bpb25pYy9jb3JlJztcblxuLy8gQ09SRSBUWVBFU1xuZXhwb3J0IHtcbiAgQW5pbWF0aW9uLFxuICBBbmltYXRpb25CdWlsZGVyLFxuICBBbmltYXRpb25DYWxsYmFja09wdGlvbnMsXG4gIEFuaW1hdGlvbkRpcmVjdGlvbixcbiAgQW5pbWF0aW9uRmlsbCxcbiAgQW5pbWF0aW9uS2V5RnJhbWVzLFxuICBBbmltYXRpb25MaWZlY3ljbGUsXG4gIEdlc3R1cmUsXG4gIEdlc3R1cmVDb25maWcsXG4gIEdlc3R1cmVEZXRhaWwsXG4gIG1kVHJhbnNpdGlvbkFuaW1hdGlvbixcbiAgaW9zVHJhbnNpdGlvbkFuaW1hdGlvbixcbiAgTmF2Q29tcG9uZW50V2l0aFByb3BzLFxufSBmcm9tICdAaW9uaWMvY29yZSc7XG4iXX0=