@ionic/angular 7.4.2-dev.11695667578.1539f05b → 7.4.2-dev.11695749773.16429088

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 (216) hide show
  1. package/README.md +0 -20
  2. package/app-initialize.d.ts +1 -1
  3. package/css/core.css +0 -100
  4. package/css/core.css.map +1 -1
  5. package/css/display.css +0 -33
  6. package/css/display.css.map +1 -1
  7. package/css/float-elements.css +0 -33
  8. package/css/float-elements.css.map +1 -1
  9. package/css/global.bundle.css +6 -84
  10. package/css/global.bundle.css.map +1 -1
  11. package/css/ionic-swiper.css +0 -33
  12. package/css/ionic-swiper.css.map +1 -1
  13. package/css/ionic.bundle.css +1 -1
  14. package/css/ionic.bundle.css.map +1 -1
  15. package/css/padding.css +0 -33
  16. package/css/padding.css.map +1 -1
  17. package/css/structure.css +0 -33
  18. package/css/structure.css.map +1 -1
  19. package/css/text-alignment.css +0 -33
  20. package/css/text-alignment.css.map +1 -1
  21. package/css/text-transformation.css +0 -33
  22. package/css/text-transformation.css.map +1 -1
  23. package/css/typography.css +6 -51
  24. package/css/typography.css.map +1 -1
  25. package/css/utils.bundle.css +0 -165
  26. package/css/utils.bundle.css.map +1 -1
  27. package/directives/control-value-accessors/boolean-value-accessor.d.ts +1 -1
  28. package/directives/control-value-accessors/numeric-value-accessor.d.ts +1 -1
  29. package/directives/control-value-accessors/radio-value-accessor.d.ts +1 -1
  30. package/directives/control-value-accessors/select-value-accessor.d.ts +1 -1
  31. package/directives/control-value-accessors/text-value-accessor.d.ts +1 -1
  32. package/{common/directives → directives}/control-value-accessors/value-accessor.d.ts +2 -2
  33. package/directives/navigation/ion-back-button.d.ts +16 -6
  34. package/directives/navigation/ion-router-outlet.d.ts +122 -4
  35. package/directives/navigation/ion-tabs.d.ts +64 -4
  36. package/directives/navigation/nav-delegate.d.ts +9 -0
  37. package/directives/navigation/router-link-delegate.d.ts +41 -7
  38. package/{common/directives → directives}/navigation/stack-utils.d.ts +1 -1
  39. package/directives/overlays/modal.d.ts +47 -3
  40. package/directives/overlays/popover.d.ts +43 -3
  41. package/directives/proxies-list.d.ts +1 -1
  42. package/directives/proxies.d.ts +26 -0
  43. package/esm2020/app-initialize.mjs +2 -2
  44. package/esm2020/directives/control-value-accessors/boolean-value-accessor.mjs +4 -4
  45. package/esm2020/directives/control-value-accessors/numeric-value-accessor.mjs +2 -2
  46. package/esm2020/directives/control-value-accessors/radio-value-accessor.mjs +3 -6
  47. package/esm2020/directives/control-value-accessors/select-value-accessor.mjs +2 -2
  48. package/esm2020/directives/control-value-accessors/text-value-accessor.mjs +2 -2
  49. package/esm2020/directives/control-value-accessors/value-accessor.mjs +141 -0
  50. package/esm2020/directives/navigation/ion-back-button.mjs +36 -15
  51. package/esm2020/directives/navigation/ion-router-outlet.mjs +435 -6
  52. package/esm2020/directives/navigation/ion-tabs.mjs +166 -9
  53. package/esm2020/directives/navigation/nav-delegate.mjs +42 -0
  54. package/esm2020/directives/navigation/nav-params.mjs +45 -0
  55. package/esm2020/directives/navigation/router-link-delegate.mjs +92 -11
  56. package/esm2020/directives/navigation/stack-controller.mjs +275 -0
  57. package/esm2020/directives/navigation/stack-utils.mjs +73 -0
  58. package/esm2020/directives/overlays/modal.mjs +88 -8
  59. package/esm2020/directives/overlays/popover.mjs +87 -8
  60. package/esm2020/directives/proxies-list.mjs +3 -1
  61. package/esm2020/directives/proxies.mjs +53 -1
  62. package/esm2020/index.mjs +21 -4
  63. package/esm2020/ionic-core.mjs +6 -0
  64. package/esm2020/ionic-module.mjs +32 -14
  65. package/esm2020/providers/action-sheet-controller.mjs +18 -0
  66. package/esm2020/providers/alert-controller.mjs +18 -0
  67. package/esm2020/providers/angular-delegate.mjs +152 -0
  68. package/esm2020/providers/animation-controller.mjs +37 -0
  69. package/esm2020/providers/config.mjs +44 -0
  70. package/esm2020/providers/dom-controller.mjs +44 -0
  71. package/esm2020/providers/gesture-controller.mjs +31 -0
  72. package/esm2020/providers/loading-controller.mjs +18 -0
  73. package/esm2020/providers/menu-controller.mjs +100 -0
  74. package/esm2020/providers/modal-controller.mjs +25 -0
  75. package/esm2020/providers/nav-controller.mjs +221 -0
  76. package/esm2020/providers/picker-controller.mjs +18 -0
  77. package/esm2020/providers/platform.mjs +246 -0
  78. package/esm2020/providers/popover-controller.mjs +25 -0
  79. package/esm2020/providers/toast-controller.mjs +18 -0
  80. package/esm2020/types/interfaces.mjs +2 -0
  81. package/esm2020/util/ionic-router-reuse-strategy.mjs +55 -0
  82. package/esm2020/util/overlay.mjs +25 -0
  83. package/esm2020/util/util.mjs +10 -0
  84. package/fesm2015/ionic-angular.mjs +2645 -151
  85. package/fesm2015/ionic-angular.mjs.map +1 -1
  86. package/fesm2020/ionic-angular.mjs +2637 -152
  87. package/fesm2020/ionic-angular.mjs.map +1 -1
  88. package/index.d.ts +19 -3
  89. package/ionic-core.d.ts +2 -0
  90. package/ionic-module.d.ts +2 -2
  91. package/package.json +2 -18
  92. package/{common/providers → providers}/action-sheet-controller.d.ts +2 -2
  93. package/{common/providers → providers}/alert-controller.d.ts +2 -2
  94. package/{common/providers → providers}/angular-delegate.d.ts +1 -1
  95. package/{common/providers → providers}/animation-controller.d.ts +1 -1
  96. package/{common/providers → providers}/config.d.ts +1 -1
  97. package/{common/providers → providers}/gesture-controller.d.ts +1 -1
  98. package/{common/providers → providers}/loading-controller.d.ts +2 -2
  99. package/{common/providers → providers}/modal-controller.d.ts +2 -2
  100. package/{common/providers → providers}/nav-controller.d.ts +2 -2
  101. package/{common/providers → providers}/picker-controller.d.ts +2 -2
  102. package/{common/providers → providers}/platform.d.ts +2 -2
  103. package/{common/providers → providers}/popover-controller.d.ts +2 -2
  104. package/{common/providers → providers}/toast-controller.d.ts +2 -2
  105. package/test/README.md +0 -8
  106. package/{common/types → types}/interfaces.d.ts +4 -0
  107. package/common/directives/control-value-accessors/index.d.ts +0 -1
  108. package/common/directives/navigation/back-button.d.ts +0 -26
  109. package/common/directives/navigation/nav.d.ts +0 -13
  110. package/common/directives/navigation/router-link-delegate.d.ts +0 -50
  111. package/common/directives/navigation/router-outlet.d.ts +0 -103
  112. package/common/directives/navigation/tabs.d.ts +0 -74
  113. package/common/index.d.ts +0 -28
  114. package/common/overlays/modal.d.ts +0 -50
  115. package/common/overlays/popover.d.ts +0 -46
  116. package/common/utils/proxy.d.ts +0 -8
  117. package/directives/navigation/ion-nav.d.ts +0 -8
  118. package/esm2020/common/directives/control-value-accessors/index.mjs +0 -2
  119. package/esm2020/common/directives/control-value-accessors/value-accessor.mjs +0 -141
  120. package/esm2020/common/directives/navigation/back-button.mjs +0 -59
  121. package/esm2020/common/directives/navigation/nav-params.mjs +0 -45
  122. package/esm2020/common/directives/navigation/nav.mjs +0 -47
  123. package/esm2020/common/directives/navigation/router-link-delegate.mjs +0 -111
  124. package/esm2020/common/directives/navigation/router-outlet.mjs +0 -461
  125. package/esm2020/common/directives/navigation/stack-controller.mjs +0 -275
  126. package/esm2020/common/directives/navigation/stack-utils.mjs +0 -73
  127. package/esm2020/common/directives/navigation/tabs.mjs +0 -172
  128. package/esm2020/common/index.mjs +0 -28
  129. package/esm2020/common/ionic-angular-common.mjs +0 -5
  130. package/esm2020/common/overlays/modal.mjs +0 -87
  131. package/esm2020/common/overlays/popover.mjs +0 -79
  132. package/esm2020/common/providers/action-sheet-controller.mjs +0 -18
  133. package/esm2020/common/providers/alert-controller.mjs +0 -18
  134. package/esm2020/common/providers/angular-delegate.mjs +0 -152
  135. package/esm2020/common/providers/animation-controller.mjs +0 -37
  136. package/esm2020/common/providers/config.mjs +0 -44
  137. package/esm2020/common/providers/dom-controller.mjs +0 -44
  138. package/esm2020/common/providers/gesture-controller.mjs +0 -31
  139. package/esm2020/common/providers/loading-controller.mjs +0 -18
  140. package/esm2020/common/providers/menu-controller.mjs +0 -100
  141. package/esm2020/common/providers/modal-controller.mjs +0 -25
  142. package/esm2020/common/providers/nav-controller.mjs +0 -221
  143. package/esm2020/common/providers/picker-controller.mjs +0 -18
  144. package/esm2020/common/providers/platform.mjs +0 -246
  145. package/esm2020/common/providers/popover-controller.mjs +0 -25
  146. package/esm2020/common/providers/toast-controller.mjs +0 -18
  147. package/esm2020/common/types/interfaces.mjs +0 -2
  148. package/esm2020/common/utils/overlay.mjs +0 -25
  149. package/esm2020/common/utils/proxy.mjs +0 -47
  150. package/esm2020/common/utils/routing.mjs +0 -55
  151. package/esm2020/common/utils/util.mjs +0 -10
  152. package/esm2020/directives/navigation/ion-nav.mjs +0 -21
  153. package/esm2020/standalone/directives/angular-component-lib/utils.mjs +0 -51
  154. package/esm2020/standalone/directives/checkbox.mjs +0 -73
  155. package/esm2020/standalone/directives/datetime.mjs +0 -90
  156. package/esm2020/standalone/directives/icon.mjs +0 -33
  157. package/esm2020/standalone/directives/index.mjs +0 -13
  158. package/esm2020/standalone/directives/input.mjs +0 -112
  159. package/esm2020/standalone/directives/proxies.mjs +0 -2268
  160. package/esm2020/standalone/directives/radio-group.mjs +0 -58
  161. package/esm2020/standalone/directives/radio.mjs +0 -62
  162. package/esm2020/standalone/directives/range.mjs +0 -77
  163. package/esm2020/standalone/directives/searchbar.mjs +0 -80
  164. package/esm2020/standalone/directives/segment.mjs +0 -58
  165. package/esm2020/standalone/directives/select.mjs +0 -81
  166. package/esm2020/standalone/directives/textarea.mjs +0 -90
  167. package/esm2020/standalone/directives/toggle.mjs +0 -73
  168. package/esm2020/standalone/index.mjs +0 -15
  169. package/esm2020/standalone/ionic-angular-standalone.mjs +0 -5
  170. package/esm2020/standalone/navigation/back-button.mjs +0 -32
  171. package/esm2020/standalone/navigation/nav.mjs +0 -28
  172. package/esm2020/standalone/navigation/router-link-delegate.mjs +0 -30
  173. package/esm2020/standalone/navigation/router-outlet.mjs +0 -23
  174. package/esm2020/standalone/navigation/tabs.mjs +0 -46
  175. package/esm2020/standalone/overlays/modal.mjs +0 -32
  176. package/esm2020/standalone/overlays/popover.mjs +0 -28
  177. package/esm2020/standalone/providers/ionic-angular.mjs +0 -41
  178. package/fesm2015/ionic-angular-common.mjs +0 -2620
  179. package/fesm2015/ionic-angular-common.mjs.map +0 -1
  180. package/fesm2015/ionic-angular-standalone.mjs +0 -3288
  181. package/fesm2015/ionic-angular-standalone.mjs.map +0 -1
  182. package/fesm2020/ionic-angular-common.mjs +0 -2609
  183. package/fesm2020/ionic-angular-common.mjs.map +0 -1
  184. package/fesm2020/ionic-angular-standalone.mjs +0 -3286
  185. package/fesm2020/ionic-angular-standalone.mjs.map +0 -1
  186. package/standalone/directives/angular-component-lib/utils.d.ts +0 -9
  187. package/standalone/directives/checkbox.d.ts +0 -30
  188. package/standalone/directives/datetime.d.ts +0 -30
  189. package/standalone/directives/icon.d.ts +0 -9
  190. package/standalone/directives/index.d.ts +0 -12
  191. package/standalone/directives/input.d.ts +0 -47
  192. package/standalone/directives/proxies.d.ts +0 -903
  193. package/standalone/directives/radio-group.d.ts +0 -18
  194. package/standalone/directives/radio.d.ts +0 -22
  195. package/standalone/directives/range.d.ts +0 -47
  196. package/standalone/directives/searchbar.d.ts +0 -45
  197. package/standalone/directives/segment.d.ts +0 -19
  198. package/standalone/directives/select.d.ts +0 -34
  199. package/standalone/directives/textarea.d.ts +0 -37
  200. package/standalone/directives/toggle.d.ts +0 -28
  201. package/standalone/index.d.ts +0 -12
  202. package/standalone/navigation/back-button.d.ts +0 -9
  203. package/standalone/navigation/nav.d.ts +0 -8
  204. package/standalone/navigation/router-link-delegate.d.ts +0 -10
  205. package/standalone/navigation/router-outlet.d.ts +0 -6
  206. package/standalone/navigation/tabs.d.ts +0 -12
  207. package/standalone/overlays/modal.d.ts +0 -6
  208. package/standalone/overlays/popover.d.ts +0 -6
  209. package/standalone/providers/ionic-angular.d.ts +0 -3
  210. /package/{common/directives → directives}/navigation/nav-params.d.ts +0 -0
  211. /package/{common/directives → directives}/navigation/stack-controller.d.ts +0 -0
  212. /package/{common/providers → providers}/dom-controller.d.ts +0 -0
  213. /package/{common/providers → providers}/menu-controller.d.ts +0 -0
  214. /package/{common/utils/routing.d.ts → util/ionic-router-reuse-strategy.d.ts} +0 -0
  215. /package/{common/utils → util}/overlay.d.ts +0 -0
  216. /package/{common/utils → util}/util.d.ts +0 -0
