@ionic/angular 8.8.9-dev.11780414486.1df2bd72 → 8.8.9-dev.11780493937.17fe092d

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 (243) hide show
  1. package/app-initialize.d.ts +3 -0
  2. package/common/directives/control-value-accessors/index.d.ts +1 -0
  3. package/common/directives/control-value-accessors/value-accessor.d.ts +36 -0
  4. package/common/directives/navigation/back-button.d.ts +23 -0
  5. package/common/directives/navigation/nav-params.d.ts +45 -0
  6. package/common/directives/navigation/nav.d.ts +21 -0
  7. package/common/directives/navigation/router-link-delegate.d.ts +60 -0
  8. package/common/directives/navigation/router-outlet.d.ts +104 -0
  9. package/common/directives/navigation/stack-controller.d.ts +42 -0
  10. package/common/directives/navigation/stack-utils.d.ts +38 -0
  11. package/common/directives/navigation/tabs.d.ts +83 -0
  12. package/common/index.d.ts +22 -0
  13. package/common/overlays/modal.d.ts +62 -0
  14. package/common/overlays/popover.d.ts +46 -0
  15. package/common/providers/angular-delegate.d.ts +28 -0
  16. package/common/providers/config.d.ts +11 -0
  17. package/common/providers/dom-controller.d.ts +16 -0
  18. package/common/providers/menu-controller.d.ts +78 -0
  19. package/common/providers/nav-controller.d.ts +116 -0
  20. package/common/providers/platform.d.ts +174 -0
  21. package/common/types/interfaces.d.ts +8 -0
  22. package/common/types/ionic-lifecycle-hooks.d.ts +27 -0
  23. package/common/types/overlay-options.d.ts +16 -0
  24. package/common/utils/overlay.d.ts +21 -0
  25. package/common/utils/proxy.d.ts +8 -0
  26. package/common/utils/routing.d.ts +28 -0
  27. package/common/utils/util.d.ts +1 -0
  28. package/css/core.css +1 -1
  29. package/css/core.css.map +1 -1
  30. package/css/display.css +1 -1
  31. package/css/display.css.map +1 -1
  32. package/css/flex-utils.css +1 -1
  33. package/css/flex-utils.css.map +1 -1
  34. package/css/float-elements.css.map +1 -1
  35. package/css/global.bundle.css.map +1 -1
  36. package/css/ionic/bundle.ionic.css +1 -0
  37. package/css/ionic/bundle.ionic.css.map +1 -0
  38. package/css/ionic/core.ionic.css +1 -0
  39. package/css/ionic/core.ionic.css.map +1 -0
  40. package/css/ionic/global.bundle.ionic.css +1 -0
  41. package/css/ionic/global.bundle.ionic.css.map +1 -0
  42. package/css/ionic/ionic-swiper.ionic.css +1 -0
  43. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  44. package/css/ionic/link.ionic.css +1 -0
  45. package/css/ionic/link.ionic.css.map +1 -0
  46. package/css/ionic/structure.ionic.css +1 -0
  47. package/css/ionic/structure.ionic.css.map +1 -0
  48. package/css/ionic/typography.ionic.css +1 -0
  49. package/css/ionic/typography.ionic.css.map +1 -0
  50. package/css/ionic/utils.bundle.ionic.css +1 -0
  51. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  52. package/css/ionic-swiper.css +1 -1
  53. package/css/ionic-swiper.css.map +1 -1
  54. package/css/ionic.bundle.css +1 -1
  55. package/css/ionic.bundle.css.map +1 -1
  56. package/css/normalize.css.map +1 -1
  57. package/css/padding.css.map +1 -1
  58. package/css/palettes/dark.always.css.map +1 -1
  59. package/css/palettes/dark.class.css.map +1 -1
  60. package/css/palettes/dark.system.css.map +1 -1
  61. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  62. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  63. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  64. package/css/palettes/high-contrast.always.css.map +1 -1
  65. package/css/palettes/high-contrast.class.css.map +1 -1
  66. package/css/palettes/high-contrast.system.css.map +1 -1
  67. package/css/structure.css.map +1 -1
  68. package/css/text-alignment.css.map +1 -1
  69. package/css/text-transformation.css.map +1 -1
  70. package/css/typography.css.map +1 -1
  71. package/css/utils.bundle.css +1 -1
  72. package/css/utils.bundle.css.map +1 -1
  73. package/directives/angular-component-lib/utils.d.ts +9 -0
  74. package/directives/control-value-accessors/boolean-value-accessor.d.ts +10 -0
  75. package/directives/control-value-accessors/index.d.ts +4 -0
  76. package/directives/control-value-accessors/numeric-value-accessor.d.ts +11 -0
  77. package/directives/control-value-accessors/select-value-accessor.d.ts +9 -0
  78. package/directives/control-value-accessors/text-value-accessor.d.ts +9 -0
  79. package/directives/navigation/ion-back-button.d.ts +9 -0
  80. package/directives/navigation/ion-nav.d.ts +8 -0
  81. package/directives/navigation/ion-router-outlet.d.ts +25 -0
  82. package/directives/navigation/ion-tabs.d.ts +13 -0
  83. package/directives/navigation/router-link-delegate.d.ts +16 -0
  84. package/directives/overlays/modal.d.ts +6 -0
  85. package/directives/overlays/popover.d.ts +6 -0
  86. package/directives/proxies-list.d.ts +2 -0
  87. package/{types/ionic-angular.d.ts → directives/proxies.d.ts} +408 -642
  88. package/directives/validators/index.d.ts +2 -0
  89. package/directives/validators/max-validator.d.ts +12 -0
  90. package/directives/validators/min-validator.d.ts +12 -0
  91. package/esm2022/app-initialize.mjs +29 -0
  92. package/esm2022/common/directives/control-value-accessors/index.mjs +2 -0
  93. package/esm2022/common/directives/control-value-accessors/value-accessor.mjs +153 -0
  94. package/esm2022/common/directives/navigation/back-button.mjs +61 -0
  95. package/esm2022/common/directives/navigation/nav-params.mjs +47 -0
  96. package/esm2022/common/directives/navigation/nav.mjs +49 -0
  97. package/esm2022/common/directives/navigation/router-link-delegate.mjs +156 -0
  98. package/esm2022/common/directives/navigation/router-outlet.mjs +480 -0
  99. package/esm2022/common/directives/navigation/stack-controller.mjs +280 -0
  100. package/esm2022/common/directives/navigation/stack-utils.mjs +73 -0
  101. package/esm2022/common/directives/navigation/tabs.mjs +279 -0
  102. package/esm2022/common/index.mjs +20 -0
  103. package/esm2022/common/ionic-angular-common.mjs +5 -0
  104. package/esm2022/common/overlays/modal.mjs +103 -0
  105. package/esm2022/common/overlays/popover.mjs +91 -0
  106. package/esm2022/common/providers/angular-delegate.mjs +203 -0
  107. package/esm2022/common/providers/config.mjs +45 -0
  108. package/esm2022/common/providers/dom-controller.mjs +45 -0
  109. package/esm2022/common/providers/menu-controller.mjs +114 -0
  110. package/esm2022/common/providers/nav-controller.mjs +235 -0
  111. package/esm2022/common/providers/platform.mjs +258 -0
  112. package/esm2022/common/types/interfaces.mjs +2 -0
  113. package/esm2022/common/types/ionic-lifecycle-hooks.mjs +5 -0
  114. package/esm2022/common/types/overlay-options.mjs +2 -0
  115. package/esm2022/common/utils/overlay.mjs +26 -0
  116. package/esm2022/common/utils/proxy.mjs +47 -0
  117. package/esm2022/common/utils/routing.mjs +55 -0
  118. package/esm2022/common/utils/util.mjs +10 -0
  119. package/esm2022/directives/angular-component-lib/utils.mjs +59 -0
  120. package/esm2022/directives/control-value-accessors/boolean-value-accessor.mjs +42 -0
  121. package/esm2022/directives/control-value-accessors/index.mjs +5 -0
  122. package/esm2022/directives/control-value-accessors/numeric-value-accessor.mjs +50 -0
  123. package/esm2022/directives/control-value-accessors/select-value-accessor.mjs +39 -0
  124. package/esm2022/directives/control-value-accessors/text-value-accessor.mjs +38 -0
  125. package/esm2022/directives/navigation/ion-back-button.mjs +24 -0
  126. package/esm2022/directives/navigation/ion-nav.mjs +21 -0
  127. package/esm2022/directives/navigation/ion-router-outlet.mjs +52 -0
  128. package/esm2022/directives/navigation/ion-tabs.mjs +59 -0
  129. package/esm2022/directives/navigation/router-link-delegate.mjs +32 -0
  130. package/esm2022/directives/overlays/modal.mjs +22 -0
  131. package/esm2022/directives/overlays/popover.mjs +18 -0
  132. package/esm2022/directives/proxies-list.mjs +92 -0
  133. package/esm2022/directives/proxies.mjs +2438 -0
  134. package/esm2022/directives/validators/index.mjs +3 -0
  135. package/esm2022/directives/validators/max-validator.mjs +27 -0
  136. package/esm2022/directives/validators/min-validator.mjs +27 -0
  137. package/esm2022/index.mjs +32 -0
  138. package/esm2022/ionic-angular.mjs +5 -0
  139. package/esm2022/ionic-module.mjs +111 -0
  140. package/esm2022/providers/action-sheet-controller.mjs +19 -0
  141. package/esm2022/providers/alert-controller.mjs +19 -0
  142. package/esm2022/providers/animation-controller.mjs +38 -0
  143. package/esm2022/providers/gesture-controller.mjs +33 -0
  144. package/esm2022/providers/loading-controller.mjs +19 -0
  145. package/esm2022/providers/menu-controller.mjs +19 -0
  146. package/esm2022/providers/modal-controller.mjs +26 -0
  147. package/esm2022/providers/picker-controller.mjs +22 -0
  148. package/esm2022/providers/popover-controller.mjs +19 -0
  149. package/esm2022/providers/toast-controller.mjs +19 -0
  150. package/esm2022/standalone/directives/angular-component-lib/utils.mjs +59 -0
  151. package/esm2022/standalone/directives/checkbox.mjs +76 -0
  152. package/esm2022/standalone/directives/datetime.mjs +95 -0
  153. package/esm2022/standalone/directives/icon.mjs +35 -0
  154. package/esm2022/standalone/directives/index.mjs +13 -0
  155. package/esm2022/standalone/directives/input-otp.mjs +90 -0
  156. package/esm2022/standalone/directives/input.mjs +113 -0
  157. package/esm2022/standalone/directives/proxies.mjs +2326 -0
  158. package/esm2022/standalone/directives/radio-group.mjs +60 -0
  159. package/esm2022/standalone/directives/range.mjs +78 -0
  160. package/esm2022/standalone/directives/searchbar.mjs +82 -0
  161. package/esm2022/standalone/directives/segment.mjs +60 -0
  162. package/esm2022/standalone/directives/select.mjs +84 -0
  163. package/esm2022/standalone/directives/textarea.mjs +91 -0
  164. package/esm2022/standalone/directives/toggle.mjs +76 -0
  165. package/esm2022/standalone/index.mjs +25 -0
  166. package/esm2022/standalone/ionic-angular-standalone.mjs +5 -0
  167. package/esm2022/standalone/navigation/back-button.mjs +32 -0
  168. package/esm2022/standalone/navigation/nav.mjs +28 -0
  169. package/esm2022/standalone/navigation/router-link-delegate.mjs +28 -0
  170. package/esm2022/standalone/navigation/router-outlet.mjs +60 -0
  171. package/esm2022/standalone/navigation/tabs.mjs +58 -0
  172. package/esm2022/standalone/overlays/modal.mjs +32 -0
  173. package/esm2022/standalone/overlays/popover.mjs +28 -0
  174. package/esm2022/standalone/providers/action-sheet-controller.mjs +21 -0
  175. package/esm2022/standalone/providers/alert-controller.mjs +21 -0
  176. package/esm2022/standalone/providers/animation-controller.mjs +38 -0
  177. package/esm2022/standalone/providers/gesture-controller.mjs +33 -0
  178. package/esm2022/standalone/providers/ionic-angular.mjs +38 -0
  179. package/esm2022/standalone/providers/loading-controller.mjs +21 -0
  180. package/esm2022/standalone/providers/menu-controller.mjs +19 -0
  181. package/esm2022/standalone/providers/modal-controller.mjs +28 -0
  182. package/esm2022/standalone/providers/picker-controller.mjs +24 -0
  183. package/esm2022/standalone/providers/popover-controller.mjs +21 -0
  184. package/esm2022/standalone/providers/toast-controller.mjs +21 -0
  185. package/fesm2022/ionic-angular-common.mjs +79 -68
  186. package/fesm2022/ionic-angular-common.mjs.map +1 -1
  187. package/fesm2022/ionic-angular-standalone.mjs +882 -903
  188. package/fesm2022/ionic-angular-standalone.mjs.map +1 -1
  189. package/fesm2022/ionic-angular.mjs +744 -1065
  190. package/fesm2022/ionic-angular.mjs.map +1 -1
  191. package/index.d.ts +27 -0
  192. package/ionic-module.d.ts +28 -0
  193. package/package.json +16 -11
  194. package/providers/action-sheet-controller.d.ts +8 -0
  195. package/providers/alert-controller.d.ts +8 -0
  196. package/providers/animation-controller.d.ts +25 -0
  197. package/providers/gesture-controller.d.ts +13 -0
  198. package/providers/loading-controller.d.ts +8 -0
  199. package/providers/menu-controller.d.ts +7 -0
  200. package/providers/modal-controller.d.ts +12 -0
  201. package/providers/picker-controller.d.ts +11 -0
  202. package/providers/popover-controller.d.ts +9 -0
  203. package/providers/toast-controller.d.ts +8 -0
  204. package/schematics/add/index.js +1 -27
  205. package/schematics/utils/ast.js +2 -1
  206. package/schematics/utils/config.js +11 -10
  207. package/schematics/utils/package.js +2 -1
  208. package/standalone/directives/angular-component-lib/utils.d.ts +9 -0
  209. package/standalone/directives/checkbox.d.ts +30 -0
  210. package/standalone/directives/datetime.d.ts +30 -0
  211. package/standalone/directives/icon.d.ts +9 -0
  212. package/standalone/directives/index.d.ts +12 -0
  213. package/standalone/directives/input-otp.d.ts +49 -0
  214. package/standalone/directives/input.d.ts +47 -0
  215. package/standalone/directives/proxies.d.ts +1053 -0
  216. package/standalone/directives/radio-group.d.ts +18 -0
  217. package/standalone/directives/range.d.ts +47 -0
  218. package/standalone/directives/searchbar.d.ts +45 -0
  219. package/standalone/directives/segment.d.ts +19 -0
  220. package/standalone/directives/select.d.ts +34 -0
  221. package/standalone/directives/textarea.d.ts +37 -0
  222. package/standalone/directives/toggle.d.ts +28 -0
  223. package/standalone/index.d.ts +23 -0
  224. package/standalone/navigation/back-button.d.ts +9 -0
  225. package/standalone/navigation/nav.d.ts +8 -0
  226. package/standalone/navigation/router-link-delegate.d.ts +10 -0
  227. package/standalone/navigation/router-outlet.d.ts +25 -0
  228. package/standalone/navigation/tabs.d.ts +13 -0
  229. package/standalone/overlays/modal.d.ts +6 -0
  230. package/standalone/overlays/popover.d.ts +6 -0
  231. package/standalone/providers/action-sheet-controller.d.ts +8 -0
  232. package/standalone/providers/alert-controller.d.ts +8 -0
  233. package/standalone/providers/animation-controller.d.ts +25 -0
  234. package/standalone/providers/gesture-controller.d.ts +13 -0
  235. package/standalone/providers/ionic-angular.d.ts +7 -0
  236. package/standalone/providers/loading-controller.d.ts +8 -0
  237. package/standalone/providers/menu-controller.d.ts +7 -0
  238. package/standalone/providers/modal-controller.d.ts +12 -0
  239. package/standalone/providers/picker-controller.d.ts +11 -0
  240. package/standalone/providers/popover-controller.d.ts +9 -0
  241. package/standalone/providers/toast-controller.d.ts +8 -0
  242. package/types/ionic-angular-common.d.ts +0 -1014
  243. package/types/ionic-angular-standalone.d.ts +0 -1560
