@ionic/angular 7.4.4-dev.11696956070.1faa3cfe → 7.4.4-dev.11699472243.1ccd503d

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 (192) hide show
  1. package/README.md +20 -0
  2. package/app-initialize.d.ts +1 -1
  3. package/common/directives/control-value-accessors/index.d.ts +1 -0
  4. package/{directives → common/directives}/control-value-accessors/value-accessor.d.ts +2 -2
  5. package/common/directives/navigation/back-button.d.ts +26 -0
  6. package/common/directives/navigation/nav.d.ts +13 -0
  7. package/common/directives/navigation/router-link-delegate.d.ts +50 -0
  8. package/common/directives/navigation/router-outlet.d.ts +103 -0
  9. package/{directives → common/directives}/navigation/stack-utils.d.ts +1 -1
  10. package/common/directives/navigation/tabs.d.ts +74 -0
  11. package/common/index.d.ts +28 -0
  12. package/common/overlays/modal.d.ts +50 -0
  13. package/common/overlays/popover.d.ts +46 -0
  14. package/{providers → common/providers}/action-sheet-controller.d.ts +2 -2
  15. package/{providers → common/providers}/alert-controller.d.ts +2 -2
  16. package/{providers → common/providers}/angular-delegate.d.ts +1 -1
  17. package/{providers → common/providers}/animation-controller.d.ts +1 -1
  18. package/{providers → common/providers}/config.d.ts +1 -1
  19. package/{providers → common/providers}/gesture-controller.d.ts +1 -1
  20. package/{providers → common/providers}/loading-controller.d.ts +2 -2
  21. package/{providers → common/providers}/modal-controller.d.ts +2 -2
  22. package/{providers → common/providers}/nav-controller.d.ts +2 -2
  23. package/{providers → common/providers}/picker-controller.d.ts +2 -2
  24. package/{providers → common/providers}/platform.d.ts +2 -2
  25. package/{providers → common/providers}/popover-controller.d.ts +2 -2
  26. package/{providers → common/providers}/toast-controller.d.ts +2 -2
  27. package/{types → common/types}/interfaces.d.ts +0 -4
  28. package/common/utils/proxy.d.ts +8 -0
  29. package/directives/control-value-accessors/boolean-value-accessor.d.ts +1 -1
  30. package/directives/control-value-accessors/numeric-value-accessor.d.ts +1 -1
  31. package/directives/control-value-accessors/radio-value-accessor.d.ts +1 -1
  32. package/directives/control-value-accessors/select-value-accessor.d.ts +1 -1
  33. package/directives/control-value-accessors/text-value-accessor.d.ts +1 -1
  34. package/directives/navigation/ion-back-button.d.ts +6 -16
  35. package/directives/navigation/ion-nav.d.ts +8 -0
  36. package/directives/navigation/ion-router-outlet.d.ts +4 -122
  37. package/directives/navigation/ion-tabs.d.ts +4 -64
  38. package/directives/navigation/router-link-delegate.d.ts +7 -41
  39. package/directives/overlays/modal.d.ts +3 -47
  40. package/directives/overlays/popover.d.ts +3 -43
  41. package/directives/proxies-list.d.ts +1 -1
  42. package/directives/proxies.d.ts +1 -27
  43. package/esm2020/app-initialize.mjs +2 -2
  44. package/esm2020/common/directives/control-value-accessors/index.mjs +2 -0
  45. package/esm2020/common/directives/control-value-accessors/value-accessor.mjs +141 -0
  46. package/esm2020/common/directives/navigation/back-button.mjs +59 -0
  47. package/esm2020/common/directives/navigation/nav-params.mjs +45 -0
  48. package/esm2020/common/directives/navigation/nav.mjs +47 -0
  49. package/esm2020/common/directives/navigation/router-link-delegate.mjs +111 -0
  50. package/esm2020/common/directives/navigation/router-outlet.mjs +461 -0
  51. package/esm2020/common/directives/navigation/stack-controller.mjs +275 -0
  52. package/esm2020/common/directives/navigation/stack-utils.mjs +73 -0
  53. package/esm2020/common/directives/navigation/tabs.mjs +172 -0
  54. package/esm2020/common/index.mjs +28 -0
  55. package/esm2020/common/ionic-angular-common.mjs +5 -0
  56. package/esm2020/common/overlays/modal.mjs +87 -0
  57. package/esm2020/common/overlays/popover.mjs +79 -0
  58. package/esm2020/common/providers/action-sheet-controller.mjs +18 -0
  59. package/esm2020/common/providers/alert-controller.mjs +18 -0
  60. package/esm2020/common/providers/angular-delegate.mjs +152 -0
  61. package/esm2020/common/providers/animation-controller.mjs +37 -0
  62. package/esm2020/common/providers/config.mjs +44 -0
  63. package/esm2020/common/providers/dom-controller.mjs +44 -0
  64. package/esm2020/common/providers/gesture-controller.mjs +31 -0
  65. package/esm2020/common/providers/loading-controller.mjs +18 -0
  66. package/esm2020/common/providers/menu-controller.mjs +100 -0
  67. package/esm2020/common/providers/modal-controller.mjs +25 -0
  68. package/esm2020/common/providers/nav-controller.mjs +221 -0
  69. package/esm2020/common/providers/picker-controller.mjs +18 -0
  70. package/esm2020/common/providers/platform.mjs +246 -0
  71. package/esm2020/common/providers/popover-controller.mjs +25 -0
  72. package/esm2020/common/providers/toast-controller.mjs +18 -0
  73. package/esm2020/common/types/interfaces.mjs +2 -0
  74. package/esm2020/common/utils/overlay.mjs +25 -0
  75. package/esm2020/common/utils/proxy.mjs +47 -0
  76. package/esm2020/common/utils/routing.mjs +55 -0
  77. package/esm2020/common/utils/util.mjs +10 -0
  78. package/esm2020/directives/control-value-accessors/boolean-value-accessor.mjs +4 -4
  79. package/esm2020/directives/control-value-accessors/numeric-value-accessor.mjs +2 -2
  80. package/esm2020/directives/control-value-accessors/radio-value-accessor.mjs +6 -3
  81. package/esm2020/directives/control-value-accessors/select-value-accessor.mjs +2 -2
  82. package/esm2020/directives/control-value-accessors/text-value-accessor.mjs +2 -2
  83. package/esm2020/directives/navigation/ion-back-button.mjs +15 -36
  84. package/esm2020/directives/navigation/ion-nav.mjs +21 -0
  85. package/esm2020/directives/navigation/ion-router-outlet.mjs +6 -435
  86. package/esm2020/directives/navigation/ion-tabs.mjs +9 -166
  87. package/esm2020/directives/navigation/router-link-delegate.mjs +11 -92
  88. package/esm2020/directives/overlays/modal.mjs +8 -88
  89. package/esm2020/directives/overlays/popover.mjs +8 -87
  90. package/esm2020/directives/proxies-list.mjs +1 -3
  91. package/esm2020/directives/proxies.mjs +4 -56
  92. package/esm2020/index.mjs +5 -22
  93. package/esm2020/ionic-module.mjs +14 -32
  94. package/esm2020/standalone/directives/angular-component-lib/utils.mjs +51 -0
  95. package/esm2020/standalone/directives/checkbox.mjs +73 -0
  96. package/esm2020/standalone/directives/datetime.mjs +90 -0
  97. package/esm2020/standalone/directives/icon.mjs +33 -0
  98. package/esm2020/standalone/directives/index.mjs +13 -0
  99. package/esm2020/standalone/directives/input.mjs +112 -0
  100. package/esm2020/standalone/directives/proxies.mjs +2268 -0
  101. package/esm2020/standalone/directives/radio-group.mjs +58 -0
  102. package/esm2020/standalone/directives/radio.mjs +62 -0
  103. package/esm2020/standalone/directives/range.mjs +77 -0
  104. package/esm2020/standalone/directives/searchbar.mjs +80 -0
  105. package/esm2020/standalone/directives/segment.mjs +58 -0
  106. package/esm2020/standalone/directives/select.mjs +81 -0
  107. package/esm2020/standalone/directives/textarea.mjs +90 -0
  108. package/esm2020/standalone/directives/toggle.mjs +73 -0
  109. package/esm2020/standalone/index.mjs +15 -0
  110. package/esm2020/standalone/ionic-angular-standalone.mjs +5 -0
  111. package/esm2020/standalone/navigation/back-button.mjs +32 -0
  112. package/esm2020/standalone/navigation/nav.mjs +28 -0
  113. package/esm2020/standalone/navigation/router-link-delegate.mjs +28 -0
  114. package/esm2020/standalone/navigation/router-outlet.mjs +23 -0
  115. package/esm2020/standalone/navigation/tabs.mjs +46 -0
  116. package/esm2020/standalone/overlays/modal.mjs +32 -0
  117. package/esm2020/standalone/overlays/popover.mjs +28 -0
  118. package/esm2020/standalone/providers/ionic-angular.mjs +41 -0
  119. package/fesm2015/ionic-angular-common.mjs +2620 -0
  120. package/fesm2015/ionic-angular-common.mjs.map +1 -0
  121. package/fesm2015/ionic-angular-standalone.mjs +3286 -0
  122. package/fesm2015/ionic-angular-standalone.mjs.map +1 -0
  123. package/fesm2015/ionic-angular.mjs +143 -2637
  124. package/fesm2015/ionic-angular.mjs.map +1 -1
  125. package/fesm2020/ionic-angular-common.mjs +2609 -0
  126. package/fesm2020/ionic-angular-common.mjs.map +1 -0
  127. package/fesm2020/ionic-angular-standalone.mjs +3284 -0
  128. package/fesm2020/ionic-angular-standalone.mjs.map +1 -0
  129. package/fesm2020/ionic-angular.mjs +142 -2627
  130. package/fesm2020/ionic-angular.mjs.map +1 -1
  131. package/index.d.ts +4 -20
  132. package/ionic-module.d.ts +2 -2
  133. package/package.json +18 -2
  134. package/standalone/directives/angular-component-lib/utils.d.ts +9 -0
  135. package/standalone/directives/checkbox.d.ts +30 -0
  136. package/standalone/directives/datetime.d.ts +30 -0
  137. package/standalone/directives/icon.d.ts +9 -0
  138. package/standalone/directives/index.d.ts +12 -0
  139. package/standalone/directives/input.d.ts +47 -0
  140. package/standalone/directives/proxies.d.ts +903 -0
  141. package/standalone/directives/radio-group.d.ts +18 -0
  142. package/standalone/directives/radio.d.ts +22 -0
  143. package/standalone/directives/range.d.ts +47 -0
  144. package/standalone/directives/searchbar.d.ts +45 -0
  145. package/standalone/directives/segment.d.ts +19 -0
  146. package/standalone/directives/select.d.ts +34 -0
  147. package/standalone/directives/textarea.d.ts +37 -0
  148. package/standalone/directives/toggle.d.ts +28 -0
  149. package/standalone/index.d.ts +12 -0
  150. package/standalone/navigation/back-button.d.ts +9 -0
  151. package/standalone/navigation/nav.d.ts +8 -0
  152. package/standalone/navigation/router-link-delegate.d.ts +10 -0
  153. package/standalone/navigation/router-outlet.d.ts +6 -0
  154. package/standalone/navigation/tabs.d.ts +12 -0
  155. package/standalone/overlays/modal.d.ts +6 -0
  156. package/standalone/overlays/popover.d.ts +6 -0
  157. package/standalone/providers/ionic-angular.d.ts +3 -0
  158. package/test/README.md +8 -0
  159. package/directives/navigation/nav-delegate.d.ts +0 -9
  160. package/esm2020/directives/control-value-accessors/value-accessor.mjs +0 -141
  161. package/esm2020/directives/navigation/nav-delegate.mjs +0 -42
  162. package/esm2020/directives/navigation/nav-params.mjs +0 -45
  163. package/esm2020/directives/navigation/stack-controller.mjs +0 -275
  164. package/esm2020/directives/navigation/stack-utils.mjs +0 -73
  165. package/esm2020/ionic-core.mjs +0 -6
  166. package/esm2020/providers/action-sheet-controller.mjs +0 -18
  167. package/esm2020/providers/alert-controller.mjs +0 -18
  168. package/esm2020/providers/angular-delegate.mjs +0 -152
  169. package/esm2020/providers/animation-controller.mjs +0 -37
  170. package/esm2020/providers/config.mjs +0 -44
  171. package/esm2020/providers/dom-controller.mjs +0 -44
  172. package/esm2020/providers/gesture-controller.mjs +0 -31
  173. package/esm2020/providers/loading-controller.mjs +0 -18
  174. package/esm2020/providers/menu-controller.mjs +0 -100
  175. package/esm2020/providers/modal-controller.mjs +0 -25
  176. package/esm2020/providers/nav-controller.mjs +0 -221
  177. package/esm2020/providers/picker-controller.mjs +0 -18
  178. package/esm2020/providers/platform.mjs +0 -246
  179. package/esm2020/providers/popover-controller.mjs +0 -25
  180. package/esm2020/providers/toast-controller.mjs +0 -18
  181. package/esm2020/types/interfaces.mjs +0 -2
  182. package/esm2020/util/ionic-router-reuse-strategy.mjs +0 -55
  183. package/esm2020/util/overlay.mjs +0 -25
  184. package/esm2020/util/util.mjs +0 -10
  185. package/ionic-core.d.ts +0 -2
  186. /package/{directives → common/directives}/navigation/nav-params.d.ts +0 -0
  187. /package/{directives → common/directives}/navigation/stack-controller.d.ts +0 -0
  188. /package/{providers → common/providers}/dom-controller.d.ts +0 -0
  189. /package/{providers → common/providers}/menu-controller.d.ts +0 -0
  190. /package/{util → common/utils}/overlay.d.ts +0 -0
  191. /package/{util/ionic-router-reuse-strategy.d.ts → common/utils/routing.d.ts} +0 -0
  192. /package/{util → common/utils}/util.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3N0YWNrLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHdkUsT0FBTyxFQUdMLGNBQWMsRUFDZCxXQUFXLEVBQ1gsTUFBTSxFQUNOLFVBQVUsRUFDVixXQUFXLEVBQ1gsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLHVCQUF1QjtBQUV2QixNQUFNLE9BQU8sZUFBZTtJQVExQixZQUNFLFVBQThCLEVBQ3RCLFdBQXVDLEVBQ3ZDLE1BQWMsRUFDZCxPQUFzQixFQUN0QixJQUFZLEVBQ1osUUFBa0I7UUFKbEIsZ0JBQVcsR0FBWCxXQUFXLENBQTRCO1FBQ3ZDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBYnBCLFVBQUssR0FBZ0IsRUFBRSxDQUFDO1FBRXhCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBR3ZCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFVakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsRixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQXNCLEVBQUUsY0FBOEI7UUFDL0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFLFFBQVEsRUFBRSxhQUE0QixDQUFDO1FBQzVELE1BQU0sY0FBYyxHQUFHLG1C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YW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHR5cGUgeyBBbmltYXRpb25CdWlsZGVyLCBSb3V0ZXJEaXJlY3Rpb24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgYmluZExpZmVjeWNsZUV2ZW50cyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9hbmd1bGFyLWRlbGVnYXRlJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWNvbnRyb2xsZXInO1xuXG5pbXBvcnQge1xuICBSb3V0ZVZpZXcsXG4gIFN0YWNrRGlkQ2hhbmdlRXZlbnQsXG4gIGNvbXB1dGVTdGFja0lkLFxuICBkZXN0cm95VmlldyxcbiAgZ2V0VXJsLFxuICBpbnNlcnRWaWV3LFxuICBpc1RhYlN3aXRjaCxcbiAgdG9TZWdtZW50cyxcbn0gZnJvbSAnLi9zdGFjay11dGlscyc7XG5cbi8vIFRPRE8oRlctMjgyNyk6IHR5cGVzXG5cbmV4cG9ydCBjbGFzcyBTdGFja0NvbnRyb2xsZXIge1xuICBwcml2YXRlIHZpZXdzOiBSb3V0ZVZpZXdbXSA9IFtdO1xuICBwcml2YXRlIHJ1bm5pbmdUYXNrPzogUHJvbWlzZTxhbnk+O1xuICBwcml2YXRlIHNraXBUcmFuc2l0aW9uID0gZmFsc2U7XG4gIHByaXZhdGUgdGFic1ByZWZpeDogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgYWN0aXZlVmlldzogUm91dGVWaWV3IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIG5leHRJZCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGFic1ByZWZpeDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgY29udGFpbmVyRWw6IEhUTUxJb25Sb3V0ZXJPdXRsZXRFbGVtZW50LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uXG4gICkge1xuICAgIHRoaXMudGFic1ByZWZpeCA9IHRhYnNQcmVmaXggIT09IHVuZGVmaW5lZCA/IHRvU2VnbWVudHModGFic1ByZWZpeCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBjcmVhdGVWaWV3KHJlZjogQ29tcG9uZW50UmVmPGFueT4sIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IFJvdXRlVmlldyB7XG4gICAgY29uc3QgdXJsID0gZ2V0VXJsKHRoaXMucm91dGVyLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgY29uc3QgZWxlbWVudCA9IHJlZj8ubG9jYXRpb24/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgdW5saXN0ZW5FdmVudHMgPSBiaW5kTGlmZWN5Y2xlRXZlbnRzKHRoaXMuem9uZSwgcmVmLmluc3RhbmNlLCBlbGVtZW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHRoaXMubmV4dElkKyssXG4gICAgICBzdGFja0lkOiBjb21wdXRlU3RhY2tJZCh0aGlzLnRhYnNQcmVmaXgsIHVybCksXG4gICAgICB1bmxpc3RlbkV2ZW50cyxcbiAgICAgIGVsZW1lbnQsXG4gICAgICByZWYsXG4gICAgICB1cmwsXG4gICAgfTtcbiAgfVxuXG4gIGdldEV4aXN0aW5nVmlldyhhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBSb3V0ZVZpZXcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFjdGl2YXRlZFVybEtleSA9IGdldFVybCh0aGlzLnJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZpZXdzLmZpbmQoKHZ3KSA9PiB2dy51cmwgPT09IGFjdGl2YXRlZFVybEtleSk7XG4gICAgaWYgKHZpZXcpIHtcbiAgICAgIHZpZXcucmVmLmNoYW5nZURldGVjdG9yUmVmLnJlYXR0YWNoKCk7XG4gICAgfVxuICAgIHJldHVybiB2aWV3O1xuICB9XG5cbiAgc2V0QWN0aXZlKGVudGVyaW5nVmlldzogUm91dGVWaWV3KTogUHJvbWlzZTxTdGFja0RpZENoYW5nZUV2ZW50PiB7XG4gICAgY29uc3QgY29uc3VtZVJlc3VsdCA9IHRoaXMubmF2Q3RybC5jb25zdW1lVHJhbnNpdGlvbigpO1xuICAgIGxldCB7IGRpcmVjdGlvbiwgYW5pbWF0aW9uLCBhbmltYXRpb25CdWlsZGVyIH0gPSBjb25zdW1lUmVzdWx0O1xuICAgIGNvbnN0IGxlYXZpbmdWaWV3ID0gdGhpcy5hY3RpdmVWaWV3O1xuICAgIGNvbnN0IHRhYlN3aXRjaCA9IGlzVGFiU3dpdGNoKGVudGVyaW5nVmlldywgbGVhdmluZ1ZpZXcpO1xuICAgIGlmICh0YWJTd2l0Y2gpIHtcbiAgICAgIGRpcmVjdGlvbiA9ICdiYWNrJztcbiAgICAgIGFuaW1hdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCB2aWV3c1NuYXBzaG90ID0gdGhpcy52aWV3cy5zbGljZSgpO1xuXG4gICAgbGV0IGN1cnJlbnROYXZpZ2F0aW9uO1xuXG4gICAgY29uc3Qgcm91dGVyID0gdGhpcy5yb3V0ZXIgYXMgYW55O1xuXG4gICAgLy8gQW5ndWxhciA+PSA3LjIuMFxuICAgIGlmIChyb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24pIHtcbiAgICAgIGN1cnJlbnROYXZpZ2F0aW9uID0gcm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG5cbiAgICAgIC8vIEFuZ3VsYXIgPCA3LjIuMFxuICAgIH0gZWxzZSBpZiAocm91dGVyLm5hdmlnYXRpb25zPy52YWx1ZSkge1xuICAgICAgY3VycmVudE5hdmlnYXRpb24gPSByb3V0ZXIubmF2aWdhdGlvbnMudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIG5hdmlnYXRpb24gYWN0aW9uXG4gICAgICogc2V0cyBgcmVwbGFjZVVybDogdHJ1ZWBcbiAgICAgKiB0aGVuIHdlIG5lZWQgdG8gbWFrZSBzdXJlXG4gICAgICogd2UgcmVtb3ZlIHRoZSBsYXN0IGl0ZW1cbiAgICAgKiBmcm9tIG91ciB2aWV3cyBzdGFja1xuICAgICAqL1xuICAgIGlmIChjdXJyZW50TmF2aWdhdGlvbj8uZXh0cmFzPy5yZXBsYWNlVXJsKSB7XG4gICAgICBpZiAodGhpcy52aWV3cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudmlld3Muc3BsaWNlKC0xLCAxKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXVzZWQgPSB0aGlzLnZpZXdzLmluY2x1ZGVzKGVudGVyaW5nVmlldyk7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLmluc2VydFZpZXcoZW50ZXJpbmdWaWV3LCBkaXJlY3Rpb24pO1xuXG4gICAgLy8gVHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGJlZm9yZSB0cmFuc2l0aW9uIHN0YXJ0c1xuICAgIC8vIFRoaXMgd2lsbCBjYWxsIG5nT25Jbml0KCkgdGhlIGZpcnN0IHRpbWUgdG9vLCBqdXN0IGFmdGVyIHRoZSB2aWV3XG4gICAgLy8gd2FzIGF0dGFjaGVkIHRvIHRoZSBkb20sIGJ1dCBCRUZPUkUgdGhlIHRyYW5zaXRpb24gc3RhcnRzXG4gICAgaWYgKCFyZXVzZWQpIHtcbiAgICAgIGVudGVyaW5nVmlldy5yZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElmIHdlIGFyZSBnb2luZyBiYWNrIGZyb20gYSBwYWdlIHRoYXRcbiAgICAgKiB3YXMgcHJlc2VudGVkIHVzaW5nIGEgY3VzdG9tIGFuaW1hdGlvblxuICAgICAqIHdlIHNob3VsZCBkZWZhdWx0IHRvIHVzaW5nIHRoYXRcbiAgICAgKiB1bmxlc3MgdGhlIGRldmVsb3BlciBleHBsaWNpdGx5XG4gICAgICogcHJvdmlkZWQgYW5vdGhlciBhbmltYXRpb24uXG4gICAgICovXG4gICAgY29uc3QgY3VzdG9tQW5pbWF0aW9uID0gZW50ZXJpbmdWaWV3LmFuaW1hdGlvbkJ1aWxkZXI7XG4gICAgaWYgKGFuaW1hdGlvbkJ1aWxkZXIgPT09IHVuZGVmaW5lZCAmJiBkaXJlY3Rpb24gPT09ICdiYWNrJyAmJiAhdGFiU3dpdGNoICYmIGN1c3RvbUFuaW1hdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhbmltYXRpb25CdWlsZGVyID0gY3VzdG9tQW5pbWF0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmUgYW55IGN1c3RvbSBhbmltYXRpb24gc28gdGhhdCBuYXZpZ2F0aW5nXG4gICAgICogYmFjayB3aWxsIHVzZSB0aGlzIGN1c3RvbSBhbmltYXRpb24gYnkgZGVmYXVsdC5cbiAgICAgKi9cbiAgICBpZiAobGVhdmluZ1ZpZXcpIHtcbiAgICAgIGxlYXZpbmdWaWV3LmFuaW1hdGlvbkJ1aWxkZXIgPSBhbmltYXRpb25CdWlsZGVyO1xuICAgIH1cblxuICAgIC8vIFdhaXQgdW50aWwgcHJldmlvdXMgdHJhbnNpdGlvbnMgZmluaXNoXG4gICAgcmV0dXJuIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy53YWl0KCgpID0+IHtcbiAgICAgICAgLy8gZGlzY29ubmVjdCBsZWF2aW5nIHBhZ2UgZnJvbSBjaGFuZ2UgZGV0ZWN0aW9uIHRvXG4gICAgICAgIC8vIHJlZHVjZSBqYW5rIGR1cmluZyB0aGUgcGFnZSB0cmFuc2l0aW9uXG4gICAgICAgIGlmIChsZWF2aW5nVmlldykge1xuICAgICAgICAgIGxlYXZpbmdWaWV3LnJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJbiBjYXNlIHRoZSBlbnRlcmluZ1ZpZXcgaXMgdGhlIHNhbWUgYXMgdGhlIGxlYXZpbmdQYWdlIHdlIG5lZWQgdG8gcmVhdHRhY2goKVxuICAgICAgICBlbnRlcmluZ1ZpZXcucmVmLmNoYW5nZURldGVjdG9yUmVmLnJlYXR0YWNoKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNpdGlvbihlbnRlcmluZ1ZpZXcsIGxlYXZpbmdWaWV3LCBhbmltYXRpb24sIHRoaXMuY2FuR29CYWNrKDEpLCBmYWxzZSwgYW5pbWF0aW9uQnVpbGRlcilcbiAgICAgICAgICAudGhlbigoKSA9PiBjbGVhbnVwQXN5bmMoZW50ZXJpbmdWaWV3LCB2aWV3cywgdmlld3NTbmFwc2hvdCwgdGhpcy5sb2NhdGlvbiwgdGhpcy56b25lKSlcbiAgICAgICAgICAudGhlbigoKSA9PiAoe1xuICAgICAgICAgICAgZW50ZXJpbmdWaWV3LFxuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICAgICAgdGFiU3dpdGNoLFxuICAgICAgICAgIH0pKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY2FuR29CYWNrKGRlZXA6IG51bWJlciwgc3RhY2tJZCA9IHRoaXMuZ2V0QWN0aXZlU3RhY2tJZCgpKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhY2soc3RhY2tJZCkubGVuZ3RoID4gZGVlcDtcbiAgfVxuXG4gIHBvcChkZWVwOiBudW1iZXIsIHN0YWNrSWQgPSB0aGlzLmdldEFjdGl2ZVN0YWNrSWQoKSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIGNvbnN0IHZpZXdzID0gdGhpcy5nZXRTdGFjayhzdGFja0lkKTtcbiAgICAgIGlmICh2aWV3cy5sZW5ndGggPD0gZGVlcCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZpZXcgPSB2aWV3c1t2aWV3cy5sZW5ndGggLSBkZWVwIC0gMV07XG4gICAgICBsZXQgdXJsID0gdmlldy51cmw7XG5cbiAgICAgIGNvbnN0IHZpZXdTYXZlZERhdGEgPSB2aWV3LnNhdmVkRGF0YTtcbiAgICAgIGlmICh2aWV3U2F2ZWREYXRhKSB7XG4gICAgICAgIGNvbnN0IHByaW1hcnlPdXRsZXQgPSB2aWV3U2F2ZWREYXRhLmdldCgncHJpbWFyeScpO1xuICAgICAgICBpZiAocHJpbWFyeU91dGxldD8ucm91dGU/Ll9yb3V0ZXJTdGF0ZT8uc25hcHNob3QudXJsKSB7XG4gICAgICAgICAgdXJsID0gcHJpbWFyeU91dGxldC5yb3V0ZS5fcm91dGVyU3RhdGUuc25hcHNob3QudXJsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCB7IGFuaW1hdGlvbkJ1aWxkZXIgfSA9IHRoaXMubmF2Q3RybC5jb25zdW1lVHJhbnNpdGlvbigpO1xuICAgICAgcmV0dXJuIHRoaXMubmF2Q3RybC5uYXZpZ2F0ZUJhY2sodXJsLCB7IC4uLnZpZXcuc2F2ZWRFeHRyYXMsIGFuaW1hdGlvbjogYW5pbWF0aW9uQnVpbGRlciB9KS50aGVuKCgpID0+IHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhcnRCYWNrVHJhbnNpdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbGVhdmluZ1ZpZXcgPSB0aGlzLmFjdGl2ZVZpZXc7XG4gICAgaWYgKGxlYXZpbmdWaWV3KSB7XG4gICAgICBjb25zdCB2aWV3cyA9IHRoaXMuZ2V0U3RhY2sobGVhdmluZ1ZpZXcuc3RhY2tJZCk7XG4gICAgICBjb25zdCBlbnRlcmluZ1ZpZXcgPSB2aWV3c1t2aWV3cy5sZW5ndGggLSAyXTtcbiAgICAgIGNvbnN0IGN1c3RvbUFuaW1hdGlvbiA9IGVudGVyaW5nVmlldy5hbmltYXRpb25CdWlsZGVyO1xuXG4gICAgICByZXR1cm4gdGhpcy53YWl0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNpdGlvbihcbiAgICAgICAgICBlbnRlcmluZ1ZpZXcsIC8vIGVudGVyaW5nIHZpZXdcbiAgICAgICAgICBsZWF2aW5nVmlldywgLy8gbGVhdmluZyB2aWV3XG4gICAgICAgICAgJ2JhY2snLFxuICAgICAgICAgIHRoaXMuY2FuR29CYWNrKDIpLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICAgY3VzdG9tQW5pbWF0aW9uXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgZW5kQmFja1RyYW5zaXRpb24oc2hvdWxkQ29tcGxldGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoc2hvdWxkQ29tcGxldGUpIHtcbiAgICAgIHRoaXMuc2tpcFRyYW5zaXRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5wb3AoMSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgIGNsZWFudXAodGhpcy5hY3RpdmVWaWV3LCB0aGlzLnZpZXdzLCB0aGlzLnZpZXdzLCB0aGlzLmxvY2F0aW9uLCB0aGlzLnpvbmUpO1xuICAgIH1cbiAgfVxuXG4gIGdldExhc3RVcmwoc3RhY2tJZD86IHN0cmluZyk6IFJvdXRlVmlldyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLmdldFN0YWNrKHN0YWNrSWQpO1xuICAgIHJldHVybiB2aWV3cy5sZW5ndGggPiAwID8gdmlld3Nbdmlld3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXRSb290VXJsKHN0YWNrSWQ/OiBzdHJpbmcpOiBSb3V0ZVZpZXcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHZpZXdzID0gdGhpcy5nZXRTdGFjayhzdGFja0lkKTtcbiAgICByZXR1cm4gdmlld3MubGVuZ3RoID4gMCA/IHZpZXdzWzBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0QWN0aXZlU3RhY2tJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZVZpZXcgPyB0aGlzLmFjdGl2ZVZpZXcuc3RhY2tJZCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldEFjdGl2ZVZpZXcoKTogUm91dGVWaWV3IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVWaWV3O1xuICB9XG5cbiAgaGFzUnVubmluZ1Rhc2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucnVubmluZ1Rhc2sgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICB0aGlzLmNvbnRhaW5lckVsID0gdW5kZWZpbmVkITtcbiAgICB0aGlzLnZpZXdzLmZvckVhY2goZGVzdHJveVZpZXcpO1xuICAgIHRoaXMuYWN0aXZlVmlldyA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnZpZXdzID0gW107XG4gIH1cblxuICBwcml2YXRlIGdldFN0YWNrKHN0YWNrSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdzLmZpbHRlcigodikgPT4gdi5zdGFja0lkID09PSBzdGFja0lkKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zZXJ0VmlldyhlbnRlcmluZ1ZpZXc6IFJvdXRlVmlldywgZGlyZWN0aW9uOiBSb3V0ZXJEaXJlY3Rpb24pIHtcbiAgICB0aGlzLmFjdGl2ZVZpZXcgPSBlbnRlcmluZ1ZpZXc7XG4gICAgdGhpcy52aWV3cyA9IGluc2VydFZpZXcodGhpcy52aWV3cywgZW50ZXJpbmdWaWV3LCBkaXJlY3Rpb24pO1xuICAgIHJldHVybiB0aGlzLnZpZXdzLnNsaWNlKCk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zaXRpb24oXG4gICAgZW50ZXJpbmdWaWV3OiBSb3V0ZVZpZXcgfCB1bmRlZmluZWQsXG4gICAgbGVhdmluZ1ZpZXc6IFJvdXRlVmlldyB8IHVuZGVmaW5lZCxcbiAgICBkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrJyB8IHVuZGVmaW5lZCxcbiAgICBzaG93R29CYWNrOiBib29sZWFuLFxuICAgIHByb2dyZXNzQW5pbWF0aW9uOiBib29sZWFuLFxuICAgIGFuaW1hdGlvbkJ1aWxkZXI/OiBBbmltYXRpb25CdWlsZGVyXG4gICkge1xuICAgIGlmICh0aGlzLnNraXBUcmFuc2l0aW9uKSB7XG4gICAgICB0aGlzLnNraXBUcmFuc2l0aW9uID0gZmFsc2U7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKGxlYXZpbmdWaWV3ID09PSBlbnRlcmluZ1ZpZXcpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgIH1cbiAgICBjb25zdCBlbnRlcmluZ0VsID0gZW50ZXJpbmdWaWV3ID8gZW50ZXJpbmdWaWV3LmVsZW1lbnQgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgbGVhdmluZ0VsID0gbGVhdmluZ1ZpZXcgPyBsZWF2aW5nVmlldy5lbGVtZW50IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gdGhpcy5jb250YWluZXJFbDtcbiAgICBpZiAoZW50ZXJpbmdFbCAmJiBlbnRlcmluZ0VsICE9PSBsZWF2aW5nRWwpIHtcbiAgICAgIGVudGVyaW5nRWwuY2xhc3NMaXN0LmFkZCgnaW9uLXBhZ2UnKTtcbiAgICAgIGVudGVyaW5nRWwuY2xhc3NMaXN0LmFkZCgnaW9uLXBhZ2UtaW52aXNpYmxlJyk7XG4gICAgICBpZiAoZW50ZXJpbmdFbC5wYXJlbnRFbGVtZW50ICE9PSBjb250YWluZXJFbCkge1xuICAgICAgICBjb250YWluZXJFbC5hcHBlbmRDaGlsZChlbnRlcmluZ0VsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKChjb250YWluZXJFbCBhcyBhbnkpLmNvbW1pdCkge1xuICAgICAgICByZXR1cm4gY29udGFpbmVyRWwuY29tbWl0KGVudGVyaW5nRWwsIGxlYXZpbmdFbCwge1xuICAgICAgICAgIGR1cmF0aW9uOiBkaXJlY3Rpb24gPT09IHVuZGVmaW5lZCA/IDAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgIHNob3dHb0JhY2ssXG4gICAgICAgICAgcHJvZ3Jlc3NBbmltYXRpb24sXG4gICAgICAgICAgYW5pbWF0aW9uQnVpbGRlcixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWl0PFQ+KHRhc2s6ICgpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICBpZiAodGhpcy5ydW5uaW5nVGFzayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLnJ1bm5pbmdUYXNrO1xuICAgICAgdGhpcy5ydW5uaW5nVGFzayA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZSA9ICh0aGlzLnJ1bm5pbmdUYXNrID0gdGFzaygpKTtcbiAgICBwcm9taXNlLmZpbmFsbHkoKCkgPT4gKHRoaXMucnVubmluZ1Rhc2sgPSB1bmRlZmluZWQpKTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxufVxuXG5jb25zdCBjbGVhbnVwQXN5bmMgPSAoXG4gIGFjdGl2ZVJvdXRlOiBSb3V0ZVZpZXcsXG4gIHZpZXdzOiBSb3V0ZVZpZXdbXSxcbiAgdmlld3NTbmFwc2hvdDogUm91dGVWaWV3W10sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgem9uZTogTmdab25lXG4pID0+IHtcbiAgaWYgKHR5cGVvZiAocmVxdWVzdEFuaW1hdGlvbkZyYW1lIGFzIGFueSkgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGNsZWFudXAoYWN0aXZlUm91dGUsIHZpZXdzLCB2aWV3c1NuYXBzaG90LCBsb2NhdGlvbiwgem9uZSk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn07XG5cbmNvbnN0IGNsZWFudXAgPSAoXG4gIGFjdGl2ZVJvdXRlOiBSb3V0ZVZpZXcsXG4gIHZpZXdzOiBSb3V0ZVZpZXdbXSxcbiAgdmlld3NTbmFwc2hvdDogUm91dGVWaWV3W10sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgem9uZTogTmdab25lXG4pID0+IHtcbiAgLyoqXG4gICAqIFJlLWVudGVyIHRoZSBBbmd1bGFyIHpvbmUgd2hlbiBkZXN0cm95aW5nIHBhZ2UgY29tcG9uZW50cy4gVGhpcyB3aWxsIGFsbG93XG4gICAqIGxpZmVjeWNsZSBldmVudHMgKGBuZ09uRGVzdHJveWApIHRvIGJlIHJ1biBpbnNpZGUgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICovXG4gIHpvbmUucnVuKCgpID0+IHZpZXdzU25hcHNob3QuZmlsdGVyKCh2aWV3KSA9PiAhdmlld3MuaW5jbHVkZXModmlldykpLmZvckVhY2goZGVzdHJveVZpZXcpKTtcblxuICB2aWV3cy5mb3JFYWNoKCh2aWV3KSA9PiB7XG4gICAgLyoqXG4gICAgICogSW4gdGhlIGV2ZW50IHRoYXQgYSB1c2VyIG5hdmlnYXRlZCBtdWx0aXBsZVxuICAgICAqIHRpbWVzIGluIHJhcGlkIHN1Y2Nlc3Npb24sIHdlIHdhbnQgdG8gbWFrZSBzdXJlXG4gICAgICogd2UgZG9uJ3QgcHJlLWVtcHRpdmVseSBkZXRhY2ggYSB2aWV3IHdoaWxlXG4gICAgICogaXQgaXMgaW4gbWlkLXRyYW5zaXRpb24uXG4gICAgICpcbiAgICAgKiBJbiB0aGlzIGluc3RhbmNlIHdlIGFsc28gZG8gbm90IGNhcmUgYWJvdXQgcXVlcnlcbiAgICAgKiBwYXJhbXMgb3IgZnJhZ21lbnRzIGFzIGl0IHdpbGwgYmUgdGhlIHNhbWUgdmlldyByZWdhcmRsZXNzXG4gICAgICovXG4gICAgY29uc3QgbG9jYXRpb25XaXRob3V0UGFyYW1zID0gbG9jYXRpb24ucGF0aCgpLnNwbGl0KCc/JylbMF07XG4gICAgY29uc3QgbG9jYXRpb25XaXRob3V0RnJhZ21lbnQgPSBsb2NhdGlvbldpdGhvdXRQYXJhbXMuc3BsaXQoJyMnKVswXTtcblxuICAgIGlmICh2aWV3ICE9PSBhY3RpdmVSb3V0ZSAmJiB2aWV3LnVybCAhPT0gbG9jYXRpb25XaXRob3V0RnJhZ21lbnQpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB2aWV3LmVsZW1lbnQ7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdpb24tcGFnZS1oaWRkZW4nKTtcbiAgICAgIHZpZXcucmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGFjaCgpO1xuICAgIH1cbiAgfSk7XG59O1xuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9jb21tb24vc3JjL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9zdGFjay11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFrQixFQUFFLElBQWUsRUFBRSxTQUEwQixFQUFlLEVBQUU7SUFDekcsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO1FBQ3hCLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM3QjtTQUFNLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtRQUNsQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztLQUM3QjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBa0IsRUFBRSxJQUFlLEVBQUUsRUFBRTtJQUN0RCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBa0IsRUFBRSxJQUFlLEVBQUUsRUFBRTtJQUN6RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtRQUNkLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENB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b3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB0eXBlIHsgQW5pbWF0aW9uQnVpbGRlciwgTmF2RGlyZWN0aW9uLCBSb3V0ZXJEaXJlY3Rpb24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGNvbnN0IGluc2VydFZpZXcgPSAodmlld3M6IFJvdXRlVmlld1tdLCB2aWV3OiBSb3V0ZVZpZXcsIGRpcmVjdGlvbjogUm91dGVyRGlyZWN0aW9uKTogUm91dGVWaWV3W10gPT4ge1xuICBpZiAoZGlyZWN0aW9uID09PSAncm9vdCcpIHtcbiAgICByZXR1cm4gc2V0Um9vdCh2aWV3cywgdmlldyk7XG4gIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSAnZm9yd2FyZCcpIHtcbiAgICByZXR1cm4gc2V0Rm9yd2FyZCh2aWV3cywgdmlldyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNldEJhY2sodmlld3MsIHZpZXcpO1xuICB9XG59O1xuXG5jb25zdCBzZXRSb290ID0gKHZpZXdzOiBSb3V0ZVZpZXdbXSwgdmlldzogUm91dGVWaWV3KSA9PiB7XG4gIHZpZXdzID0gdmlld3MuZmlsdGVyKCh2KSA9PiB2LnN0YWNrSWQgIT09IHZpZXcuc3RhY2tJZCk7XG4gIHZpZXdzLnB1c2godmlldyk7XG4gIHJldHVybiB2aWV3cztcbn07XG5cbmNvbnN0IHNldEZvcndhcmQgPSAodmlld3M6IFJvdXRlVmlld1tdLCB2aWV3OiBSb3V0ZVZpZXcpID0+IHtcbiAgY29uc3QgaW5kZXggPSB2aWV3cy5pbmRleE9mKHZpZXcpO1xuICBpZiAoaW5kZXggPj0gMCkge1xuICAgIHZpZXdzID0gdmlld3MuZmlsdGVyKCh2KSA9PiB2LnN0YWNrSWQgIT09IHZpZXcuc3RhY2tJZCB8fCB2LmlkIDw9IHZpZXcuaWQpO1xuICB9IGVsc2Uge1xuICAgIHZpZXdzLnB1c2godmlldyk7XG4gIH1cbiAgcmV0dXJuIHZpZXdzO1xufTtcblxuY29uc3Qgc2V0QmFjayA9ICh2aWV3czogUm91dGVWaWV3W10sIHZpZXc6IFJvdXRlVmlldykgPT4ge1xuICBjb25zdCBpbmRleCA9IHZpZXdzLmluZGV4T2Yodmlldyk7XG4gIGlmIChpbmRleCA+PSAwKSB7XG4gICAgcmV0dXJuIHZpZXdzLmZpbHRlcigodikgPT4gdi5zdGFja0lkICE9PSB2aWV3LnN0YWNrSWQgfHwgdi5pZCA8PSB2aWV3LmlkKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc2V0Um9vdCh2aWV3cywgdmlldyk7XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcmwgPSAocm91dGVyOiBSb3V0ZXIsIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHVybFRyZWUgPSByb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nXSwgeyByZWxhdGl2ZVRvOiBhY3RpdmF0ZWRSb3V0ZSB9KTtcbiAgcmV0dXJuIHJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNUYWJTd2l0Y2ggPSAoZW50ZXJpbmdWaWV3OiBSb3V0ZVZpZXcsIGxlYXZpbmdWaWV3OiBSb3V0ZVZpZXcgfCB1bmRlZmluZWQpOiBib29sZWFuID0+IHtcbiAgaWYgKCFsZWF2aW5nVmlldykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBlbnRlcmluZ1ZpZXcuc3RhY2tJZCAhPT0gbGVhdmluZ1ZpZXcuc3RhY2tJZDtcbn07XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlU3RhY2tJZCA9IChwcmVmaXhVcmw6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLCB1cmw6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghcHJlZml4VXJsKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBzZWdtZW50cyA9IHRvU2VnbWVudHModXJsKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID49IHByZWZpeFVybC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBzZWdtZW50c1tpXTtcbiAgICB9XG4gICAgaWYgKHNlZ21lbnRzW2ldICE9PSBwcmVmaXhVcmxbaV0pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgdG9TZWdtZW50cyA9IChwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSA9PiB7XG4gIHJldHVybiBwYXRoXG4gICAgLnNwbGl0KCcvJylcbiAgICAubWFwKChzKSA9PiBzLnRyaW0oKSlcbiAgICAuZmlsdGVyKChzKSA9PiBzICE9PSAnJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVzdHJveVZpZXcgPSAodmlldzogUm91dGVWaWV3IHwgdW5kZWZpbmVkKTogdm9pZCA9PiB7XG4gIGlmICh2aWV3KSB7XG4gICAgdmlldy5yZWYuZGVzdHJveSgpO1xuICAgIHZpZXcudW5saXN0ZW5FdmVudHMoKTtcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja1dpbGxDaGFuZ2VFdmVudCB7XG4gIGVudGVyaW5nVmlldzogUm91dGVWaWV3O1xuICAvKipcbiAgICogYHRydWVgIGlmIHRoZSBldmVudCBpcyB0cmlnZ2VkIGFzIGEgcmVzdWx0IG9mIGEgc3dpdGNoXG4gICAqIGJldHdlZW4gdGFiIG5hdmlnYXRpb24gc3RhY2tzLlxuICAgKi9cbiAgdGFiU3dpdGNoOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGlkQ2hhbmdlRXZlbnQge1xuICBlbnRlcmluZ1ZpZXc6IFJvdXRlVmlldztcbiAgZGlyZWN0aW9uOiBSb3V0ZXJEaXJlY3Rpb247XG4gIGFuaW1hdGlvbjogTmF2RGlyZWN0aW9uIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogYHRydWVgIGlmIHRoZSBldmVudCBpcyB0cmlnZ2VkIGFzIGEgcmVzdWx0IG9mIGEgc3dpdGNoXG4gICAqIGJldHdlZW4gdGFiIG5hdmlnYXRpb24gc3RhY2tzLlxuICAgKi9cbiAgdGFiU3dpdGNoOiBib29sZWFuO1xufVxuXG4vLyBUT0RPKEZXLTI4MjcpOiB0eXBlc1xuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVZpZXcge1xuICBpZDogbnVtYmVyO1xuICB1cmw6IHN0cmluZztcbiAgc3RhY2tJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBlbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgc2F2ZWREYXRhPzogYW55O1xuICBzYXZlZEV4dHJhcz86IE5hdmlnYXRpb25FeHRyYXM7XG4gIHVubGlzdGVuRXZlbnRzOiAoKSA9PiB2b2lkO1xuICBhbmltYXRpb25CdWlsZGVyPzogQW5pbWF0aW9uQnVpbGRlcjtcbn1cbiJdfQ==
