@ionic/angular 8.0.0-dev.11709632212.139b6f63 → 8.0.0-dev.11711035263.183d2423

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 (236) hide show
  1. package/common/directives/control-value-accessors/value-accessor.d.ts +1 -1
  2. package/common/directives/navigation/back-button.d.ts +1 -4
  3. package/common/directives/navigation/nav.d.ts +10 -2
  4. package/common/directives/navigation/router-link-delegate.d.ts +2 -2
  5. package/common/directives/navigation/router-outlet.d.ts +6 -6
  6. package/common/directives/navigation/tabs.d.ts +5 -5
  7. package/common/overlays/modal.d.ts +1 -1
  8. package/common/overlays/popover.d.ts +1 -1
  9. package/common/providers/dom-controller.d.ts +1 -1
  10. package/css/palettes/dark.always.css.map +1 -0
  11. package/css/{themes → palettes}/dark.class.css +4 -4
  12. package/css/palettes/dark.class.css.map +1 -0
  13. package/css/palettes/dark.system.css.map +1 -0
  14. package/css/palettes/high-contrast-dark.always.css.map +1 -0
  15. package/css/{themes → palettes}/high-contrast-dark.class.css +10 -10
  16. package/css/palettes/high-contrast-dark.class.css.map +1 -0
  17. package/css/palettes/high-contrast-dark.system.css.map +1 -0
  18. package/css/palettes/high-contrast.always.css.map +1 -0
  19. package/css/{themes → palettes}/high-contrast.class.css +31 -31
  20. package/css/palettes/high-contrast.class.css.map +1 -0
  21. package/css/palettes/high-contrast.system.css.map +1 -0
  22. package/directives/control-value-accessors/boolean-value-accessor.d.ts +1 -1
  23. package/directives/control-value-accessors/numeric-value-accessor.d.ts +1 -1
  24. package/directives/control-value-accessors/select-value-accessor.d.ts +1 -1
  25. package/directives/control-value-accessors/text-value-accessor.d.ts +1 -1
  26. package/directives/navigation/ion-back-button.d.ts +1 -1
  27. package/directives/navigation/ion-nav.d.ts +1 -1
  28. package/directives/navigation/ion-router-outlet.d.ts +3 -3
  29. package/directives/navigation/ion-tabs.d.ts +1 -1
  30. package/directives/navigation/router-link-delegate.d.ts +2 -2
  31. package/directives/overlays/modal.d.ts +1 -1
  32. package/directives/overlays/popover.d.ts +1 -1
  33. package/directives/proxies-list.d.ts +1 -1
  34. package/directives/proxies.d.ts +89 -80
  35. package/directives/validators/max-validator.d.ts +1 -1
  36. package/directives/validators/min-validator.d.ts +1 -1
  37. package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +145 -0
  38. package/esm2022/common/directives/navigation/back-button.mjs +61 -0
  39. package/esm2022/common/directives/navigation/nav-params.mjs +46 -0
  40. package/esm2022/common/directives/navigation/nav.mjs +49 -0
  41. package/esm2022/common/directives/navigation/router-link-delegate.mjs +123 -0
  42. package/esm2022/common/directives/navigation/router-outlet.mjs +480 -0
  43. package/esm2022/common/directives/navigation/stack-controller.mjs +280 -0
  44. package/esm2022/common/directives/navigation/tabs.mjs +174 -0
  45. package/esm2022/common/overlays/modal.mjs +91 -0
  46. package/esm2022/common/overlays/popover.mjs +83 -0
  47. package/esm2022/common/providers/angular-delegate.mjs +155 -0
  48. package/{esm2020 → esm2022}/common/providers/config.mjs +4 -4
  49. package/{esm2020 → esm2022}/common/providers/dom-controller.mjs +4 -4
  50. package/esm2022/common/providers/menu-controller.mjs +114 -0
  51. package/esm2022/common/providers/nav-controller.mjs +227 -0
  52. package/esm2022/common/providers/platform.mjs +257 -0
  53. package/esm2022/common/utils/overlay.mjs +26 -0
  54. package/esm2022/directives/control-value-accessors/boolean-value-accessor.mjs +41 -0
  55. package/esm2022/directives/control-value-accessors/numeric-value-accessor.mjs +49 -0
  56. package/esm2022/directives/control-value-accessors/select-value-accessor.mjs +38 -0
  57. package/esm2022/directives/control-value-accessors/text-value-accessor.mjs +37 -0
  58. package/{esm2020 → esm2022}/directives/navigation/ion-back-button.mjs +4 -4
  59. package/{esm2020 → esm2022}/directives/navigation/ion-nav.mjs +4 -4
  60. package/esm2022/directives/navigation/ion-router-outlet.mjs +52 -0
  61. package/esm2022/directives/navigation/ion-tabs.mjs +50 -0
  62. package/{esm2020 → esm2022}/directives/navigation/router-link-delegate.mjs +7 -7
  63. package/{esm2020 → esm2022}/directives/overlays/modal.mjs +5 -5
  64. package/{esm2020 → esm2022}/directives/overlays/popover.mjs +4 -4
  65. package/esm2022/directives/proxies-list.mjs +85 -0
  66. package/esm2022/directives/proxies.mjs +2234 -0
  67. package/{esm2020 → esm2022}/directives/validators/max-validator.mjs +4 -4
  68. package/{esm2020 → esm2022}/directives/validators/min-validator.mjs +4 -4
  69. package/{esm2020 → esm2022}/ionic-module.mjs +41 -41
  70. package/{esm2020 → esm2022}/providers/action-sheet-controller.mjs +4 -4
  71. package/{esm2020 → esm2022}/providers/alert-controller.mjs +4 -4
  72. package/{esm2020 → esm2022}/providers/animation-controller.mjs +4 -4
  73. package/esm2022/providers/gesture-controller.mjs +32 -0
  74. package/{esm2020 → esm2022}/providers/loading-controller.mjs +4 -4
  75. package/{esm2020 → esm2022}/providers/menu-controller.mjs +4 -4
  76. package/esm2022/providers/modal-controller.mjs +24 -0
  77. package/{esm2020 → esm2022}/providers/picker-controller.mjs +4 -4
  78. package/esm2022/providers/popover-controller.mjs +18 -0
  79. package/{esm2020 → esm2022}/providers/toast-controller.mjs +4 -4
  80. package/esm2022/standalone/directives/checkbox.mjs +74 -0
  81. package/esm2022/standalone/directives/datetime.mjs +93 -0
  82. package/esm2022/standalone/directives/icon.mjs +35 -0
  83. package/esm2022/standalone/directives/input.mjs +113 -0
  84. package/esm2022/standalone/directives/proxies.mjs +2138 -0
  85. package/esm2022/standalone/directives/radio-group.mjs +60 -0
  86. package/esm2022/standalone/directives/range.mjs +78 -0
  87. package/esm2022/standalone/directives/searchbar.mjs +82 -0
  88. package/esm2022/standalone/directives/segment.mjs +60 -0
  89. package/esm2022/standalone/directives/select.mjs +82 -0
  90. package/esm2022/standalone/directives/textarea.mjs +91 -0
  91. package/esm2022/standalone/directives/toggle.mjs +74 -0
  92. package/esm2022/standalone/navigation/back-button.mjs +32 -0
  93. package/esm2022/standalone/navigation/nav.mjs +28 -0
  94. package/{esm2020 → esm2022}/standalone/navigation/router-link-delegate.mjs +7 -7
  95. package/esm2022/standalone/navigation/router-outlet.mjs +60 -0
  96. package/esm2022/standalone/navigation/tabs.mjs +49 -0
  97. package/esm2022/standalone/overlays/modal.mjs +32 -0
  98. package/{esm2020 → esm2022}/standalone/overlays/popover.mjs +4 -4
  99. package/{esm2020 → esm2022}/standalone/providers/action-sheet-controller.mjs +4 -4
  100. package/{esm2020 → esm2022}/standalone/providers/alert-controller.mjs +4 -4
  101. package/{esm2020 → esm2022}/standalone/providers/animation-controller.mjs +4 -4
  102. package/esm2022/standalone/providers/gesture-controller.mjs +32 -0
  103. package/esm2022/standalone/providers/ionic-angular.mjs +38 -0
  104. package/{esm2020 → esm2022}/standalone/providers/loading-controller.mjs +4 -4
  105. package/{esm2020 → esm2022}/standalone/providers/menu-controller.mjs +4 -4
  106. package/esm2022/standalone/providers/modal-controller.mjs +26 -0
  107. package/{esm2020 → esm2022}/standalone/providers/picker-controller.mjs +4 -4
  108. package/esm2022/standalone/providers/popover-controller.mjs +20 -0
  109. package/{esm2020 → esm2022}/standalone/providers/toast-controller.mjs +4 -4
  110. package/{fesm2020 → fesm2022}/ionic-angular-common.mjs +221 -156
  111. package/fesm2022/ionic-angular-common.mjs.map +1 -0
  112. package/{fesm2020 → fesm2022}/ionic-angular-standalone.mjs +616 -418
  113. package/fesm2022/ionic-angular-standalone.mjs.map +1 -0
  114. package/{fesm2020 → fesm2022}/ionic-angular.mjs +593 -391
  115. package/fesm2022/ionic-angular.mjs.map +1 -0
  116. package/ionic-module.d.ts +1 -1
  117. package/package.json +16 -26
  118. package/schematics/add/files/root/theme/variables.css +10 -247
  119. package/schematics/utils/config.js +0 -1
  120. package/standalone/directives/checkbox.d.ts +1 -1
  121. package/standalone/directives/datetime.d.ts +1 -1
  122. package/standalone/directives/icon.d.ts +1 -1
  123. package/standalone/directives/input.d.ts +1 -1
  124. package/standalone/directives/proxies.d.ts +78 -69
  125. package/standalone/directives/radio-group.d.ts +1 -1
  126. package/standalone/directives/range.d.ts +1 -1
  127. package/standalone/directives/searchbar.d.ts +1 -1
  128. package/standalone/directives/segment.d.ts +1 -1
  129. package/standalone/directives/select.d.ts +1 -1
  130. package/standalone/directives/textarea.d.ts +1 -1
  131. package/standalone/directives/toggle.d.ts +1 -1
  132. package/standalone/navigation/back-button.d.ts +1 -1
  133. package/standalone/navigation/nav.d.ts +1 -1
  134. package/standalone/navigation/router-link-delegate.d.ts +2 -2
  135. package/standalone/navigation/router-outlet.d.ts +3 -3
  136. package/standalone/navigation/tabs.d.ts +1 -1
  137. package/standalone/overlays/modal.d.ts +1 -1
  138. package/standalone/overlays/popover.d.ts +1 -1
  139. package/standalone/providers/ionic-angular.d.ts +2 -2
  140. package/css/themes/dark.always.css.map +0 -1
  141. package/css/themes/dark.class.css.map +0 -1
  142. package/css/themes/dark.system.css.map +0 -1
  143. package/css/themes/high-contrast-dark.always.css.map +0 -1
  144. package/css/themes/high-contrast-dark.class.css.map +0 -1
  145. package/css/themes/high-contrast-dark.system.css.map +0 -1
  146. package/css/themes/high-contrast.always.css.map +0 -1
  147. package/css/themes/high-contrast.class.css.map +0 -1
  148. package/css/themes/high-contrast.system.css.map +0 -1
  149. package/esm2020/common/directives/control-value-accessors/value-accessor.mjs +0 -141
  150. package/esm2020/common/directives/navigation/back-button.mjs +0 -59
  151. package/esm2020/common/directives/navigation/nav-params.mjs +0 -45
  152. package/esm2020/common/directives/navigation/nav.mjs +0 -47
  153. package/esm2020/common/directives/navigation/router-link-delegate.mjs +0 -111
  154. package/esm2020/common/directives/navigation/router-outlet.mjs +0 -470
  155. package/esm2020/common/directives/navigation/stack-controller.mjs +0 -272
  156. package/esm2020/common/directives/navigation/tabs.mjs +0 -172
  157. package/esm2020/common/overlays/modal.mjs +0 -87
  158. package/esm2020/common/overlays/popover.mjs +0 -79
  159. package/esm2020/common/providers/angular-delegate.mjs +0 -152
  160. package/esm2020/common/providers/menu-controller.mjs +0 -113
  161. package/esm2020/common/providers/nav-controller.mjs +0 -221
  162. package/esm2020/common/providers/platform.mjs +0 -254
  163. package/esm2020/common/utils/overlay.mjs +0 -25
  164. package/esm2020/directives/control-value-accessors/boolean-value-accessor.mjs +0 -41
  165. package/esm2020/directives/control-value-accessors/numeric-value-accessor.mjs +0 -48
  166. package/esm2020/directives/control-value-accessors/select-value-accessor.mjs +0 -38
  167. package/esm2020/directives/control-value-accessors/text-value-accessor.mjs +0 -37
  168. package/esm2020/directives/navigation/ion-router-outlet.mjs +0 -43
  169. package/esm2020/directives/navigation/ion-tabs.mjs +0 -47
  170. package/esm2020/directives/proxies-list.mjs +0 -84
  171. package/esm2020/directives/proxies.mjs +0 -2047
  172. package/esm2020/providers/gesture-controller.mjs +0 -31
  173. package/esm2020/providers/modal-controller.mjs +0 -24
  174. package/esm2020/providers/popover-controller.mjs +0 -18
  175. package/esm2020/standalone/directives/checkbox.mjs +0 -72
  176. package/esm2020/standalone/directives/datetime.mjs +0 -91
  177. package/esm2020/standalone/directives/icon.mjs +0 -33
  178. package/esm2020/standalone/directives/input.mjs +0 -111
  179. package/esm2020/standalone/directives/proxies.mjs +0 -1970
  180. package/esm2020/standalone/directives/radio-group.mjs +0 -58
  181. package/esm2020/standalone/directives/range.mjs +0 -76
  182. package/esm2020/standalone/directives/searchbar.mjs +0 -80
  183. package/esm2020/standalone/directives/segment.mjs +0 -58
  184. package/esm2020/standalone/directives/select.mjs +0 -80
  185. package/esm2020/standalone/directives/textarea.mjs +0 -89
  186. package/esm2020/standalone/directives/toggle.mjs +0 -72
  187. package/esm2020/standalone/navigation/back-button.mjs +0 -32
  188. package/esm2020/standalone/navigation/nav.mjs +0 -28
  189. package/esm2020/standalone/navigation/router-outlet.mjs +0 -51
  190. package/esm2020/standalone/navigation/tabs.mjs +0 -46
  191. package/esm2020/standalone/overlays/modal.mjs +0 -32
  192. package/esm2020/standalone/providers/gesture-controller.mjs +0 -31
  193. package/esm2020/standalone/providers/ionic-angular.mjs +0 -43
  194. package/esm2020/standalone/providers/modal-controller.mjs +0 -26
  195. package/esm2020/standalone/providers/popover-controller.mjs +0 -20
  196. package/fesm2015/ionic-angular-common.mjs +0 -2484
  197. package/fesm2015/ionic-angular-common.mjs.map +0 -1
  198. package/fesm2015/ionic-angular-standalone.mjs +0 -3146
  199. package/fesm2015/ionic-angular-standalone.mjs.map +0 -1
  200. package/fesm2015/ionic-angular.mjs +0 -2790
  201. package/fesm2015/ionic-angular.mjs.map +0 -1
  202. package/fesm2020/ionic-angular-common.mjs.map +0 -1
  203. package/fesm2020/ionic-angular-standalone.mjs.map +0 -1
  204. package/fesm2020/ionic-angular.mjs.map +0 -1
  205. package/test/README.md +0 -118
  206. package/css/{themes → palettes}/dark.always.css +0 -0
  207. package/css/{themes → palettes}/dark.css +0 -0
  208. package/css/{themes → palettes}/dark.css.map +0 -0
  209. package/css/{themes → palettes}/dark.system.css +0 -0
  210. package/css/{themes → palettes}/high-contrast-dark.always.css +1 -1
  211. package/css/{themes → palettes}/high-contrast-dark.css +0 -0
  212. package/css/{themes → palettes}/high-contrast-dark.css.map +0 -0
  213. package/css/{themes → palettes}/high-contrast-dark.system.css +1 -1
  214. package/css/{themes → palettes}/high-contrast.always.css +25 -25
  215. package/css/{themes → palettes}/high-contrast.css +0 -0
  216. package/css/{themes → palettes}/high-contrast.css.map +0 -0
  217. package/css/{themes → palettes}/high-contrast.system.css +25 -25
  218. /package/{esm2020 → esm2022}/app-initialize.mjs +0 -0
  219. /package/{esm2020 → esm2022}/common/directives/control-value-accessors/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/common/directives/navigation/stack-utils.mjs +0 -0
  221. /package/{esm2020 → esm2022}/common/index.mjs +0 -0
  222. /package/{esm2020 → esm2022}/common/ionic-angular-common.mjs +0 -0
  223. /package/{esm2020 → esm2022}/common/types/interfaces.mjs +0 -0
  224. /package/{esm2020 → esm2022}/common/types/ionic-lifecycle-hooks.mjs +0 -0
  225. /package/{esm2020 → esm2022}/common/utils/proxy.mjs +0 -0
  226. /package/{esm2020 → esm2022}/common/utils/routing.mjs +0 -0
  227. /package/{esm2020 → esm2022}/common/utils/util.mjs +0 -0
  228. /package/{esm2020 → esm2022}/directives/angular-component-lib/utils.mjs +0 -0
  229. /package/{esm2020 → esm2022}/directives/control-value-accessors/index.mjs +0 -0
  230. /package/{esm2020 → esm2022}/directives/validators/index.mjs +0 -0
  231. /package/{esm2020 → esm2022}/index.mjs +0 -0
  232. /package/{esm2020 → esm2022}/ionic-angular.mjs +0 -0
  233. /package/{esm2020 → esm2022}/standalone/directives/angular-component-lib/utils.mjs +0 -0
  234. /package/{esm2020 → esm2022}/standalone/directives/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/standalone/index.mjs +0 -0
  236. /package/{esm2020 → esm2022}/standalone/ionic-angular-standalone.mjs +0 -0