@@ -1,14 +1,161 @@
1
- import { Component, ContentChild, ContentChildren, ViewChild } from '@angular/core';
2
- import { IonTabs as IonTabsBase } from '@ionic/angular/common';
1
+ import { Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostListener, Output, ViewChild, } from '@angular/core';
3
2
  import { IonTabBar } from '../proxies';
4
3
  import { IonRouterOutlet } from './ion-router-outlet';
5
4
  import * as i0 from "@angular/core";
6
- import * as i1 from "./ion-router-outlet";
5
+ import * as i1 from "../../providers/nav-controller";
6
+ import * as i2 from "./ion-router-outlet";
7
7
  // eslint-disable-next-line @angular-eslint/component-class-suffix
8
- export class IonTabs extends IonTabsBase {
8
+ export class IonTabs {
9
+ constructor(navCtrl) {
10
+ this.navCtrl = navCtrl;
11
+ /**
12
+ * Emitted before the tab view is changed.
13
+ */
14
+ this.ionTabsWillChange = new EventEmitter();
15
+ /**
16
+ * Emitted after the tab view is changed.
17
+ */
18
+ this.ionTabsDidChange = new EventEmitter();
19
+ this.tabBarSlot = 'bottom';
20
+ }
21
+ ngAfterContentInit() {
22
+ this.detectSlotChanges();
23
+ }
24
+ ngAfterContentChecked() {
25
+ this.detectSlotChanges();
26
+ }
27
+ /**
28
+ * @internal
29
+ */
30
+ onStackWillChange({ enteringView, tabSwitch }) {
31
+ const stackId = enteringView.stackId;
32
+ if (tabSwitch && stackId !== undefined) {
33
+ this.ionTabsWillChange.emit({ tab: stackId });
34
+ }
35
+ }
36
+ /**
37
+ * @internal
38
+ */
39
+ onStackDidChange({ enteringView, tabSwitch }) {
40
+ const stackId = enteringView.stackId;
41
+ if (tabSwitch && stackId !== undefined) {
42
+ if (this.tabBar) {
43
+ this.tabBar.selectedTab = stackId;
44
+ }
45
+ this.ionTabsDidChange.emit({ tab: stackId });
46
+ }
47
+ }
48
+ /**
49
+ * When a tab button is clicked, there are several scenarios:
50
+ * 1. If the selected tab is currently active (the tab button has been clicked
51
+ * again), then it should go to the root view for that tab.
52
+ *
53
+ * a. Get the saved root view from the router outlet. If the saved root view
54
+ * matches the tabRootUrl, set the route view to this view including the
55
+ * navigation extras.
56
+ * b. If the saved root view from the router outlet does
57
+ * not match, navigate to the tabRootUrl. No navigation extras are
58
+ * included.
59
+ *
60
+ * 2. If the current tab tab is not currently selected, get the last route
61
+ * view from the router outlet.
62
+ *
63
+ * a. If the last route view exists, navigate to that view including any
64
+ * navigation extras
65
+ * b. If the last route view doesn't exist, then navigate
66
+ * to the default tabRootUrl
67
+ */
68
+ select(tabOrEvent) {
69
+ const isTabString = typeof tabOrEvent === 'string';
70
+ const tab = isTabString ? tabOrEvent : tabOrEvent.detail.tab;
71
+ const alreadySelected = this.outlet.getActiveStackId() === tab;
72
+ const tabRootUrl = `${this.outlet.tabsPrefix}/${tab}`;
73
+ /**
74
+ * If this is a nested tab, prevent the event
75
+ * from bubbling otherwise the outer tabs
76
+ * will respond to this event too, causing
77
+ * the app to get directed to the wrong place.
78
+ */
79
+ if (!isTabString) {
80
+ tabOrEvent.stopPropagation();
81
+ }
82
+ if (alreadySelected) {
83
+ const activeStackId = this.outlet.getActiveStackId();
84
+ const activeView = this.outlet.getLastRouteView(activeStackId);
85
+ // If on root tab, do not navigate to root tab again
86
+ if (activeView?.url === tabRootUrl) {
87
+ return;
88
+ }
89
+ const rootView = this.outlet.getRootView(tab);
90
+ const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;
91
+ return this.navCtrl.navigateRoot(tabRootUrl, {
92
+ ...navigationExtras,
93
+ animated: true,
94
+ animationDirection: 'back',
95
+ });
96
+ }
97
+ else {
98
+ const lastRoute = this.outlet.getLastRouteView(tab);
99
+ /**
100
+ * If there is a lastRoute, goto that, otherwise goto the fallback url of the
101
+ * selected tab
102
+ */
103
+ const url = lastRoute?.url || tabRootUrl;
104
+ const navigationExtras = lastRoute?.savedExtras;
105
+ return this.navCtrl.navigateRoot(url, {
106
+ ...navigationExtras,
107
+ animated: true,
108
+ animationDirection: 'back',
109
+ });
110
+ }
111
+ }
112
+ getSelected() {
113
+ return this.outlet.getActiveStackId();
114
+ }
115
+ /**
116
+ * Detects changes to the slot attribute of the tab bar.
117
+ *
118
+ * If the slot attribute has changed, then the tab bar
119
+ * should be relocated to the new slot position.
120
+ */
121
+ detectSlotChanges() {
122
+ this.tabBars.forEach((tabBar) => {
123
+ // el is a protected attribute from the generated component wrapper
124
+ const currentSlot = tabBar.el.getAttribute('slot');
125
+ if (currentSlot !== this.tabBarSlot) {
126
+ this.tabBarSlot = currentSlot;
127
+ this.relocateTabBar();
128
+ }
129
+ });
130
+ }
131
+ /**
132
+ * Relocates the tab bar to the new slot position.
133
+ */
134
+ relocateTabBar() {
135
+ /**
136
+ * `el` is a protected attribute from the generated component wrapper.
137
+ * To avoid having to manually create the wrapper for tab bar, we
138
+ * cast the tab bar to any and access the protected attribute.
139
+ */
140
+ const tabBar = this.tabBar.el;
141
+ if (this.tabBarSlot === 'top') {
142
+ /**
143
+ * A tab bar with a slot of "top" should be inserted
144
+ * at the top of the container.
145
+ */
146
+ this.tabsInner.nativeElement.before(tabBar);
147
+ }
148
+ else {
149
+ /**
150
+ * A tab bar with a slot of "bottom" or without a slot
151
+ * should be inserted at the end of the container.
152
+ */
153
+ this.tabsInner.nativeElement.after(tabBar);
154
+ }
155
+ }
9
156
  }
10
- /** @nocollapse */ IonTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabs, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
- /** @nocollapse */ IonTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonTabs, selector: "ion-tabs", queries: [{ propertyName: "tabBar", first: true, predicate: IonTabBar, descendants: true }, { propertyName: "tabBars", predicate: IonTabBar }], viewQueries: [{ propertyName: "outlet", first: true, predicate: ["outlet"], descendants: true, read: IonRouterOutlet }], usesInheritance: true, ngImport: i0, template: `
157
+ /** @nocollapse */ IonTabs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabs, deps: [{ token: i1.NavController }], target: i0.ɵɵFactoryTarget.Component });
158
+ /** @nocollapse */ IonTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: IonTabs, selector: "ion-tabs", outputs: { ionTabsWillChange: "ionTabsWillChange", ionTabsDidChange: "ionTabsDidChange" }, host: { listeners: { "ionTabButtonClick": "select($event)" } }, queries: [{ propertyName: "tabBar", first: true, predicate: IonTabBar, descendants: true }, { propertyName: "tabBars", predicate: IonTabBar }], viewQueries: [{ propertyName: "outlet", first: true, predicate: ["outlet"], descendants: true, read: IonRouterOutlet }, { propertyName: "tabsInner", first: true, predicate: ["tabsInner"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `
12
159
  <ng-content select="[slot=top]"></ng-content>
13
160
  <div class="tabs-inner" #tabsInner>
14
161
  <ion-router-outlet
@@ -19,7 +166,7 @@ export class IonTabs extends IonTabsBase {
19
166
  ></ion-router-outlet>
20
167
  </div>
21
168
  <ng-content></ng-content>
22
- `, isInline: true, styles: [":host{display:flex;position:absolute;inset:0;flex-direction:column;width:100%;height:100%;contain:layout size style}.tabs-inner{position:relative;flex:1;contain:layout size style}\n"], dependencies: [{ kind: "directive", type: i1.IonRouterOutlet, selector: "ion-router-outlet" }] });
169
+ `, isInline: true, styles: [":host{display:flex;position:absolute;inset:0;flex-direction:column;width:100%;height:100%;contain:layout size style}.tabs-inner{position:relative;flex:1;contain:layout size style}\n"], dependencies: [{ kind: "directive", type: i2.IonRouterOutlet, selector: "ion-router-outlet", inputs: ["animated", "animation", "mode", "swipeGesture", "name"], outputs: ["stackWillChange", "stackDidChange", "activate", "deactivate"], exportAs: ["outlet"] }] });
23
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: IonTabs, decorators: [{
24
171
  type: Component,
25
172
  args: [{ selector: 'ion-tabs', template: `
@@ -34,14 +181,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
34
181
  </div>
35
182
  <ng-content></ng-content>
36
183
  `, styles: [":host{display:flex;position:absolute;inset:0;flex-direction:column;width:100%;height:100%;contain:layout size style}.tabs-inner{position:relative;flex:1;contain:layout size style}\n"] }]
37
- }], propDecorators: { outlet: [{
184
+ }], ctorParameters: function () { return [{ type: i1.NavController }]; }, propDecorators: { outlet: [{
38
185
  type: ViewChild,
39
186
  args: ['outlet', { read: IonRouterOutlet, static: false }]
187
+ }], tabsInner: [{
188
+ type: ViewChild,
189
+ args: ['tabsInner', { read: ElementRef, static: true }]
40
190
  }], tabBar: [{
41
191
  type: ContentChild,
42
192
  args: [IonTabBar, { static: false }]
43
193
  }], tabBars: [{
44
194
  type: ContentChildren,
45
195
  args: [IonTabBar]
196
+ }], ionTabsWillChange: [{
197
+ type: Output
198
+ }], ionTabsDidChange: [{
199
+ type: Output
200
+ }], select: [{
201
+ type: HostListener,
202
+ args: ['ionTabButtonClick', ['$event']]
46
203
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uLXRhYnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL2lvbi10YWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBMkN0RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLE9BQVEsU0FBUSxXQUFXOzt3SEFBM0IsT0FBTzs0R0FBUCxPQUFPLG9GQUdKLFNBQVMsNkRBQ04sU0FBUywwR0FIRyxlQUFlLG9EQXpDbEM7Ozs7Ozs7Ozs7O0dBV1Q7NEZBNkJVLE9BQU87a0JBMUNuQixTQUFTOytCQUNFLFVBQVUsWUFDVjs7Ozs7Ozs7Ozs7R0FXVDs4QkE4QjhELE1BQU07c0JBQXBFLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVqQixNQUFNO3NCQUFqRCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2QsT0FBTztzQkFBbEMsZUFBZTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgVmlld0NoaWxkLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRhYnMgYXMgSW9uVGFic0Jhc2UgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBJb25UYWJCYXIgfSBmcm9tICcuLi9wcm94aWVzJztcblxuaW1wb3J0IHsgSW9uUm91dGVyT3V0bGV0IH0gZnJvbSAnLi9pb24tcm91dGVyLW91dGxldCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lvbi10YWJzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2xvdD10b3BdXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJ0YWJzLWlubmVyXCIgI3RhYnNJbm5lcj5cbiAgICAgIDxpb24tcm91dGVyLW91dGxldFxuICAgICAgICAjb3V0bGV0XG4gICAgICAgIHRhYnM9XCJ0cnVlXCJcbiAgICAgICAgKHN0YWNrV2lsbENoYW5nZSk9XCJvblN0YWNrV2lsbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHN0YWNrRGlkQ2hhbmdlKT1cIm9uU3RhY2tEaWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICA+PC9pb24tcm91dGVyLW91dGxldD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIGNvbnRhaW46IGxheW91dCBzaXplIHN0eWxlO1xuICAgICAgfVxuICAgICAgLnRhYnMtaW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBjb250YWluOiBsYXlvdXQgc2l6ZSBzdHlsZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGNsYXNzIElvblRhYnMgZXh0ZW5kcyBJb25UYWJzQmFzZSB7XG4gIEBWaWV3Q2hpbGQoJ291dGxldCcsIHsgcmVhZDogSW9uUm91dGVyT3V0bGV0LCBzdGF0aWM6IGZhbHNlIH0pIG91dGxldDogSW9uUm91dGVyT3V0bGV0O1xuXG4gIEBDb250ZW50Q2hpbGQoSW9uVGFiQmFyLCB7IHN0YXRpYzogZmFsc2UgfSkgdGFiQmFyOiBJb25UYWJCYXIgfCB1bmRlZmluZWQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oSW9uVGFiQmFyKSB0YWJCYXJzOiBRdWVyeUxpc3Q8SW9uVGFiQmFyPjtcbn1cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uLXRhYnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL2lvbi10YWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBNEN0RCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFPLE9BQU87SUFrQmxCLFlBQW9CLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFYMUM7O1dBRUc7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUNsRTs7V0FFRztRQUNPLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRXpELGVBQVUsR0FBRyxRQUFRLENBQUM7SUFFZSxDQUFDO0lBRTlDLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBd0I7UUFDakUsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLFNBQVMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRDs7T0FFRztJ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RUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9uYXYtY29udHJvbGxlcic7XG5pbXBvcnQgeyBJb25UYWJCYXIgfSBmcm9tICcuLi9wcm94aWVzJztcblxuaW1wb3J0IHsgSW9uUm91dGVyT3V0bGV0IH0gZnJvbSAnLi9pb24tcm91dGVyLW91dGxldCc7XG5pbXBvcnQgeyBTdGFja0RpZENoYW5nZUV2ZW50LCBTdGFja1dpbGxDaGFuZ2VFdmVudCB9IGZyb20gJy4vc3RhY2stdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpb24tdGFicycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3Nsb3Q9dG9wXVwiPjwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwidGFicy1pbm5lclwiICN0YWJzSW5uZXI+XG4gICAgICA8aW9uLXJvdXRlci1vdXRsZXRcbiAgICAgICAgI291dGxldFxuICAgICAgICB0YWJzPVwidHJ1ZVwiXG4gICAgICAgIChzdGFja1dpbGxDaGFuZ2UpPVwib25TdGFja1dpbGxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChzdGFja0RpZENoYW5nZSk9XCJvblN0YWNrRGlkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPjwvaW9uLXJvdXRlci1vdXRsZXQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICBjb250YWluOiBsYXlvdXQgc2l6ZSBzdHlsZTtcbiAgICAgIH1cbiAgICAgIC50YWJzLWlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgY29udGFpbjogbGF5b3V0IHNpemUgc3R5bGU7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBJb25UYWJzIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGQoJ291dGxldCcsIHsgcmVhZDogSW9uUm91dGVyT3V0bGV0LCBzdGF0aWM6IGZhbHNlIH0pIG91dGxldDogSW9uUm91dGVyT3V0bGV0O1xuICBAVmlld0NoaWxkKCd0YWJzSW5uZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSB0YWJzSW5uZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGQoSW9uVGFiQmFyLCB7IHN0YXRpYzogZmFsc2UgfSkgdGFiQmFyOiBJb25UYWJCYXIgfCB1bmRlZmluZWQ7XG4gIEBDb250ZW50Q2hpbGRyZW4oSW9uVGFiQmFyKSB0YWJCYXJzOiBRdWVyeUxpc3Q8SW9uVGFiQmFyPjtcblxuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIHRhYiB2aWV3IGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgaW9uVGFic1dpbGxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBzdHJpbmcgfT4oKTtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHRhYiB2aWV3IGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgaW9uVGFic0RpZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IHN0cmluZyB9PigpO1xuXG4gIHByaXZhdGUgdGFiQmFyU2xvdCA9ICdib3R0b20nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmF2Q3RybDogTmF2Q29udHJvbGxlcikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kZXRlY3RTbG90Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0ZWN0U2xvdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uU3RhY2tXaWxsQ2hhbmdlKHsgZW50ZXJpbmdWaWV3LCB0YWJTd2l0Y2ggfTogU3RhY2tXaWxsQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFja0lkID0gZW50ZXJpbmdWaWV3LnN0YWNrSWQ7XG4gICAgaWYgKHRhYlN3aXRjaCAmJiBzdGFja0lkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaW9uVGFic1dpbGxDaGFuZ2UuZW1pdCh7IHRhYjogc3RhY2tJZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvblN0YWNrRGlkQ2hhbmdlKHsgZW50ZXJpbmdWaWV3LCB0YWJTd2l0Y2ggfTogU3RhY2tEaWRDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWNrSWQgPSBlbnRlcmluZ1ZpZXcuc3RhY2tJZDtcbiAgICBpZiAodGFiU3dpdGNoICYmIHN0YWNrSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMudGFiQmFyKSB7XG4gICAgICAgIHRoaXMudGFiQmFyLnNlbGVjdGVkVGFiID0gc3RhY2tJZDtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW9uVGFic0RpZENoYW5nZS5lbWl0KHsgdGFiOiBzdGFja0lkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgdGFiIGJ1dHRvbiBpcyBjbGlja2VkLCB0aGVyZSBhcmUgc2V2ZXJhbCBzY2VuYXJpb3M6XG4gICAqIDEuIElmIHRoZSBzZWxlY3RlZCB0YWIgaXMgY3VycmVudGx5IGFjdGl2ZSAodGhlIHRhYiBidXR0b24gaGFzIGJlZW4gY2xpY2tlZFxuICAgKiAgICBhZ2FpbiksIHRoZW4gaXQgc2hvdWxkIGdvIHRvIHRoZSByb290IHZpZXcgZm9yIHRoYXQgdGFiLlxuICAgKlxuICAgKiAgIGEuIEdldCB0aGUgc2F2ZWQgcm9vdCB2aWV3IGZyb20gdGhlIHJvdXRlciBvdXRsZXQuIElmIHRoZSBzYXZlZCByb290IHZpZXdcbiAgICogICAgICBtYXRjaGVzIHRoZSB0YWJSb290VXJsLCBzZXQgdGhlIHJvdXRlIHZpZXcgdG8gdGhpcyB2aWV3IGluY2x1ZGluZyB0aGVcbiAgICogICAgICBuYXZpZ2F0aW9uIGV4dHJhcy5cbiAgICogICBiLiBJZiB0aGUgc2F2ZWQgcm9vdCB2aWV3IGZyb20gdGhlIHJvdXRlciBvdXRsZXQgZG9lc1xuICAgKiAgICAgIG5vdCBtYXRjaCwgbmF2aWdhdGUgdG8gdGhlIHRhYlJvb3RVcmwuIE5vIG5hdmlnYXRpb24gZXh0cmFzIGFyZVxuICAgKiAgICAgIGluY2x1ZGVkLlxuICAgKlxuICAgKiAyLiBJZiB0aGUgY3VycmVudCB0YWIgdGFiIGlzIG5vdCBjdXJyZW50bHkgc2VsZWN0ZWQsIGdldCB0aGUgbGFzdCByb3V0ZVxuICAgKiAgICB2aWV3IGZyb20gdGhlIHJvdXRlciBvdXRsZXQuXG4gICAqXG4gICAqICAgYS4gSWYgdGhlIGxhc3Qgcm91dGUgdmlldyBleGlzdHMsIG5hdmlnYXRlIHRvIHRoYXQgdmlldyBpbmNsdWRpbmcgYW55XG4gICAqICAgICAgbmF2aWdhdGlvbiBleHRyYXNcbiAgICogICBiLiBJZiB0aGUgbGFzdCByb3V0ZSB2aWV3IGRvZXNuJ3QgZXhpc3QsIHRoZW4gbmF2aWdhdGVcbiAgICogICAgICB0byB0aGUgZGVmYXVsdCB0YWJSb290VXJsXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdpb25UYWJCdXR0b25DbGljaycsIFsnJGV2ZW50J10pXG4gIHNlbGVjdCh0YWJPckV2ZW50OiBzdHJpbmcgfCBDdXN0b21FdmVudCk6IFByb21pc2U8Ym9vbGVhbj4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzVGFiU3RyaW5nID0gdHlwZW9mIHRhYk9yRXZlbnQgPT09ICdzdHJpbmcnO1xuICAgIGNvbnN0IHRhYiA9IGlzVGFiU3RyaW5nID8gdGFiT3JFdmVudCA6ICh0YWJPckV2ZW50IGFzIEN1c3RvbUV2ZW50KS5kZXRhaWwudGFiO1xuICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IHRoaXMub3V0bGV0LmdldEFjdGl2ZVN0YWNrSWQoKSA9PT0gdGFiO1xuICAgIGNvbnN0IHRhYlJvb3RVcmwgPSBgJHt0aGlzLm91dGxldC50YWJzUHJlZml4fS8ke3RhYn1gO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBpcyBhIG5lc3RlZCB0YWIsIHByZXZlbnQgdGhlIGV2ZW50XG4gICAgICogZnJvbSBidWJibGluZyBvdGhlcndpc2UgdGhlIG91dGVyIHRhYnNcbiAgICAgKiB3aWxsIHJlc3BvbmQgdG8gdGhpcyBldmVudCB0b28sIGNhdXNpbmdcbiAgICAgKiB0aGUgYXBwIHRvIGdldCBkaXJlY3RlZCB0byB0aGUgd3JvbmcgcGxhY2UuXG4gICAgICovXG4gICAgaWYgKCFpc1RhYlN0cmluZykge1xuICAgICAgKHRhYk9yRXZlbnQgYXMgQ3VzdG9tRXZlbnQpLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChhbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IGFjdGl2ZVN0YWNrSWQgPSB0aGlzLm91dGxldC5nZXRBY3RpdmVTdGFja0lkKCk7XG4gICAgICBjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5vdXRsZXQuZ2V0TGFzdFJvdXRlVmlldyhhY3RpdmVTdGFja0lkKTtcblxuICAgICAgLy8gSWYgb24gcm9vdCB0YWIsIGRvIG5vdCBuYXZpZ2F0ZSB0byByb290IHRhYiBhZ2FpblxuICAgICAgaWYgKGFjdGl2ZVZpZXc/LnVybCA9PT0gdGFiUm9vdFVybCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJvb3RWaWV3ID0gdGhpcy5vdXRsZXQuZ2V0Um9vdFZpZXcodGFiKTtcbiAgICAgIGNvbnN0IG5hdmlnYXRpb25FeHRyYXMgPSByb290VmlldyAmJiB0YWJSb290VXJsID09PSByb290Vmlldy51cmwgJiYgcm9vdFZpZXcuc2F2ZWRFeHRyYXM7XG4gICAgICByZXR1cm4gdGhpcy5uYXZDdHJsLm5hdmlnYXRlUm9vdCh0YWJSb290VXJsLCB7XG4gICAgICAgIC4uLm5hdmlnYXRpb25FeHRyYXMsXG4gICAgICAgIGFuaW1hdGVkOiB0cnVlLFxuICAgICAgICBhbmltYXRpb25EaXJlY3Rpb246ICdiYWNrJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0Um91dGUgPSB0aGlzLm91dGxldC5nZXRMYXN0Um91dGVWaWV3KHRhYik7XG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbGFzdFJvdXRlLCBnb3RvIHRoYXQsIG90aGVyd2lzZSBnb3RvIHRoZSBmYWxsYmFjayB1cmwgb2YgdGhlXG4gICAgICAgKiBzZWxlY3RlZCB0YWJcbiAgICAgICAqL1xuICAgICAgY29uc3QgdXJsID0gbGFzdFJvdXRlPy51cmwgfHwgdGFiUm9vdFVybDtcbiAgICAgIGNvbnN0IG5hdmlnYXRpb25FeHRyYXMgPSBsYXN0Um91dGU/LnNhdmVkRXh0cmFzO1xuXG4gICAgICByZXR1cm4gdGhpcy5uYXZDdHJsLm5hdmlnYXRlUm9vdCh1cmwsIHtcbiAgICAgICAgLi4ubmF2aWdhdGlvbkV4dHJhcyxcbiAgICAgICAgYW5pbWF0ZWQ6IHRydWUsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvbjogJ2JhY2snLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vdXRsZXQuZ2V0QWN0aXZlU3RhY2tJZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVjdHMgY2hhbmdlcyB0byB0aGUgc2xvdCBhdHRyaWJ1dGUgb2YgdGhlIHRhYiBiYXIuXG4gICAqXG4gICAqIElmIHRoZSBzbG90IGF0dHJpYnV0ZSBoYXMgY2hhbmdlZCwgdGhlbiB0aGUgdGFiIGJhclxuICAgKiBzaG91bGQgYmUgcmVsb2NhdGVkIHRvIHRoZSBuZXcgc2xvdCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0U2xvdENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy50YWJCYXJzLmZvckVhY2goKHRhYkJhcjogYW55KSA9PiB7XG4gICAgICAvLyBlbCBpcyBhIHByb3RlY3RlZCBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvbXBvbmVudCB3cmFwcGVyXG4gICAgICBjb25zdCBjdXJyZW50U2xvdCA9IHRhYkJhci5lbC5nZXRBdHRyaWJ1dGUoJ3Nsb3QnKTtcblxuICAgICAgaWYgKGN1cnJlbnRTbG90ICE9PSB0aGlzLnRhYkJhclNsb3QpIHtcbiAgICAgICAgdGhpcy50YWJCYXJTbG90ID0gY3VycmVudFNsb3Q7XG4gICAgICAgIHRoaXMucmVsb2NhdGVUYWJCYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWxvY2F0ZXMgdGhlIHRhYiBiYXIgdG8gdGhlIG5ldyBzbG90IHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWxvY2F0ZVRhYkJhcigpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBgZWxgIGlzIGEgcHJvdGVjdGVkIGF0dHJpYnV0ZSBmcm9tIHRoZSBnZW5lcmF0ZWQgY29tcG9uZW50IHdyYXBwZXIuXG4gICAgICogVG8gYXZvaWQgaGF2aW5nIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgd3JhcHBlciBmb3IgdGFiIGJhciwgd2VcbiAgICAgKiBjYXN0IHRoZSB0YWIgYmFyIHRvIGFueSBhbmQgYWNjZXNzIHRoZSBwcm90ZWN0ZWQgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIGNvbnN0IHRhYkJhciA9ICh0aGlzLnRhYkJhciBhcyBhbnkpLmVsIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMudGFiQmFyU2xvdCA9PT0gJ3RvcCcpIHtcbiAgICAgIC8qKlxuICAgICAgICogQSB0YWIgYmFyIHdpdGggYSBzbG90IG9mIFwidG9wXCIgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICAgKiBhdCB0aGUgdG9wIG9mIHRoZSBjb250YWluZXIuXG4gICAgICAgKi9cbiAgICAgIHRoaXMudGFic0lubmVyLm5hdGl2ZUVsZW1lbnQuYmVmb3JlKHRhYkJhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qKlxuICAgICAgICogQSB0YWIgYmFyIHdpdGggYSBzbG90IG9mIFwiYm90dG9tXCIgb3Igd2l0aG91dCBhIHNsb3RcbiAgICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBjb250YWluZXIuXG4gICAgICAgKi9cbiAgICAgIHRoaXMudGFic0lubmVyLm5hdGl2ZUVsZW1lbnQuYWZ0ZXIodGFiQmFyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive } from '@angular/core';
3
+ import { ProxyCmp, proxyOutputs } from '../angular-component-lib/utils';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../providers/angular-delegate";
6
+ let NavDelegate = class NavDelegate {
7
+ constructor(ref, environmentInjector, injector, angularDelegate) {
8
+ this.el = ref.nativeElement;
9
+ ref.nativeElement.delegate = angularDelegate.create(environmentInjector, injector);
10
+ proxyOutputs(this, this.el, ['ionNavDidChange', 'ionNavWillChange']);
11
+ }
12
+ };
13
+ /** @nocollapse */ NavDelegate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NavDelegate, deps: [{ token: i0.ElementRef }, { token: i0.EnvironmentInjector }, { token: i0.Injector }, { token: i1.AngularDelegate }], target: i0.ɵɵFactoryTarget.Directive });
14
+ /** @nocollapse */ NavDelegate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: NavDelegate, selector: "ion-nav", ngImport: i0 });
15
+ NavDelegate = __decorate([
16
+ ProxyCmp({
17
+ inputs: ['animated', 'animation', 'root', 'rootParams', 'swipeGesture'],
18
+ methods: [
19
+ 'push',
20
+ 'insert',
21
+ 'insertPages',
22
+ 'pop',
23
+ 'popTo',
24
+ 'popToRoot',
25
+ 'removeIndex',
26
+ 'setRoot',
27
+ 'setPages',
28
+ 'getActive',
29
+ 'getByIndex',
30
+ 'canGoBack',
31
+ 'getPrevious',
32
+ ],
33
+ })
34
+ ], NavDelegate);
35
+ export { NavDelegate };
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NavDelegate, decorators: [{
37
+ type: Directive,
38
+ args: [{
39
+ selector: 'ion-nav',
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.EnvironmentInjector }, { type: i0.Injector }, { type: i1.AngularDelegate }]; } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWRlbGVnYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9uYXYtZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBd0IsU0FBUyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUdyRixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7SUF3QjNELFdBQVcsU0FBWCxXQUFXO0lBRXRCLFlBQ0UsR0FBZSxFQUNmLG1CQUF3QyxFQUN4QyxRQUFrQixFQUNsQixlQUFnQztRQUVoQyxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDNUIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGLENBQUE7NEhBWlksV0FBVztnSEFBWCxXQUFXO0FBQVgsV0FBVztJQXRCdkIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQztRQUN2RSxPQUFPLEVBQUU7WUFDUCxNQUFNO1lBQ04sUUFBUTtZQUNSLGFBQWE7WUFDYixLQUFLO1lBQ0wsT0FBTztZQUNQLFdBQVc7WUFDWCxhQUFhO1lBQ2IsU0FBUztZQUNULFVBQVU7WUFDVixXQUFXO1lBQ1gsWUFBWTtZQUNaLFdBQVc7WUFDWCxhQUFhO1NBQ2Q7S0FDRixDQUFDO0dBS1csV0FBVyxDQVl2QjtTQVpZLFdBQVc7NEZBQVgsV0FBVztrQkFKdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RvciwgRGlyZWN0aXZlLCBFbnZpcm9ubWVudEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFuZ3VsYXJEZWxlZ2F0ZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9hbmd1bGFyLWRlbGVnYXRlJztcbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuLi9hbmd1bGFyLWNvbXBvbmVudC1saWIvdXRpbHMnO1xuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0ZWQnLCAnYW5pbWF0aW9uJywgJ3Jvb3QnLCAncm9vdFBhcmFtcycsICdzd2lwZUdlc3R1cmUnXSxcbiAgbWV0aG9kczogW1xuICAgICdwdXNoJyxcbiAgICAnaW5zZXJ0JyxcbiAgICAnaW5zZXJ0UGFnZXMnLFxuICAgICdwb3AnLFxuICAgICdwb3BUbycsXG4gICAgJ3BvcFRvUm9vdCcsXG4gICAgJ3JlbW92ZUluZGV4JyxcbiAgICAnc2V0Um9vdCcsXG4gICAgJ3NldFBhZ2VzJyxcbiAgICAnZ2V0QWN0aXZlJyxcbiAgICAnZ2V0QnlJbmRleCcsXG4gICAgJ2NhbkdvQmFjaycsXG4gICAgJ2dldFByZXZpb3VzJyxcbiAgXSxcbn0pXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpb24tbmF2Jyxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBOYXZEZWxlZ2F0ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlZjogRWxlbWVudFJlZixcbiAgICBlbnZpcm9ubWVudEluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBhbmd1bGFyRGVsZWdhdGU6IEFuZ3VsYXJEZWxlZ2F0ZVxuICApIHtcbiAgICB0aGlzLmVsID0gcmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmVmLm5hdGl2ZUVsZW1lbnQuZGVsZWdhdGUgPSBhbmd1bGFyRGVsZWdhdGUuY3JlYXRlKGVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdG9yKTtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydpb25OYXZEaWRDaGFuZ2UnLCAnaW9uTmF2V2lsbENoYW5nZSddKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @description
3
+ * NavParams are an object that exists on a page and can contain data for that particular view.
4
+ * Similar to how data was pass to a view in V1 with `$stateParams`, NavParams offer a much more flexible
5
+ * option with a simple `get` method.
6
+ *
7
+ * @usage
8
+ * ```ts
9
+ * import { NavParams } from '@ionic/angular';
10
+ *
11
+ * export class MyClass{
12
+ *
13
+ * constructor(navParams: NavParams){
14
+ * // userParams is an object we have in our nav-parameters
15
+ * navParams.get('userParams');
16
+ * }
17
+ *
18
+ * }
19
+ * ```
20
+ */
21
+ export class NavParams {
22
+ constructor(data = {}) {
23
+ this.data = data;
24
+ }
25
+ /**
26
+ * Get the value of a nav-parameter for the current view
27
+ *
28
+ * ```ts
29
+ * import { NavParams } from 'ionic-angular';
30
+ *
31
+ * export class MyClass{
32
+ * constructor(public navParams: NavParams){
33
+ * // userParams is an object we have in our nav-parameters
34
+ * this.navParams.get('userParams');
35
+ * }
36
+ * }
37
+ * ```
38
+ *
39
+ * @param param Which param you want to look up
40
+ */
41
+ get(param) {
42
+ return this.data[param];
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL25hdmlnYXRpb24vbmF2LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQW1CLE9BQStCLEVBQUU7UUFBakMsU0FBSSxHQUFKLElBQUksQ0FBNkI7SUFBRyxDQUFDO0lBRXhEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILEdBQUcsQ0FBVSxLQUFhO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvblxuICogTmF2UGFyYW1zIGFyZSBhbiBvYmplY3QgdGhhdCBleGlzdHMgb24gYSBwYWdlIGFuZCBjYW4gY29udGFpbiBkYXRhIGZvciB0aGF0IHBhcnRpY3VsYXIgdmlldy5cbiAqIFNpbWlsYXIgdG8gaG93IGRhdGEgd2FzIHBhc3MgdG8gYSB2aWV3IGluIFYxIHdpdGggYCRzdGF0ZVBhcmFtc2AsIE5hdlBhcmFtcyBvZmZlciBhIG11Y2ggbW9yZSBmbGV4aWJsZVxuICogb3B0aW9uIHdpdGggYSBzaW1wbGUgYGdldGAgbWV0aG9kLlxuICpcbiAqIEB1c2FnZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IE5hdlBhcmFtcyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbiAqXG4gKiBleHBvcnQgY2xhc3MgTXlDbGFzc3tcbiAqXG4gKiAgY29uc3RydWN0b3IobmF2UGFyYW1zOiBOYXZQYXJhbXMpe1xuICogICAgLy8gdXNlclBhcmFtcyBpcyBhbiBvYmplY3Qgd2UgaGF2ZSBpbiBvdXIgbmF2LXBhcmFtZXRlcnNcbiAqICAgIG5hdlBhcmFtcy5nZXQoJ3VzZXJQYXJhbXMnKTtcbiAqICB9XG4gKlxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZQYXJhbXMge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9KSB7fVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIGEgbmF2LXBhcmFtZXRlciBmb3IgdGhlIGN1cnJlbnQgdmlld1xuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbXBvcnQgeyBOYXZQYXJhbXMgfSBmcm9tICdpb25pYy1hbmd1bGFyJztcbiAgICpcbiAgICogZXhwb3J0IGNsYXNzIE15Q2xhc3N7XG4gICAqICBjb25zdHJ1Y3RvcihwdWJsaWMgbmF2UGFyYW1zOiBOYXZQYXJhbXMpe1xuICAgKiAgICAvLyB1c2VyUGFyYW1zIGlzIGFuIG9iamVjdCB3ZSBoYXZlIGluIG91ciBuYXYtcGFyYW1ldGVyc1xuICAgKiAgICB0aGlzLm5hdlBhcmFtcy5nZXQoJ3VzZXJQYXJhbXMnKTtcbiAgICogIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtIFdoaWNoIHBhcmFtIHlvdSB3YW50IHRvIGxvb2sgdXBcbiAgICovXG4gIGdldDxUID0gYW55PihwYXJhbTogc3RyaW5nKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVtwYXJhbV07XG4gIH1cbn1cbiJdfQ==
@@ -1,30 +1,111 @@
1
- import { Directive } from '@angular/core';
2
- import { RouterLinkDelegateDirective as RouterLinkDelegateBase, RouterLinkWithHrefDelegateDirective as RouterLinkHrefDelegateBase, } from '@ionic/angular/common';
1
+ import { Directive, HostListener, Input, Optional } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../providers/nav-controller";
5
+ import * as i3 from "@angular/router";
4
6
  /**
5
7
  * Adds support for Ionic routing directions and animations to the base Angular router link directive.
6
8
  *
7
9
  * When the router link is clicked, the directive will assign the direction and
8
10
  * animation so that the routing integration will transition correctly.
9
11
  */
10
- export class RouterLinkDelegateDirective extends RouterLinkDelegateBase {
12
+ export class RouterLinkDelegateDirective {
13
+ constructor(locationStrategy, navCtrl, elementRef, router, routerLink) {
14
+ this.locationStrategy = locationStrategy;
15
+ this.navCtrl = navCtrl;
16
+ this.elementRef = elementRef;
17
+ this.router = router;
18
+ this.routerLink = routerLink;
19
+ this.routerDirection = 'forward';
20
+ }
21
+ ngOnInit() {
22
+ this.updateTargetUrlAndHref();
23
+ }
24
+ ngOnChanges() {
25
+ this.updateTargetUrlAndHref();
26
+ }
27
+ updateTargetUrlAndHref() {
28
+ if (this.routerLink?.urlTree) {
29
+ const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree));
30
+ this.elementRef.nativeElement.href = href;
31
+ }
32
+ }
33
+ /**
34
+ * @internal
35
+ */
36
+ onClick(ev) {
37
+ this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);
38
+ /**
39
+ * This prevents the browser from
40
+ * performing a page reload when pressing
41
+ * an Ionic component with routerLink.
42
+ * The page reload interferes with routing
43
+ * and causes ion-back-button to disappear
44
+ * since the local history is wiped on reload.
45
+ */
46
+ ev.preventDefault();
47
+ }
11
48
  }
12
- /** @nocollapse */ RouterLinkDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouterLinkDelegateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
13
- /** @nocollapse */ RouterLinkDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RouterLinkDelegateDirective, selector: ":not(a):not(area)[routerLink]", usesInheritance: true, ngImport: i0 });
49
+ /** @nocollapse */ RouterLinkDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouterLinkDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: i2.NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
50
+ /** @nocollapse */ RouterLinkDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RouterLinkDelegateDirective, selector: ":not(a):not(area)[routerLink]", inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, host: { listeners: { "click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0 });
14
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouterLinkDelegateDirective, decorators: [{
15
52
  type: Directive,
16
53
  args: [{
17
54
  selector: ':not(a):not(area)[routerLink]',
18
55
  }]
19
- }] });
20
- export class RouterLinkWithHrefDelegateDirective extends RouterLinkHrefDelegateBase {
56
+ }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: i2.NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
57
+ type: Optional
58
+ }] }]; }, propDecorators: { routerDirection: [{
59
+ type: Input
60
+ }], routerAnimation: [{
61
+ type: Input
62
+ }], onClick: [{
63
+ type: HostListener,
64
+ args: ['click', ['$event']]
65
+ }] } });
66
+ export class RouterLinkWithHrefDelegateDirective {
67
+ constructor(locationStrategy, navCtrl, elementRef, router, routerLink) {
68
+ this.locationStrategy = locationStrategy;
69
+ this.navCtrl = navCtrl;
70
+ this.elementRef = elementRef;
71
+ this.router = router;
72
+ this.routerLink = routerLink;
73
+ this.routerDirection = 'forward';
74
+ }
75
+ ngOnInit() {
76
+ this.updateTargetUrlAndHref();
77
+ }
78
+ ngOnChanges() {
79
+ this.updateTargetUrlAndHref();
80
+ }
81
+ updateTargetUrlAndHref() {
82
+ if (this.routerLink?.urlTree) {
83
+ const href = this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.routerLink.urlTree));
84
+ this.elementRef.nativeElement.href = href;
85
+ }
86
+ }
87
+ /**
88
+ * @internal
89
+ */
90
+ onClick() {
91
+ this.navCtrl.setDirection(this.routerDirection, undefined, undefined, this.routerAnimation);
92
+ }
21
93
  }