@@ -0,0 +1,172 @@
1
+ import { Directive, ElementRef, EventEmitter, HostListener, Output, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../providers/nav-controller";
4
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
5
+ export class IonTabs {
6
+ constructor(navCtrl) {
7
+ this.navCtrl = navCtrl;
8
+ /**
9
+ * Emitted before the tab view is changed.
10
+ */
11
+ this.ionTabsWillChange = new EventEmitter();
12
+ /**
13
+ * Emitted after the tab view is changed.
14
+ */
15
+ this.ionTabsDidChange = new EventEmitter();
16
+ this.tabBarSlot = 'bottom';
17
+ }
18
+ ngAfterContentInit() {
19
+ this.detectSlotChanges();
20
+ }
21
+ ngAfterContentChecked() {
22
+ this.detectSlotChanges();
23
+ }
24
+ /**
25
+ * @internal
26
+ */
27
+ onStackWillChange({ enteringView, tabSwitch }) {
28
+ const stackId = enteringView.stackId;
29
+ if (tabSwitch && stackId !== undefined) {
30
+ this.ionTabsWillChange.emit({ tab: stackId });
31
+ }
32
+ }
33
+ /**
34
+ * @internal
35
+ */
36
+ onStackDidChange({ enteringView, tabSwitch }) {
37
+ const stackId = enteringView.stackId;
38
+ if (tabSwitch && stackId !== undefined) {
39
+ if (this.tabBar) {
40
+ this.tabBar.selectedTab = stackId;
41
+ }
42
+ this.ionTabsDidChange.emit({ tab: stackId });
43
+ }
44
+ }
45
+ /**
46
+ * When a tab button is clicked, there are several scenarios:
47
+ * 1. If the selected tab is currently active (the tab button has been clicked
48
+ * again), then it should go to the root view for that tab.
49
+ *
50
+ * a. Get the saved root view from the router outlet. If the saved root view
51
+ * matches the tabRootUrl, set the route view to this view including the
52
+ * navigation extras.
53
+ * b. If the saved root view from the router outlet does
54
+ * not match, navigate to the tabRootUrl. No navigation extras are
55
+ * included.
56
+ *
57
+ * 2. If the current tab tab is not currently selected, get the last route
58
+ * view from the router outlet.
59
+ *
60
+ * a. If the last route view exists, navigate to that view including any
61
+ * navigation extras
62
+ * b. If the last route view doesn't exist, then navigate
63
+ * to the default tabRootUrl
64
+ */
65
+ select(tabOrEvent) {
66
+ const isTabString = typeof tabOrEvent === 'string';
67
+ const tab = isTabString ? tabOrEvent : tabOrEvent.detail.tab;
68
+ const alreadySelected = this.outlet.getActiveStackId() === tab;
69
+ const tabRootUrl = `${this.outlet.tabsPrefix}/${tab}`;
70
+ /**
71
+ * If this is a nested tab, prevent the event
72
+ * from bubbling otherwise the outer tabs
73
+ * will respond to this event too, causing
74
+ * the app to get directed to the wrong place.
75
+ */
76
+ if (!isTabString) {
77
+ tabOrEvent.stopPropagation();
78
+ }
79
+ if (alreadySelected) {
80
+ const activeStackId = this.outlet.getActiveStackId();
81
+ const activeView = this.outlet.getLastRouteView(activeStackId);
82
+ // If on root tab, do not navigate to root tab again
83
+ if (activeView?.url === tabRootUrl) {
84
+ return;
85
+ }
86
+ const rootView = this.outlet.getRootView(tab);
87
+ const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;
88
+ return this.navCtrl.navigateRoot(tabRootUrl, {
89
+ ...navigationExtras,
90
+ animated: true,
91
+ animationDirection: 'back',
92
+ });
93
+ }
94
+ else {
95
+ const lastRoute = this.outlet.getLastRouteView(tab);
96
+ /**
97
+ * If there is a lastRoute, goto that, otherwise goto the fallback url of the
98
+ * selected tab
99
+ */
100
+ const url = lastRoute?.url || tabRootUrl;
101
+ const navigationExtras = lastRoute?.savedExtras;
102
+ return this.navCtrl.navigateRoot(url, {
103
+ ...navigationExtras,
104
+ animated: true,
105
+ animationDirection: 'back',
106
+ });
107
+ }
108
+ }
109
+ getSelected() {
110
+ return this.outlet.getActiveStackId();
111
+ }
112
+ /**
113
+ * Detects changes to the slot attribute of the tab bar.
114
+ *
115
+ * If the slot attribute has changed, then the tab bar
116
+ * should be relocated to the new slot position.
117
+ */
118
+ detectSlotChanges() {
119
+ this.tabBars.forEach((tabBar) => {
120
+ // el is a protected attribute from the generated component wrapper
121
+ const currentSlot = tabBar.el.getAttribute('slot');
122
+ if (currentSlot !== this.tabBarSlot) {
123
+ this.tabBarSlot = currentSlot;
124
+ this.relocateTabBar();
125
+ }
126
+ });
127
+ }
128
+ /**
129
+ * Relocates the tab bar to the new slot position.
130
+ */
131
+ relocateTabBar() {
132
+ /**
133
+ * `el` is a protected attribute from the generated component wrapper.
134
+ * To avoid having to manually create the wrapper for tab bar, we
135
+ * cast the tab bar to any and access the protected attribute.
136
+ */
137
+ const tabBar = this.tabBar.el;
138
+ if (this.tabBarSlot === 'top') {
139
+ /**
140
+ * A tab bar with a slot of "top" should be inserted
141
+ * at the top of the container.
142
+ */
143
+ this.tabsInner.nativeElement.before(tabBar);
144
+ }
145
+ else {
146
+ /**
147
+ * A tab bar with a slot of "bottom" or without a slot
148
+ * should be inserted at the end of the container.
149
+ */
150
+ this.tabsInner.nativeElement.after(tabBar);
151
+ }
152
+ }
153
+ }
154
+ /** @nocollapse */ IonTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabs, deps: [{ token: i1.NavController }], target: i0.ɵɵFactoryTarget.Directive });
155
+ /** @nocollapse */ IonTabs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: IonTabs, selector: "ion-tabs", outputs: { ionTabsWillChange: "ionTabsWillChange", ionTabsDidChange: "ionTabsDidChange" }, host: { listeners: { "ionTabButtonClick": "select($event)" } }, viewQueries: [{ propertyName: "tabsInner", first: true, predicate: ["tabsInner"], descendants: true, read: ElementRef, static: true }], ngImport: i0 });
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabs, decorators: [{
157
+ type: Directive,
158
+ args: [{
159
+ selector: 'ion-tabs',
160
+ }]
161
+ }], ctorParameters: function () { return [{ type: i1.NavController }]; }, propDecorators: { tabsInner: [{
162
+ type: ViewChild,
163
+ args: ['tabsInner', { read: ElementRef, static: true }]
164
+ }], ionTabsWillChange: [{
165
+ type: Output
166
+ }], ionTabsDidChange: [{
167
+ type: Output
168
+ }], select: [{
169
+ type: HostListener,
170
+ args: ['ionTabButtonClick', ['$event']]
171
+ }] } });
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3RhYnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFTdkIsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxPQUFPO0lBc0JsQixZQUFvQixPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBWDFDOztXQUVHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDbEU7O1dBRUc7UUFDTyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUV6RCxlQUFVLEdBQUcsUUFBUSxDQUFDO0lBRWUsQ0FBQztJQUU5QyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQXdCO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxTQUFTLElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtZQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQXVCO1FBQy9ELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxTQUFTLElBQUks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O09BRUc7SUFDSyxjQUFjO1FBQ3BCOzs7O1dBSUc7UUFDSCxNQUFNLE1BQU0sR0FBSSxJQUFJLENBQUMsTUFBYyxDQUFDLEVBQWlCLENBQUM7UUFFdEQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRTtZQUM3Qjs7O2VBR0c7WUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMOzs7ZUFHRztZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7O3dIQTNLVSxPQUFPOzRHQUFQLE9BQU8sOFJBU2MsVUFBVTs0RkFUL0IsT0FBTztrQkFKbkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckI7b0dBVzZELFNBQVM7c0JBQXBFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUtoRCxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBSUcsZ0JBQWdCO3NCQUF6QixNQUFNO2dCQTBEUCxNQUFNO3NCQURMLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBTdGFja0RpZENoYW5nZUV2ZW50LCBTdGFja1dpbGxDaGFuZ2VFdmVudCB9IGZyb20gJy4vc3RhY2stdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpb24tdGFicycsXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW9uVGFicyBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAvKipcbiAgICogTm90ZTogVGhlc2UgbXVzdCBiZSByZWRlY2xhcmVkIG9uIGVhY2ggY2hpbGQgY2xhc3Mgc2luY2UgaXQgbmVlZHNcbiAgICogYWNjZXNzIHRvIGdlbmVyYXRlZCBjb21wb25lbnRzIHN1Y2ggYXMgSW9uUm91dGVyT3V0bGV0IGFuZCBJb25UYWJCYXIuXG4gICAqL1xuICBvdXRsZXQ6IGFueTtcbiAgdGFiQmFyOiBhbnk7XG4gIHRhYkJhcnM6IGFueTtcblxuICBAVmlld0NoaWxkKCd0YWJzSW5uZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSB0YWJzSW5uZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIGJlZm9yZSB0aGUgdGFiIHZpZXcgaXMgY2hhbmdlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpb25UYWJzV2lsbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IHN0cmluZyB9PigpO1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgdGFiIHZpZXcgaXMgY2hhbmdlZC5cbiAgICovXG4gIEBPdXRwdXQoKSBpb25UYWJzRGlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogc3RyaW5nIH0+KCk7XG5cbiAgcHJpdmF0ZSB0YWJCYXJTbG90ID0gJ2JvdHRvbSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGVjdFNsb3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5kZXRlY3RTbG90Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25TdGFja1dpbGxDaGFuZ2UoeyBlbnRlcmluZ1ZpZXcsIHRhYlN3aXRjaCB9OiBTdGFja1dpbGxDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWNrSWQgPSBlbnRlcmluZ1ZpZXcuc3RhY2tJZDtcbiAgICBpZiAodGFiU3dpdGNoICYmIHN0YWNrSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pb25UYWJzV2lsbENoYW5nZS5lbWl0KHsgdGFiOiBzdGFja0lkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uU3RhY2tEaWRDaGFuZ2UoeyBlbnRlcmluZ1ZpZXcsIHRhYlN3aXRjaCB9OiBTdGFja0RpZENoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2tJZCA9IGVudGVyaW5nVmlldy5zdGFja0lkO1xuICAgIGlmICh0YWJTd2l0Y2ggJiYgc3RhY2tJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy50YWJCYXIpIHtcbiAgICAgICAgdGhpcy50YWJCYXIuc2VsZWN0ZWRUYWIgPSBzdGFja0lkO1xuICAgICAgfVxuICAgICAgdGhpcy5pb25UYWJzRGlkQ2hhbmdlLmVtaXQoeyB0YWI6IHN0YWNrSWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSB0YWIgYnV0dG9uIGlzIGNsaWNrZWQsIHRoZXJlIGFyZSBzZXZlcmFsIHNjZW5hcmlvczpcbiAgICogMS4gSWYgdGhlIHNlbGVjdGVkIHRhYiBpcyBjdXJyZW50bHkgYWN0aXZlICh0aGUgdGFiIGJ1dHRvbiBoYXMgYmVlbiBjbGlja2VkXG4gICAqICAgIGFnYWluKSwgdGhlbiBpdCBzaG91bGQgZ28gdG8gdGhlIHJvb3QgdmlldyBmb3IgdGhhdCB0YWIuXG4gICAqXG4gICAqICAgYS4gR2V0IHRoZSBzYXZlZCByb290IHZpZXcgZnJvbSB0aGUgcm91dGVyIG91dGxldC4gSWYgdGhlIHNhdmVkIHJvb3Qgdmlld1xuICAgKiAgICAgIG1hdGNoZXMgdGhlIHRhYlJvb3RVcmwsIHNldCB0aGUgcm91dGUgdmlldyB0byB0aGlzIHZpZXcgaW5jbHVkaW5nIHRoZVxuICAgKiAgICAgIG5hdmlnYXRpb24gZXh0cmFzLlxuICAgKiAgIGIuIElmIHRoZSBzYXZlZCByb290IHZpZXcgZnJvbSB0aGUgcm91dGVyIG91dGxldCBkb2VzXG4gICAqICAgICAgbm90IG1hdGNoLCBuYXZpZ2F0ZSB0byB0aGUgdGFiUm9vdFVybC4gTm8gbmF2aWdhdGlvbiBleHRyYXMgYXJlXG4gICAqICAgICAgaW5jbHVkZWQuXG4gICAqXG4gICAqIDIuIElmIHRoZSBjdXJyZW50IHRhYiB0YWIgaXMgbm90IGN1cnJlbnRseSBzZWxlY3RlZCwgZ2V0IHRoZSBsYXN0IHJvdXRlXG4gICAqICAgIHZpZXcgZnJvbSB0aGUgcm91dGVyIG91dGxldC5cbiAgICpcbiAgICogICBhLiBJZiB0aGUgbGFzdCByb3V0ZSB2aWV3IGV4aXN0cywgbmF2aWdhdGUgdG8gdGhhdCB2aWV3IGluY2x1ZGluZyBhbnlcbiAgICogICAgICBuYXZpZ2F0aW9uIGV4dHJhc1xuICAgKiAgIGIuIElmIHRoZSBsYXN0IHJvdXRlIHZpZXcgZG9lc24ndCBleGlzdCwgdGhlbiBuYXZpZ2F0ZVxuICAgKiAgICAgIHRvIHRoZSBkZWZhdWx0IHRhYlJvb3RVcmxcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2lvblRhYkJ1dHRvbkNsaWNrJywgWyckZXZlbnQnXSlcbiAgc2VsZWN0KHRhYk9yRXZlbnQ6IHN0cmluZyB8IEN1c3RvbUV2ZW50KTogUHJvbWlzZTxib29sZWFuPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNUYWJTdHJpbmcgPSB0eXBlb2YgdGFiT3JFdmVudCA9PT0gJ3N0cmluZyc7XG4gICAgY29uc3QgdGFiID0gaXNUYWJTdHJpbmcgPyB0YWJPckV2ZW50IDogKHRhYk9yRXZlbnQgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbC50YWI7XG4gICAgY29uc3QgYWxyZWFkeVNlbGVjdGVkID0gdGhpcy5vdXRsZXQuZ2V0QWN0aXZlU3RhY2tJZCgpID09PSB0YWI7XG4gICAgY29uc3QgdGFiUm9vdFVybCA9IGAke3RoaXMub3V0bGV0LnRhYnNQcmVmaXh9LyR7dGFifWA7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGlzIGEgbmVzdGVkIHRhYiwgcHJldmVudCB0aGUgZXZlbnRcbiAgICAgKiBmcm9tIGJ1YmJsaW5nIG90aGVyd2lzZSB0aGUgb3V0ZXIgdGFic1xuICAgICAqIHdpbGwgcmVzcG9uZCB0byB0aGlzIGV2ZW50IHRvbywgY2F1c2luZ1xuICAgICAqIHRoZSBhcHAgdG8gZ2V0IGRpcmVjdGVkIHRvIHRoZSB3cm9uZyBwbGFjZS5cbiAgICAgKi9cbiAgICBpZiAoIWlzVGFiU3RyaW5nKSB7XG4gICAgICAodGFiT3JFdmVudCBhcyBDdXN0b21FdmVudCkuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGFscmVhZHlTZWxlY3RlZCkge1xuICAgICAgY29uc3QgYWN0aXZlU3RhY2tJZCA9IHRoaXMub3V0bGV0LmdldEFjdGl2ZVN0YWNrSWQoKTtcbiAgICAgIGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLm91dGxldC5nZXRMYXN0Um91dGVWaWV3KGFjdGl2ZVN0YWNrSWQpO1xuXG4gICAgICAvLyBJZiBvbiByb290IHRhYiwgZG8gbm90IG5hdmlnYXRlIHRvIHJvb3QgdGFiIGFnYWluXG4gICAgICBpZiAoYWN0aXZlVmlldz8udXJsID09PSB0YWJSb290VXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm9vdFZpZXcgPSB0aGlzLm91dGxldC5nZXRSb290Vmlldyh0YWIpO1xuICAgICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhcyA9IHJvb3RWaWV3ICYmIHRhYlJvb3RVcmwgPT09IHJvb3RWaWV3LnVybCAmJiByb290Vmlldy5zYXZlZEV4dHJhcztcbiAgICAgIHJldHVybiB0aGlzLm5hdkN0cmwubmF2aWdhdGVSb290KHRhYlJvb3RVcmwsIHtcbiAgICAgICAgLi4ubmF2aWdhdGlvbkV4dHJhcyxcbiAgICAgICAgYW5pbWF0ZWQ6IHRydWUsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvbjogJ2JhY2snLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxhc3RSb3V0ZSA9IHRoaXMub3V0bGV0LmdldExhc3RSb3V0ZVZpZXcodGFiKTtcbiAgICAgIC8qKlxuICAgICAgICogSWYgdGhlcmUgaXMgYSBsYXN0Um91dGUsIGdvdG8gdGhhdCwgb3RoZXJ3aXNlIGdvdG8gdGhlIGZhbGxiYWNrIHVybCBvZiB0aGVcbiAgICAgICAqIHNlbGVjdGVkIHRhYlxuICAgICAgICovXG4gICAgICBjb25zdCB1cmwgPSBsYXN0Um91dGU/LnVybCB8fCB0YWJSb290VXJsO1xuICAgICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhcyA9IGxhc3RSb3V0ZT8uc2F2ZWRFeHRyYXM7XG5cbiAgICAgIHJldHVybiB0aGlzLm5hdkN0cmwubmF2aWdhdGVSb290KHVybCwge1xuICAgICAgICAuLi5uYXZpZ2F0aW9uRXh0cmFzLFxuICAgICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgICAgYW5pbWF0aW9uRGlyZWN0aW9uOiAnYmFjaycsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm91dGxldC5nZXRBY3RpdmVTdGFja0lkKCk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0cyBjaGFuZ2VzIHRvIHRoZSBzbG90IGF0dHJpYnV0ZSBvZiB0aGUgdGFiIGJhci5cbiAgICpcbiAgICogSWYgdGhlIHNsb3QgYXR0cmlidXRlIGhhcyBjaGFuZ2VkLCB0aGVuIHRoZSB0YWIgYmFyXG4gICAqIHNob3VsZCBiZSByZWxvY2F0ZWQgdG8gdGhlIG5ldyBzbG90IHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBkZXRlY3RTbG90Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkJhcnMuZm9yRWFjaCgodGFiQmFyOiBhbnkpID0+IHtcbiAgICAgIC8vIGVsIGlzIGEgcHJvdGVjdGVkIGF0dHJpYnV0ZSBmcm9tIHRoZSBnZW5lcmF0ZWQgY29tcG9uZW50IHdyYXBwZXJcbiAgICAgIGNvbnN0IGN1cnJlbnRTbG90ID0gdGFiQmFyLmVsLmdldEF0dHJpYnV0ZSgnc2xvdCcpO1xuXG4gICAgICBpZiAoY3VycmVudFNsb3QgIT09IHRoaXMudGFiQmFyU2xvdCkge1xuICAgICAgICB0aGlzLnRhYkJhclNsb3QgPSBjdXJyZW50U2xvdDtcbiAgICAgICAgdGhpcy5yZWxvY2F0ZVRhYkJhcigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbG9jYXRlcyB0aGUgdGFiIGJhciB0byB0aGUgbmV3IHNsb3QgcG9zaXRpb24uXG4gICAqL1xuICBwcml2YXRlIHJlbG9jYXRlVGFiQmFyKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIGBlbGAgaXMgYSBwcm90ZWN0ZWQgYXR0cmlidXRlIGZyb20gdGhlIGdlbmVyYXRlZCBjb21wb25lbnQgd3JhcHBlci5cbiAgICAgKiBUbyBhdm9pZCBoYXZpbmcgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSB3cmFwcGVyIGZvciB0YWIgYmFyLCB3ZVxuICAgICAqIGNhc3QgdGhlIHRhYiBiYXIgdG8gYW55IGFuZCBhY2Nlc3MgdGhlIHByb3RlY3RlZCBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgY29uc3QgdGFiQmFyID0gKHRoaXMudGFiQmFyIGFzIGFueSkuZWwgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy50YWJCYXJTbG90ID09PSAndG9wJykge1xuICAgICAgLyoqXG4gICAgICAgKiBBIHRhYiBiYXIgd2l0aCBhIHNsb3Qgb2YgXCJ0b3BcIiBzaG91bGQgYmUgaW5zZXJ0ZWRcbiAgICAgICAqIGF0IHRoZSB0b3Agb2YgdGhlIGNvbnRhaW5lci5cbiAgICAgICAqL1xuICAgICAgdGhpcy50YWJzSW5uZXIubmF0aXZlRWxlbWVudC5iZWZvcmUodGFiQmFyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLyoqXG4gICAgICAgKiBBIHRhYiBiYXIgd2l0aCBhIHNsb3Qgb2YgXCJib3R0b21cIiBvciB3aXRob3V0IGEgc2xvdFxuICAgICAgICogc2hvdWxkIGJlIGluc2VydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGNvbnRhaW5lci5cbiAgICAgICAqL1xuICAgICAgdGhpcy50YWJzSW5uZXIubmF0aXZlRWxlbWVudC5hZnRlcih0YWJCYXIpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ export { ActionSheetController } from './providers/action-sheet-controller';
2
+ export { AlertController } from './providers/alert-controller';
3
+ export { LoadingController } from './providers/loading-controller';
4
+ export { MenuController } from './providers/menu-controller';
5
+ export { ModalController } from './providers/modal-controller';
6
+ export { PickerController } from './providers/picker-controller';
7
+ export { PopoverController } from './providers/popover-controller';
8
+ export { ToastController } from './providers/toast-controller';
9
+ export { AnimationController } from './providers/animation-controller';
10
+ export { GestureController } from './providers/gesture-controller';
11
+ export { DomController } from './providers/dom-controller';
12
+ export { NavController } from './providers/nav-controller';
13
+ export { Config, ConfigToken } from './providers/config';
14
+ export { Platform } from './providers/platform';
15
+ export { bindLifecycleEvents, AngularDelegate } from './providers/angular-delegate';
16
+ export { NavParams } from './directives/navigation/nav-params';
17
+ export { IonPopover } from './overlays/popover';
18
+ export { IonModal } from './overlays/modal';
19
+ export { IonRouterOutlet, provideComponentInputBinding } from './directives/navigation/router-outlet';
20
+ export { IonBackButton } from './directives/navigation/back-button';
21
+ export { RouterLinkDelegateDirective, RouterLinkWithHrefDelegateDirective, } from './directives/navigation/router-link-delegate';
22
+ export { IonNav } from './directives/navigation/nav';
23
+ export { IonTabs } from './directives/navigation/tabs';
24
+ export * from './directives/control-value-accessors';
25
+ export { ProxyCmp } from './utils/proxy';
26
+ export { IonicRouteStrategy } from './utils/routing';
27
+ export { raf } from './utils/util';
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21tb24vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFDTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEdBQ3BDLE1BQU0sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEFjdGlvblNoZWV0Q29udHJvbGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2FjdGlvbi1zaGVldC1jb250cm9sbGVyJztcbmV4cG9ydCB7IEFsZXJ0Q29udHJvbGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2FsZXJ0LWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgTG9hZGluZ0NvbnRyb2xsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9sb2FkaW5nLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgTWVudUNvbnRyb2xsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9tZW51LWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvbW9kYWwtY29udHJvbGxlcic7XG5leHBvcnQgeyBQaWNrZXJDb250cm9sbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvcGlja2VyLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgUG9wb3ZlckNvbnRyb2xsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9wb3BvdmVyLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvdG9hc3QtY29udHJvbGxlcic7XG5cbmV4cG9ydCB7IEFuaW1hdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9hbmltYXRpb24tY29udHJvbGxlcic7XG5leHBvcnQgeyBHZXN0dXJlQ29udHJvbGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL2dlc3R1cmUtY29udHJvbGxlcic7XG5leHBvcnQgeyBEb21Db250cm9sbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvZG9tLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJy4vcHJvdmlkZXJzL25hdi1jb250cm9sbGVyJztcblxuZXhwb3J0IHsgQ29uZmlnLCBDb25maWdUb2tlbiB9IGZyb20gJy4vcHJvdmlkZXJzL2NvbmZpZyc7XG5leHBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJy4vcHJvdmlkZXJzL3BsYXRmb3JtJztcblxuZXhwb3J0IHsgYmluZExpZmVjeWNsZUV2ZW50cywgQW5ndWxhckRlbGVnYXRlIH0gZnJvbSAnLi9wcm92aWRlcnMvYW5ndWxhci1kZWxlZ2F0ZSc7XG5cbmV4cG9ydCB0eXBlIHsgSW9uaWNXaW5kb3cgfSBmcm9tICcuL3R5cGVzL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgeyBOYXZQYXJhbXMgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9uYXYtcGFyYW1zJztcblxuZXhwb3J0IHsgSW9uUG9wb3ZlciB9IGZyb20gJy4vb3ZlcmxheXMvcG9wb3Zlcic7XG5leHBvcnQgeyBJb25Nb2RhbCB9IGZyb20gJy4vb3ZlcmxheXMvbW9kYWwnO1xuXG5leHBvcnQgeyBJb25Sb3V0ZXJPdXRsZXQsIHByb3ZpZGVDb21wb25lbnRJbnB1dEJpbmRpbmcgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9yb3V0ZXItb3V0bGV0JztcblxuZXhwb3J0IHsgSW9uQmFja0J1dHRvbiB9IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL2JhY2stYnV0dG9uJztcbmV4cG9ydCB7XG4gIFJvdXRlckxpbmtEZWxlZ2F0ZURpcmVjdGl2ZSxcbiAgUm91dGVyTGlua1dpdGhIcmVmRGVsZWdhdGVEaXJlY3RpdmUsXG59IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3JvdXRlci1saW5rLWRlbGVnYXRlJztcbmV4cG9ydCB7IElvbk5hdiB9IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL25hdic7XG5leHBvcnQgeyBJb25UYWJzIH0gZnJvbSAnLi9kaXJlY3RpdmVzL25hdmlnYXRpb24vdGFicyc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvY29udHJvbC12YWx1ZS1hY2Nlc3NvcnMnO1xuXG5leHBvcnQgeyBQcm94eUNtcCB9IGZyb20gJy4vdXRpbHMvcHJveHknO1xuXG5leHBvcnQgeyBJb25pY1JvdXRlU3RyYXRlZ3kgfSBmcm9tICcuL3V0aWxzL3JvdXRpbmcnO1xuXG5leHBvcnQgeyByYWYgfSBmcm9tICcuL3V0aWxzL3V0aWwnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uaWMtYW5ndWxhci1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21tb24vc3JjL2lvbmljLWFuZ3VsYXItY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19