@ionic/angular 7.3.4-dev.11695051069.10d92d60 → 7.3.4-dev.11695238743.17597cce
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.
- package/README.md +0 -20
- package/app-initialize.d.ts +1 -1
- package/css/core.css +100 -0
- package/css/core.css.map +1 -1
- package/css/display.css +33 -0
- package/css/display.css.map +1 -1
- package/css/float-elements.css +33 -0
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css +84 -6
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +33 -0
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css +33 -0
- package/css/padding.css.map +1 -1
- package/css/structure.css +33 -0
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css +33 -0
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css +33 -0
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css +51 -6
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +165 -0
- package/css/utils.bundle.css.map +1 -1
- package/directives/navigation/ion-back-button.d.ts +16 -6
- package/directives/navigation/ion-router-outlet.d.ts +122 -4
- package/directives/navigation/ion-tabs.d.ts +64 -4
- package/directives/navigation/nav-delegate.d.ts +9 -0
- package/directives/navigation/router-link-delegate.d.ts +41 -7
- package/{common/directives → directives}/navigation/stack-utils.d.ts +1 -1
- package/directives/overlays/modal.d.ts +47 -3
- package/directives/overlays/popover.d.ts +43 -3
- package/directives/proxies-list.d.ts +1 -1
- package/directives/proxies.d.ts +26 -0
- package/esm2020/app-initialize.mjs +1 -1
- package/esm2020/directives/navigation/ion-back-button.mjs +36 -15
- package/esm2020/directives/navigation/ion-router-outlet.mjs +435 -6
- package/esm2020/directives/navigation/ion-tabs.mjs +166 -9
- package/esm2020/directives/navigation/nav-delegate.mjs +42 -0
- package/esm2020/directives/navigation/nav-params.mjs +45 -0
- package/esm2020/directives/navigation/router-link-delegate.mjs +92 -11
- package/esm2020/directives/navigation/stack-controller.mjs +275 -0
- package/esm2020/directives/navigation/stack-utils.mjs +73 -0
- package/esm2020/directives/overlays/modal.mjs +88 -8
- package/esm2020/directives/overlays/popover.mjs +87 -8
- package/esm2020/directives/proxies-list.mjs +3 -1
- package/esm2020/directives/proxies.mjs +53 -1
- package/esm2020/index.mjs +21 -4
- package/esm2020/ionic-core.mjs +6 -0
- package/esm2020/ionic-module.mjs +32 -14
- package/esm2020/providers/action-sheet-controller.mjs +18 -0
- package/esm2020/providers/alert-controller.mjs +18 -0
- package/esm2020/providers/angular-delegate.mjs +152 -0
- package/esm2020/providers/animation-controller.mjs +37 -0
- package/esm2020/providers/config.mjs +44 -0
- package/esm2020/providers/dom-controller.mjs +44 -0
- package/esm2020/providers/gesture-controller.mjs +31 -0
- package/esm2020/providers/loading-controller.mjs +18 -0
- package/esm2020/providers/menu-controller.mjs +100 -0
- package/esm2020/providers/modal-controller.mjs +25 -0
- package/esm2020/providers/nav-controller.mjs +221 -0
- package/esm2020/providers/picker-controller.mjs +18 -0
- package/esm2020/providers/platform.mjs +246 -0
- package/esm2020/providers/popover-controller.mjs +25 -0
- package/esm2020/providers/toast-controller.mjs +18 -0
- package/esm2020/types/interfaces.mjs +2 -0
- package/esm2020/util/ionic-router-reuse-strategy.mjs +55 -0
- package/esm2020/util/overlay.mjs +25 -0
- package/fesm2015/ionic-angular.mjs +2474 -124
- package/fesm2015/ionic-angular.mjs.map +1 -1
- package/fesm2020/ionic-angular.mjs +2466 -125
- package/fesm2020/ionic-angular.mjs.map +1 -1
- package/index.d.ts +19 -3
- package/ionic-core.d.ts +2 -0
- package/ionic-module.d.ts +2 -2
- package/package.json +3 -19
- package/{common/providers → providers}/action-sheet-controller.d.ts +2 -2
- package/{common/providers → providers}/alert-controller.d.ts +2 -2
- package/{common/providers → providers}/angular-delegate.d.ts +1 -1
- package/{common/providers → providers}/animation-controller.d.ts +1 -1
- package/{common/providers → providers}/config.d.ts +1 -1
- package/{common/providers → providers}/gesture-controller.d.ts +1 -1
- package/{common/providers → providers}/loading-controller.d.ts +2 -2
- package/{common/providers → providers}/modal-controller.d.ts +2 -2
- package/{common/providers → providers}/nav-controller.d.ts +2 -2
- package/{common/providers → providers}/picker-controller.d.ts +2 -2
- package/{common/providers → providers}/platform.d.ts +1 -1
- package/{common/providers → providers}/popover-controller.d.ts +2 -2
- package/{common/providers → providers}/toast-controller.d.ts +2 -2
- package/test/README.md +0 -8
- package/{common/types → types}/interfaces.d.ts +4 -0
- package/common/directives/navigation/back-button.d.ts +0 -26
- package/common/directives/navigation/nav.d.ts +0 -13
- package/common/directives/navigation/router-link-delegate.d.ts +0 -50
- package/common/directives/navigation/router-outlet.d.ts +0 -103
- package/common/directives/navigation/tabs.d.ts +0 -74
- package/common/index.d.ts +0 -26
- package/common/overlays/modal.d.ts +0 -50
- package/common/overlays/popover.d.ts +0 -46
- package/common/utils/proxy.d.ts +0 -8
- package/directives/navigation/ion-nav.d.ts +0 -8
- package/esm2020/common/directives/navigation/back-button.mjs +0 -59
- package/esm2020/common/directives/navigation/nav-params.mjs +0 -45
- package/esm2020/common/directives/navigation/nav.mjs +0 -47
- package/esm2020/common/directives/navigation/router-link-delegate.mjs +0 -111
- package/esm2020/common/directives/navigation/router-outlet.mjs +0 -461
- package/esm2020/common/directives/navigation/stack-controller.mjs +0 -275
- package/esm2020/common/directives/navigation/stack-utils.mjs +0 -73
- package/esm2020/common/directives/navigation/tabs.mjs +0 -172
- package/esm2020/common/index.mjs +0 -26
- package/esm2020/common/ionic-angular-common.mjs +0 -5
- package/esm2020/common/overlays/modal.mjs +0 -87
- package/esm2020/common/overlays/popover.mjs +0 -79
- package/esm2020/common/providers/action-sheet-controller.mjs +0 -18
- package/esm2020/common/providers/alert-controller.mjs +0 -18
- package/esm2020/common/providers/angular-delegate.mjs +0 -152
- package/esm2020/common/providers/animation-controller.mjs +0 -37
- package/esm2020/common/providers/config.mjs +0 -44
- package/esm2020/common/providers/dom-controller.mjs +0 -44
- package/esm2020/common/providers/gesture-controller.mjs +0 -31
- package/esm2020/common/providers/loading-controller.mjs +0 -18
- package/esm2020/common/providers/menu-controller.mjs +0 -100
- package/esm2020/common/providers/modal-controller.mjs +0 -25
- package/esm2020/common/providers/nav-controller.mjs +0 -221
- package/esm2020/common/providers/picker-controller.mjs +0 -18
- package/esm2020/common/providers/platform.mjs +0 -246
- package/esm2020/common/providers/popover-controller.mjs +0 -25
- package/esm2020/common/providers/toast-controller.mjs +0 -18
- package/esm2020/common/types/interfaces.mjs +0 -2
- package/esm2020/common/utils/overlay.mjs +0 -25
- package/esm2020/common/utils/proxy.mjs +0 -47
- package/esm2020/common/utils/routing.mjs +0 -55
- package/esm2020/directives/navigation/ion-nav.mjs +0 -21
- package/esm2020/standalone/directives/angular-component-lib/utils.mjs +0 -51
- package/esm2020/standalone/directives/icon.mjs +0 -33
- package/esm2020/standalone/directives/proxies.mjs +0 -2179
- package/esm2020/standalone/index.mjs +0 -15
- package/esm2020/standalone/ionic-angular-standalone.mjs +0 -5
- package/esm2020/standalone/navigation/back-button.mjs +0 -32
- package/esm2020/standalone/navigation/nav.mjs +0 -28
- package/esm2020/standalone/navigation/router-link-delegate.mjs +0 -30
- package/esm2020/standalone/navigation/router-outlet.mjs +0 -23
- package/esm2020/standalone/navigation/tabs.mjs +0 -46
- package/esm2020/standalone/overlays/modal.mjs +0 -32
- package/esm2020/standalone/overlays/popover.mjs +0 -28
- package/esm2020/standalone/providers/ionic-angular.mjs +0 -41
- package/fesm2015/ionic-angular-common.mjs +0 -2472
- package/fesm2015/ionic-angular-common.mjs.map +0 -1
- package/fesm2015/ionic-angular-standalone.mjs +0 -2410
- package/fesm2015/ionic-angular-standalone.mjs.map +0 -1
- package/fesm2020/ionic-angular-common.mjs +0 -2461
- package/fesm2020/ionic-angular-common.mjs.map +0 -1
- package/fesm2020/ionic-angular-standalone.mjs +0 -2408
- package/fesm2020/ionic-angular-standalone.mjs.map +0 -1
- package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
- package/standalone/directives/icon.d.ts +0 -9
- package/standalone/directives/proxies.d.ts +0 -1217
- package/standalone/index.d.ts +0 -12
- package/standalone/navigation/back-button.d.ts +0 -9
- package/standalone/navigation/nav.d.ts +0 -8
- package/standalone/navigation/router-link-delegate.d.ts +0 -10
- package/standalone/navigation/router-outlet.d.ts +0 -6
- package/standalone/navigation/tabs.d.ts +0 -12
- package/standalone/overlays/modal.d.ts +0 -6
- package/standalone/overlays/popover.d.ts +0 -6
- package/standalone/providers/ionic-angular.d.ts +0 -3
- /package/{common/directives → directives}/navigation/nav-params.d.ts +0 -0
- /package/{common/directives → directives}/navigation/stack-controller.d.ts +0 -0
- /package/{common/providers → providers}/dom-controller.d.ts +0 -0
- /package/{common/providers → providers}/menu-controller.d.ts +0 -0
- /package/{common/utils/routing.d.ts → util/ionic-router-reuse-strategy.d.ts} +0 -0
- /package/{common/utils → util}/overlay.d.ts +0 -0
|
@@ -0,0 +1,275 @@
|
|
|
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==
|
|
@@ -0,0 +1,73 @@
|
|
|
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,13 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/* tslint:disable */
|
|
4
|
+
import { ChangeDetectionStrategy, Component, ContentChild, TemplateRef, } from '@angular/core';
|
|
5
|
+
import { ProxyCmp, proxyOutputs } from '../angular-component-lib/utils';
|
|
3
6
|
import * as i0 from "@angular/core";
|
|
4
7
|
import * as i1 from "@angular/common";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
let IonModal = class IonModal {
|
|
9
|
+
constructor(c, r, z) {
|
|
10
|
+
this.z = z;
|
|
11
|
+
this.isCmpOpen = false;
|
|
12
|
+
this.el = r.nativeElement;
|
|
13
|
+
this.el.addEventListener('ionMount', () => {
|
|
14
|
+
this.isCmpOpen = true;
|
|
15
|
+
c.detectChanges();
|
|
16
|
+
});
|
|
17
|
+
this.el.addEventListener('didDismiss', () => {
|
|
18
|
+
this.isCmpOpen = false;
|
|
19
|
+
c.detectChanges();
|
|
20
|
+
});
|
|
21
|
+
proxyOutputs(this, this.el, [
|
|
22
|
+
'ionModalDidPresent',
|
|
23
|
+
'ionModalWillPresent',
|
|
24
|
+
'ionModalWillDismiss',
|
|
25
|
+
'ionModalDidDismiss',
|
|
26
|
+
'ionBreakpointDidChange',
|
|
27
|
+
'didPresent',
|
|
28
|
+
'willPresent',
|
|
29
|
+
'willDismiss',
|
|
30
|
+
'didDismiss',
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
/** @nocollapse */ IonModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonModal, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
/** @nocollapse */ IonModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonModal, selector: "ion-modal", inputs: { animated: "animated", keepContentsMounted: "keepContentsMounted", backdropBreakpoint: "backdropBreakpoint", backdropDismiss: "backdropDismiss", breakpoints: "breakpoints", canDismiss: "canDismiss", cssClass: "cssClass", enterAnimation: "enterAnimation", event: "event", handle: "handle", handleBehavior: "handleBehavior", initialBreakpoint: "initialBreakpoint", isOpen: "isOpen", keyboardClose: "keyboardClose", leaveAnimation: "leaveAnimation", mode: "mode", presentingElement: "presentingElement", showBackdrop: "showBackdrop", translucent: "translucent", trigger: "trigger" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: `<div class="ion-delegate-host ion-page" *ngIf="isCmpOpen || keepContentsMounted">
|
|
9
36
|
<ng-container [ngTemplateOutlet]="template"></ng-container>
|
|
10
37
|
</div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
38
|
+
IonModal = __decorate([
|
|
39
|
+
ProxyCmp({
|
|
40
|
+
inputs: [
|
|
41
|
+
'animated',
|
|
42
|
+
'keepContentsMounted',
|
|
43
|
+
'backdropBreakpoint',
|
|
44
|
+
'backdropDismiss',
|
|
45
|
+
'breakpoints',
|
|
46
|
+
'canDismiss',
|
|
47
|
+
'cssClass',
|
|
48
|
+
'enterAnimation',
|
|
49
|
+
'event',
|
|
50
|
+
'handle',
|
|
51
|
+
'handleBehavior',
|
|
52
|
+
'initialBreakpoint',
|
|
53
|
+
'isOpen',
|
|
54
|
+
'keyboardClose',
|
|
55
|
+
'leaveAnimation',
|
|
56
|
+
'mode',
|
|
57
|
+
'presentingElement',
|
|
58
|
+
'showBackdrop',
|
|
59
|
+
'translucent',
|
|
60
|
+
'trigger',
|
|
61
|
+
],
|
|
62
|
+
methods: ['present', 'dismiss', 'onDidDismiss', 'onWillDismiss', 'setCurrentBreakpoint', 'getCurrentBreakpoint'],
|
|
63
|
+
})
|
|
64
|
+
], IonModal);
|
|
65
|
+
export { IonModal };
|
|
11
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonModal, decorators: [{
|
|
12
67
|
type: Component,
|
|
13
68
|
args: [{
|
|
@@ -16,6 +71,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
16
71
|
template: `<div class="ion-delegate-host ion-page" *ngIf="isCmpOpen || keepContentsMounted">
|
|
17
72
|
<ng-container [ngTemplateOutlet]="template"></ng-container>
|
|
18
73
|
</div>`,
|
|
74
|
+
inputs: [
|
|
75
|
+
'animated',
|
|
76
|
+
'keepContentsMounted',
|
|
77
|
+
'backdropBreakpoint',
|
|
78
|
+
'backdropDismiss',
|
|
79
|
+
'breakpoints',
|
|
80
|
+
'canDismiss',
|
|
81
|
+
'cssClass',
|
|
82
|
+
'enterAnimation',
|
|
83
|
+
'event',
|
|
84
|
+
'handle',
|
|
85
|
+
'handleBehavior',
|
|
86
|
+
'initialBreakpoint',
|
|
87
|
+
'isOpen',
|
|
88
|
+
'keyboardClose',
|
|
89
|
+
'leaveAnimation',
|
|
90
|
+
'mode',
|
|
91
|
+
'presentingElement',
|
|
92
|
+
'showBackdrop',
|
|
93
|
+
'translucent',
|
|
94
|
+
'trigger',
|
|
95
|
+
],
|
|
19
96
|
}]
|
|
20
|
-
}] }
|
|
21
|
-
|
|
97
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { template: [{
|
|
98
|
+
type: ContentChild,
|
|
99
|
+
args: [TemplateRef, { static: false }]
|
|
100
|
+
}] } });
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9vdmVybGF5cy9tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBSVosV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztJQStGM0QsUUFBUSxTQUFSLFFBQVE7SUFRbkIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUpwRSxjQUFTLEdBQVksS0FBSyxDQUFDO1FBS3pCLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUUxQixJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFO1lBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUMxQixvQkFBb0I7WUFDcEIscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsd0JBQXdCO1lBQ3hCLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLFlBQVk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTt5SEEvQlksUUFBUTs2R0FBUixRQUFRLHFxQkFFTCxXQUFXLGdEQTVCZjs7U0FFSDtBQXdCSSxRQUFRO0lBdERwQixRQUFRLENBQUM7UUFDUixNQUFNLEVBQUU7WUFDTixVQUFVO1lBQ1YscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQixpQkFBaUI7WUFDakIsYUFBYTtZQUNiLFlBQVk7WUFDWixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLE9BQU87WUFDUCxRQUFRO1lBQ1IsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixRQUFRO1lBQ1IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixNQUFNO1lBQ04sbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxhQUFhO1lBQ2IsU0FBUztTQUNWO1FBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDO0tBQ2pILENBQUM7R0E4QlcsUUFBUSxDQStCcEI7U0EvQlksUUFBUTs0RkFBUixRQUFRO2tCQTdCcEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztvQkFDckIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7U0FFSDtvQkFDUCxNQUFNLEVBQUU7d0JBQ04sVUFBVTt3QkFDVixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsUUFBUTt3QkFDUixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsUUFBUTt3QkFDUixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsTUFBTTt3QkFDTixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixTQUFTO3FCQUNWO2lCQUNGO3NKQUcrQyxRQUFRO3NCQUFyRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuLyogdHNsaW50OmRpc2FibGUgKi9cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgTmdab25lLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm94eUNtcCwgcHJveHlPdXRwdXRzIH0gZnJvbSAnLi4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcbmltcG9ydCB7IENvbXBvbmVudHMsIE1vZGFsQnJlYWtwb2ludENoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSW9uTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLklvbk1vZGFsIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuXG4gICAqKi9cbiAgaW9uTW9kYWxEaWRQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuXG4gICAqL1xuICBpb25Nb2RhbFdpbGxQcmVzZW50OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIG1vZGFsIGhhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBpb25Nb2RhbFdpbGxEaXNtaXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgbW9kYWwgaGFzIGRpc21pc3NlZC5cbiAgICovXG4gIGlvbk1vZGFsRGlkRGlzbWlzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGJyZWFrcG9pbnQgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBpb25CcmVha3BvaW50RGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8TW9kYWxCcmVha3BvaW50Q2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIG1vZGFsIGhhcyBwcmVzZW50ZWQuIFNob3J0aGFuZCBmb3IgaW9uTW9kYWxXaWxsRGlzbWlzcy5cbiAgICovXG4gIGRpZFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgbW9kYWwgaGFzIHByZXNlbnRlZC4gU2hvcnRoYW5kIGZvciBpb25Nb2RhbFdpbGxQcmVzZW50LlxuICAgKi9cbiAgd2lsbFByZXNlbnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgbW9kYWwgaGFzIGRpc21pc3NlZC4gU2hvcnRoYW5kIGZvciBpb25Nb2RhbFdpbGxEaXNtaXNzLlxuICAgKi9cbiAgd2lsbERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBtb2RhbCBoYXMgZGlzbWlzc2VkLiBTaG9ydGhhbmQgZm9yIGlvbk1vZGFsRGlkRGlzbWlzcy5cbiAgICovXG4gIGRpZERpc21pc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudD47XG59XG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFtcbiAgICAnYW5pbWF0ZWQnLFxuICAgICdrZWVwQ29udGVudHNNb3VudGVkJyxcbiAgICAnYmFja2Ryb3BCcmVha3BvaW50JyxcbiAgICAnYmFja2Ryb3BEaXNtaXNzJyxcbiAgICAnYnJlYWtwb2ludHMnLFxuICAgICdjYW5EaXNtaXNzJyxcbiAgICAnY3NzQ2xhc3MnLFxuICAgICdlbnRlckFuaW1hdGlvbicsXG4gICAgJ2V2ZW50JyxcbiAgICAnaGFuZGxlJyxcbiAgICAnaGFuZGxlQmVoYXZpb3InLFxuICAgICdpbml0aWFsQnJlYWtwb2ludCcsXG4gICAgJ2lzT3BlbicsXG4gICAgJ2tleWJvYXJkQ2xvc2UnLFxuICAgICdsZWF2ZUFuaW1hdGlvbicsXG4gICAgJ21vZGUnLFxuICAgICdwcmVzZW50aW5nRWxlbWVudCcsXG4gICAgJ3Nob3dCYWNrZHJvcCcsXG4gICAgJ3RyYW5zbHVjZW50JyxcbiAgICAndHJpZ2dlcicsXG4gIF0sXG4gIG1ldGhvZHM6IFsncHJlc2VudCcsICdkaXNtaXNzJywgJ29uRGlkRGlzbWlzcycsICdvbldpbGxEaXNtaXNzJywgJ3NldEN1cnJlbnRCcmVha3BvaW50JywgJ2dldEN1cnJlbnRCcmVha3BvaW50J10sXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW9uLW1vZGFsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImlvbi1kZWxlZ2F0ZS1ob3N0IGlvbi1wYWdlXCIgKm5nSWY9XCJpc0NtcE9wZW4gfHwga2VlcENvbnRlbnRzTW91bnRlZFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+YCxcbiAgaW5wdXRzOiBbXG4gICAgJ2FuaW1hdGVkJyxcbiAgICAna2VlcENvbnRlbnRzTW91bnRlZCcsXG4gICAgJ2JhY2tkcm9wQnJlYWtwb2ludCcsXG4gICAgJ2JhY2tkcm9wRGlzbWlzcycsXG4gICAgJ2JyZWFrcG9pbnRzJyxcbiAgICAnY2FuRGlzbWlzcycsXG4gICAgJ2Nzc0NsYXNzJyxcbiAgICAnZW50ZXJBbmltYXRpb24nLFxuICAgICdldmVudCcsXG4gICAgJ2hhbmRsZScsXG4gICAgJ2hhbmRsZUJlaGF2aW9yJyxcbiAgICAnaW5pdGlhbEJyZWFrcG9pbnQnLFxuICAgICdpc09wZW4nLFxuICAgICdrZXlib2FyZENsb3NlJyxcbiAgICAnbGVhdmVBbmltYXRpb24nLFxuICAgICdtb2RlJyxcbiAgICAncHJlc2VudGluZ0VsZW1lbnQnLFxuICAgICdzaG93QmFja2Ryb3AnLFxuICAgICd0cmFuc2x1Y2VudCcsXG4gICAgJ3RyaWdnZXInLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJb25Nb2RhbCB7XG4gIC8vIFRPRE8oRlctMjgyNyk6IHR5cGVcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZiwgeyBzdGF0aWM6IGZhbHNlIH0pIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGlzQ21wT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5lbC5hZGRFdmVudExpc3RlbmVyKCdpb25Nb3VudCcsICgpID0+IHtcbiAgICAgIHRoaXMuaXNDbXBPcGVuID0gdHJ1ZTtcbiAgICAgIGMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICAgIHRoaXMuZWwuYWRkRXZlbnRMaXN0ZW5lcignZGlkRGlzbWlzcycsICgpID0+IHtcbiAgICAgIHRoaXMuaXNDbXBPcGVuID0gZmFsc2U7XG4gICAgICBjLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgW1xuICAgICAgJ2lvbk1vZGFsRGlkUHJlc2VudCcsXG4gICAgICAnaW9uTW9kYWxXaWxsUHJlc2VudCcsXG4gICAgICAnaW9uTW9kYWxXaWxsRGlzbWlzcycsXG4gICAgICAnaW9uTW9kYWxEaWREaXNtaXNzJyxcbiAgICAgICdpb25CcmVha3BvaW50RGlkQ2hhbmdlJyxcbiAgICAgICdkaWRQcmVzZW50JyxcbiAgICAgICd3aWxsUHJlc2VudCcsXG4gICAgICAnd2lsbERpc21pc3MnLFxuICAgICAgJ2RpZERpc21pc3MnLFxuICAgIF0pO1xuICB9XG59XG4iXX0=
|