@@ -0,0 +1,227 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { NavigationStart } from '@angular/router';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./platform";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/router";
7
+ export class NavController {
8
+ location;
9
+ serializer;
10
+ router;
11
+ topOutlet;
12
+ direction = DEFAULT_DIRECTION;
13
+ animated = DEFAULT_ANIMATED;
14
+ animationBuilder;
15
+ guessDirection = 'forward';
16
+ guessAnimation;
17
+ lastNavId = -1;
18
+ constructor(platform, location, serializer, router) {
19
+ this.location = location;
20
+ this.serializer = serializer;
21
+ this.router = router;
22
+ // Subscribe to router events to detect direction
23
+ if (router) {
24
+ router.events.subscribe((ev) => {
25
+ if (ev instanceof NavigationStart) {
26
+ // restoredState is set if the browser back/forward button is used
27
+ const id = ev.restoredState ? ev.restoredState.navigationId : ev.id;
28
+ this.guessDirection = this.guessAnimation = id < this.lastNavId ? 'back' : 'forward';
29
+ this.lastNavId = this.guessDirection === 'forward' ? ev.id : id;
30
+ }
31
+ });
32
+ }
33
+ // Subscribe to backButton events
34
+ platform.backButton.subscribeWithPriority(0, (processNextHandler) => {
35
+ this.pop();
36
+ processNextHandler();
37
+ });
38
+ }
39
+ /**
40
+ * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,
41
+ * it's equivalent to calling `this.router.navigateByUrl()`, but it's explicit about the **direction** of the transition.
42
+ *
43
+ * Going **forward** means that a new page is going to be pushed to the stack of the outlet (ion-router-outlet),
44
+ * and that it will show a "forward" animation by default.
45
+ *
46
+ * Navigating forward can also be triggered in a declarative manner by using the `[routerDirection]` directive:
47
+ *
48
+ * ```html
49
+ * <a routerLink="/path/to/page" routerDirection="forward">Link</a>
50
+ * ```
51
+ */
52
+ navigateForward(url, options = {}) {
53
+ this.setDirection('forward', options.animated, options.animationDirection, options.animation);
54
+ return this.navigate(url, options);
55
+ }
56
+ /**
57
+ * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,
58
+ * it's equivalent to calling:
59
+ *
60
+ * ```ts
61
+ * this.navController.setDirection('back');
62
+ * this.router.navigateByUrl(path);
63
+ * ```
64
+ *
65
+ * Going **back** means that all the pages in the stack until the navigated page is found will be popped,
66
+ * and that it will show a "back" animation by default.
67
+ *
68
+ * Navigating back can also be triggered in a declarative manner by using the `[routerDirection]` directive:
69
+ *
70
+ * ```html
71
+ * <a routerLink="/path/to/page" routerDirection="back">Link</a>
72
+ * ```
73
+ */
74
+ navigateBack(url, options = {}) {
75
+ this.setDirection('back', options.animated, options.animationDirection, options.animation);
76
+ return this.navigate(url, options);
77
+ }
78
+ /**
79
+ * This method uses Angular's [Router](https://angular.io/api/router/Router) under the hood,
80
+ * it's equivalent to calling:
81
+ *
82
+ * ```ts
83
+ * this.navController.setDirection('root');
84
+ * this.router.navigateByUrl(path);
85
+ * ```
86
+ *
87
+ * Going **root** means that all existing pages in the stack will be removed,
88
+ * and the navigated page will become the single page in the stack.
89
+ *
90
+ * Navigating root can also be triggered in a declarative manner by using the `[routerDirection]` directive:
91
+ *
92
+ * ```html
93
+ * <a routerLink="/path/to/page" routerDirection="root">Link</a>
94
+ * ```
95
+ */
96
+ navigateRoot(url, options = {}) {
97
+ this.setDirection('root', options.animated, options.animationDirection, options.animation);
98
+ return this.navigate(url, options);
99
+ }
100
+ /**
101
+ * Same as [Location](https://angular.io/api/common/Location)'s back() method.
102
+ * It will use the standard `window.history.back()` under the hood, but featuring a `back` animation
103
+ * by default.
104
+ */
105
+ back(options = { animated: true, animationDirection: 'back' }) {
106
+ this.setDirection('back', options.animated, options.animationDirection, options.animation);
107
+ return this.location.back();
108
+ }
109
+ /**
110
+ * This methods goes back in the context of Ionic's stack navigation.
111
+ *
112
+ * It recursively finds the top active `ion-router-outlet` and calls `pop()`.
113
+ * This is the recommended way to go back when you are using `ion-router-outlet`.
114
+ *
115
+ * Resolves to `true` if it was able to pop.
116
+ */
117
+ async pop() {
118
+ let outlet = this.topOutlet;
119
+ while (outlet) {
120
+ if (await outlet.pop()) {
121
+ return true;
122
+ }
123
+ else {
124
+ outlet = outlet.parentOutlet;
125
+ }
126
+ }
127
+ return false;
128
+ }
129
+ /**
130
+ * This methods specifies the direction of the next navigation performed by the Angular router.
131
+ *
132
+ * `setDirection()` does not trigger any transition, it just sets some flags to be consumed by `ion-router-outlet`.
133
+ *
134
+ * It's recommended to use `navigateForward()`, `navigateBack()` and `navigateRoot()` instead of `setDirection()`.
135
+ */
136
+ setDirection(direction, animated, animationDirection, animationBuilder) {
137
+ this.direction = direction;
138
+ this.animated = getAnimation(direction, animated, animationDirection);
139
+ this.animationBuilder = animationBuilder;
140
+ }
141
+ /**
142
+ * @internal
143
+ */
144
+ setTopOutlet(outlet) {
145
+ this.topOutlet = outlet;
146
+ }
147
+ /**
148
+ * @internal
149
+ */
150
+ consumeTransition() {
151
+ let direction = 'root';
152
+ let animation;
153
+ const animationBuilder = this.animationBuilder;
154
+ if (this.direction === 'auto') {
155
+ direction = this.guessDirection;
156
+ animation = this.guessAnimation;
157
+ }
158
+ else {
159
+ animation = this.animated;
160
+ direction = this.direction;
161
+ }
162
+ this.direction = DEFAULT_DIRECTION;
163
+ this.animated = DEFAULT_ANIMATED;
164
+ this.animationBuilder = undefined;
165
+ return {
166
+ direction,
167
+ animation,
168
+ animationBuilder,
169
+ };
170
+ }
171
+ navigate(url, options) {
172
+ if (Array.isArray(url)) {
173
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
174
+ return this.router.navigate(url, options);
175
+ }
176
+ else {
177
+ /**
178
+ * navigateByUrl ignores any properties that
179
+ * would change the url, so things like queryParams
180
+ * would be ignored unless we create a url tree
181
+ * More Info: https://github.com/angular/angular/issues/18798
182
+ */
183
+ const urlTree = this.serializer.parse(url.toString());
184
+ if (options.queryParams !== undefined) {
185
+ urlTree.queryParams = { ...options.queryParams };
186
+ }
187
+ if (options.fragment !== undefined) {
188
+ urlTree.fragment = options.fragment;
189
+ }
190
+ /**
191
+ * `navigateByUrl` will still apply `NavigationExtras` properties
192
+ * that do not modify the url, such as `replaceUrl` which is why
193
+ * `options` is passed in here.
194
+ */
195
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
196
+ return this.router.navigateByUrl(urlTree, options);
197
+ }
198
+ }
199
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavController, deps: [{ token: i1.Platform }, { token: i2.Location }, { token: i3.UrlSerializer }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
200
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavController, providedIn: 'root' });
201
+ }
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavController, decorators: [{
203
+ type: Injectable,
204
+ args: [{
205
+ providedIn: 'root',
206
+ }]
207
+ }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i2.Location }, { type: i3.UrlSerializer }, { type: i3.Router, decorators: [{
208
+ type: Optional
209
+ }] }]; } });
210
+ const getAnimation = (direction, animated, animationDirection) => {
211
+ if (animated === false) {
212
+ return undefined;
213
+ }
214
+ if (animationDirection !== undefined) {
215
+ return animationDirection;
216
+ }
217
+ if (direction === 'forward' || direction === 'back') {
218
+ return direction;
219
+ }
220
+ else if (direction === 'root' && animated === true) {
221
+ return 'forward';
222
+ }
223
+ return undefined;
224
+ };
225
+ const DEFAULT_DIRECTION = 'auto';
226
+ const DEFAULT_ANIMATED = undefined;
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21tb24vc3JjL3Byb3ZpZGVycy9uYXYtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQW9ELGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQWtCcEcsTUFBTSxPQUFPLGFBQWE7SUFXZDtJQUNBO0lBQ1k7SUFaZCxTQUFTLENBQW1CO0lBQzVCLFNBQVMsR0FBeUMsaUJBQWlCLENBQUM7SUFDcEUsUUFBUSxHQUFrQixnQkFBZ0IsQ0FBQztJQUMzQyxnQkFBZ0IsQ0FBb0I7SUFDcEMsY0FBYyxHQUFvQixTQUFTLENBQUM7SUFDNUMsY0FBYyxDQUFnQjtJQUM5QixTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFdkIsWUFDRSxRQUFrQixFQUNWLFFBQWtCLEVBQ2xCLFVBQXlCLEVBQ2IsTUFBZTtRQUYzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBRW5DLGlEQUFpRDtRQUNqRCxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQzdCLElBQUksRUFBRSxZQUFZLGVBQWUsRUFBRTtvQkFDakMsa0VBQWtFO29CQUNsRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDcEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENB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QUFDO2FBQ2xEO1lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ3JDO1lBRUQ7Ozs7ZUFJRztZQUNILG9FQUFvRTtZQUNwRSxPQUFPLElBQUksQ0FBQyxNQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNyRDtJQUNILENBQUM7MkhBdE5VLGFBQWE7K0hBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFjSSxRQUFROztBQTRNYixNQUFNLFlBQVksR0FBRyxDQUNuQixTQUEwQixFQUMxQixRQUE2QixFQUM3QixrQkFBa0QsRUFDeEIsRUFBRTtJQUM1QixJQUFJLFFBQVEsS0FBSyxLQUFLLEVBQUU7UUFDdEIsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFDRCxJQUFJLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtRQUNwQyxPQUFPLGtCQUFrQixDQUFDO0tBQzNCO0lBQ0QsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7UUFDbkQsT0FBTyxTQUFTLENBQUM7S0FDbEI7U0FBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtRQUNwRCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBQ2pDLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciwgVXJsU2VyaWFsaXplciwgVXJsVHJlZSwgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB0eXBlIHsgQW5pbWF0aW9uQnVpbGRlciwgTmF2RGlyZWN0aW9uLCBSb3V0ZXJEaXJlY3Rpb24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgSW9uUm91dGVyT3V0bGV0IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3JvdXRlci1vdXRsZXQnO1xuXG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJy4vcGxhdGZvcm0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFuaW1hdGlvbk9wdGlvbnMge1xuICBhbmltYXRlZD86IGJvb2xlYW47XG4gIGFuaW1hdGlvbj86IEFuaW1hdGlvbkJ1aWxkZXI7XG4gIGFuaW1hdGlvbkRpcmVjdGlvbj86ICdmb3J3YXJkJyB8ICdiYWNrJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uT3B0aW9ucyBleHRlbmRzIE5hdmlnYXRpb25FeHRyYXMsIEFuaW1hdGlvbk9wdGlvbnMge31cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdkNvbnRyb2xsZXIge1xuICBwcml2YXRlIHRvcE91dGxldD86IElvblJvdXRlck91dGxldDtcbiAgcHJpdmF0ZSBkaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrJyB8ICdyb290JyB8ICdhdXRvJyA9IERFRkFVTFRfRElSRUNUSU9OO1xuICBwcml2YXRlIGFuaW1hdGVkPzogTmF2RGlyZWN0aW9uID0gREVGQVVMVF9BTklNQVRFRDtcbiAgcHJpdmF0ZSBhbmltYXRpb25CdWlsZGVyPzogQW5pbWF0aW9uQnVpbGRlcjtcbiAgcHJpdmF0ZSBndWVzc0RpcmVjdGlvbjogUm91dGVyRGlyZWN0aW9uID0gJ2ZvcndhcmQnO1xuICBwcml2YXRlIGd1ZXNzQW5pbWF0aW9uPzogTmF2RGlyZWN0aW9uO1xuICBwcml2YXRlIGxhc3ROYXZJZCA9IC0xO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZXI/OiBSb3V0ZXJcbiAgKSB7XG4gICAgLy8gU3Vic2NyaWJlIHRvIHJvdXRlciBldmVudHMgdG8gZGV0ZWN0IGRpcmVjdGlvblxuICAgIGlmIChyb3V0ZXIpIHtcbiAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldikgPT4ge1xuICAgICAgICBpZiAoZXYgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAvLyByZXN0b3JlZFN0YXRlIGlzIHNldCBpZiB0aGUgYnJvd3NlciBiYWNrL2ZvcndhcmQgYnV0dG9uIGlzIHVzZWRcbiAgICAgICAgICBjb25zdCBpZCA9IGV2LnJlc3RvcmVkU3RhdGUgPyBldi5yZXN0b3JlZFN0YXRlLm5hdmlnYXRpb25JZCA6IGV2LmlkO1xuICAgICAgICAgIHRoaXMuZ3Vlc3NEaXJlY3Rpb24gPSB0aGlzLmd1ZXNzQW5pbWF0aW9uID0gaWQgPCB0aGlzLmxhc3ROYXZJZCA/ICdiYWNrJyA6ICdmb3J3YXJkJztcbiAgICAgICAgICB0aGlzLmxhc3ROYXZJZCA9IHRoaXMuZ3Vlc3NEaXJlY3Rpb24gPT09ICdmb3J3YXJkJyA/IGV2LmlkIDogaWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFN1YnNjcmliZSB0byBiYWNrQnV0dG9uIGV2ZW50c1xuICAgIHBsYXRmb3JtLmJhY2tCdXR0b24uc3Vic2NyaWJlV2l0aFByaW9yaXR5KDAsIChwcm9jZXNzTmV4dEhhbmRsZXIpID0+IHtcbiAgICAgIHRoaXMucG9wKCk7XG4gICAgICBwcm9jZXNzTmV4dEhhbmRsZXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB1c2VzIEFuZ3VsYXIncyBbUm91dGVyXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL3JvdXRlci9Sb3V0ZXIpIHVuZGVyIHRoZSBob29kLFxuICAgKiBpdCdzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgpYCwgYnV0IGl0J3MgZXhwbGljaXQgYWJvdXQgdGhlICoqZGlyZWN0aW9uKiogb2YgdGhlIHRyYW5zaXRpb24uXG4gICAqXG4gICAqIEdvaW5nICoqZm9yd2FyZCoqIG1lYW5zIHRoYXQgYSBuZXcgcGFnZSBpcyBnb2luZyB0byBiZSBwdXNoZWQgdG8gdGhlIHN0YWNrIG9mIHRoZSBvdXRsZXQgKGlvbi1yb3V0ZXItb3V0bGV0KSxcbiAgICogYW5kIHRoYXQgaXQgd2lsbCBzaG93IGEgXCJmb3J3YXJkXCIgYW5pbWF0aW9uIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIE5hdmlnYXRpbmcgZm9yd2FyZCBjYW4gYWxzbyBiZSB0cmlnZ2VyZWQgaW4gYSBkZWNsYXJhdGl2ZSBtYW5uZXIgYnkgdXNpbmcgdGhlIGBbcm91dGVyRGlyZWN0aW9uXWAgZGlyZWN0aXZlOlxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxhIHJvdXRlckxpbms9XCIvcGF0aC90by9wYWdlXCIgcm91dGVyRGlyZWN0aW9uPVwiZm9yd2FyZFwiPkxpbms8L2E+XG4gICAqIGBgYFxuICAgKi9cbiAgbmF2aWdhdGVGb3J3YXJkKHVybDogc3RyaW5nIHwgVXJsVHJlZSB8IGFueVtdLCBvcHRpb25zOiBOYXZpZ2F0aW9uT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5zZXREaXJlY3Rpb24oJ2ZvcndhcmQnLCBvcHRpb25zLmFuaW1hdGVkLCBvcHRpb25zLmFuaW1hdGlvbkRpcmVjdGlvbiwgb3B0aW9ucy5hbmltYXRpb24pO1xuICAgIHJldHVybiB0aGlzLm5hdmlnYXRlKHVybCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgdXNlcyBBbmd1bGFyJ3MgW1JvdXRlcl0oaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9yb3V0ZXIvUm91dGVyKSB1bmRlciB0aGUgaG9vZCxcbiAgICogaXQncyBlcXVpdmFsZW50IHRvIGNhbGxpbmc6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHRoaXMubmF2Q29udHJvbGxlci5zZXREaXJlY3Rpb24oJ2JhY2snKTtcbiAgICogdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChwYXRoKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEdvaW5nICoqYmFjayoqIG1lYW5zIHRoYXQgYWxsIHRoZSBwYWdlcyBpbiB0aGUgc3RhY2sgdW50aWwgdGhlIG5hdmlnYXRlZCBwYWdlIGlzIGZvdW5kIHdpbGwgYmUgcG9wcGVkLFxuICAgKiBhbmQgdGhhdCBpdCB3aWxsIHNob3cgYSBcImJhY2tcIiBhbmltYXRpb24gYnkgZGVmYXVsdC5cbiAgICpcbiAgICogTmF2aWdhdGluZyBiYWNrIGNhbiBhbHNvIGJlIHRyaWdnZXJlZCBpbiBhIGRlY2xhcmF0aXZlIG1hbm5lciBieSB1c2luZyB0aGUgYFtyb3V0ZXJEaXJlY3Rpb25dYCBkaXJlY3RpdmU6XG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogPGEgcm91dGVyTGluaz1cIi9wYXRoL3RvL3BhZ2VcIiByb3V0ZXJEaXJlY3Rpb249XCJiYWNrXCI+TGluazwvYT5cbiAgICogYGBgXG4gICAqL1xuICBuYXZpZ2F0ZUJhY2sodXJsOiBzdHJpbmcgfCBVcmxUcmVlIHwgYW55W10sIG9wdGlvbnM6IE5hdmlnYXRpb25PcHRpb25zID0ge30pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLnNldERpcmVjdGlvbignYmFjaycsIG9wdGlvbnMuYW5pbWF0ZWQsIG9wdGlvbnMuYW5pbWF0aW9uRGlyZWN0aW9uLCBvcHRpb25zLmFuaW1hdGlvbik7XG4gICAgcmV0dXJuIHRoaXMubmF2aWdhdGUodXJsLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCB1c2VzIEFuZ3VsYXIncyBbUm91dGVyXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL3JvdXRlci9Sb3V0ZXIpIHVuZGVyIHRoZSBob29kLFxuICAgKiBpdCdzIGVxdWl2YWxlbnQgdG8gY2FsbGluZzpcbiAgICpcbiAgICogYGBgdHNcbiAgICogdGhpcy5uYXZDb250cm9sbGVyLnNldERpcmVjdGlvbigncm9vdCcpO1xuICAgKiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHBhdGgpO1xuICAgKiBgYGBcbiAgICpcbiAgICogR29pbmcgKipyb290KiogbWVhbnMgdGhhdCBhbGwgZXhpc3RpbmcgcGFnZXMgaW4gdGhlIHN0YWNrIHdpbGwgYmUgcmVtb3ZlZCxcbiAgICogYW5kIHRoZSBuYXZpZ2F0ZWQgcGFnZSB3aWxsIGJlY29tZSB0aGUgc2luZ2xlIHBhZ2UgaW4gdGhlIHN0YWNrLlxuICAgKlxuICAgKiBOYXZpZ2F0aW5nIHJvb3QgY2FuIGFsc28gYmUgdHJpZ2dlcmVkIGluIGEgZGVjbGFyYXRpdmUgbWFubmVyIGJ5IHVzaW5nIHRoZSBgW3JvdXRlckRpcmVjdGlvbl1gIGRpcmVjdGl2ZTpcbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8YSByb3V0ZXJMaW5rPVwiL3BhdGgvdG8vcGFnZVwiIHJvdXRlckRpcmVjdGlvbj1cInJvb3RcIj5MaW5rPC9hPlxuICAgKiBgYGBcbiAgICovXG4gIG5hdmlnYXRlUm9vdCh1cmw6IHN0cmluZyB8IFVybFRyZWUgfCBhbnlbXSwgb3B0aW9uczogTmF2aWdhdGlvbk9wdGlvbnMgPSB7fSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuc2V0RGlyZWN0aW9uKCdyb290Jywgb3B0aW9ucy5hbmltYXRlZCwgb3B0aW9ucy5hbmltYXRpb25EaXJlY3Rpb24sIG9wdGlvbnMuYW5pbWF0aW9uKTtcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0ZSh1cmwsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhbWUgYXMgW0xvY2F0aW9uXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvbW1vbi9Mb2NhdGlvbikncyBiYWNrKCkgbWV0aG9kLlxuICAgKiBJdCB3aWxsIHVzZSB0aGUgc3RhbmRhcmQgYHdpbmRvdy5oaXN0b3J5LmJhY2soKWAgdW5kZXIgdGhlIGhvb2QsIGJ1dCBmZWF0dXJpbmcgYSBgYmFja2AgYW5pbWF0aW9uXG4gICAqIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBiYWNrKG9wdGlvbnM6IEFuaW1hdGlvbk9wdGlvbnMgPSB7IGFuaW1hdGVkOiB0cnVlLCBhbmltYXRpb25EaXJlY3Rpb246ICdiYWNrJyB9KTogdm9pZCB7XG4gICAgdGhpcy5zZXREaXJlY3Rpb24oJ2JhY2snLCBvcHRpb25zLmFuaW1hdGVkLCBvcHRpb25zLmFuaW1hdGlvbkRpcmVjdGlvbiwgb3B0aW9ucy5hbmltYXRpb24pO1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZHMgZ29lcyBiYWNrIGluIHRoZSBjb250ZXh0IG9mIElvbmljJ3Mgc3RhY2sgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogSXQgcmVjdXJzaXZlbHkgZmluZHMgdGhlIHRvcCBhY3RpdmUgYGlvbi1yb3V0ZXItb3V0bGV0YCBhbmQgY2FsbHMgYHBvcCgpYC5cbiAgICogVGhpcyBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIGdvIGJhY2sgd2hlbiB5b3UgYXJlIHVzaW5nIGBpb24tcm91dGVyLW91dGxldGAuXG4gICAqXG4gICAqIFJlc29sdmVzIHRvIGB0cnVlYCBpZiBpdCB3YXMgYWJsZSB0byBwb3AuXG4gICAqL1xuICBhc3luYyBwb3AoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbGV0IG91dGxldCA9IHRoaXMudG9wT3V0bGV0O1xuXG4gICAgd2hpbGUgKG91dGxldCkge1xuICAgICAgaWYgKGF3YWl0IG91dGxldC5wb3AoKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dGxldCA9IG91dGxldC5wYXJlbnRPdXRsZXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kcyBzcGVjaWZpZXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgbmV4dCBuYXZpZ2F0aW9uIHBlcmZvcm1lZCBieSB0aGUgQW5ndWxhciByb3V0ZXIuXG4gICAqXG4gICAqIGBzZXREaXJlY3Rpb24oKWAgZG9lcyBub3QgdHJpZ2dlciBhbnkgdHJhbnNpdGlvbiwgaXQganVzdCBzZXRzIHNvbWUgZmxhZ3MgdG8gYmUgY29uc3VtZWQgYnkgYGlvbi1yb3V0ZXItb3V0bGV0YC5cbiAgICpcbiAgICogSXQncyByZWNvbW1lbmRlZCB0byB1c2UgYG5hdmlnYXRlRm9yd2FyZCgpYCwgYG5hdmlnYXRlQmFjaygpYCBhbmQgYG5hdmlnYXRlUm9vdCgpYCBpbnN0ZWFkIG9mIGBzZXREaXJlY3Rpb24oKWAuXG4gICAqL1xuICBzZXREaXJlY3Rpb24oXG4gICAgZGlyZWN0aW9uOiBSb3V0ZXJEaXJlY3Rpb24sXG4gICAgYW5pbWF0ZWQ/OiBib29sZWFuLFxuICAgIGFuaW1hdGlvbkRpcmVjdGlvbj86ICdmb3J3YXJkJyB8ICdiYWNrJyxcbiAgICBhbmltYXRpb25CdWlsZGVyPzogQW5pbWF0aW9uQnVpbGRlclxuICApOiB2b2lkIHtcbiAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICB0aGlzLmFuaW1hdGVkID0gZ2V0QW5pbWF0aW9uKGRpcmVjdGlvbiwgYW5pbWF0ZWQsIGFuaW1hdGlvbkRpcmVjdGlvbik7XG4gICAgdGhpcy5hbmltYXRpb25CdWlsZGVyID0gYW5pbWF0aW9uQnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldFRvcE91dGxldChvdXRsZXQ6IElvblJvdXRlck91dGxldCk6IHZvaWQge1xuICAgIHRoaXMudG9wT3V0bGV0ID0gb3V0bGV0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29uc3VtZVRyYW5zaXRpb24oKToge1xuICAgIGRpcmVjdGlvbjogUm91dGVyRGlyZWN0aW9uO1xuICAgIGFuaW1hdGlvbjogTmF2RGlyZWN0aW9uIHwgdW5kZWZpbmVkO1xuICAgIGFuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIgfCB1bmRlZmluZWQ7XG4gIH0ge1xuICAgIGxldCBkaXJlY3Rpb246IFJvdXRlckRpcmVjdGlvbiA9ICdyb290JztcbiAgICBsZXQgYW5pbWF0aW9uOiBOYXZEaXJlY3Rpb24gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgYW5pbWF0aW9uQnVpbGRlciA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlcjtcblxuICAgIGlmICh0aGlzLmRpcmVjdGlvbiA9PT0gJ2F1dG8nKSB7XG4gICAgICBkaXJlY3Rpb24gPSB0aGlzLmd1ZXNzRGlyZWN0aW9uO1xuICAgICAgYW5pbWF0aW9uID0gdGhpcy5ndWVzc0FuaW1hdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5pbWF0aW9uID0gdGhpcy5hbmltYXRlZDtcbiAgICAgIGRpcmVjdGlvbiA9IHRoaXMuZGlyZWN0aW9uO1xuICAgIH1cbiAgICB0aGlzLmRpcmVjdGlvbiA9IERFRkFVTFRfRElSRUNUSU9OO1xuICAgIHRoaXMuYW5pbWF0ZWQgPSBERUZBVUxUX0FOSU1BVEVEO1xuICAgIHRoaXMuYW5pbWF0aW9uQnVpbGRlciA9IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXJlY3Rpb24sXG4gICAgICBhbmltYXRpb24sXG4gICAgICBhbmltYXRpb25CdWlsZGVyLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlKHVybDogc3RyaW5nIHwgVXJsVHJlZSB8IGFueVtdLCBvcHRpb25zOiBOYXZpZ2F0aW9uT3B0aW9ucykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHVybCkpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIhLm5hdmlnYXRlKHVybCwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qKlxuICAgICAgICogbmF2aWdhdGVCeVVybCBpZ25vcmVzIGFueSBwcm9wZXJ0aWVzIHRoYXRcbiAgICAgICAqIHdvdWxkIGNoYW5nZSB0aGUgdXJsLCBzbyB0aGluZ3MgbGlrZSBxdWVyeVBhcmFtc1xuICAgICAgICogd291bGQgYmUgaWdub3JlZCB1bmxlc3Mgd2UgY3JlYXRlIGEgdXJsIHRyZWVcbiAgICAgICAqIE1vcmUgSW5mbzogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTg3OThcbiAgICAgICAqL1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMuc2VyaWFsaXplci5wYXJzZSh1cmwudG9TdHJpbmcoKSk7XG5cbiAgICAgIGlmIChvcHRpb25zLnF1ZXJ5UGFyYW1zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdXJsVHJlZS5xdWVyeVBhcmFtcyA9IHsgLi4ub3B0aW9ucy5xdWVyeVBhcmFtcyB9O1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucy5mcmFnbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHVybFRyZWUuZnJhZ21lbnQgPSBvcHRpb25zLmZyYWdtZW50O1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIGBuYXZpZ2F0ZUJ5VXJsYCB3aWxsIHN0aWxsIGFwcGx5IGBOYXZpZ2F0aW9uRXh0cmFzYCBwcm9wZXJ0aWVzXG4gICAgICAgKiB0aGF0IGRvIG5vdCBtb2RpZnkgdGhlIHVybCwgc3VjaCBhcyBgcmVwbGFjZVVybGAgd2hpY2ggaXMgd2h5XG4gICAgICAgKiBgb3B0aW9uc2AgaXMgcGFzc2VkIGluIGhlcmUuXG4gICAgICAgKi9cbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIhLm5hdmlnYXRlQnlVcmwodXJsVHJlZSwgb3B0aW9ucyk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IGdldEFuaW1hdGlvbiA9IChcbiAgZGlyZWN0aW9uOiBSb3V0ZXJEaXJlY3Rpb24sXG4gIGFuaW1hdGVkOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBhbmltYXRpb25EaXJlY3Rpb246ICdmb3J3YXJkJyB8ICdiYWNrJyB8IHVuZGVmaW5lZFxuKTogTmF2RGlyZWN0aW9uIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKGFuaW1hdGVkID09PSBmYWxzZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKGFuaW1hdGlvbkRpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGFuaW1hdGlvbkRpcmVjdGlvbjtcbiAgfVxuICBpZiAoZGlyZWN0aW9uID09PSAnZm9yd2FyZCcgfHwgZGlyZWN0aW9uID09PSAnYmFjaycpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uO1xuICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3Jvb3QnICYmIGFuaW1hdGVkID09PSB0cnVlKSB7XG4gICAgcmV0dXJuICdmb3J3YXJkJztcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufTtcblxuY29uc3QgREVGQVVMVF9ESVJFQ1RJT04gPSAnYXV0byc7XG5jb25zdCBERUZBVUxUX0FOSU1BVEVEID0gdW5kZWZpbmVkO1xuIl19
@@ -0,0 +1,257 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Inject, Injectable } from '@angular/core';
3
+ import { getPlatforms, isPlatform } from '@ionic/core/components';
4
+ import { Subject } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class Platform {
7
+ doc;
8
+ _readyPromise;
9
+ win;
10
+ /**
11
+ * @hidden
12
+ */
13
+ backButton = new Subject();
14
+ /**
15
+ * The keyboardDidShow event emits when the
16
+ * on-screen keyboard is presented.
17
+ */
18
+ keyboardDidShow = new Subject();
19
+ /**
20
+ * The keyboardDidHide event emits when the
21
+ * on-screen keyboard is hidden.
22
+ */
23
+ keyboardDidHide = new Subject();
24
+ /**
25
+ * The pause event emits when the native platform puts the application
26
+ * into the background, typically when the user switches to a different
27
+ * application. This event would emit when a Cordova app is put into
28
+ * the background, however, it would not fire on a standard web browser.
29
+ */
30
+ pause = new Subject();
31
+ /**
32
+ * The resume event emits when the native platform pulls the application
33
+ * out from the background. This event would emit when a Cordova app comes
34
+ * out from the background, however, it would not fire on a standard web browser.
35
+ */
36
+ resume = new Subject();
37
+ /**
38
+ * The resize event emits when the browser window has changed dimensions. This
39
+ * could be from a browser window being physically resized, or from a device
40
+ * changing orientation.
41
+ */
42
+ resize = new Subject();
43
+ constructor(doc, zone) {
44
+ this.doc = doc;
45
+ zone.run(() => {
46
+ this.win = doc.defaultView;
47
+ this.backButton.subscribeWithPriority = function (priority, callback) {
48
+ return this.subscribe((ev) => {
49
+ return ev.register(priority, (processNextHandler) => zone.run(() => callback(processNextHandler)));
50
+ });
51
+ };
52
+ proxyEvent(this.pause, doc, 'pause', zone);
53
+ proxyEvent(this.resume, doc, 'resume', zone);
54
+ proxyEvent(this.backButton, doc, 'ionBackButton', zone);
55
+ proxyEvent(this.resize, this.win, 'resize', zone);
56
+ proxyEvent(this.keyboardDidShow, this.win, 'ionKeyboardDidShow', zone);
57
+ proxyEvent(this.keyboardDidHide, this.win, 'ionKeyboardDidHide', zone);
58
+ let readyResolve;
59
+ this._readyPromise = new Promise((res) => {
60
+ readyResolve = res;
61
+ });
62
+ if (this.win?.['cordova']) {
63
+ doc.addEventListener('deviceready', () => {
64
+ readyResolve('cordova');
65
+ }, { once: true });
66
+ }
67
+ else {
68
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
69
+ readyResolve('dom');
70
+ }
71
+ });
72
+ }
73
+ /**
74
+ * @returns returns true/false based on platform.
75
+ * @description
76
+ * Depending on the platform the user is on, `is(platformName)` will
77
+ * return `true` or `false`. Note that the same app can return `true`
78
+ * for more than one platform name. For example, an app running from
79
+ * an iPad would return `true` for the platform names: `mobile`,
80
+ * `ios`, `ipad`, and `tablet`. Additionally, if the app was running
81
+ * from Cordova then `cordova` would be true, and if it was running
82
+ * from a web browser on the iPad then `mobileweb` would be `true`.
83
+ *
84
+ * ```
85
+ * import { Platform } from 'ionic-angular';
86
+ *
87
+ * @Component({...})
88
+ * export MyPage {
89
+ * constructor(public platform: Platform) {
90
+ * if (this.platform.is('ios')) {
91
+ * // This will only print when on iOS
92
+ * console.log('I am an iOS device!');
93
+ * }
94
+ * }
95
+ * }
96
+ * ```
97
+ *
98
+ * | Platform Name | Description |
99
+ * |-----------------|------------------------------------|
100
+ * | android | on a device running Android. |
101
+ * | capacitor | on a device running Capacitor. |
102
+ * | cordova | on a device running Cordova. |
103
+ * | ios | on a device running iOS. |
104
+ * | ipad | on an iPad device. |
105
+ * | iphone | on an iPhone device. |
106
+ * | phablet | on a phablet device. |
107
+ * | tablet | on a tablet device. |
108
+ * | electron | in Electron on a desktop device. |
109
+ * | pwa | as a PWA app. |
110
+ * | mobile | on a mobile device. |
111
+ * | mobileweb | on a mobile device in a browser. |
112
+ * | desktop | on a desktop device. |
113
+ * | hybrid | is a cordova or capacitor app. |
114
+ *
115
+ */
116
+ is(platformName) {
117
+ return isPlatform(this.win, platformName);
118
+ }
119
+ /**
120
+ * @returns the array of platforms
121
+ * @description
122
+ * Depending on what device you are on, `platforms` can return multiple values.
123
+ * Each possible value is a hierarchy of platforms. For example, on an iPhone,
124
+ * it would return `mobile`, `ios`, and `iphone`.
125
+ *
126
+ * ```
127
+ * import { Platform } from 'ionic-angular';
128
+ *
129
+ * @Component({...})
130
+ * export MyPage {
131
+ * constructor(public platform: Platform) {
132
+ * // This will print an array of the current platforms
133
+ * console.log(this.platform.platforms());
134
+ * }
135
+ * }
136
+ * ```
137
+ */
138
+ platforms() {
139
+ return getPlatforms(this.win);
140
+ }
141
+ /**
142
+ * Returns a promise when the platform is ready and native functionality
143
+ * can be called. If the app is running from within a web browser, then
144
+ * the promise will resolve when the DOM is ready. When the app is running
145
+ * from an application engine such as Cordova, then the promise will
146
+ * resolve when Cordova triggers the `deviceready` event.
147
+ *
148
+ * The resolved value is the `readySource`, which states which platform
149
+ * ready was used. For example, when Cordova is ready, the resolved ready
150
+ * source is `cordova`. The default ready source value will be `dom`. The
151
+ * `readySource` is useful if different logic should run depending on the
152
+ * platform the app is running from. For example, only Cordova can execute
153
+ * the status bar plugin, so the web should not run status bar plugin logic.
154
+ *
155
+ * ```
156
+ * import { Component } from '@angular/core';
157
+ * import { Platform } from 'ionic-angular';
158
+ *
159
+ * @Component({...})
160
+ * export MyApp {
161
+ * constructor(public platform: Platform) {
162
+ * this.platform.ready().then((readySource) => {
163
+ * console.log('Platform ready from', readySource);
164
+ * // Platform now ready, execute any required native code
165
+ * });
166
+ * }
167
+ * }
168
+ * ```
169
+ */
170
+ ready() {
171
+ return this._readyPromise;
172
+ }
173
+ /**
174
+ * Returns if this app is using right-to-left language direction or not.
175
+ * We recommend the app's `index.html` file already has the correct `dir`
176
+ * attribute value set, such as `<html dir="ltr">` or `<html dir="rtl">`.
177
+ * [W3C: Structural markup and right-to-left text in HTML](http://www.w3.org/International/questions/qa-html-dir)
178
+ */
179
+ get isRTL() {
180
+ return this.doc.dir === 'rtl';
181
+ }
182
+ /**
183
+ * Get the query string parameter
184
+ */
185
+ getQueryParam(key) {
186
+ return readQueryParam(this.win.location.href, key);
187
+ }
188
+ /**
189
+ * Returns `true` if the app is in landscape mode.
190
+ */
191
+ isLandscape() {
192
+ return !this.isPortrait();
193
+ }
194
+ /**
195
+ * Returns `true` if the app is in portrait mode.
196
+ */
197
+ isPortrait() {
198
+ return this.win.matchMedia?.('(orientation: portrait)').matches;
199
+ }
200
+ testUserAgent(expression) {
201
+ const nav = this.win.navigator;
202
+ return !!(nav?.userAgent && nav.userAgent.indexOf(expression) >= 0);
203
+ }
204
+ /**
205
+ * Get the current url.
206
+ */
207
+ url() {
208
+ return this.win.location.href;
209
+ }
210
+ /**
211
+ * Gets the width of the platform's viewport using `window.innerWidth`.
212
+ */
213
+ width() {
214
+ return this.win.innerWidth;
215
+ }
216
+ /**
217
+ * Gets the height of the platform's viewport using `window.innerHeight`.
218
+ */
219
+ height() {
220
+ return this.win.innerHeight;
221
+ }
222
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Platform, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
223
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Platform, providedIn: 'root' });
224
+ }
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Platform, decorators: [{
226
+ type: Injectable,
227
+ args: [{
228
+ providedIn: 'root',
229
+ }]
230
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
231
+ type: Inject,
232
+ args: [DOCUMENT]
233
+ }] }, { type: i0.NgZone }]; } });
234
+ const readQueryParam = (url, key) => {
235
+ key = key.replace(/[[\]\\]/g, '\\$&');
236
+ const regex = new RegExp('[\\?&]' + key + '=([^&#]*)');
237
+ const results = regex.exec(url);
238
+ return results ? decodeURIComponent(results[1].replace(/\+/g, ' ')) : null;
239
+ };
240
+ const proxyEvent = (emitter, el, eventName, zone) => {
241
+ if (el) {
242
+ el.addEventListener(eventName, (ev) => {
243
+ /**
244
+ * `zone.run` is required to make sure that we are running inside the Angular zone
245
+ * at all times. This is necessary since an app that has Capacitor will
246
+ * override the `document.addEventListener` with its own implementation.
247
+ * The override causes the event to no longer be in the Angular zone.
248
+ */
249
+ zone.run(() => {
250
+ // ?? cordova might emit "null" events
251
+ const value = ev != null ? ev.detail : undefined;
252
+ emitter.next(value);
253
+ });
254
+ });
255
+ }
256
+ };
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21tb24vc3JjL3Byb3ZpZGVycy9wbGF0Zm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRSxPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFjN0MsTUFBTSxPQUFPLFFBQVE7SUEyQ21CO0lBMUM5QixhQUFhLENBQWtCO0lBQy9CLEdBQUcsQ0FBTTtJQUVqQjs7T0FFRztJQUNILFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBOEMsQ0FBQztJQUV2RTs7O09BR0c7SUFDSCxlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7SUFFckQ7OztPQUdHO0lBQ0gsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdEM7Ozs7O09BS0c7SUFDSCxLQUFLLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUU1Qjs7OztPQUlHO0lBQ0gsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFN0I7Ozs7T0FJRztJQUNILE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRTdCLFlBQXNDLEdBQVEsRUFBRSxJQUFZO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLFFBQVEsRUFBRSxRQUFRO2dCQUNsRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMs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QUVGLE1BQU0sVUFBVSxHQUFHLENBQUksT0FBbUIsRUFBRSxFQUFlLEVBQUUsU0FBaUIsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUM5RixJQUFJLEVBQUUsRUFBRTtRQUNOLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNwQzs7Ozs7ZUFLRztZQUNILElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNaLHNDQUFzQztnQkFDdEMsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUUsRUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FDSjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nWm9uZSwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRQbGF0Zm9ybXMsIGlzUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgQmFja0J1dHRvbkV2ZW50RGV0YWlsLCBLZXlib2FyZEV2ZW50RGV0YWlsLCBQbGF0Zm9ybXMgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vLyBUT0RPKEZXLTI4MjcpOiB0eXBlc1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhY2tCdXR0b25FbWl0dGVyIGV4dGVuZHMgU3ViamVjdDxCYWNrQnV0dG9uRXZlbnREZXRhaWw+IHtcbiAgc3Vic2NyaWJlV2l0aFByaW9yaXR5KFxuICAgIHByaW9yaXR5OiBudW1iZXIsXG4gICAgY2FsbGJhY2s6IChwcm9jZXNzTmV4dEhhbmRsZXI6ICgpID0+IHZvaWQpID0+IFByb21pc2U8YW55PiB8IHZvaWRcbiAgKTogU3Vic2NyaXB0aW9uO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGxhdGZvcm0ge1xuICBwcml2YXRlIF9yZWFkeVByb21pc2U6IFByb21pc2U8c3RyaW5nPjtcbiAgcHJpdmF0ZSB3aW46IGFueTtcblxuICAvKipcbiAgICogQGhpZGRlblxuICAgKi9cbiAgYmFja0J1dHRvbiA9IG5ldyBTdWJqZWN0PEJhY2tCdXR0b25FdmVudERldGFpbD4oKSBhcyBCYWNrQnV0dG9uRW1pdHRlcjtcblxuICAvKipcbiAgICogVGhlIGtleWJvYXJkRGlkU2hvdyBldmVudCBlbWl0cyB3aGVuIHRoZVxuICAgKiBvbi1zY3JlZW4ga2V5Ym9hcmQgaXMgcHJlc2VudGVkLlxuICAgKi9cbiAga2V5Ym9hcmREaWRTaG93ID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudERldGFpbD4oKTtcblxuICAvKipcbiAgICogVGhlIGtleWJvYXJkRGlkSGlkZSBldmVudCBlbWl0cyB3aGVuIHRoZVxuICAgKiBvbi1zY3JlZW4ga2V5Ym9hcmQgaXMgaGlkZGVuLlxuICAgKi9cbiAga2V5Ym9hcmREaWRIaWRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIHBhdXNlIGV2ZW50IGVtaXRzIHdoZW4gdGhlIG5hdGl2ZSBwbGF0Zm9ybSBwdXRzIHRoZSBhcHBsaWNhdGlvblxuICAgKiBpbnRvIHRoZSBiYWNrZ3JvdW5kLCB0eXBpY2FsbHkgd2hlbiB0aGUgdXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudFxuICAgKiBhcHBsaWNhdGlvbi4gVGhpcyBldmVudCB3b3VsZCBlbWl0IHdoZW4gYSBDb3Jkb3ZhIGFwcCBpcyBwdXQgaW50b1xuICAgKiB0aGUgYmFja2dyb3VuZCwgaG93ZXZlciwgaXQgd291bGQgbm90IGZpcmUgb24gYSBzdGFuZGFyZCB3ZWIgYnJvd3Nlci5cbiAgICovXG4gIHBhdXNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIHJlc3VtZSBldmVudCBlbWl0cyB3aGVuIHRoZSBuYXRpdmUgcGxhdGZvcm0gcHVsbHMgdGhlIGFwcGxpY2F0aW9uXG4gICAqIG91dCBmcm9tIHRoZSBiYWNrZ3JvdW5kLiBUaGlzIGV2ZW50IHdvdWxkIGVtaXQgd2hlbiBhIENvcmRvdmEgYXBwIGNvbWVzXG4gICAqIG91dCBmcm9tIHRoZSBiYWNrZ3JvdW5kLCBob3dldmVyLCBpdCB3b3VsZCBub3QgZmlyZSBvbiBhIHN0YW5kYXJkIHdlYiBicm93c2VyLlxuICAgKi9cbiAgcmVzdW1lID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIHJlc2l6ZSBldmVudCBlbWl0cyB3aGVuIHRoZSBicm93c2VyIHdpbmRvdyBoYXMgY2hhbmdlZCBkaW1lbnNpb25zLiBUaGlzXG4gICAqIGNvdWxkIGJlIGZyb20gYSBicm93c2VyIHdpbmRvdyBiZWluZyBwaHlzaWNhbGx5IHJlc2l6ZWQsIG9yIGZyb20gYSBkZXZpY2VcbiAgICogY2hhbmdpbmcgb3JpZW50YXRpb24uXG4gICAqL1xuICByZXNpemUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnksIHpvbmU6IE5nWm9uZSkge1xuICAgIHpvbmUucnVuKCgpID0+IHtcbiAgICAgIHRoaXMud2luID0gZG9jLmRlZmF1bHRWaWV3O1xuICAgICAgdGhpcy5iYWNrQnV0dG9uLnN1YnNjcmliZVdpdGhQcmlvcml0eSA9IGZ1bmN0aW9uIChwcmlvcml0eSwgY2FsbGJhY2spIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaWJlKChldikgPT4ge1xuICAgICAgICAgIHJldHVybiBldi5yZWdpc3Rlcihwcmlvcml0eSwgKHByb2Nlc3NOZXh0SGFuZGxlcikgPT4gem9uZS5ydW4oKCkgPT4gY2FsbGJhY2socHJvY2Vzc05leHRIYW5kbGVyKSkpO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIHByb3h5RXZlbnQodGhpcy5wYXVzZSwgZG9jLCAncGF1c2UnLCB6b25lKTtcbiAgICAgIHByb3h5RXZlbnQodGhpcy5yZXN1bWUsIGRvYywgJ3Jlc3VtZScsIHpvbmUpO1xuICAgICAgcHJveHlFdmVudCh0aGlzLmJhY2tCdXR0b24sIGRvYywgJ2lvbkJhY2tCdXR0b24nLCB6b25lKTtcbiAgICAgIHByb3h5RXZlbnQodGhpcy5yZXNpemUsIHRoaXMud2luLCAncmVzaXplJywgem9uZSk7XG4gICAgICBwcm94eUV2ZW50KHRoaXMua2V5Ym9hcmREaWRTaG93LCB0aGlzLndpbiwgJ2lvbktleWJvYXJkRGlkU2hvdycsIHpvbmUpO1xuICAgICAgcHJveHlFdmVudCh0aGlzLmtleWJvYXJkRGlkSGlkZSwgdGhpcy53aW4sICdpb25LZXlib2FyZERpZEhpZGUnLCB6b25lKTtcblxuICAgICAgbGV0IHJlYWR5UmVzb2x2ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgICB0aGlzLl9yZWFkeVByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzKSA9PiB7XG4gICAgICAgIHJlYWR5UmVzb2x2ZSA9IHJlcztcbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMud2luPy5bJ2NvcmRvdmEnXSkge1xuICAgICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAnZGV2aWNlcmVhZHknLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHJlYWR5UmVzb2x2ZSgnY29yZG92YScpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgeyBvbmNlOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHJlYWR5UmVzb2x2ZSEoJ2RvbScpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHJldHVybnMgdHJ1ZS9mYWxzZSBiYXNlZCBvbiBwbGF0Zm9ybS5cbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0gdGhlIHVzZXIgaXMgb24sIGBpcyhwbGF0Zm9ybU5hbWUpYCB3aWxsXG4gICAqIHJldHVybiBgdHJ1ZWAgb3IgYGZhbHNlYC4gTm90ZSB0aGF0IHRoZSBzYW1lIGFwcCBjYW4gcmV0dXJuIGB0cnVlYFxuICAgKiBmb3IgbW9yZSB0aGFuIG9uZSBwbGF0Zm9ybSBuYW1lLiBGb3IgZXhhbXBsZSwgYW4gYXBwIHJ1bm5pbmcgZnJvbVxuICAgKiBhbiBpUGFkIHdvdWxkIHJldHVybiBgdHJ1ZWAgZm9yIHRoZSBwbGF0Zm9ybSBuYW1lczogYG1vYmlsZWAsXG4gICAqIGBpb3NgLCBgaXBhZGAsIGFuZCBgdGFibGV0YC4gQWRkaXRpb25hbGx5LCBpZiB0aGUgYXBwIHdhcyBydW5uaW5nXG4gICAqIGZyb20gQ29yZG92YSB0aGVuIGBjb3Jkb3ZhYCB3b3VsZCBiZSB0cnVlLCBhbmQgaWYgaXQgd2FzIHJ1bm5pbmdcbiAgICogZnJvbSBhIHdlYiBicm93c2VyIG9uIHRoZSBpUGFkIHRoZW4gYG1vYmlsZXdlYmAgd291bGQgYmUgYHRydWVgLlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdpb25pYy1hbmd1bGFyJztcbiAgICpcbiAgICogQENvbXBvbmVudCh7Li4ufSlcbiAgICogZXhwb3J0IE15UGFnZSB7XG4gICAqICAgY29uc3RydWN0b3IocHVibGljIHBsYXRmb3JtOiBQbGF0Zm9ybSkge1xuICAgKiAgICAgaWYgKHRoaXMucGxhdGZvcm0uaXMoJ2lvcycpKSB7XG4gICAqICAgICAgIC8vIFRoaXMgd2lsbCBvbmx5IHByaW50IHdoZW4gb24gaU9TXG4gICAqICAgICAgIGNvbnNvbGUubG9nKCdJIGFtIGFuIGlPUyBkZXZpY2UhJyk7XG4gICAqICAgICB9XG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiB8IFBsYXRmb3JtIE5hbWUgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8LS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICAgKiB8IGFuZHJvaWQgICAgICAgICB8IG9uIGEgZGV2aWNlIHJ1bm5pbmcgQW5kcm9pZC4gICAgICAgfFxuICAgKiB8IGNhcGFjaXRvciAgICAgICB8IG9uIGEgZGV2aWNlIHJ1bm5pbmcgQ2FwYWNpdG9yLiAgICAgfFxuICAgKiB8IGNvcmRvdmEgICAgICAgICB8IG9uIGEgZGV2aWNlIHJ1bm5pbmcgQ29yZG92YS4gICAgICAgfFxuICAgKiB8IGlvcyAgICAgICAgICAgICB8IG9uIGEgZGV2aWNlIHJ1bm5pbmcgaU9TLiAgICAgICAgICAgfFxuICAgKiB8IGlwYWQgICAgICAgICAgICB8IG9uIGFuIGlQYWQgZGV2aWNlLiAgICAgICAgICAgICAgICAgfFxuICAgKiB8IGlwaG9uZSAgICAgICAgICB8IG9uIGFuIGlQaG9uZSBkZXZpY2UuICAgICAgICAgICAgICAgfFxuICAgKiB8IHBoYWJsZXQgICAgICAgICB8IG9uIGEgcGhhYmxldCBkZXZpY2UuICAgICAgICAgICAgICAgfFxuICAgKiB8IHRhYmxldCAgICAgICAgICB8IG9uIGEgdGFibGV0IGRldmljZS4gICAgICAgICAgICAgICAgfFxuICAgKiB8IGVsZWN0cm9uICAgICAgICB8IGluIEVsZWN0cm9uIG9uIGEgZGVza3RvcCBkZXZpY2UuICAgfFxuICAgKiB8IHB3YSAgICAgICAgICAgICB8IGFzIGEgUFdBIGFwcC4gICAgICAgICAgICAgICAgICAgICAgfFxuICAgKiB8IG1vYmlsZSAgICAgICAgICB8IG9uIGEgbW9iaWxlIGRldmljZS4gICAgICAgICAgICAgICAgfFxuICAgKiB8IG1vYmlsZXdlYiAgICAgICB8IG9uIGEgbW9iaWxlIGRldmljZSBpbiBhIGJyb3dzZXIuICAgfFxuICAgKiB8IGRlc2t0b3AgICAgICAgICB8IG9uIGEgZGVza3RvcCBkZXZpY2UuICAgICAgICAgICAgICAgfFxuICAgKiB8IGh5YnJpZCAgICAgICAgICB8IGlzIGEgY29yZG92YSBvciBjYXBhY2l0b3IgYXBwLiAgICAgfFxuICAgKlxuICAgKi9cbiAgaXMocGxhdGZvcm1OYW1lOiBQbGF0Zm9ybXMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNQbGF0Zm9ybSh0aGlzLndpbiwgcGxhdGZvcm1OYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0aGUgYXJyYXkgb2YgcGxhdGZvcm1zXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBEZXBlbmRpbmcgb24gd2hhdCBkZXZpY2UgeW91IGFyZSBvbiwgYHBsYXRmb3Jtc2AgY2FuIHJldHVybiBtdWx0aXBsZSB2YWx1ZXMuXG4gICAqIEVhY2ggcG9zc2libGUgdmFsdWUgaXMgYSBoaWVyYXJjaHkgb2YgcGxhdGZvcm1zLiBGb3IgZXhhbXBsZSwgb24gYW4gaVBob25lLFxuICAgKiBpdCB3b3VsZCByZXR1cm4gYG1vYmlsZWAsIGBpb3NgLCBhbmQgYGlwaG9uZWAuXG4gICAqXG4gICAqIGBgYFxuICAgKiBpbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ2lvbmljLWFuZ3VsYXInO1xuICAgKlxuICAgKiBAQ29tcG9uZW50KHsuLi59KVxuICAgKiBleHBvcnQgTXlQYWdlIHtcbiAgICogICBjb25zdHJ1Y3RvcihwdWJsaWMgcGxhdGZvcm06IFBsYXRmb3JtKSB7XG4gICAqICAgICAvLyBUaGlzIHdpbGwgcHJpbnQgYW4gYXJyYXkgb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm1zXG4gICAqICAgICBjb25zb2xlLmxvZyh0aGlzLnBsYXRmb3JtLnBsYXRmb3JtcygpKTtcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBwbGF0Zm9ybXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBnZXRQbGF0Zm9ybXModGhpcy53aW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwcm9taXNlIHdoZW4gdGhlIHBsYXRmb3JtIGlzIHJlYWR5IGFuZCBuYXRpdmUgZnVuY3Rpb25hbGl0eVxuICAgKiBjYW4gYmUgY2FsbGVkLiBJZiB0aGUgYXBwIGlzIHJ1bm5pbmcgZnJvbSB3aXRoaW4gYSB3ZWIgYnJvd3NlciwgdGhlblxuICAgKiB0aGUgcHJvbWlzZSB3aWxsIHJlc29sdmUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5LiBXaGVuIHRoZSBhcHAgaXMgcnVubmluZ1xuICAgKiBmcm9tIGFuIGFwcGxpY2F0aW9uIGVuZ2luZSBzdWNoIGFzIENvcmRvdmEsIHRoZW4gdGhlIHByb21pc2Ugd2lsbFxuICAgKiByZXNvbHZlIHdoZW4gQ29yZG92YSB0cmlnZ2VycyB0aGUgYGRldmljZXJlYWR5YCBldmVudC5cbiAgICpcbiAgICogVGhlIHJlc29sdmVkIHZhbHVlIGlzIHRoZSBgcmVhZHlTb3VyY2VgLCB3aGljaCBzdGF0ZXMgd2hpY2ggcGxhdGZvcm1cbiAgICogcmVhZHkgd2FzIHVzZWQuIEZvciBleGFtcGxlLCB3aGVuIENvcmRvdmEgaXMgcmVhZHksIHRoZSByZXNvbHZlZCByZWFkeVxuICAgKiBzb3VyY2UgaXMgYGNvcmRvdmFgLiBUaGUgZGVmYXVsdCByZWFkeSBzb3VyY2UgdmFsdWUgd2lsbCBiZSBgZG9tYC4gVGhlXG4gICAqIGByZWFkeVNvdXJjZWAgaXMgdXNlZnVsIGlmIGRpZmZlcmVudCBsb2dpYyBzaG91bGQgcnVuIGRlcGVuZGluZyBvbiB0aGVcbiAgICogcGxhdGZvcm0gdGhlIGFwcCBpcyBydW5uaW5nIGZyb20uIEZvciBleGFtcGxlLCBvbmx5IENvcmRvdmEgY2FuIGV4ZWN1dGVcbiAgICogdGhlIHN0YXR1cyBiYXIgcGx1Z2luLCBzbyB0aGUgd2ViIHNob3VsZCBub3QgcnVuIHN0YXR1cyBiYXIgcGx1Z2luIGxvZ2ljLlxuICAgKlxuICAgKiBgYGBcbiAgICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gICAqIGltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnaW9uaWMtYW5ndWxhcic7XG4gICAqXG4gICAqIEBDb21wb25lbnQoey4uLn0pXG4gICAqIGV4cG9ydCBNeUFwcCB7XG4gICAqICAgY29uc3RydWN0b3IocHVibGljIHBsYXRmb3JtOiBQbGF0Zm9ybSkge1xuICAgKiAgICAgdGhpcy5wbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKHJlYWR5U291cmNlKSA9PiB7XG4gICAqICAgICAgIGNvbnNvbGUubG9nKCdQbGF0Zm9ybSByZWFkeSBmcm9tJywgcmVhZHlTb3VyY2UpO1xuICAgKiAgICAgICAvLyBQbGF0Zm9ybSBub3cgcmVhZHksIGV4ZWN1dGUgYW55IHJlcXVpcmVkIG5hdGl2ZSBjb2RlXG4gICAqICAgICB9KTtcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICByZWFkeSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkeVByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpZiB0aGlzIGFwcCBpcyB1c2luZyByaWdodC10by1sZWZ0IGxhbmd1YWdlIGRpcmVjdGlvbiBvciBub3QuXG4gICAqIFdlIHJlY29tbWVuZCB0aGUgYXBwJ3MgYGluZGV4Lmh0bWxgIGZpbGUgYWxyZWFkeSBoYXMgdGhlIGNvcnJlY3QgYGRpcmBcbiAgICogYXR0cmlidXRlIHZhbHVlIHNldCwgc3VjaCBhcyBgPGh0bWwgZGlyPVwibHRyXCI+YCBvciBgPGh0bWwgZGlyPVwicnRsXCI+YC5cbiAgICogW1czQzogU3RydWN0dXJhbCBtYXJrdXAgYW5kIHJpZ2h0LXRvLWxlZnQgdGV4dCBpbiBIVE1MXShodHRwOi8vd3d3LnczLm9yZy9JbnRlcm5hdGlvbmFsL3F1ZXN0aW9ucy9xYS1odG1sLWRpcilcbiAgICovXG4gIGdldCBpc1JUTCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kb2MuZGlyID09PSAncnRsJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJcbiAgICovXG4gIGdldFF1ZXJ5UGFyYW0oa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVhZFF1ZXJ5UGFyYW0odGhpcy53aW4ubG9jYXRpb24uaHJlZiwga2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXBwIGlzIGluIGxhbmRzY2FwZSBtb2RlLlxuICAgKi9cbiAgaXNMYW5kc2NhcGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzUG9ydHJhaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgYXBwIGlzIGluIHBvcnRyYWl0IG1vZGUuXG4gICAqL1xuICBpc1BvcnRyYWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpbi5tYXRjaE1lZGlhPy4oJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJykubWF0Y2hlcztcbiAgfVxuXG4gIHRlc3RVc2VyQWdlbnQoZXhwcmVzc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbmF2ID0gdGhpcy53aW4ubmF2aWdhdG9yO1xuICAgIHJldHVybiAhIShuYXY/LnVzZXJBZ2VudCAmJiBuYXYudXNlckFnZW50LmluZGV4T2YoZXhwcmVzc2lvbikgPj0gMCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHVybC5cbiAgICovXG4gIHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLndpbi5sb2NhdGlvbi5ocmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHdpZHRoIG9mIHRoZSBwbGF0Zm9ybSdzIHZpZXdwb3J0IHVzaW5nIGB3aW5kb3cuaW5uZXJXaWR0aGAuXG4gICAqL1xuICB3aWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndpbi5pbm5lcldpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlaWdodCBvZiB0aGUgcGxhdGZvcm0ncyB2aWV3cG9ydCB1c2luZyBgd2luZG93LmlubmVySGVpZ2h0YC5cbiAgICovXG4gIGhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndpbi5pbm5lckhlaWdodDtcbiAgfVxufVxuXG5jb25zdCByZWFkUXVlcnlQYXJhbSA9ICh1cmw6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcbiAga2V5ID0ga2V5LnJlcGxhY2UoL1tbXFxdXFxcXF0vZywgJ1xcXFwkJicpO1xuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJ1tcXFxcPyZdJyArIGtleSArICc9KFteJiNdKiknKTtcbiAgY29uc3QgcmVzdWx0cyA9IHJlZ2V4LmV4ZWModXJsKTtcbiAgcmV0dXJuIHJlc3VsdHMgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXS5yZXBsYWNlKC9cXCsvZywgJyAnKSkgOiBudWxsO1xufTtcblxuY29uc3QgcHJveHlFdmVudCA9IDxUPihlbWl0dGVyOiBTdWJqZWN0PFQ+LCBlbDogRXZlbnRUYXJnZXQsIGV2ZW50TmFtZTogc3RyaW5nLCB6b25lOiBOZ1pvbmUpID0+IHtcbiAgaWYgKGVsKSB7XG4gICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChldikgPT4ge1xuICAgICAgLyoqXG4gICAgICAgKiBgem9uZS5ydW5gIGlzIHJlcXVpcmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGFyZSBydW5uaW5nIGluc2lkZSB0aGUgQW5ndWxhciB6b25lXG4gICAgICAgKiBhdCBhbGwgdGltZXMuIFRoaXMgaXMgbmVjZXNzYXJ5IHNpbmNlIGFuIGFwcCB0aGF0IGhhcyBDYXBhY2l0b3Igd2lsbFxuICAgICAgICogb3ZlcnJpZGUgdGhlIGBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyYCB3aXRoIGl0cyBvd24gaW1wbGVtZW50YXRpb24uXG4gICAgICAgKiBUaGUgb3ZlcnJpZGUgY2F1c2VzIHRoZSBldmVudCB0byBubyBsb25nZXIgYmUgaW4gdGhlIEFuZ3VsYXIgem9uZS5cbiAgICAgICAqL1xuICAgICAgem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAvLyA/PyBjb3Jkb3ZhIG1pZ2h0IGVtaXQgXCJudWxsXCIgZXZlbnRzXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXYgIT0gbnVsbCA/IChldiBhcyBhbnkpLmRldGFpbCA6IHVuZGVmaW5lZDtcbiAgICAgICAgZW1pdHRlci5uZXh0KHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59O1xuIl19
@@ -0,0 +1,26 @@
1
+ // TODO(FW-2827): types
2
+ export class OverlayBaseController {
3
+ ctrl;
4
+ constructor(ctrl) {
5
+ this.ctrl = ctrl;
6
+ }
7
+ /**
8
+ * Creates a new overlay
9
+ */
10
+ create(opts) {
11
+ return this.ctrl.create((opts || {}));
12
+ }
13
+ /**
14
+ * When `id` is not provided, it dismisses the top overlay.
15
+ */
16
+ dismiss(data, role, id) {
17
+ return this.ctrl.dismiss(data, role, id);
18
+ }
19
+ /**
20
+ * Returns the top overlay.
21
+ */
22
+ getTop() {
23
+ return this.ctrl.getTop();
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvdXRpbHMvb3ZlcmxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFRdkIsTUFBTSxPQUFPLHFCQUFxQjtJQUNaO0lBQXBCLFlBQW9CLElBQW9DO1FBQXBDLFNBQUksR0FBSixJQUFJLENBQWdDO0lBQUcsQ0FBQztJQUU1RDs7T0FFRztJQUNILE1BQU0sQ0FBQyxJQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsSUFBVSxFQUFFLElBQWEsRUFBRSxFQUFXO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE8oRlctMjgyNyk6IHR5cGVzXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbGxlclNoYXBlPE9wdHMsIEhUTUxFbG0+IHtcbiAgY3JlYXRlKG9wdGlvbnM6IE9wdHMpOiBQcm9taXNlPEhUTUxFbG0+O1xuICBkaXNtaXNzKGRhdGE/OiBhbnksIHJvbGU/OiBzdHJpbmcsIGlkPzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgZ2V0VG9wKCk6IFByb21pc2U8SFRNTEVsbSB8IHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBjbGFzcyBPdmVybGF5QmFzZUNvbnRyb2xsZXI8T3B0cywgT3ZlcmxheT4gaW1wbGVtZW50cyBDb250cm9sbGVyU2hhcGU8T3B0cywgT3ZlcmxheT4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN0cmw6IENvbnRyb2xsZXJTaGFwZTxPcHRzLCBPdmVybGF5Pikge31cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBvdmVybGF5XG4gICAqL1xuICBjcmVhdGUob3B0cz86IE9wdHMpOiBQcm9taXNlPE92ZXJsYXk+IHtcbiAgICByZXR1cm4gdGhpcy5jdHJsLmNyZWF0ZSgob3B0cyB8fCB7fSkgYXMgYW55KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGBpZGAgaXMgbm90IHByb3ZpZGVkLCBpdCBkaXNtaXNzZXMgdGhlIHRvcCBvdmVybGF5LlxuICAgKi9cbiAgZGlzbWlzcyhkYXRhPzogYW55LCByb2xlPzogc3RyaW5nLCBpZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmN0cmwuZGlzbWlzcyhkYXRhLCByb2xlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdG9wIG92ZXJsYXkuXG4gICAqL1xuICBnZXRUb3AoKTogUHJvbWlzZTxPdmVybGF5IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuY3RybC5nZXRUb3AoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,41 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { ValueAccessor, setIonicClasses } from '@ionic/angular/common';
4
+ import * as i0 from "@angular/core";
5
+ export class BooleanValueAccessorDirective extends ValueAccessor {
6
+ constructor(injector, el) {
7
+ super(injector, el);
8
+ }
9
+ writeValue(value) {
10
+ this.elementRef.nativeElement.checked = this.lastValue = value;
11
+ setIonicClasses(this.elementRef);
12
+ }
13
+ _handleIonChange(el) {
14
+ this.handleValueChange(el, el.checked);
15
+ }
16
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanValueAccessorDirective, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
17
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: BooleanValueAccessorDirective, selector: "ion-checkbox,ion-toggle", host: { listeners: { "ionChange": "_handleIonChange($event.target)" } }, providers: [
18
+ {
19
+ provide: NG_VALUE_ACCESSOR,
20
+ useExisting: BooleanValueAccessorDirective,
21
+ multi: true,
22
+ },
23
+ ], usesInheritance: true, ngImport: i0 });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BooleanValueAccessorDirective, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: 'ion-checkbox,ion-toggle',
29
+ providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ useExisting: BooleanValueAccessorDirective,
33
+ multi: true,
34
+ },
35
+ ],
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { _handleIonChange: [{
38
+ type: HostListener,
39
+ args: ['ionChange', ['$event.target']]
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi12YWx1ZS1hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kaXJlY3RpdmVzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL2Jvb2xlYW4tdmFsdWUtYWNjZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXdCLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBWXZFLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxhQUFhO0lBQzlELFlBQVksUUFBa0IsRUFBRSxFQUFjO1FBQzVDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUMvRCxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxFQUFpRDtRQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDOzJIQWJVLDZCQUE2QjsrR0FBN0IsNkJBQTZCLDJIQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSw2QkFBNkI7Z0JBQzFDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsNkJBQTZCO2tCQVZ6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLCtCQUErQjs0QkFDMUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7d0hBWUMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbHVlQWNjZXNzb3IsIHNldElvbmljQ2xhc3NlcyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lvbi1jaGVja2JveCxpb24tdG9nZ2xlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogQm9vbGVhblZhbHVlQWNjZXNzb3JEaXJlY3RpdmUsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsIGVsKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgICBzZXRJb25pY0NsYXNzZXModGhpcy5lbGVtZW50UmVmKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lvbkNoYW5nZScsIFsnJGV2ZW50LnRhcmdldCddKVxuICBfaGFuZGxlSW9uQ2hhbmdlKGVsOiBIVE1MSW9uQ2hlY2tib3hFbGVtZW50IHwgSFRNTElvblRvZ2dsZUVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlKGVsLCBlbC5jaGVja2VkKTtcbiAgfVxufVxuIl19