22
- /** @nocollapse */ RouterLinkWithHrefDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
23
- /** @nocollapse */ RouterLinkWithHrefDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RouterLinkWithHrefDelegateDirective, selector: "a[routerLink],area[routerLink]", usesInheritance: true, ngImport: i0 });
94
+ /** @nocollapse */ RouterLinkWithHrefDelegateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, deps: [{ token: i1.LocationStrategy }, { token: i2.NavController }, { token: i0.ElementRef }, { token: i3.Router }, { token: i3.RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
95
+ /** @nocollapse */ RouterLinkWithHrefDelegateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: RouterLinkWithHrefDelegateDirective, selector: "a[routerLink],area[routerLink]", inputs: { routerDirection: "routerDirection", routerAnimation: "routerAnimation" }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
24
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RouterLinkWithHrefDelegateDirective, decorators: [{
25
97
  type: Directive,
26
98
  args: [{
27
99
  selector: 'a[routerLink],area[routerLink]',
28
100
  }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWxpbmstZGVsZWdhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3JvdXRlci1saW5rLWRlbGVnYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUNMLDJCQUEyQixJQUFJLHNCQUFzQixFQUNyRCxtQ0FBbUMsSUFBSSwwQkFBMEIsR0FDbEUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFL0I7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsc0JBQXNCOzs0SUFBMUQsMkJBQTJCO2dJQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO2lCQUMxQzs7QUFNRCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsMEJBQTBCOztvSkFBdEUsbUNBQW1DO3dJQUFuQyxtQ0FBbUM7NEZBQW5DLG1DQUFtQztrQkFIL0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUm91dGVyTGlua0RlbGVnYXRlRGlyZWN0aXZlIGFzIFJvdXRlckxpbmtEZWxlZ2F0ZUJhc2UsXG4gIFJvdXRlckxpbmtXaXRoSHJlZkRlbGVnYXRlRGlyZWN0aXZlIGFzIFJvdXRlckxpbmtIcmVmRGVsZWdhdGVCYXNlLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEFkZHMgc3VwcG9ydCBmb3IgSW9uaWMgcm91dGluZyBkaXJlY3Rpb25zIGFuZCBhbmltYXRpb25zIHRvIHRoZSBiYXNlIEFuZ3VsYXIgcm91dGVyIGxpbmsgZGlyZWN0aXZlLlxuICpcbiAqIFdoZW4gdGhlIHJvdXRlciBsaW5rIGlzIGNsaWNrZWQsIHRoZSBkaXJlY3RpdmUgd2lsbCBhc3NpZ24gdGhlIGRpcmVjdGlvbiBhbmRcbiAqIGFuaW1hdGlvbiBzbyB0aGF0IHRoZSByb3V0aW5nIGludGVncmF0aW9uIHdpbGwgdHJhbnNpdGlvbiBjb3JyZWN0bHkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJzpub3QoYSk6bm90KGFyZWEpW3JvdXRlckxpbmtdJyxcbn0pXG5leHBvcnQgY2xhc3MgUm91dGVyTGlua0RlbGVnYXRlRGlyZWN0aXZlIGV4dGVuZHMgUm91dGVyTGlua0RlbGVnYXRlQmFzZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhW3JvdXRlckxpbmtdLGFyZWFbcm91dGVyTGlua10nLFxufSlcbmV4cG9ydCBjbGFzcyBSb3V0ZXJMaW5rV2l0aEhyZWZEZWxlZ2F0ZURpcmVjdGl2ZSBleHRlbmRzIFJvdXRlckxpbmtIcmVmRGVsZWdhdGVCYXNlIHt9XG4iXX0=
101
+ }], ctorParameters: function () { return [{ type: i1.LocationStrategy }, { type: i2.NavController }, { type: i0.ElementRef }, { type: i3.Router }, { type: i3.RouterLink, decorators: [{
102
+ type: Optional
103
+ }] }]; }, propDecorators: { routerDirection: [{
104
+ type: Input
105
+ }], routerAnimation: [{
106
+ type: Input
107
+ }], onClick: [{
108
+ type: HostListener,
109
+ args: ['click']
110
+ }] } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWxpbmstZGVsZWdhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3JvdXRlci1saW5rLWRlbGVnYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBaUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU14Rzs7Ozs7R0FLRztBQUlILE1BQU0sT0FBTywyQkFBMkI7SUFPdEMsWUFDVSxnQkFBa0MsRUFDbEMsT0FBc0IsRUFDdEIsVUFBc0IsRUFDdEIsTUFBYyxFQUNGLFVBQXVCO1FBSm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDRixlQUFVLEdBQVYsVUFBVSxDQUFhO1FBVjdDLG9CQUFlLEdBQW9CLFNBQVMsQ0FBQztJQVcxQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDekcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUVILE9BQU8sQ0FBQyxFQUFXO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFNUY7Ozs7Ozs7V0FPRztRQUNILEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs0SUE5Q1UsMkJBQTJCO2dJQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFIdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO2lCQUMxQzs7MEJBYUksUUFBUTs0Q0FWWCxlQUFlO3NCQURkLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQThCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztBQW1CbkMsTUFBTSxPQUFPLG1DQUFtQztJQU85QyxZQUNVLGdCQUFrQyxFQUNsQyxPQUFzQixFQUN0QixVQUFzQixFQUN0QixNQUFjLEVBQ0YsVUFBdUI7UUFKbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNGLGVBQVUsR0FBVixVQUFVLENBQWE7UUFWN0Msb0JBQWUsR0FBb0IsU0FBUyxDQUFDO0lBVzFDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN6RyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBRUgsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDOUYsQ0FBQzs7b0pBcENVLG1DQUFtQzt3SUFBbkMsbUNBQW1DOzRGQUFuQyxtQ0FBbUM7a0JBSC9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztpQkFDM0M7OzBCQWFJLFFBQVE7NENBVlgsZUFBZTtzQkFEZCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkE4Qk4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIE9uQ2hhbmdlcywgT25Jbml0LCBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQW5pbWF0aW9uQnVpbGRlciwgUm91dGVyRGlyZWN0aW9uIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL25hdi1jb250cm9sbGVyJztcblxuLyoqXG4gKiBBZGRzIHN1cHBvcnQgZm9yIElvbmljIHJvdXRpbmcgZGlyZWN0aW9ucyBhbmQgYW5pbWF0aW9ucyB0byB0aGUgYmFzZSBBbmd1bGFyIHJvdXRlciBsaW5rIGRpcmVjdGl2ZS5cbiAqXG4gKiBXaGVuIHRoZSByb3V0ZXIgbGluayBpcyBjbGlja2VkLCB0aGUgZGlyZWN0aXZlIHdpbGwgYXNzaWduIHRoZSBkaXJlY3Rpb24gYW5kXG4gKiBhbmltYXRpb24gc28gdGhhdCB0aGUgcm91dGluZyBpbnRlZ3JhdGlvbiB3aWxsIHRyYW5zaXRpb24gY29ycmVjdGx5LlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICc6bm90KGEpOm5vdChhcmVhKVtyb3V0ZXJMaW5rXScsXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlckxpbmtEZWxlZ2F0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcm91dGVyRGlyZWN0aW9uOiBSb3V0ZXJEaXJlY3Rpb24gPSAnZm9yd2FyZCc7XG5cbiAgQElucHV0KClcbiAgcm91dGVyQW5pbWF0aW9uPzogQW5pbWF0aW9uQnVpbGRlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxvY2F0aW9uU3RyYXRlZ3k6IExvY2F0aW9uU3RyYXRlZ3ksXG4gICAgcHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyTGluaz86IFJvdXRlckxpbmtcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVGFyZ2V0VXJsQW5kSHJlZigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVUYXJnZXRVcmxBbmRIcmVmKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVRhcmdldFVybEFuZEhyZWYoKSB7XG4gICAgaWYgKHRoaXMucm91dGVyTGluaz8udXJsVHJlZSkge1xuICAgICAgY29uc3QgaHJlZiA9IHRoaXMubG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMucm91dGVyTGluay51cmxUcmVlKSk7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ocmVmID0gaHJlZjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXY6IFVJRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwuc2V0RGlyZWN0aW9uKHRoaXMucm91dGVyRGlyZWN0aW9uLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGhpcy5yb3V0ZXJBbmltYXRpb24pO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBwcmV2ZW50cyB0aGUgYnJvd3NlciBmcm9tXG4gICAgICogcGVyZm9ybWluZyBhIHBhZ2UgcmVsb2FkIHdoZW4gcHJlc3NpbmdcbiAgICAgKiBhbiBJb25pYyBjb21wb25lbnQgd2l0aCByb3V0ZXJMaW5rLlxuICAgICAqIFRoZSBwYWdlIHJlbG9hZCBpbnRlcmZlcmVzIHdpdGggcm91dGluZ1xuICAgICAqIGFuZCBjYXVzZXMgaW9uLWJhY2stYnV0dG9uIHRvIGRpc2FwcGVhclxuICAgICAqIHNpbmNlIHRoZSBsb2NhbCBoaXN0b3J5IGlzIHdpcGVkIG9uIHJlbG9hZC5cbiAgICAgKi9cbiAgICBldi5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2Fbcm91dGVyTGlua10sYXJlYVtyb3V0ZXJMaW5rXScsXG59KVxuZXhwb3J0IGNsYXNzIFJvdXRlckxpbmtXaXRoSHJlZkRlbGVnYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKVxuICByb3V0ZXJEaXJlY3Rpb246IFJvdXRlckRpcmVjdGlvbiA9ICdmb3J3YXJkJztcblxuICBASW5wdXQoKVxuICByb3V0ZXJBbmltYXRpb24/OiBBbmltYXRpb25CdWlsZGVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbG9jYXRpb25TdHJhdGVneTogTG9jYXRpb25TdHJhdGVneSxcbiAgICBwcml2YXRlIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZXJMaW5rPzogUm91dGVyTGlua1xuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVUYXJnZXRVcmxBbmRIcmVmKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVRhcmdldFVybEFuZEhyZWYoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFyZ2V0VXJsQW5kSHJlZigpIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJMaW5rPy51cmxUcmVlKSB7XG4gICAgICBjb25zdCBocmVmID0gdGhpcy5sb2NhdGlvblN0cmF0ZWd5LnByZXBhcmVFeHRlcm5hbFVybCh0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXJMaW5rLnVybFRyZWUpKTtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmhyZWYgPSBocmVmO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLm5hdkN0cmwuc2V0RGlyZWN0aW9uKHRoaXMucm91dGVyRGlyZWN0aW9uLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGhpcy5yb3V0ZXJBbmltYXRpb24pO1xuICB9XG59XG4iXX0=