@@ -0,0 +1,203 @@
1
+ import { ApplicationRef, createComponent, inject, Injectable, InjectionToken, Injector, NgZone, } from '@angular/core';
2
+ import { LIFECYCLE_DID_ENTER, LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_WILL_UNLOAD, } from '@ionic/core/components';
3
+ import { NavParams } from '../directives/navigation/nav-params';
4
+ import { ConfigToken } from './config';
5
+ import * as i0 from "@angular/core";
6
+ // Token for injecting the modal element
7
+ export const IonModalToken = new InjectionToken('IonModalToken');
8
+ // TODO(FW-2827): types
9
+ class AngularDelegate {
10
+ zone = inject(NgZone);
11
+ applicationRef = inject(ApplicationRef);
12
+ config = inject(ConfigToken);
13
+ create(environmentInjector, injector, elementReferenceKey, customInjector) {
14
+ return new AngularFrameworkDelegate(environmentInjector, injector, this.applicationRef, this.zone, elementReferenceKey, this.config.useSetInputAPI ?? false, customInjector);
15
+ }
16
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate });
18
+ }
19
+ export { AngularDelegate };
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AngularDelegate, decorators: [{
21
+ type: Injectable
22
+ }] });
23
+ export class AngularFrameworkDelegate {
24
+ environmentInjector;
25
+ injector;
26
+ applicationRef;
27
+ zone;
28
+ elementReferenceKey;
29
+ enableSignalsSupport;
30
+ customInjector;
31
+ elRefMap = new WeakMap();
32
+ elEventsMap = new WeakMap();
33
+ constructor(environmentInjector, injector, applicationRef, zone, elementReferenceKey, enableSignalsSupport, customInjector) {
34
+ this.environmentInjector = environmentInjector;
35
+ this.injector = injector;
36
+ this.applicationRef = applicationRef;
37
+ this.zone = zone;
38
+ this.elementReferenceKey = elementReferenceKey;
39
+ this.enableSignalsSupport = enableSignalsSupport;
40
+ this.customInjector = customInjector;
41
+ }
42
+ attachViewToDom(container, component, params, cssClasses) {
43
+ return this.zone.run(() => {
44
+ return new Promise((resolve) => {
45
+ const componentProps = {
46
+ ...params,
47
+ };
48
+ /**
49
+ * Ionic Angular passes a reference to a modal
50
+ * or popover that can be accessed using a
51
+ * variable in the overlay component. If
52
+ * elementReferenceKey is defined, then we should
53
+ * pass a reference to the component using
54
+ * elementReferenceKey as the key.
55
+ */
56
+ if (this.elementReferenceKey !== undefined) {
57
+ componentProps[this.elementReferenceKey] = container;
58
+ }
59
+ const el = attachView(this.zone, this.environmentInjector, this.injector, this.applicationRef, this.elRefMap, this.elEventsMap, container, component, componentProps, cssClasses, this.elementReferenceKey, this.enableSignalsSupport, this.customInjector);
60
+ resolve(el);
61
+ });
62
+ });
63
+ }
64
+ removeViewFromDom(_container, component) {
65
+ return this.zone.run(() => {
66
+ return new Promise((resolve) => {
67
+ const componentRef = this.elRefMap.get(component);
68
+ if (componentRef) {
69
+ componentRef.destroy();
70
+ this.elRefMap.delete(component);
71
+ const unbindEvents = this.elEventsMap.get(component);
72
+ if (unbindEvents) {
73
+ unbindEvents();
74
+ this.elEventsMap.delete(component);
75
+ }
76
+ }
77
+ resolve();
78
+ });
79
+ });
80
+ }
81
+ }
82
+ export const attachView = (zone, environmentInjector, injector, applicationRef, elRefMap, elEventsMap, container, component, params, cssClasses, elementReferenceKey, enableSignalsSupport, customInjector) => {
83
+ /**
84
+ * Wraps the injector with a custom injector that
85
+ * provides NavParams to the component.
86
+ *
87
+ * NavParams is a legacy feature from Ionic v3 that allows
88
+ * Angular developers to provide data to a component
89
+ * and access it by providing NavParams as a dependency
90
+ * in the constructor.
91
+ *
92
+ * The modern approach is to access the data directly
93
+ * from the component's class instance.
94
+ */
95
+ const providers = getProviders(params);
96
+ // If this is an ion-modal, provide the modal element as an injectable
97
+ // so components inside the modal can inject it directly
98
+ if (container.tagName.toLowerCase() === 'ion-modal') {
99
+ providers.push({
100
+ provide: IonModalToken,
101
+ useValue: container,
102
+ });
103
+ }
104
+ const childInjector = Injector.create({
105
+ providers,
106
+ parent: customInjector ?? injector,
107
+ });
108
+ const componentRef = createComponent(component, {
109
+ environmentInjector,
110
+ elementInjector: childInjector,
111
+ });
112
+ const instance = componentRef.instance;
113
+ const hostElement = componentRef.location.nativeElement;
114
+ if (params) {
115
+ /**
116
+ * For modals and popovers, a reference to the component is
117
+ * added to `params` during the call to attachViewToDom. If
118
+ * a reference using this name is already set, this means
119
+ * the app is trying to use the name as a component prop,
120
+ * which will cause collisions.
121
+ */
122
+ if (elementReferenceKey && instance[elementReferenceKey] !== undefined) {
123
+ console.error(`[Ionic Error]: ${elementReferenceKey} is a reserved property when using ${container.tagName.toLowerCase()}. Rename or remove the "${elementReferenceKey}" property from ${component.name}.`);
124
+ }
125
+ /**
126
+ * Angular 14.1 added support for setInput
127
+ * so we need to fall back to Object.assign
128
+ * for Angular 14.0.
129
+ */
130
+ if (enableSignalsSupport === true && componentRef.setInput !== undefined) {
131
+ const { modal, popover, ...otherParams } = params;
132
+ /**
133
+ * Any key/value pairs set in componentProps
134
+ * must be set as inputs on the component instance.
135
+ */
136
+ for (const key in otherParams) {
137
+ componentRef.setInput(key, otherParams[key]);
138
+ }
139
+ /**
140
+ * Using setInput will cause an error when
141
+ * setting modal/popover on a component that
142
+ * does not define them as an input. For backwards
143
+ * compatibility purposes we fall back to using
144
+ * Object.assign for these properties.
145
+ */
146
+ if (modal !== undefined) {
147
+ Object.assign(instance, { modal });
148
+ }
149
+ if (popover !== undefined) {
150
+ Object.assign(instance, { popover });
151
+ }
152
+ }
153
+ else {
154
+ Object.assign(instance, params);
155
+ }
156
+ }
157
+ if (cssClasses) {
158
+ for (const cssClass of cssClasses) {
159
+ hostElement.classList.add(cssClass);
160
+ }
161
+ }
162
+ const unbindEvents = bindLifecycleEvents(zone, instance, hostElement);
163
+ container.appendChild(hostElement);
164
+ applicationRef.attachView(componentRef.hostView);
165
+ elRefMap.set(hostElement, componentRef);
166
+ elEventsMap.set(hostElement, unbindEvents);
167
+ return hostElement;
168
+ };
169
+ const LIFECYCLES = [
170
+ LIFECYCLE_WILL_ENTER,
171
+ LIFECYCLE_DID_ENTER,
172
+ LIFECYCLE_WILL_LEAVE,
173
+ LIFECYCLE_DID_LEAVE,
174
+ LIFECYCLE_WILL_UNLOAD,
175
+ ];
176
+ export const bindLifecycleEvents = (zone, instance, element) => {
177
+ return zone.run(() => {
178
+ const unregisters = LIFECYCLES.filter((eventName) => typeof instance[eventName] === 'function').map((eventName) => {
179
+ const handler = (ev) => instance[eventName](ev.detail);
180
+ element.addEventListener(eventName, handler);
181
+ return () => element.removeEventListener(eventName, handler);
182
+ });
183
+ return () => unregisters.forEach((fn) => fn());
184
+ });
185
+ };
186
+ const NavParamsToken = new InjectionToken('NavParamsToken');
187
+ const getProviders = (params) => {
188
+ return [
189
+ {
190
+ provide: NavParamsToken,
191
+ useValue: params,
192
+ },
193
+ {
194
+ provide: NavParams,
195
+ useFactory: provideNavParamsInjectable,
196
+ deps: [NavParamsToken],
197
+ },
198
+ ];
199
+ };
200
+ const provideNavParamsInjectable = (params) => {
201
+ return new NavParams(params);
202
+ };
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1kZWxlZ2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvcHJvdmlkZXJzL2FuZ3VsYXItZGVsZWdhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFFZCxlQUFlLEVBRWYsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUV2Qyx3Q0FBd0M7QUFDeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFzQixlQUFlLENBQUMsQ0FBQztBQUV0Rix1QkFBdUI7QUFFdkIsTUFDYSxlQUFlO0lBQ2xCLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sQ0FDSixtQkFBd0MsRUFDeEMsUUFBa0IsRUFDbEIsbUJBQTRCLEVBQzVCLGNBQXlCO1FBRXpCLE9BQU8sSUFBSSx3QkFBd0IsQ0FDakMsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixJQUFJLENBQUMsY0FBYyxFQUNuQixJQUFJLENBQUMsSUFBSSxFQUNULG1CQUFtQixFQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsSUFBSSxLQUFLLEVBQ25DLGNBQWMsQ0FDZixDQUFDO0lBQ0osQ0FBQzsySEFwQlUsZUFB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QUNsQixVQUFVLEVBQUUsMEJBQTBCO1lBQ3RDLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtLQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLDBCQUEwQixHQUFHLENBQUMsTUFBOEIsRUFBRSxFQUFFO0lBQ3BFLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudFJlZixcbiAgY3JlYXRlQ29tcG9uZW50LFxuICBFbnZpcm9ubWVudEluamVjdG9yLFxuICBpbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgTmdab25lLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEZyYW1ld29ya0RlbGVnYXRlLFxuICBMSUZFQ1lDTEVfRElEX0VOVEVSLFxuICBMSUZFQ1lDTEVfRElEX0xFQVZFLFxuICBMSUZFQ1lDTEVfV0lMTF9FTlRFUixcbiAgTElGRUNZQ0xFX1dJTExfTEVBVkUsXG4gIExJRkVDWUNMRV9XSUxMX1VOTE9BRCxcbn0gZnJvbSAnQGlvbmljL2NvcmUvY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IE5hdlBhcmFtcyB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi9uYXYtcGFyYW1zJztcblxuaW1wb3J0IHsgQ29uZmlnVG9rZW4gfSBmcm9tICcuL2NvbmZpZyc7XG5cbi8vIFRva2VuIGZvciBpbmplY3RpbmcgdGhlIG1vZGFsIGVsZW1lbnRcbmV4cG9ydCBjb25zdCBJb25Nb2RhbFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPEhUTUxJb25Nb2RhbEVsZW1lbnQ+KCdJb25Nb2RhbFRva2VuJyk7XG5cbi8vIFRPRE8oRlctMjgyNyk6IHR5cGVzXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRGVsZWdhdGUge1xuICBwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENvbmZpZ1Rva2VuKTtcblxuICBjcmVhdGUoXG4gICAgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgZWxlbWVudFJlZmVyZW5jZUtleT86IHN0cmluZyxcbiAgICBjdXN0b21JbmplY3Rvcj86IEluamVjdG9yXG4gICk6IEFuZ3VsYXJGcmFtZXdvcmtEZWxlZ2F0ZSB7XG4gICAgcmV0dXJuIG5ldyBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUoXG4gICAgICBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgaW5qZWN0b3IsXG4gICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLFxuICAgICAgdGhpcy56b25lLFxuICAgICAgZWxlbWVudFJlZmVyZW5jZUtleSxcbiAgICAgIHRoaXMuY29uZmlnLnVzZVNldElucHV0QVBJID8/IGZhbHNlLFxuICAgICAgY3VzdG9tSW5qZWN0b3JcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRnJhbWV3b3JrRGVsZWdhdGUgaW1wbGVtZW50cyBGcmFtZXdvcmtEZWxlZ2F0ZSB7XG4gIHByaXZhdGUgZWxSZWZNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgQ29tcG9uZW50UmVmPGFueT4+KCk7XG4gIHByaXZhdGUgZWxFdmVudHNNYXAgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCwgKCkgPT4gdm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlS2V5Pzogc3RyaW5nLFxuICAgIHByaXZhdGUgZW5hYmxlU2lnbmFsc1N1cHBvcnQ/OiBib29sZWFuLFxuICAgIHByaXZhdGUgY3VzdG9tSW5qZWN0b3I/OiBJbmplY3RvclxuICApIHt9XG5cbiAgYXR0YWNoVmlld1RvRG9tKGNvbnRhaW5lcjogYW55LCBjb21wb25lbnQ6IGFueSwgcGFyYW1zPzogYW55LCBjc3NDbGFzc2VzPzogc3RyaW5nW10pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnRQcm9wcyA9IHtcbiAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIH07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElvbmljIEFuZ3VsYXIgcGFzc2VzIGEgcmVmZXJlbmNlIHRvIGEgbW9kYWxcbiAgICAgICAgICogb3IgcG9wb3ZlciB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB1c2luZyBhXG4gICAgICAgICAqIHZhcmlhYmxlIGluIHRoZSBvdmVybGF5IGNvbXBvbmVudC4gSWZcbiAgICAgICAgICogZWxlbWVudFJlZmVyZW5jZUtleSBpcyBkZWZpbmVkLCB0aGVuIHdlIHNob3VsZFxuICAgICAgICAgKiBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoZSBjb21wb25lbnQgdXNpbmdcbiAgICAgICAgICogZWxlbWVudFJlZmVyZW5jZUtleSBhcyB0aGUga2V5LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZmVyZW5jZUtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcG9uZW50UHJvcHNbdGhpcy5lbGVtZW50UmVmZXJlbmNlS2V5XSA9IGNvbnRhaW5lcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVsID0gYXR0YWNoVmlldyhcbiAgICAgICAgICB0aGlzLnpvbmUsXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuICAgICAgICAgIHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZixcbiAgICAgICAgICB0aGlzLmVsUmVmTWFwLFxuICAgICAgICAgIHRoaXMuZWxFdmVudHNNYXAsXG4gICAgICAgICAgY29udGFpbmVyLFxuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBjb21wb25lbnRQcm9wcyxcbiAgICAgICAgICBjc3NDbGFzc2VzLFxuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZmVyZW5jZUtleSxcbiAgICAgICAgICB0aGlzLmVuYWJsZVNpZ25hbHNTdXBwb3J0LFxuICAgICAgICAgIHRoaXMuY3VzdG9tSW5qZWN0b3JcbiAgICAgICAgKTtcbiAgICAgICAgcmVzb2x2ZShlbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZVZpZXdGcm9tRG9tKF9jb250YWluZXI6IGFueSwgY29tcG9uZW50OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5lbFJlZk1hcC5nZXQoY29tcG9uZW50KTtcbiAgICAgICAgaWYgKGNvbXBvbmVudFJlZikge1xuICAgICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgdGhpcy5lbFJlZk1hcC5kZWxldGUoY29tcG9uZW50KTtcbiAgICAgICAgICBjb25zdCB1bmJpbmRFdmVudHMgPSB0aGlzLmVsRXZlbnRzTWFwLmdldChjb21wb25lbnQpO1xuICAgICAgICAgIGlmICh1bmJpbmRFdmVudHMpIHtcbiAgICAgICAgICAgIHVuYmluZEV2ZW50cygpO1xuICAgICAgICAgICAgdGhpcy5lbEV2ZW50c01hcC5kZWxldGUoY29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGF0dGFjaFZpZXcgPSAoXG4gIHpvbmU6IE5nWm9uZSxcbiAgZW52aXJvbm1lbnRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gIGVsUmVmTWFwOiBXZWFrTWFwPEhUTUxFbGVtZW50LCBDb21wb25lbnRSZWY8YW55Pj4sXG4gIGVsRXZlbnRzTWFwOiBXZWFrTWFwPEhUTUxFbGVtZW50LCAoKSA9PiB2b2lkPixcbiAgY29udGFpbmVyOiBhbnksXG4gIGNvbXBvbmVudDogYW55LFxuICBwYXJhbXM6IGFueSxcbiAgY3NzQ2xhc3Nlczogc3RyaW5nW10gfCB1bmRlZmluZWQsXG4gIGVsZW1lbnRSZWZlcmVuY2VLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZW5hYmxlU2lnbmFsc1N1cHBvcnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIGN1c3RvbUluamVjdG9yPzogSW5qZWN0b3Jcbik6IGFueSA9PiB7XG4gIC8qKlxuICAgKiBXcmFwcyB0aGUgaW5qZWN0b3Igd2l0aCBhIGN1c3RvbSBpbmplY3RvciB0aGF0XG4gICAqIHByb3ZpZGVzIE5hdlBhcmFtcyB0byB0aGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBOYXZQYXJhbXMgaXMgYSBsZWdhY3kgZmVhdHVyZSBmcm9tIElvbmljIHYzIHRoYXQgYWxsb3dzXG4gICAqIEFuZ3VsYXIgZGV2ZWxvcGVycyB0byBwcm92aWRlIGRhdGEgdG8gYSBjb21wb25lbnRcbiAgICogYW5kIGFjY2VzcyBpdCBieSBwcm92aWRpbmcgTmF2UGFyYW1zIGFzIGEgZGVwZW5kZW5jeVxuICAgKiBpbiB0aGUgY29uc3RydWN0b3IuXG4gICAqXG4gICAqIFRoZSBtb2Rlcm4gYXBwcm9hY2ggaXMgdG8gYWNjZXNzIHRoZSBkYXRhIGRpcmVjdGx5XG4gICAqIGZyb20gdGhlIGNvbXBvbmVudCdzIGNsYXNzIGluc3RhbmNlLlxuICAgKi9cbiAgY29uc3QgcHJvdmlkZXJzID0gZ2V0UHJvdmlkZXJzKHBhcmFtcyk7XG5cbiAgLy8gSWYgdGhpcyBpcyBhbiBpb24tbW9kYWwsIHByb3ZpZGUgdGhlIG1vZGFsIGVsZW1lbnQgYXMgYW4gaW5qZWN0YWJsZVxuICAvLyBzbyBjb21wb25lbnRzIGluc2lkZSB0aGUgbW9kYWwgY2FuIGluamVjdCBpdCBkaXJlY3RseVxuICBpZiAoY29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lvbi1tb2RhbCcpIHtcbiAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICBwcm92aWRlOiBJb25Nb2RhbFRva2VuLFxuICAgICAgdXNlVmFsdWU6IGNvbnRhaW5lcixcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNoaWxkSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgIHByb3ZpZGVycyxcbiAgICBwYXJlbnQ6IGN1c3RvbUluamVjdG9yID8/IGluamVjdG9yLFxuICB9KTtcblxuICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQ8YW55Pihjb21wb25lbnQsIHtcbiAgICBlbnZpcm9ubWVudEluamVjdG9yLFxuICAgIGVsZW1lbnRJbmplY3RvcjogY2hpbGRJbmplY3RvcixcbiAgfSk7XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gIGNvbnN0IGhvc3RFbGVtZW50ID0gY29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgaWYgKHBhcmFtcykge1xuICAgIC8qKlxuICAgICAqIEZvciBtb2RhbHMgYW5kIHBvcG92ZXJzLCBhIHJlZmVyZW5jZSB0byB0aGUgY29tcG9uZW50IGlzXG4gICAgICogYWRkZWQgdG8gYHBhcmFtc2AgZHVyaW5nIHRoZSBjYWxsIHRvIGF0dGFjaFZpZXdUb0RvbS4gSWZcbiAgICAgKiBhIHJlZmVyZW5jZSB1c2luZyB0aGlzIG5hbWUgaXMgYWxyZWFkeSBzZXQsIHRoaXMgbWVhbnNcbiAgICAgKiB0aGUgYXBwIGlzIHRyeWluZyB0byB1c2UgdGhlIG5hbWUgYXMgYSBjb21wb25lbnQgcHJvcCxcbiAgICAgKiB3aGljaCB3aWxsIGNhdXNlIGNvbGxpc2lvbnMuXG4gICAgICovXG4gICAgaWYgKGVsZW1lbnRSZWZlcmVuY2VLZXkgJiYgaW5zdGFuY2VbZWxlbWVudFJlZmVyZW5jZUtleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFtJb25pYyBFcnJvcl06ICR7ZWxlbWVudFJlZmVyZW5jZUtleX0gaXMgYSByZXNlcnZlZCBwcm9wZXJ0eSB3aGVuIHVzaW5nICR7Y29udGFpbmVyLnRhZ05hbWUudG9Mb3dlckNhc2UoKX0uIFJlbmFtZSBvciByZW1vdmUgdGhlIFwiJHtlbGVtZW50UmVmZXJlbmNlS2V5fVwiIHByb3BlcnR5IGZyb20gJHtcbiAgICAgICAgICBjb21wb25lbnQubmFtZVxuICAgICAgICB9LmBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW5ndWxhciAxNC4xIGFkZGVkIHN1cHBvcnQgZm9yIHNldElucHV0XG4gICAgICogc28gd2UgbmVlZCB0byBmYWxsIGJhY2sgdG8gT2JqZWN0LmFzc2lnblxuICAgICAqIGZvciBBbmd1bGFyIDE0LjAuXG4gICAgICovXG4gICAgaWYgKGVuYWJsZVNpZ25hbHNTdXBwb3J0ID09PSB0cnVlICYmIGNvbXBvbmVudFJlZi5zZXRJbnB1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB7IG1vZGFsLCBwb3BvdmVyLCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xuICAgICAgLyoqXG4gICAgICAgKiBBbnkga2V5L3ZhbHVlIHBhaXJzIHNldCBpbiBjb21wb25lbnRQcm9wc1xuICAgICAgICogbXVzdCBiZSBzZXQgYXMgaW5wdXRzIG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICAgKi9cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG90aGVyUGFyYW1zKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIG90aGVyUGFyYW1zW2tleV0pO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFVzaW5nIHNldElucHV0IHdpbGwgY2F1c2UgYW4gZXJyb3Igd2hlblxuICAgICAgICogc2V0dGluZyBtb2RhbC9wb3BvdmVyIG9uIGEgY29tcG9uZW50IHRoYXRcbiAgICAgICAqIGRvZXMgbm90IGRlZmluZSB0aGVtIGFzIGFuIGlucHV0LiBGb3IgYmFja3dhcmRzXG4gICAgICAgKiBjb21wYXRpYmlsaXR5IHB1cnBvc2VzIHdlIGZhbGwgYmFjayB0byB1c2luZ1xuICAgICAgICogT2JqZWN0LmFzc2lnbiBmb3IgdGhlc2UgcHJvcGVydGllcy5cbiAgICAgICAqL1xuICAgICAgaWYgKG1vZGFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihpbnN0YW5jZSwgeyBtb2RhbCB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBvcG92ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCB7IHBvcG92ZXIgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2UsIHBhcmFtcyk7XG4gICAgfVxuICB9XG4gIGlmIChjc3NDbGFzc2VzKSB7XG4gICAgZm9yIChjb25zdCBjc3NDbGFzcyBvZiBjc3NDbGFzc2VzKSB7XG4gICAgICBob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKGNzc0NsYXNzKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgdW5iaW5kRXZlbnRzID0gYmluZExpZmVjeWNsZUV2ZW50cyh6b25lLCBpbnN0YW5jZSwgaG9zdEVsZW1lbnQpO1xuICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaG9zdEVsZW1lbnQpO1xuXG4gIGFwcGxpY2F0aW9uUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICBlbFJlZk1hcC5zZXQoaG9zdEVsZW1lbnQsIGNvbXBvbmVudFJlZik7XG4gIGVsRXZlbnRzTWFwLnNldChob3N0RWxlbWVudCwgdW5iaW5kRXZlbnRzKTtcbiAgcmV0dXJuIGhvc3RFbGVtZW50O1xufTtcblxuY29uc3QgTElGRUNZQ0xFUyA9IFtcbiAgTElGRUNZQ0xFX1dJTExfRU5URVIsXG4gIExJRkVDWUNMRV9ESURfRU5URVIsXG4gIExJRkVDWUNMRV9XSUxMX0xFQVZFLFxuICBMSUZFQ1lDTEVfRElEX0xFQVZFLFxuICBMSUZFQ1lDTEVfV0lMTF9VTkxPQUQsXG5dO1xuXG5leHBvcnQgY29uc3QgYmluZExpZmVjeWNsZUV2ZW50cyA9ICh6b25lOiBOZ1pvbmUsIGluc3RhbmNlOiBhbnksIGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogKCgpID0+IHZvaWQpID0+IHtcbiAgcmV0dXJuIHpvbmUucnVuKCgpID0+IHtcbiAgICBjb25zdCB1bnJlZ2lzdGVycyA9IExJRkVDWUNMRVMuZmlsdGVyKChldmVudE5hbWUpID0+IHR5cGVvZiBpbnN0YW5jZVtldmVudE5hbWVdID09PSAnZnVuY3Rpb24nKS5tYXAoKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlciA9IChldjogYW55KSA9PiBpbnN0YW5jZVtldmVudE5hbWVdKGV2LmRldGFpbCk7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICAgIHJldHVybiAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBoYW5kbGVyKTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4gdW5yZWdpc3RlcnMuZm9yRWFjaCgoZm4pID0+IGZuKCkpO1xuICB9KTtcbn07XG5cbmNvbnN0IE5hdlBhcmFtc1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ05hdlBhcmFtc1Rva2VuJyk7XG5cbmNvbnN0IGdldFByb3ZpZGVycyA9IChwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOYXZQYXJhbXNUb2tlbixcbiAgICAgIHVzZVZhbHVlOiBwYXJhbXMsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOYXZQYXJhbXMsXG4gICAgICB1c2VGYWN0b3J5OiBwcm92aWRlTmF2UGFyYW1zSW5qZWN0YWJsZSxcbiAgICAgIGRlcHM6IFtOYXZQYXJhbXNUb2tlbl0sXG4gICAgfSxcbiAgXTtcbn07XG5cbmNvbnN0IHByb3ZpZGVOYXZQYXJhbXNJbmplY3RhYmxlID0gKHBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkgPT4ge1xuICByZXR1cm4gbmV3IE5hdlBhcmFtcyhwYXJhbXMpO1xufTtcbiJdfQ==
@@ -0,0 +1,45 @@
1
+ import { Injectable, InjectionToken } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class Config {
4
+ get(key, fallback) {
5
+ const c = getConfig();
6
+ if (c) {
7
+ return c.get(key, fallback);
8
+ }
9
+ return null;
10
+ }
11
+ getBoolean(key, fallback) {
12
+ const c = getConfig();
13
+ if (c) {
14
+ return c.getBoolean(key, fallback);
15
+ }
16
+ return false;
17
+ }
18
+ getNumber(key, fallback) {
19
+ const c = getConfig();
20
+ if (c) {
21
+ return c.getNumber(key, fallback);
22
+ }
23
+ return 0;
24
+ }
25
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, providedIn: 'root' });
27
+ }
28
+ export { Config };
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Config, decorators: [{
30
+ type: Injectable,
31
+ args: [{
32
+ providedIn: 'root',
33
+ }]
34
+ }] });
35
+ export const ConfigToken = new InjectionToken('USERCONFIG');
36
+ const getConfig = () => {
37
+ if (typeof window !== 'undefined') {
38
+ const Ionic = window.Ionic;
39
+ if (Ionic?.config) {
40
+ return Ionic.config;
41
+ }
42
+ }
43
+ return null;
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tbW9uL3NyYy9wcm92aWRlcnMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszRCxNQUdhLE1BQU07SUFDakIsR0FBRyxDQUFDLEdBQXNCLEVBQUUsUUFBYztRQUN4QyxNQUFNLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBc0IsRUFBRSxRQUFrQjtRQUNuRCxNQUFNLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDcEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBc0IsRUFBRSxRQUFpQjtRQUNqRCxNQUFNLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsRUFBRTtZQUNMLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7MkhBdkJVLE1BQU07K0hBQU4sTUFBTSxjQUZMLE1BQU07O1NBRVAsTUFBTTs0RkFBTixNQUFNO2tCQUhsQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUEyQkQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFNLFlBQVksQ0FBQyxDQUFDO0FBRWpFLE1BQU0sU0FBUyxHQUFHLEdBQXNCLEVBQUU7SUFDeEMsSUFBSSxPQUFRLE1BQWMsS0FBSyxXQUFXLEVBQUU7UUFDMUMsTUFBTSxLQUFLLEdBQUksTUFBNkIsQ0FBQyxLQUFLLENBQUM7UUFDbkQsSUFBSSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ2pCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNyQjtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb25maWcgYXMgQ29yZUNvbmZpZywgSW9uaWNDb25maWcgfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgSW9uaWNXaW5kb3cgfSBmcm9tICcuLi90eXBlcy9pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZyB7XG4gIGdldChrZXk6IGtleW9mIElvbmljQ29uZmlnLCBmYWxsYmFjaz86IGFueSk6IGFueSB7XG4gICAgY29uc3QgYyA9IGdldENvbmZpZygpO1xuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5nZXQoa2V5LCBmYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZ2V0Qm9vbGVhbihrZXk6IGtleW9mIElvbmljQ29uZmlnLCBmYWxsYmFjaz86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBjID0gZ2V0Q29uZmlnKCk7XG4gICAgaWYgKGMpIHtcbiAgICAgIHJldHVybiBjLmdldEJvb2xlYW4oa2V5LCBmYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldE51bWJlcihrZXk6IGtleW9mIElvbmljQ29uZmlnLCBmYWxsYmFjaz86IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgYyA9IGdldENvbmZpZygpO1xuICAgIGlmIChjKSB7XG4gICAgICByZXR1cm4gYy5nZXROdW1iZXIoa2V5LCBmYWxsYmFjayk7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBDb25maWdUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdVU0VSQ09ORklHJyk7XG5cbmNvbnN0IGdldENvbmZpZyA9ICgpOiBDb3JlQ29uZmlnIHwgbnVsbCA9PiB7XG4gIGlmICh0eXBlb2YgKHdpbmRvdyBhcyBhbnkpICE9PSAndW5kZWZpbmVkJykge1xuICAgIGNvbnN0IElvbmljID0gKHdpbmRvdyBhcyBhbnkgYXMgSW9uaWNXaW5kb3cpLklvbmljO1xuICAgIGlmIChJb25pYz8uY29uZmlnKSB7XG4gICAgICByZXR1cm4gSW9uaWMuY29uZmlnO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG4iXX0=
@@ -0,0 +1,45 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class DomController {
4
+ /**
5
+ * Schedules a task to run during the READ phase of the next frame.
6
+ * This task should only read the DOM, but never modify it.
7
+ */
8
+ read(cb) {
9
+ getQueue().read(cb);
10
+ }
11
+ /**
12
+ * Schedules a task to run during the WRITE phase of the next frame.
13
+ * This task should write the DOM, but never READ it.
14
+ */
15
+ write(cb) {
16
+ getQueue().write(cb);
17
+ }
18
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, providedIn: 'root' });
20
+ }
21
+ export { DomController };
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DomController, decorators: [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root',
26
+ }]
27
+ }] });
28
+ const getQueue = () => {
29
+ const win = typeof window !== 'undefined' ? window : null;
30
+ if (win != null) {
31
+ const Ionic = win.Ionic;
32
+ if (Ionic?.queue) {
33
+ return Ionic.queue;
34
+ }
35
+ return {
36
+ read: (cb) => win.requestAnimationFrame(cb),
37
+ write: (cb) => win.requestAnimationFrame(cb),
38
+ };
39
+ }
40
+ return {
41
+ read: (cb) => cb(),
42
+ write: (cb) => cb(),
43
+ };
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21tb24vc3JjL3Byb3ZpZGVycy9kb20tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUdhLGFBQWE7SUFDeEI7OztPQUdHO0lBQ0gsSUFBSSxDQUFDLEVBQWU7UUFDbEIsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsRUFBZTtRQUNuQixRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQzsySEFmVSxhQUFhOytIQUFiLGFBQWEsY0FGWixNQUFNOztTQUVQLGFBQWE7NEZBQWIsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBbUJELE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtJQUNwQixNQUFNLEdBQUcsR0FBRyxPQUFRLE1BQWMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBWSxDQUFDO0lBRTVFLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtRQUNmLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQ2hCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztTQUNwQjtRQUVELE9BQU87WUFDTCxJQUFJLEVBQUUsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUM7WUFDaEQsS0FBSyxFQUFFLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1NBQ2xELENBQUM7S0FDSDtJQUVELE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN2QixLQUFLLEVBQUUsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtLQUN6QixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRG9tQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBTY2hlZHVsZXMgYSB0YXNrIHRvIHJ1biBkdXJpbmcgdGhlIFJFQUQgcGhhc2Ugb2YgdGhlIG5leHQgZnJhbWUuXG4gICAqIFRoaXMgdGFzayBzaG91bGQgb25seSByZWFkIHRoZSBET00sIGJ1dCBuZXZlciBtb2RpZnkgaXQuXG4gICAqL1xuICByZWFkKGNiOiBSYWZDYWxsYmFjayk6IHZvaWQge1xuICAgIGdldFF1ZXVlKCkucmVhZChjYik7XG4gIH1cblxuICAvKipcbiAgICogU2NoZWR1bGVzIGEgdGFzayB0byBydW4gZHVyaW5nIHRoZSBXUklURSBwaGFzZSBvZiB0aGUgbmV4dCBmcmFtZS5cbiAgICogVGhpcyB0YXNrIHNob3VsZCB3cml0ZSB0aGUgRE9NLCBidXQgbmV2ZXIgUkVBRCBpdC5cbiAgICovXG4gIHdyaXRlKGNiOiBSYWZDYWxsYmFjayk6IHZvaWQge1xuICAgIGdldFF1ZXVlKCkud3JpdGUoY2IpO1xuICB9XG59XG5cbmNvbnN0IGdldFF1ZXVlID0gKCkgPT4ge1xuICBjb25zdCB3aW4gPSB0eXBlb2YgKHdpbmRvdyBhcyBhbnkpICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IChudWxsIGFzIGFueSk7XG5cbiAgaWYgKHdpbiAhPSBudWxsKSB7XG4gICAgY29uc3QgSW9uaWMgPSB3aW4uSW9uaWM7XG4gICAgaWYgKElvbmljPy5xdWV1ZSkge1xuICAgICAgcmV0dXJuIElvbmljLnF1ZXVlO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZWFkOiAoY2I6IGFueSkgPT4gd2luLnJlcXVlc3RBbmltYXRpb25GcmFtZShjYiksXG4gICAgICB3cml0ZTogKGNiOiBhbnkpID0+IHdpbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2IpLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlYWQ6IChjYjogYW55KSA9PiBjYigpLFxuICAgIHdyaXRlOiAoY2I6IGFueSkgPT4gY2IoKSxcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFJhZkNhbGxiYWNrID0gKHRpbWVTdGFtcD86IG51bWJlcikgPT4gdm9pZDtcbiJdfQ==
@@ -0,0 +1,114 @@
1
+ export class MenuController {
2
+ menuController;
3
+ constructor(menuController) {
4
+ this.menuController = menuController;
5
+ }
6
+ /**
7
+ * Programmatically open the Menu.
8
+ * @param [menuId] Optionally get the menu by its id, or side.
9
+ * @return returns a promise when the menu is fully opened
10
+ */
11
+ open(menuId) {
12
+ return this.menuController.open(menuId);
13
+ }
14
+ /**
15
+ * Programmatically close the Menu. If no `menuId` is given as the first
16
+ * argument then it'll close any menu which is open. If a `menuId`
17
+ * is given then it'll close that exact menu.
18
+ * @param [menuId] Optionally get the menu by its id, or side.
19
+ * @return returns a promise when the menu is fully closed
20
+ */
21
+ close(menuId) {
22
+ return this.menuController.close(menuId);
23
+ }
24
+ /**
25
+ * Toggle the menu. If it's closed, it will open, and if opened, it
26
+ * will close.
27
+ * @param [menuId] Optionally get the menu by its id, or side.
28
+ * @return returns a promise when the menu has been toggled
29
+ */
30
+ toggle(menuId) {
31
+ return this.menuController.toggle(menuId);
32
+ }
33
+ /**
34
+ * Used to enable or disable a menu. For example, there could be multiple
35
+ * left menus, but only one of them should be able to be opened at the same
36
+ * time. If there are multiple menus on the same side, then enabling one menu
37
+ * will also automatically disable all the others that are on the same side.
38
+ * @param [menuId] Optionally get the menu by its id, or side.
39
+ * @return Returns the instance of the menu, which is useful for chaining.
40
+ */
41
+ enable(shouldEnable, menuId) {
42
+ return this.menuController.enable(shouldEnable, menuId);
43
+ }
44
+ /**
45
+ * Used to enable or disable the ability to swipe open the menu.
46
+ * @param shouldEnable True if it should be swipe-able, false if not.
47
+ * @param [menuId] Optionally get the menu by its id, or side.
48
+ * @return Returns the instance of the menu, which is useful for chaining.
49
+ */
50
+ swipeGesture(shouldEnable, menuId) {
51
+ return this.menuController.swipeGesture(shouldEnable, menuId);
52
+ }
53
+ /**
54
+ * @param [menuId] Optionally get the menu by its id, or side.
55
+ * @return Returns true if the specified menu is currently open, otherwise false.
56
+ * If the menuId is not specified, it returns true if ANY menu is currenly open.
57
+ */
58
+ isOpen(menuId) {
59
+ return this.menuController.isOpen(menuId);
60
+ }
61
+ /**
62
+ * @param [menuId] Optionally get the menu by its id, or side.
63
+ * @return Returns true if the menu is currently enabled, otherwise false.
64
+ */
65
+ isEnabled(menuId) {
66
+ return this.menuController.isEnabled(menuId);
67
+ }
68
+ /**
69
+ * Used to get a menu instance. If a `menuId` is not provided then it'll
70
+ * return the first menu found. If a `menuId` is `left` or `right`, then
71
+ * it'll return the enabled menu on that side. Otherwise, if a `menuId` is
72
+ * provided, then it'll try to find the menu using the menu's `id`
73
+ * property. If a menu is not found then it'll return `null`.
74
+ * @param [menuId] Optionally get the menu by its id, or side.
75
+ * @return Returns the instance of the menu if found, otherwise `null`.
76
+ */
77
+ get(menuId) {
78
+ return this.menuController.get(menuId);
79
+ }
80
+ /**
81
+ * @return Returns the instance of the menu already opened, otherwise `null`.
82
+ */
83
+ getOpen() {
84
+ return this.menuController.getOpen();
85
+ }
86
+ /**
87
+ * @return Returns an array of all menu instances.
88
+ */
89
+ getMenus() {
90
+ return this.menuController.getMenus();
91
+ }
92
+ registerAnimation(name, animation) {
93
+ return this.menuController.registerAnimation(name, animation);
94
+ }
95
+ isAnimating() {
96
+ return this.menuController.isAnimating();
97
+ }
98
+ _getOpenSync() {
99
+ return this.menuController._getOpenSync();
100
+ }
101
+ _createAnimation(type, menuCmp) {
102
+ return this.menuController._createAnimation(type, menuCmp);
103
+ }
104
+ _register(menu) {
105
+ return this.menuController._register(menu);
106
+ }
107
+ _unregister(menu) {
108
+ return this.menuController._unregister(menu);
109
+ }
110
+ _setOpen(menu, shouldOpen, animated) {
111
+ return this.menuController._setOpen(menu, shouldOpen, animated);
112
+ }
113
+ }
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29tbW9uL3NyYy9wcm92aWRlcnMvbWVudS1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBQ0w7SUFBcEIsWUFBb0IsY0FBK0I7UUFBL0IsbUJBQWMsR0FBZCxjQUFjLENBQWlCO0lBQUcsQ0FBQztJQUV2RDs7OztPQUlHO0lBQ0gsSUFBSSxDQUFDLE1BQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLE1BQWU7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFlBQXFCLEVBQUUsTUFBZTtRQUMzQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsWUFBcUIsRUFBRSxNQUFlO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQWU7UUFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxHQUFHLENBQUMsTUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWSxFQUFFLFNBQTJCO1FBQ3pELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVksRUFBRSxPQUFjO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFXLEVBQUUsVUFBbUIsRUFBRSxRQUFpQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZW51Q29udHJvbGxlckksIEFuaW1hdGlvbkJ1aWxkZXIsIE1lbnVJLCBBbmltYXRpb24gfSBmcm9tICdAaW9uaWMvY29yZS9jb21wb25lbnRzJztcblxuZXhwb3J0IGNsYXNzIE1lbnVDb250cm9sbGVyIGltcGxlbWVudHMgTWVudUNvbnRyb2xsZXJJIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZW51Q29udHJvbGxlcjogTWVudUNvbnRyb2xsZXJJKSB7fVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IG9wZW4gdGhlIE1lbnUuXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIHJldHVybnMgYSBwcm9taXNlIHdoZW4gdGhlIG1lbnUgaXMgZnVsbHkgb3BlbmVkXG4gICAqL1xuICBvcGVuKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLm9wZW4obWVudUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IGNsb3NlIHRoZSBNZW51LiBJZiBubyBgbWVudUlkYCBpcyBnaXZlbiBhcyB0aGUgZmlyc3RcbiAgICogYXJndW1lbnQgdGhlbiBpdCdsbCBjbG9zZSBhbnkgbWVudSB3aGljaCBpcyBvcGVuLiBJZiBhIGBtZW51SWRgXG4gICAqIGlzIGdpdmVuIHRoZW4gaXQnbGwgY2xvc2UgdGhhdCBleGFjdCBtZW51LlxuICAgKiBAcGFyYW0gW21lbnVJZF0gIE9wdGlvbmFsbHkgZ2V0IHRoZSBtZW51IGJ5IGl0cyBpZCwgb3Igc2lkZS5cbiAgICogQHJldHVybiByZXR1cm5zIGEgcHJvbWlzZSB3aGVuIHRoZSBtZW51IGlzIGZ1bGx5IGNsb3NlZFxuICAgKi9cbiAgY2xvc2UobWVudUlkPzogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUNvbnRyb2xsZXIuY2xvc2UobWVudUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIG1lbnUuIElmIGl0J3MgY2xvc2VkLCBpdCB3aWxsIG9wZW4sIGFuZCBpZiBvcGVuZWQsIGl0XG4gICAqIHdpbGwgY2xvc2UuXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIHJldHVybnMgYSBwcm9taXNlIHdoZW4gdGhlIG1lbnUgaGFzIGJlZW4gdG9nZ2xlZFxuICAgKi9cbiAgdG9nZ2xlKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLnRvZ2dsZShtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgYSBtZW51LiBGb3IgZXhhbXBsZSwgdGhlcmUgY291bGQgYmUgbXVsdGlwbGVcbiAgICogbGVmdCBtZW51cywgYnV0IG9ubHkgb25lIG9mIHRoZW0gc2hvdWxkIGJlIGFibGUgdG8gYmUgb3BlbmVkIGF0IHRoZSBzYW1lXG4gICAqIHRpbWUuIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBtZW51cyBvbiB0aGUgc2FtZSBzaWRlLCB0aGVuIGVuYWJsaW5nIG9uZSBtZW51XG4gICAqIHdpbGwgYWxzbyBhdXRvbWF0aWNhbGx5IGRpc2FibGUgYWxsIHRoZSBvdGhlcnMgdGhhdCBhcmUgb24gdGhlIHNhbWUgc2lkZS5cbiAgICogQHBhcmFtIFttZW51SWRdICBPcHRpb25hbGx5IGdldCB0aGUgbWVudSBieSBpdHMgaWQsIG9yIHNpZGUuXG4gICAqIEByZXR1cm4gUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIG1lbnUsIHdoaWNoIGlzIHVzZWZ1bCBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBlbmFibGUoc2hvdWxkRW5hYmxlOiBib29sZWFuLCBtZW51SWQ/OiBzdHJpbmcpOiBQcm9taXNlPEhUTUxJb25NZW51RWxlbWVudCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmVuYWJsZShzaG91bGRFbmFibGUsIG1lbnVJZCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBzd2lwZSBvcGVuIHRoZSBtZW51LlxuICAgKiBAcGFyYW0gc2hvdWxkRW5hYmxlICBUcnVlIGlmIGl0IHNob3VsZCBiZSBzd2lwZS1hYmxlLCBmYWxzZSBpZiBub3QuXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBtZW51LCB3aGljaCBpcyB1c2VmdWwgZm9yIGNoYWluaW5nLlxuICAgKi9cbiAgc3dpcGVHZXN0dXJlKHNob3VsZEVuYWJsZTogYm9vbGVhbiwgbWVudUlkPzogc3RyaW5nKTogUHJvbWlzZTxIVE1MSW9uTWVudUVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5zd2lwZUdlc3R1cmUoc2hvdWxkRW5hYmxlLCBtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBbbWVudUlkXSBPcHRpb25hbGx5IGdldCB0aGUgbWVudSBieSBpdHMgaWQsIG9yIHNpZGUuXG4gICAqIEByZXR1cm4gUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgbWVudSBpcyBjdXJyZW50bHkgb3Blbiwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKiBJZiB0aGUgbWVudUlkIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHJldHVybnMgdHJ1ZSBpZiBBTlkgbWVudSBpcyBjdXJyZW5seSBvcGVuLlxuICAgKi9cbiAgaXNPcGVuKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmlzT3BlbihtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBbbWVudUlkXSAgT3B0aW9uYWxseSBnZXQgdGhlIG1lbnUgYnkgaXRzIGlkLCBvciBzaWRlLlxuICAgKiBAcmV0dXJuIFJldHVybnMgdHJ1ZSBpZiB0aGUgbWVudSBpcyBjdXJyZW50bHkgZW5hYmxlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgaXNFbmFibGVkKG1lbnVJZD86IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmlzRW5hYmxlZChtZW51SWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gZ2V0IGEgbWVudSBpbnN0YW5jZS4gSWYgYSBgbWVudUlkYCBpcyBub3QgcHJvdmlkZWQgdGhlbiBpdCdsbFxuICAgKiByZXR1cm4gdGhlIGZpcnN0IG1lbnUgZm91bmQuIElmIGEgYG1lbnVJZGAgaXMgYGxlZnRgIG9yIGByaWdodGAsIHRoZW5cbiAgICogaXQnbGwgcmV0dXJuIHRoZSBlbmFibGVkIG1lbnUgb24gdGhhdCBzaWRlLiBPdGhlcndpc2UsIGlmIGEgYG1lbnVJZGAgaXNcbiAgICogcHJvdmlkZWQsIHRoZW4gaXQnbGwgdHJ5IHRvIGZpbmQgdGhlIG1lbnUgdXNpbmcgdGhlIG1lbnUncyBgaWRgXG4gICAqIHByb3BlcnR5LiBJZiBhIG1lbnUgaXMgbm90IGZvdW5kIHRoZW4gaXQnbGwgcmV0dXJuIGBudWxsYC5cbiAgICogQHBhcmFtIFttZW51SWRdICBPcHRpb25hbGx5IGdldCB0aGUgbWVudSBieSBpdHMgaWQsIG9yIHNpZGUuXG4gICAqIEByZXR1cm4gUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIG1lbnUgaWYgZm91bmQsIG90aGVyd2lzZSBgbnVsbGAuXG4gICAqL1xuICBnZXQobWVudUlkPzogc3RyaW5nKTogUHJvbWlzZTxIVE1MSW9uTWVudUVsZW1lbnQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5nZXQobWVudUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBtZW51IGFscmVhZHkgb3BlbmVkLCBvdGhlcndpc2UgYG51bGxgLlxuICAgKi9cbiAgZ2V0T3BlbigpOiBQcm9taXNlPEhUTUxJb25NZW51RWxlbWVudCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmdldE9wZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJuIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIG1lbnUgaW5zdGFuY2VzLlxuICAgKi9cbiAgZ2V0TWVudXMoKTogUHJvbWlzZTxIVE1MSW9uTWVudUVsZW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLmdldE1lbnVzKCk7XG4gIH1cblxuICByZWdpc3RlckFuaW1hdGlvbihuYW1lOiBzdHJpbmcsIGFuaW1hdGlvbjogQW5pbWF0aW9uQnVpbGRlcik6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLnJlZ2lzdGVyQW5pbWF0aW9uKG5hbWUsIGFuaW1hdGlvbik7XG4gIH1cblxuICBpc0FuaW1hdGluZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5pc0FuaW1hdGluZygpO1xuICB9XG5cbiAgX2dldE9wZW5TeW5jKCk6IEhUTUxJb25NZW51RWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubWVudUNvbnRyb2xsZXIuX2dldE9wZW5TeW5jKCk7XG4gIH1cblxuICBfY3JlYXRlQW5pbWF0aW9uKHR5cGU6IHN0cmluZywgbWVudUNtcDogTWVudUkpOiBQcm9taXNlPEFuaW1hdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLl9jcmVhdGVBbmltYXRpb24odHlwZSwgbWVudUNtcCk7XG4gIH1cblxuICBfcmVnaXN0ZXIobWVudTogTWVudUkpOiB2b2lkIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29udHJvbGxlci5fcmVnaXN0ZXIobWVudSk7XG4gIH1cblxuICBfdW5yZWdpc3RlcihtZW51OiBNZW51SSk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb250cm9sbGVyLl91bnJlZ2lzdGVyKG1lbnUpO1xuICB9XG5cbiAgX3NldE9wZW4obWVudTogTWVudUksIHNob3VsZE9wZW46IGJvb2xlYW4sIGFuaW1hdGVkOiBib29sZWFuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMubWVudUNvbnRyb2xsZXIuX3NldE9wZW4obWVudSwgc2hvdWxkT3BlbiwgYW5pbWF0ZWQpO1xuICB9XG59XG4iXX0=