@absolutejs/absolute 0.19.0-beta.1081 → 0.19.0-beta.1083

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 (150) hide show
  1. package/dist/.absolutejs/generated/angular/indexes/angular-example.1g23yr9r.js +167 -0
  2. package/dist/.absolutejs/generated/react/indexes/ReactExample.e6kzvjqy.js +3 -0
  3. package/dist/.absolutejs/generated/svelte/client/pages/SvelteExample.5pq2wmw6.js +1 -0
  4. package/dist/.absolutejs/generated/svelte/indexes/pages/SvelteExample.9zcw5vtg.js +1 -0
  5. package/dist/.absolutejs/generated/vue/client/pages/VueExample.q47m56s4.js +1 -0
  6. package/dist/.absolutejs/generated/vue/indexes/VueExample.6bqszcxv.js +1 -0
  7. package/dist/_prerendered/angular.html +45 -0
  8. package/dist/_prerendered/angular.meta +1 -0
  9. package/dist/_prerendered/html.html +70 -0
  10. package/dist/_prerendered/html.meta +1 -0
  11. package/dist/_prerendered/htmx.html +239 -0
  12. package/dist/_prerendered/htmx.meta +1 -0
  13. package/dist/_prerendered/index.html +70 -0
  14. package/dist/_prerendered/index.meta +1 -0
  15. package/dist/_prerendered/react.html +1 -0
  16. package/dist/_prerendered/react.meta +1 -0
  17. package/dist/_prerendered/vue.html +41 -0
  18. package/dist/_prerendered/vue.meta +1 -0
  19. package/dist/angular/browser.js +18 -18
  20. package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
  21. package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
  22. package/dist/angular/components/defer-slot-templates.directive.js +2 -2
  23. package/dist/angular/components/defer-slot.component.js +3 -3
  24. package/dist/angular/components/image.component.js +3 -3
  25. package/dist/angular/components/stream-slot.component.js +3 -3
  26. package/dist/angular/example/angular/pages/angular-example.djr1v9hj.js +373 -0
  27. package/dist/angular/index.js +43 -43
  28. package/dist/angular/server.js +31 -31
  29. package/dist/angular/vendor/angular_common.js +310 -0
  30. package/dist/angular/vendor/angular_common_http.js +129 -0
  31. package/dist/angular/vendor/angular_core.js +1177 -0
  32. package/dist/angular/vendor/angular_core_primitives_di.js +36 -0
  33. package/dist/angular/vendor/angular_core_primitives_signals.js +132 -0
  34. package/dist/angular/vendor/angular_platform-browser.js +117 -0
  35. package/dist/angular/vendor/angular_router.js +6410 -0
  36. package/dist/angular/vendor/chunk-2c9evnn0.js +4764 -0
  37. package/dist/angular/vendor/chunk-3evcs0sk.js +2567 -0
  38. package/dist/angular/vendor/chunk-5h3qyvpj.js +729 -0
  39. package/dist/angular/vendor/chunk-hgg0w52m.js +62 -0
  40. package/dist/angular/vendor/chunk-n6rt7w2y.js +23 -0
  41. package/dist/angular/vendor/chunk-t4tc7c8b.js +28013 -0
  42. package/dist/angular/vendor/chunk-vqd7j0kb.js +1786 -0
  43. package/dist/angular/vendor/chunk-yqjkhk8j.js +145 -0
  44. package/dist/angular/vendor/server/angular_common.js +311 -0
  45. package/dist/angular/vendor/server/angular_common_http.js +130 -0
  46. package/dist/angular/vendor/server/angular_core.js +1178 -0
  47. package/dist/angular/vendor/server/angular_core_primitives_di.js +37 -0
  48. package/dist/angular/vendor/server/angular_core_primitives_signals.js +133 -0
  49. package/dist/angular/vendor/server/angular_platform-browser.js +118 -0
  50. package/dist/angular/vendor/server/angular_platform-server.js +59 -0
  51. package/dist/angular/vendor/server/angular_router.js +261 -0
  52. package/dist/angular/vendor/server/angular_ssr.js +11669 -0
  53. package/dist/angular/vendor/server/chunk-2akxms5e.js +2566 -0
  54. package/dist/angular/vendor/server/chunk-659a9c3p.js +6218 -0
  55. package/dist/angular/vendor/server/chunk-8eecnjd1.js +16686 -0
  56. package/dist/angular/vendor/server/chunk-9jz2apvp.js +743 -0
  57. package/dist/angular/vendor/server/chunk-dhs2bg35.js +48 -0
  58. package/dist/angular/vendor/server/chunk-hs2gc8sr.js +1787 -0
  59. package/dist/angular/vendor/server/chunk-k46n34mb.js +63 -0
  60. package/dist/angular/vendor/server/chunk-p2fdvyh1.js +4767 -0
  61. package/dist/angular/vendor/server/chunk-r0w9r4bg.js +730 -0
  62. package/dist/angular/vendor/server/chunk-vthxj7kd.js +146 -0
  63. package/dist/angular/vendor/server/chunk-xahr7f2f.js +35534 -0
  64. package/dist/assets/css/tailwind.generated.css +218 -0
  65. package/dist/assets/css/vue-example-compiled.abzaxheq.css +32 -0
  66. package/dist/assets/ico/favicon.ico +0 -0
  67. package/dist/assets/png/absolutejs-temp.png +0 -0
  68. package/dist/assets/svg/HTML5_Badge.svg +7 -0
  69. package/dist/assets/svg/angular.svg +18 -0
  70. package/dist/assets/svg/htmx-logo-black.svg +9 -0
  71. package/dist/assets/svg/htmx-logo-white.svg +9 -0
  72. package/dist/assets/svg/react.svg +1 -0
  73. package/dist/assets/svg/svelte-logo.svg +1 -0
  74. package/dist/assets/svg/vue-logo.svg +4 -0
  75. package/dist/build.js +42 -42
  76. package/dist/chunk-7pp6gkg8.js +2 -0
  77. package/dist/chunk-ek2qyx2c.js +11 -0
  78. package/dist/chunk-ysr5ycdt.js +2 -0
  79. package/dist/cli/config/server.js +11 -11
  80. package/dist/cli/index.js +12 -1
  81. package/dist/client/index.js +13 -13
  82. package/dist/client.tsx +15 -0
  83. package/dist/example/html/scripts/typescript-example.fqn9zkdh.js +1 -0
  84. package/dist/html/pages/HTMLExample.html +70 -0
  85. package/dist/htmx/htmx.min.js +1 -0
  86. package/dist/htmx/pages/HTMXExample.html +239 -0
  87. package/dist/htmx.min.js +1 -0
  88. package/dist/index.js +84 -65
  89. package/dist/index.js.map +3 -3
  90. package/dist/indexes/angular-example.xsx88ph0.css +227 -0
  91. package/dist/indexes/html-example.s3banzdc.css +221 -0
  92. package/dist/indexes/htmx-example.5vgssc3f.css +221 -0
  93. package/dist/indexes/react-example.bz1k8xa2.css +245 -0
  94. package/dist/indexes/svelte-example.vy3015es.css +221 -0
  95. package/dist/indexes/vue-example.q4vf2wtq.css +228 -0
  96. package/dist/islands/index.js +14 -14
  97. package/dist/manifest.json +26 -0
  98. package/dist/nested/dynamic-module.txt +1 -0
  99. package/dist/package-asset.txt +1 -0
  100. package/dist/react/browser.js +3 -3
  101. package/dist/react/components/browser/index.js +5 -5
  102. package/dist/react/components/index.js +7 -7
  103. package/dist/react/hooks/index.js +2 -2
  104. package/dist/react/index.js +30 -30
  105. package/dist/react/jsxDevRuntimeCompat.js +1 -1
  106. package/dist/react/router/browser.js +2 -2
  107. package/dist/react/router/index.js +2 -2
  108. package/dist/react/server.js +13 -13
  109. package/dist/react/vendor/chunk-2kh60w9b.js +33 -0
  110. package/dist/react/vendor/chunk-9g12fvrw.js +236 -0
  111. package/dist/react/vendor/chunk-rejbymp5.js +837 -0
  112. package/dist/react/vendor/chunk-wwy122hz.js +200 -0
  113. package/dist/react/vendor/react-dom.js +44 -0
  114. package/dist/react/vendor/react-dom_client.js +15864 -0
  115. package/dist/react/vendor/react-refresh_runtime.js +304 -0
  116. package/dist/react/vendor/react.js +103 -0
  117. package/dist/react/vendor/react_jsx-dev-runtime.js +17 -0
  118. package/dist/react/vendor/react_jsx-runtime.js +22 -0
  119. package/dist/robots.txt +2 -0
  120. package/dist/runtime/blob.txt +1 -0
  121. package/dist/runtime/dir-join.txt +1 -0
  122. package/dist/runtime/nested/binary.bin +1 -0
  123. package/dist/runtime/nested/readfile.txt +1 -0
  124. package/dist/runtime/template.html +1 -0
  125. package/dist/server.js +92156 -0
  126. package/dist/sitemap.xml +48 -0
  127. package/dist/src/core/prepare.d.ts +7 -0
  128. package/dist/svelte/index.js +26 -26
  129. package/dist/svelte/router/page.js +1 -1
  130. package/dist/svelte/server/pages/SvelteExample.fxs20w1b.js +290 -0
  131. package/dist/svelte/server.js +13 -13
  132. package/dist/svelte/vendor/chunk-5qdxn1p3.js +4586 -0
  133. package/dist/svelte/vendor/chunk-8qdfbbez.js +12 -0
  134. package/dist/svelte/vendor/chunk-r2jyyfjt.js +4495 -0
  135. package/dist/svelte/vendor/svelte.js +49 -0
  136. package/dist/svelte/vendor/svelte_internal.js +2 -0
  137. package/dist/svelte/vendor/svelte_internal_client.js +395 -0
  138. package/dist/svelte/vendor/svelte_internal_disclose-version.js +7 -0
  139. package/dist/svelte/vendor/svelte_internal_flags_async.js +6 -0
  140. package/dist/svelte/vendor/svelte_internal_flags_legacy.js +6 -0
  141. package/dist/svelte/vendor/svelte_store.js +99 -0
  142. package/dist/vue/browser.js +3 -3
  143. package/dist/vue/components/Image.js +1 -1
  144. package/dist/vue/components/index.js +5 -5
  145. package/dist/vue/index.js +36 -36
  146. package/dist/vue/server/pages/VueExample.fyhmna2p.css +32 -0
  147. package/dist/vue/server/pages/VueExample.fyhmna2p.js +75 -0
  148. package/dist/vue/server.js +13 -13
  149. package/dist/vue/vendor/vue.js +11011 -0
  150. package/package.json +1 -1
@@ -0,0 +1,1787 @@
1
+ // @bun
2
+ import {
3
+ CommonModule,
4
+ PLATFORM_BROWSER_ID
5
+ } from "./chunk-p2fdvyh1.js";
6
+ import {
7
+ withHttpTransferCache
8
+ } from "./chunk-2akxms5e.js";
9
+ import {
10
+ DomAdapter,
11
+ XhrFactory,
12
+ getDOM,
13
+ parseCookieValue,
14
+ setRootDomAdapter
15
+ } from "./chunk-vthxj7kd.js";
16
+ import {
17
+ APP_ID,
18
+ ApplicationModule,
19
+ ApplicationRef,
20
+ CSP_NONCE,
21
+ Console,
22
+ DOCUMENT,
23
+ ENVIRONMENT_INITIALIZER,
24
+ ErrorHandler,
25
+ INJECTOR_SCOPE,
26
+ IS_ENABLED_BLOCKING_INITIAL_NAVIGATION,
27
+ Inject,
28
+ Injectable,
29
+ InjectionToken,
30
+ Injector,
31
+ NgModule,
32
+ NgZone,
33
+ Optional,
34
+ PLATFORM_ID,
35
+ PLATFORM_INITIALIZER,
36
+ RendererFactory2,
37
+ RendererStyleFlags2,
38
+ RuntimeError,
39
+ SecurityContext,
40
+ TESTABILITY,
41
+ TESTABILITY_GETTER,
42
+ Testability,
43
+ TracingService,
44
+ Version,
45
+ ViewEncapsulation,
46
+ XSS_SECURITY_URL,
47
+ _global,
48
+ _sanitizeHtml,
49
+ _sanitizeUrl,
50
+ allLeavingAnimations,
51
+ allowSanitizationBypassAndThrow,
52
+ bypassSanitizationTrustHtml,
53
+ bypassSanitizationTrustResourceUrl,
54
+ bypassSanitizationTrustScript,
55
+ bypassSanitizationTrustStyle,
56
+ bypassSanitizationTrustUrl,
57
+ createPlatformFactory,
58
+ formatRuntimeError,
59
+ forwardRef,
60
+ inject,
61
+ internalCreateApplication,
62
+ makeEnvironmentProviders,
63
+ platformCore,
64
+ provideStabilityDebugging,
65
+ resolveComponentResources,
66
+ setClassMetadata,
67
+ setDocument,
68
+ unwrapSafeValue,
69
+ withDomHydration,
70
+ withEventReplay,
71
+ withI18nSupport,
72
+ withIncrementalHydration,
73
+ \u{275}\u{275}defineInjectable as \u{275}_defineInjectable,
74
+ \u{275}\u{275}defineInjector as \u{275}_defineInjector,
75
+ \u{275}\u{275}defineNgModule as \u{275}_defineNgModule,
76
+ \u{275}\u{275}inject as \u{275}_inject
77
+ } from "./chunk-xahr7f2f.js";
78
+ import {
79
+ __export
80
+ } from "./chunk-dhs2bg35.js";
81
+
82
+ // node_modules/@angular/platform-browser/fesm2022/_dom_renderer-chunk.mjs
83
+ class EventManagerPlugin {
84
+ _doc;
85
+ constructor(_doc) {
86
+ this._doc = _doc;
87
+ }
88
+ manager;
89
+ }
90
+
91
+ class DomEventsPlugin extends EventManagerPlugin {
92
+ constructor(doc) {
93
+ super(doc);
94
+ }
95
+ supports(eventName) {
96
+ return true;
97
+ }
98
+ addEventListener(element, eventName, handler, options) {
99
+ element.addEventListener(eventName, handler, options);
100
+ return () => this.removeEventListener(element, eventName, handler, options);
101
+ }
102
+ removeEventListener(target, eventName, callback, options) {
103
+ return target.removeEventListener(eventName, callback, options);
104
+ }
105
+ static \u{275}fac = function DomEventsPlugin_Factory(__ngFactoryType__) {
106
+ return new (__ngFactoryType__ || DomEventsPlugin)(\u{275}_inject(DOCUMENT));
107
+ };
108
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
109
+ token: DomEventsPlugin,
110
+ factory: DomEventsPlugin.\u{275}fac
111
+ });
112
+ }
113
+ (() => {
114
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DomEventsPlugin, [{
115
+ type: Injectable
116
+ }], () => [{
117
+ type: undefined,
118
+ decorators: [{
119
+ type: Inject,
120
+ args: [DOCUMENT]
121
+ }]
122
+ }], null);
123
+ })();
124
+ var EVENT_MANAGER_PLUGINS = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "EventManagerPlugins" : "");
125
+
126
+ class EventManager {
127
+ _zone;
128
+ _plugins;
129
+ _eventNameToPlugin = new Map;
130
+ constructor(plugins, _zone) {
131
+ this._zone = _zone;
132
+ plugins.forEach((plugin) => {
133
+ plugin.manager = this;
134
+ });
135
+ const otherPlugins = plugins.filter((p) => !(p instanceof DomEventsPlugin));
136
+ this._plugins = otherPlugins.slice().reverse();
137
+ const domEventPlugin = plugins.find((p) => p instanceof DomEventsPlugin);
138
+ if (domEventPlugin) {
139
+ this._plugins.push(domEventPlugin);
140
+ }
141
+ }
142
+ addEventListener(element, eventName, handler, options) {
143
+ const plugin = this._findPluginFor(eventName);
144
+ return plugin.addEventListener(element, eventName, handler, options);
145
+ }
146
+ getZone() {
147
+ return this._zone;
148
+ }
149
+ _findPluginFor(eventName) {
150
+ let plugin = this._eventNameToPlugin.get(eventName);
151
+ if (plugin) {
152
+ return plugin;
153
+ }
154
+ const plugins = this._plugins;
155
+ plugin = plugins.find((plugin2) => plugin2.supports(eventName));
156
+ if (!plugin) {
157
+ throw new RuntimeError(5101, (typeof ngDevMode === "undefined" || ngDevMode) && `No event manager plugin found for event ${eventName}`);
158
+ }
159
+ this._eventNameToPlugin.set(eventName, plugin);
160
+ return plugin;
161
+ }
162
+ static \u{275}fac = function EventManager_Factory(__ngFactoryType__) {
163
+ return new (__ngFactoryType__ || EventManager)(\u{275}_inject(EVENT_MANAGER_PLUGINS), \u{275}_inject(NgZone));
164
+ };
165
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
166
+ token: EventManager,
167
+ factory: EventManager.\u{275}fac
168
+ });
169
+ }
170
+ (() => {
171
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(EventManager, [{
172
+ type: Injectable
173
+ }], () => [{
174
+ type: undefined,
175
+ decorators: [{
176
+ type: Inject,
177
+ args: [EVENT_MANAGER_PLUGINS]
178
+ }]
179
+ }, {
180
+ type: NgZone
181
+ }], null);
182
+ })();
183
+ var APP_ID_ATTRIBUTE_NAME = "ng-app-id";
184
+ function removeElements(elements) {
185
+ for (const element of elements) {
186
+ element.remove();
187
+ }
188
+ }
189
+ function createStyleElement(style, doc) {
190
+ const styleElement = doc.createElement("style");
191
+ styleElement.textContent = style;
192
+ return styleElement;
193
+ }
194
+ function addServerStyles(doc, appId, inline, external) {
195
+ const elements = doc.head?.querySelectorAll(`style[${APP_ID_ATTRIBUTE_NAME}="${appId}"],link[${APP_ID_ATTRIBUTE_NAME}="${appId}"]`);
196
+ if (elements) {
197
+ for (const styleElement of elements) {
198
+ styleElement.removeAttribute(APP_ID_ATTRIBUTE_NAME);
199
+ if (styleElement instanceof HTMLLinkElement) {
200
+ external.set(styleElement.href.slice(styleElement.href.lastIndexOf("/") + 1), {
201
+ usage: 0,
202
+ elements: [styleElement]
203
+ });
204
+ } else if (styleElement.textContent) {
205
+ inline.set(styleElement.textContent, {
206
+ usage: 0,
207
+ elements: [styleElement]
208
+ });
209
+ }
210
+ }
211
+ }
212
+ }
213
+ function createLinkElement(url, doc) {
214
+ const linkElement = doc.createElement("link");
215
+ linkElement.setAttribute("rel", "stylesheet");
216
+ linkElement.setAttribute("href", url);
217
+ return linkElement;
218
+ }
219
+
220
+ class SharedStylesHost {
221
+ doc;
222
+ appId;
223
+ nonce;
224
+ inline = new Map;
225
+ external = new Map;
226
+ hosts = new Set;
227
+ constructor(doc, appId, nonce, platformId = {}) {
228
+ this.doc = doc;
229
+ this.appId = appId;
230
+ this.nonce = nonce;
231
+ addServerStyles(doc, appId, this.inline, this.external);
232
+ this.hosts.add(doc.head);
233
+ }
234
+ addStyles(styles, urls) {
235
+ for (const value of styles) {
236
+ this.addUsage(value, this.inline, createStyleElement);
237
+ }
238
+ urls?.forEach((value) => this.addUsage(value, this.external, createLinkElement));
239
+ }
240
+ removeStyles(styles, urls) {
241
+ for (const value of styles) {
242
+ this.removeUsage(value, this.inline);
243
+ }
244
+ urls?.forEach((value) => this.removeUsage(value, this.external));
245
+ }
246
+ addUsage(value, usages, creator) {
247
+ const record = usages.get(value);
248
+ if (record) {
249
+ if ((typeof ngDevMode === "undefined" || ngDevMode) && record.usage === 0) {
250
+ record.elements.forEach((element) => element.setAttribute("ng-style-reused", ""));
251
+ }
252
+ record.usage++;
253
+ } else {
254
+ usages.set(value, {
255
+ usage: 1,
256
+ elements: [...this.hosts].map((host) => this.addElement(host, creator(value, this.doc)))
257
+ });
258
+ }
259
+ }
260
+ removeUsage(value, usages) {
261
+ const record = usages.get(value);
262
+ if (record) {
263
+ record.usage--;
264
+ if (record.usage <= 0) {
265
+ removeElements(record.elements);
266
+ usages.delete(value);
267
+ }
268
+ }
269
+ }
270
+ ngOnDestroy() {
271
+ for (const [, {
272
+ elements
273
+ }] of [...this.inline, ...this.external]) {
274
+ removeElements(elements);
275
+ }
276
+ this.hosts.clear();
277
+ }
278
+ addHost(hostNode) {
279
+ this.hosts.add(hostNode);
280
+ for (const [style, {
281
+ elements
282
+ }] of this.inline) {
283
+ elements.push(this.addElement(hostNode, createStyleElement(style, this.doc)));
284
+ }
285
+ for (const [url, {
286
+ elements
287
+ }] of this.external) {
288
+ elements.push(this.addElement(hostNode, createLinkElement(url, this.doc)));
289
+ }
290
+ }
291
+ removeHost(hostNode) {
292
+ this.hosts.delete(hostNode);
293
+ }
294
+ addElement(host, element) {
295
+ if (this.nonce) {
296
+ element.setAttribute("nonce", this.nonce);
297
+ }
298
+ if (typeof ngServerMode !== "undefined" && ngServerMode) {
299
+ element.setAttribute(APP_ID_ATTRIBUTE_NAME, this.appId);
300
+ }
301
+ return host.appendChild(element);
302
+ }
303
+ static \u{275}fac = function SharedStylesHost_Factory(__ngFactoryType__) {
304
+ return new (__ngFactoryType__ || SharedStylesHost)(\u{275}_inject(DOCUMENT), \u{275}_inject(APP_ID), \u{275}_inject(CSP_NONCE, 8), \u{275}_inject(PLATFORM_ID));
305
+ };
306
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
307
+ token: SharedStylesHost,
308
+ factory: SharedStylesHost.\u{275}fac
309
+ });
310
+ }
311
+ (() => {
312
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(SharedStylesHost, [{
313
+ type: Injectable
314
+ }], () => [{
315
+ type: Document,
316
+ decorators: [{
317
+ type: Inject,
318
+ args: [DOCUMENT]
319
+ }]
320
+ }, {
321
+ type: undefined,
322
+ decorators: [{
323
+ type: Inject,
324
+ args: [APP_ID]
325
+ }]
326
+ }, {
327
+ type: undefined,
328
+ decorators: [{
329
+ type: Inject,
330
+ args: [CSP_NONCE]
331
+ }, {
332
+ type: Optional
333
+ }]
334
+ }, {
335
+ type: undefined,
336
+ decorators: [{
337
+ type: Inject,
338
+ args: [PLATFORM_ID]
339
+ }]
340
+ }], null);
341
+ })();
342
+ var NAMESPACE_URIS = {
343
+ svg: "http://www.w3.org/2000/svg",
344
+ xhtml: "http://www.w3.org/1999/xhtml",
345
+ xlink: "http://www.w3.org/1999/xlink",
346
+ xml: "http://www.w3.org/XML/1998/namespace",
347
+ xmlns: "http://www.w3.org/2000/xmlns/",
348
+ math: "http://www.w3.org/1998/Math/MathML"
349
+ };
350
+ var COMPONENT_REGEX = /%COMP%/g;
351
+ var SOURCEMAP_URL_REGEXP = /\/\*#\s*sourceMappingURL=(.+?)\s*\*\//;
352
+ var PROTOCOL_REGEXP = /^https?:/;
353
+ var COMPONENT_VARIABLE = "%COMP%";
354
+ var HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
355
+ var CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;
356
+ var REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT = true;
357
+ var REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "RemoveStylesOnCompDestroy" : "", {
358
+ factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT
359
+ });
360
+ function shimContentAttribute(componentShortId) {
361
+ return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);
362
+ }
363
+ function shimHostAttribute(componentShortId) {
364
+ return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);
365
+ }
366
+ function shimStylesContent(compId, styles) {
367
+ return styles.map((s) => s.replace(COMPONENT_REGEX, compId));
368
+ }
369
+ function addBaseHrefToCssSourceMap(baseHref, styles) {
370
+ if (!baseHref) {
371
+ return styles;
372
+ }
373
+ const absoluteBaseHrefUrl = new URL(baseHref, "http://localhost");
374
+ return styles.map((cssContent) => {
375
+ if (!cssContent.includes("sourceMappingURL=")) {
376
+ return cssContent;
377
+ }
378
+ return cssContent.replace(SOURCEMAP_URL_REGEXP, (_, sourceMapUrl) => {
379
+ if (sourceMapUrl[0] === "/" || sourceMapUrl.startsWith("data:") || PROTOCOL_REGEXP.test(sourceMapUrl)) {
380
+ return `/*# sourceMappingURL=${sourceMapUrl} */`;
381
+ }
382
+ const {
383
+ pathname: resolvedSourceMapUrl
384
+ } = new URL(sourceMapUrl, absoluteBaseHrefUrl);
385
+ return `/*# sourceMappingURL=${resolvedSourceMapUrl} */`;
386
+ });
387
+ });
388
+ }
389
+
390
+ class DomRendererFactory2 {
391
+ eventManager;
392
+ sharedStylesHost;
393
+ appId;
394
+ removeStylesOnCompDestroy;
395
+ doc;
396
+ ngZone;
397
+ nonce;
398
+ tracingService;
399
+ rendererByCompId = new Map;
400
+ defaultRenderer;
401
+ constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestroy, doc, ngZone, nonce = null, tracingService = null) {
402
+ this.eventManager = eventManager;
403
+ this.sharedStylesHost = sharedStylesHost;
404
+ this.appId = appId;
405
+ this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;
406
+ this.doc = doc;
407
+ this.ngZone = ngZone;
408
+ this.nonce = nonce;
409
+ this.tracingService = tracingService;
410
+ this.defaultRenderer = new DefaultDomRenderer2(eventManager, doc, ngZone, this.tracingService);
411
+ }
412
+ createRenderer(element, type) {
413
+ if (!element || !type) {
414
+ return this.defaultRenderer;
415
+ }
416
+ if (typeof ngServerMode !== "undefined" && ngServerMode && (type.encapsulation === ViewEncapsulation.ShadowDom || type.encapsulation === ViewEncapsulation.ExperimentalIsolatedShadowDom)) {
417
+ type = {
418
+ ...type,
419
+ encapsulation: ViewEncapsulation.Emulated
420
+ };
421
+ }
422
+ const renderer = this.getOrCreateRenderer(element, type);
423
+ if (renderer instanceof EmulatedEncapsulationDomRenderer2) {
424
+ renderer.applyToHost(element);
425
+ } else if (renderer instanceof NoneEncapsulationDomRenderer) {
426
+ renderer.applyStyles();
427
+ }
428
+ return renderer;
429
+ }
430
+ getOrCreateRenderer(element, type) {
431
+ const rendererByCompId = this.rendererByCompId;
432
+ let renderer = rendererByCompId.get(type.id);
433
+ if (!renderer) {
434
+ const doc = this.doc;
435
+ const ngZone = this.ngZone;
436
+ const eventManager = this.eventManager;
437
+ const sharedStylesHost = this.sharedStylesHost;
438
+ const removeStylesOnCompDestroy = this.removeStylesOnCompDestroy;
439
+ const tracingService = this.tracingService;
440
+ switch (type.encapsulation) {
441
+ case ViewEncapsulation.Emulated:
442
+ renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestroy, doc, ngZone, tracingService);
443
+ break;
444
+ case ViewEncapsulation.ShadowDom:
445
+ return new ShadowDomRenderer(eventManager, element, type, doc, ngZone, this.nonce, tracingService, sharedStylesHost);
446
+ case ViewEncapsulation.ExperimentalIsolatedShadowDom:
447
+ return new ShadowDomRenderer(eventManager, element, type, doc, ngZone, this.nonce, tracingService);
448
+ default:
449
+ renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestroy, doc, ngZone, tracingService);
450
+ break;
451
+ }
452
+ rendererByCompId.set(type.id, renderer);
453
+ }
454
+ return renderer;
455
+ }
456
+ ngOnDestroy() {
457
+ this.rendererByCompId.clear();
458
+ }
459
+ componentReplaced(componentId) {
460
+ this.rendererByCompId.delete(componentId);
461
+ }
462
+ static \u{275}fac = function DomRendererFactory2_Factory(__ngFactoryType__) {
463
+ return new (__ngFactoryType__ || DomRendererFactory2)(\u{275}_inject(EventManager), \u{275}_inject(SharedStylesHost), \u{275}_inject(APP_ID), \u{275}_inject(REMOVE_STYLES_ON_COMPONENT_DESTROY), \u{275}_inject(DOCUMENT), \u{275}_inject(NgZone), \u{275}_inject(CSP_NONCE), \u{275}_inject(TracingService, 8));
464
+ };
465
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
466
+ token: DomRendererFactory2,
467
+ factory: DomRendererFactory2.\u{275}fac
468
+ });
469
+ }
470
+ (() => {
471
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DomRendererFactory2, [{
472
+ type: Injectable
473
+ }], () => [{
474
+ type: EventManager
475
+ }, {
476
+ type: SharedStylesHost
477
+ }, {
478
+ type: undefined,
479
+ decorators: [{
480
+ type: Inject,
481
+ args: [APP_ID]
482
+ }]
483
+ }, {
484
+ type: undefined,
485
+ decorators: [{
486
+ type: Inject,
487
+ args: [REMOVE_STYLES_ON_COMPONENT_DESTROY]
488
+ }]
489
+ }, {
490
+ type: Document,
491
+ decorators: [{
492
+ type: Inject,
493
+ args: [DOCUMENT]
494
+ }]
495
+ }, {
496
+ type: NgZone
497
+ }, {
498
+ type: undefined,
499
+ decorators: [{
500
+ type: Inject,
501
+ args: [CSP_NONCE]
502
+ }]
503
+ }, {
504
+ type: TracingService,
505
+ decorators: [{
506
+ type: Inject,
507
+ args: [TracingService]
508
+ }, {
509
+ type: Optional
510
+ }]
511
+ }], null);
512
+ })();
513
+
514
+ class DefaultDomRenderer2 {
515
+ eventManager;
516
+ doc;
517
+ ngZone;
518
+ tracingService;
519
+ data = Object.create(null);
520
+ throwOnSyntheticProps = true;
521
+ constructor(eventManager, doc, ngZone, tracingService) {
522
+ this.eventManager = eventManager;
523
+ this.doc = doc;
524
+ this.ngZone = ngZone;
525
+ this.tracingService = tracingService;
526
+ }
527
+ destroy() {}
528
+ destroyNode = null;
529
+ createElement(name, namespace) {
530
+ if (namespace) {
531
+ return this.doc.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);
532
+ }
533
+ return this.doc.createElement(name);
534
+ }
535
+ createComment(value) {
536
+ return this.doc.createComment(value);
537
+ }
538
+ createText(value) {
539
+ return this.doc.createTextNode(value);
540
+ }
541
+ appendChild(parent, newChild) {
542
+ const targetParent = isTemplateNode(parent) ? parent.content : parent;
543
+ targetParent.appendChild(newChild);
544
+ }
545
+ insertBefore(parent, newChild, refChild) {
546
+ if (parent) {
547
+ const targetParent = isTemplateNode(parent) ? parent.content : parent;
548
+ targetParent.insertBefore(newChild, refChild);
549
+ }
550
+ }
551
+ removeChild(_parent, oldChild) {
552
+ oldChild.remove();
553
+ }
554
+ selectRootElement(selectorOrNode, preserveContent) {
555
+ let el = typeof selectorOrNode === "string" ? this.doc.querySelector(selectorOrNode) : selectorOrNode;
556
+ if (!el) {
557
+ throw new RuntimeError(-5104, (typeof ngDevMode === "undefined" || ngDevMode) && `The selector "${selectorOrNode}" did not match any elements`);
558
+ }
559
+ if (!preserveContent) {
560
+ el.textContent = "";
561
+ }
562
+ return el;
563
+ }
564
+ parentNode(node) {
565
+ return node.parentNode;
566
+ }
567
+ nextSibling(node) {
568
+ return node.nextSibling;
569
+ }
570
+ setAttribute(el, name, value, namespace) {
571
+ if (namespace) {
572
+ name = namespace + ":" + name;
573
+ const namespaceUri = NAMESPACE_URIS[namespace];
574
+ if (namespaceUri) {
575
+ el.setAttributeNS(namespaceUri, name, value);
576
+ } else {
577
+ el.setAttribute(name, value);
578
+ }
579
+ } else {
580
+ el.setAttribute(name, value);
581
+ }
582
+ }
583
+ removeAttribute(el, name, namespace) {
584
+ if (namespace) {
585
+ const namespaceUri = NAMESPACE_URIS[namespace];
586
+ if (namespaceUri) {
587
+ el.removeAttributeNS(namespaceUri, name);
588
+ } else {
589
+ el.removeAttribute(`${namespace}:${name}`);
590
+ }
591
+ } else {
592
+ el.removeAttribute(name);
593
+ }
594
+ }
595
+ addClass(el, name) {
596
+ el.classList.add(name);
597
+ }
598
+ removeClass(el, name) {
599
+ el.classList.remove(name);
600
+ }
601
+ setStyle(el, style, value, flags) {
602
+ if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {
603
+ el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? "important" : "");
604
+ } else {
605
+ el.style[style] = value;
606
+ }
607
+ }
608
+ removeStyle(el, style, flags) {
609
+ if (flags & RendererStyleFlags2.DashCase) {
610
+ el.style.removeProperty(style);
611
+ } else {
612
+ el.style[style] = "";
613
+ }
614
+ }
615
+ setProperty(el, name, value) {
616
+ if (el == null) {
617
+ return;
618
+ }
619
+ (typeof ngDevMode === "undefined" || ngDevMode) && this.throwOnSyntheticProps && checkNoSyntheticProp(name, "property");
620
+ el[name] = value;
621
+ }
622
+ setValue(node, value) {
623
+ node.nodeValue = value;
624
+ }
625
+ listen(target, event, callback, options) {
626
+ (typeof ngDevMode === "undefined" || ngDevMode) && this.throwOnSyntheticProps && checkNoSyntheticProp(event, "listener");
627
+ if (typeof target === "string") {
628
+ target = getDOM().getGlobalEventTarget(this.doc, target);
629
+ if (!target) {
630
+ throw new RuntimeError(5102, (typeof ngDevMode === "undefined" || ngDevMode) && `Unsupported event target ${target} for event ${event}`);
631
+ }
632
+ }
633
+ let wrappedCallback = this.decoratePreventDefault(callback);
634
+ if (this.tracingService?.wrapEventListener) {
635
+ wrappedCallback = this.tracingService.wrapEventListener(target, event, wrappedCallback);
636
+ }
637
+ return this.eventManager.addEventListener(target, event, wrappedCallback, options);
638
+ }
639
+ decoratePreventDefault(eventHandler) {
640
+ return (event) => {
641
+ if (event === "__ngUnwrap__") {
642
+ return eventHandler;
643
+ }
644
+ const allowDefaultBehavior = typeof ngServerMode !== "undefined" && ngServerMode ? this.ngZone.runGuarded(() => eventHandler(event)) : eventHandler(event);
645
+ if (allowDefaultBehavior === false) {
646
+ event.preventDefault();
647
+ }
648
+ return;
649
+ };
650
+ }
651
+ }
652
+ var AT_CHARCODE = (() => 64)();
653
+ function checkNoSyntheticProp(name, nameKind) {
654
+ if (name.charCodeAt(0) === AT_CHARCODE) {
655
+ throw new RuntimeError(5105, `Unexpected synthetic ${nameKind} ${name} found. Please make sure that:
656
+ - Make sure \`provideAnimationsAsync()\`, \`provideAnimations()\` or \`provideNoopAnimations()\` call was added to a list of providers used to bootstrap an application.
657
+ - There is a corresponding animation configuration named \`${name}\` defined in the \`animations\` field of the \`@Component\` decorator (see https://angular.dev/api/core/Component#animations).`);
658
+ }
659
+ }
660
+ function isTemplateNode(node) {
661
+ return node.tagName === "TEMPLATE" && node.content !== undefined;
662
+ }
663
+
664
+ class ShadowDomRenderer extends DefaultDomRenderer2 {
665
+ hostEl;
666
+ sharedStylesHost;
667
+ shadowRoot;
668
+ constructor(eventManager, hostEl, component, doc, ngZone, nonce, tracingService, sharedStylesHost) {
669
+ super(eventManager, doc, ngZone, tracingService);
670
+ this.hostEl = hostEl;
671
+ this.sharedStylesHost = sharedStylesHost;
672
+ this.shadowRoot = hostEl.attachShadow({
673
+ mode: "open"
674
+ });
675
+ if (this.sharedStylesHost) {
676
+ this.sharedStylesHost.addHost(this.shadowRoot);
677
+ }
678
+ let styles = component.styles;
679
+ if (ngDevMode) {
680
+ const baseHref = getDOM().getBaseHref(doc) ?? "";
681
+ styles = addBaseHrefToCssSourceMap(baseHref, styles);
682
+ }
683
+ styles = shimStylesContent(component.id, styles);
684
+ for (const style of styles) {
685
+ const styleEl = document.createElement("style");
686
+ if (nonce) {
687
+ styleEl.setAttribute("nonce", nonce);
688
+ }
689
+ styleEl.textContent = style;
690
+ this.shadowRoot.appendChild(styleEl);
691
+ }
692
+ const styleUrls = component.getExternalStyles?.();
693
+ if (styleUrls) {
694
+ for (const styleUrl of styleUrls) {
695
+ const linkEl = createLinkElement(styleUrl, doc);
696
+ if (nonce) {
697
+ linkEl.setAttribute("nonce", nonce);
698
+ }
699
+ this.shadowRoot.appendChild(linkEl);
700
+ }
701
+ }
702
+ }
703
+ nodeOrShadowRoot(node) {
704
+ return node === this.hostEl ? this.shadowRoot : node;
705
+ }
706
+ appendChild(parent, newChild) {
707
+ return super.appendChild(this.nodeOrShadowRoot(parent), newChild);
708
+ }
709
+ insertBefore(parent, newChild, refChild) {
710
+ return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);
711
+ }
712
+ removeChild(_parent, oldChild) {
713
+ return super.removeChild(null, oldChild);
714
+ }
715
+ parentNode(node) {
716
+ return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));
717
+ }
718
+ destroy() {
719
+ if (this.sharedStylesHost) {
720
+ this.sharedStylesHost.removeHost(this.shadowRoot);
721
+ }
722
+ }
723
+ }
724
+
725
+ class NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {
726
+ sharedStylesHost;
727
+ removeStylesOnCompDestroy;
728
+ styles;
729
+ styleUrls;
730
+ constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, tracingService, compId) {
731
+ super(eventManager, doc, ngZone, tracingService);
732
+ this.sharedStylesHost = sharedStylesHost;
733
+ this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;
734
+ let styles = component.styles;
735
+ if (ngDevMode) {
736
+ const baseHref = getDOM().getBaseHref(doc) ?? "";
737
+ styles = addBaseHrefToCssSourceMap(baseHref, styles);
738
+ }
739
+ this.styles = compId ? shimStylesContent(compId, styles) : styles;
740
+ this.styleUrls = component.getExternalStyles?.(compId);
741
+ }
742
+ applyStyles() {
743
+ this.sharedStylesHost.addStyles(this.styles, this.styleUrls);
744
+ }
745
+ destroy() {
746
+ if (!this.removeStylesOnCompDestroy) {
747
+ return;
748
+ }
749
+ if (allLeavingAnimations.size === 0) {
750
+ this.sharedStylesHost.removeStyles(this.styles, this.styleUrls);
751
+ }
752
+ }
753
+ }
754
+
755
+ class EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {
756
+ contentAttr;
757
+ hostAttr;
758
+ constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestroy, doc, ngZone, tracingService) {
759
+ const compId = appId + "-" + component.id;
760
+ super(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, tracingService, compId);
761
+ this.contentAttr = shimContentAttribute(compId);
762
+ this.hostAttr = shimHostAttribute(compId);
763
+ }
764
+ applyToHost(element) {
765
+ this.applyStyles();
766
+ this.setAttribute(element, this.hostAttr, "");
767
+ }
768
+ createElement(parent, name) {
769
+ const el = super.createElement(parent, name);
770
+ super.setAttribute(el, this.contentAttr, "");
771
+ return el;
772
+ }
773
+ }
774
+
775
+ // node_modules/@angular/platform-browser/fesm2022/_browser-chunk.mjs
776
+ class BrowserDomAdapter extends DomAdapter {
777
+ supportsDOMEvents = true;
778
+ static makeCurrent() {
779
+ setRootDomAdapter(new BrowserDomAdapter);
780
+ }
781
+ onAndCancel(el, evt, listener, options) {
782
+ el.addEventListener(evt, listener, options);
783
+ return () => {
784
+ el.removeEventListener(evt, listener, options);
785
+ };
786
+ }
787
+ dispatchEvent(el, evt) {
788
+ el.dispatchEvent(evt);
789
+ }
790
+ remove(node) {
791
+ node.remove();
792
+ }
793
+ createElement(tagName, doc) {
794
+ doc = doc || this.getDefaultDocument();
795
+ return doc.createElement(tagName);
796
+ }
797
+ createHtmlDocument() {
798
+ return document.implementation.createHTMLDocument("fakeTitle");
799
+ }
800
+ getDefaultDocument() {
801
+ return document;
802
+ }
803
+ isElementNode(node) {
804
+ return node.nodeType === Node.ELEMENT_NODE;
805
+ }
806
+ isShadowRoot(node) {
807
+ return node instanceof DocumentFragment;
808
+ }
809
+ getGlobalEventTarget(doc, target) {
810
+ if (target === "window") {
811
+ return window;
812
+ }
813
+ if (target === "document") {
814
+ return doc;
815
+ }
816
+ if (target === "body") {
817
+ return doc.body;
818
+ }
819
+ return null;
820
+ }
821
+ getBaseHref(doc) {
822
+ const href = getBaseElementHref();
823
+ return href == null ? null : relativePath(href);
824
+ }
825
+ resetBaseElement() {
826
+ baseElement = null;
827
+ }
828
+ getUserAgent() {
829
+ return window.navigator.userAgent;
830
+ }
831
+ getCookie(name) {
832
+ return parseCookieValue(document.cookie, name);
833
+ }
834
+ }
835
+ var baseElement = null;
836
+ function getBaseElementHref() {
837
+ baseElement = baseElement || document.head.querySelector("base");
838
+ return baseElement ? baseElement.getAttribute("href") : null;
839
+ }
840
+ function relativePath(url) {
841
+ return new URL(url, document.baseURI).pathname;
842
+ }
843
+
844
+ class BrowserGetTestability {
845
+ addToWindow(registry) {
846
+ _global["getAngularTestability"] = (elem, findInAncestors = true) => {
847
+ const testability = registry.findTestabilityInTree(elem, findInAncestors);
848
+ if (testability == null) {
849
+ throw new RuntimeError(5103, (typeof ngDevMode === "undefined" || ngDevMode) && "Could not find testability for element.");
850
+ }
851
+ return testability;
852
+ };
853
+ _global["getAllAngularTestabilities"] = () => registry.getAllTestabilities();
854
+ _global["getAllAngularRootElements"] = () => registry.getAllRootElements();
855
+ const whenAllStable = (callback) => {
856
+ const testabilities = _global["getAllAngularTestabilities"]();
857
+ let count = testabilities.length;
858
+ const decrement = function() {
859
+ count--;
860
+ if (count == 0) {
861
+ callback();
862
+ }
863
+ };
864
+ testabilities.forEach((testability) => {
865
+ testability.whenStable(decrement);
866
+ });
867
+ };
868
+ if (!_global["frameworkStabilizers"]) {
869
+ _global["frameworkStabilizers"] = [];
870
+ }
871
+ _global["frameworkStabilizers"].push(whenAllStable);
872
+ }
873
+ findTestabilityInTree(registry, elem, findInAncestors) {
874
+ if (elem == null) {
875
+ return null;
876
+ }
877
+ const t = registry.getTestability(elem);
878
+ if (t != null) {
879
+ return t;
880
+ } else if (!findInAncestors) {
881
+ return null;
882
+ }
883
+ if (getDOM().isShadowRoot(elem)) {
884
+ return this.findTestabilityInTree(registry, elem.host, true);
885
+ }
886
+ return this.findTestabilityInTree(registry, elem.parentElement, true);
887
+ }
888
+ }
889
+
890
+ class BrowserXhr {
891
+ build() {
892
+ return new XMLHttpRequest;
893
+ }
894
+ static \u{275}fac = function BrowserXhr_Factory(__ngFactoryType__) {
895
+ return new (__ngFactoryType__ || BrowserXhr);
896
+ };
897
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
898
+ token: BrowserXhr,
899
+ factory: BrowserXhr.\u{275}fac
900
+ });
901
+ }
902
+ (() => {
903
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BrowserXhr, [{
904
+ type: Injectable
905
+ }], null, null);
906
+ })();
907
+ var MODIFIER_KEYS = ["alt", "control", "meta", "shift"];
908
+ var _keyMap = {
909
+ "\b": "Backspace",
910
+ "\t": "Tab",
911
+ "\x7F": "Delete",
912
+ "\x1B": "Escape",
913
+ Del: "Delete",
914
+ Esc: "Escape",
915
+ Left: "ArrowLeft",
916
+ Right: "ArrowRight",
917
+ Up: "ArrowUp",
918
+ Down: "ArrowDown",
919
+ Menu: "ContextMenu",
920
+ Scroll: "ScrollLock",
921
+ Win: "OS"
922
+ };
923
+ var MODIFIER_KEY_GETTERS = {
924
+ alt: (event) => event.altKey,
925
+ control: (event) => event.ctrlKey,
926
+ meta: (event) => event.metaKey,
927
+ shift: (event) => event.shiftKey
928
+ };
929
+
930
+ class KeyEventsPlugin extends EventManagerPlugin {
931
+ constructor(doc) {
932
+ super(doc);
933
+ }
934
+ supports(eventName) {
935
+ return KeyEventsPlugin.parseEventName(eventName) != null;
936
+ }
937
+ addEventListener(element, eventName, handler, options) {
938
+ const parsedEvent = KeyEventsPlugin.parseEventName(eventName);
939
+ const outsideHandler = KeyEventsPlugin.eventCallback(parsedEvent["fullKey"], handler, this.manager.getZone());
940
+ return this.manager.getZone().runOutsideAngular(() => {
941
+ return getDOM().onAndCancel(element, parsedEvent["domEventName"], outsideHandler, options);
942
+ });
943
+ }
944
+ static parseEventName(eventName) {
945
+ const parts = eventName.toLowerCase().split(".");
946
+ const domEventName = parts.shift();
947
+ if (parts.length === 0 || !(domEventName === "keydown" || domEventName === "keyup")) {
948
+ return null;
949
+ }
950
+ const key = KeyEventsPlugin._normalizeKey(parts.pop());
951
+ let fullKey = "";
952
+ let codeIX = parts.indexOf("code");
953
+ if (codeIX > -1) {
954
+ parts.splice(codeIX, 1);
955
+ fullKey = "code.";
956
+ }
957
+ MODIFIER_KEYS.forEach((modifierName) => {
958
+ const index = parts.indexOf(modifierName);
959
+ if (index > -1) {
960
+ parts.splice(index, 1);
961
+ fullKey += modifierName + ".";
962
+ }
963
+ });
964
+ fullKey += key;
965
+ if (parts.length != 0 || key.length === 0) {
966
+ return null;
967
+ }
968
+ const result = {};
969
+ result["domEventName"] = domEventName;
970
+ result["fullKey"] = fullKey;
971
+ return result;
972
+ }
973
+ static matchEventFullKeyCode(event, fullKeyCode) {
974
+ let keycode = _keyMap[event.key] || event.key;
975
+ let key = "";
976
+ if (fullKeyCode.indexOf("code.") > -1) {
977
+ keycode = event.code;
978
+ key = "code.";
979
+ }
980
+ if (keycode == null || !keycode)
981
+ return false;
982
+ keycode = keycode.toLowerCase();
983
+ if (keycode === " ") {
984
+ keycode = "space";
985
+ } else if (keycode === ".") {
986
+ keycode = "dot";
987
+ }
988
+ MODIFIER_KEYS.forEach((modifierName) => {
989
+ if (modifierName !== keycode) {
990
+ const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];
991
+ if (modifierGetter(event)) {
992
+ key += modifierName + ".";
993
+ }
994
+ }
995
+ });
996
+ key += keycode;
997
+ return key === fullKeyCode;
998
+ }
999
+ static eventCallback(fullKey, handler, zone) {
1000
+ return (event) => {
1001
+ if (KeyEventsPlugin.matchEventFullKeyCode(event, fullKey)) {
1002
+ zone.runGuarded(() => handler(event));
1003
+ }
1004
+ };
1005
+ }
1006
+ static _normalizeKey(keyName) {
1007
+ return keyName === "esc" ? "escape" : keyName;
1008
+ }
1009
+ static \u{275}fac = function KeyEventsPlugin_Factory(__ngFactoryType__) {
1010
+ return new (__ngFactoryType__ || KeyEventsPlugin)(\u{275}_inject(DOCUMENT));
1011
+ };
1012
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1013
+ token: KeyEventsPlugin,
1014
+ factory: KeyEventsPlugin.\u{275}fac
1015
+ });
1016
+ }
1017
+ (() => {
1018
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(KeyEventsPlugin, [{
1019
+ type: Injectable
1020
+ }], () => [{
1021
+ type: undefined,
1022
+ decorators: [{
1023
+ type: Inject,
1024
+ args: [DOCUMENT]
1025
+ }]
1026
+ }], null);
1027
+ })();
1028
+ async function bootstrapApplication(rootComponent, options, context) {
1029
+ const config = {
1030
+ rootComponent,
1031
+ ...createProvidersConfig(options, context)
1032
+ };
1033
+ if ((typeof ngJitMode === "undefined" || ngJitMode) && typeof fetch === "function") {
1034
+ await resolveJitResources();
1035
+ }
1036
+ return internalCreateApplication(config);
1037
+ }
1038
+ async function createApplication(options, context) {
1039
+ if ((typeof ngJitMode === "undefined" || ngJitMode) && typeof fetch === "function") {
1040
+ await resolveJitResources();
1041
+ }
1042
+ return internalCreateApplication(createProvidersConfig(options, context));
1043
+ }
1044
+ function createProvidersConfig(options, context) {
1045
+ return {
1046
+ platformRef: context?.platformRef,
1047
+ appProviders: [...BROWSER_MODULE_PROVIDERS, ...options?.providers ?? []],
1048
+ platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS
1049
+ };
1050
+ }
1051
+ async function resolveJitResources() {
1052
+ try {
1053
+ return await resolveComponentResources(fetch);
1054
+ } catch (error) {
1055
+ console.error(error);
1056
+ }
1057
+ }
1058
+ function provideProtractorTestingSupport() {
1059
+ return [...TESTABILITY_PROVIDERS];
1060
+ }
1061
+ function initDomAdapter() {
1062
+ BrowserDomAdapter.makeCurrent();
1063
+ }
1064
+ function errorHandler() {
1065
+ return new ErrorHandler;
1066
+ }
1067
+ function _document() {
1068
+ setDocument(document);
1069
+ return document;
1070
+ }
1071
+ var INTERNAL_BROWSER_PLATFORM_PROVIDERS = [{
1072
+ provide: PLATFORM_ID,
1073
+ useValue: PLATFORM_BROWSER_ID
1074
+ }, {
1075
+ provide: PLATFORM_INITIALIZER,
1076
+ useValue: initDomAdapter,
1077
+ multi: true
1078
+ }, {
1079
+ provide: DOCUMENT,
1080
+ useFactory: _document
1081
+ }];
1082
+ var platformBrowser = createPlatformFactory(platformCore, "browser", INTERNAL_BROWSER_PLATFORM_PROVIDERS);
1083
+ var BROWSER_MODULE_PROVIDERS_MARKER = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "BrowserModule Providers Marker" : "");
1084
+ var TESTABILITY_PROVIDERS = [{
1085
+ provide: TESTABILITY_GETTER,
1086
+ useClass: BrowserGetTestability
1087
+ }, {
1088
+ provide: TESTABILITY,
1089
+ useClass: Testability
1090
+ }, {
1091
+ provide: Testability,
1092
+ useClass: Testability
1093
+ }];
1094
+ var BROWSER_MODULE_PROVIDERS = [{
1095
+ provide: INJECTOR_SCOPE,
1096
+ useValue: "root"
1097
+ }, {
1098
+ provide: ErrorHandler,
1099
+ useFactory: errorHandler
1100
+ }, {
1101
+ provide: EVENT_MANAGER_PLUGINS,
1102
+ useClass: DomEventsPlugin,
1103
+ multi: true
1104
+ }, {
1105
+ provide: EVENT_MANAGER_PLUGINS,
1106
+ useClass: KeyEventsPlugin,
1107
+ multi: true
1108
+ }, DomRendererFactory2, SharedStylesHost, EventManager, {
1109
+ provide: RendererFactory2,
1110
+ useExisting: DomRendererFactory2
1111
+ }, {
1112
+ provide: XhrFactory,
1113
+ useClass: BrowserXhr
1114
+ }, typeof ngDevMode === "undefined" || ngDevMode ? {
1115
+ provide: BROWSER_MODULE_PROVIDERS_MARKER,
1116
+ useValue: true
1117
+ } : []];
1118
+
1119
+ class BrowserModule {
1120
+ constructor() {
1121
+ if (typeof ngDevMode === "undefined" || ngDevMode) {
1122
+ const providersAlreadyPresent = inject(BROWSER_MODULE_PROVIDERS_MARKER, {
1123
+ optional: true,
1124
+ skipSelf: true
1125
+ });
1126
+ if (providersAlreadyPresent) {
1127
+ throw new RuntimeError(5100, `Providers from the \`BrowserModule\` have already been loaded. If you need access ` + `to common directives such as NgIf and NgFor, import the \`CommonModule\` instead.`);
1128
+ }
1129
+ }
1130
+ }
1131
+ static \u{275}fac = function BrowserModule_Factory(__ngFactoryType__) {
1132
+ return new (__ngFactoryType__ || BrowserModule);
1133
+ };
1134
+ static \u{275}mod = /* @__PURE__ */ \u{275}_defineNgModule({
1135
+ type: BrowserModule
1136
+ });
1137
+ static \u{275}inj = /* @__PURE__ */ \u{275}_defineInjector({
1138
+ providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],
1139
+ imports: [CommonModule, ApplicationModule]
1140
+ });
1141
+ }
1142
+ (() => {
1143
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BrowserModule, [{
1144
+ type: NgModule,
1145
+ args: [{
1146
+ providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],
1147
+ exports: [CommonModule, ApplicationModule]
1148
+ }]
1149
+ }], () => [], null);
1150
+ })();
1151
+
1152
+ // node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs
1153
+ var exports_platform_browser = {};
1154
+ __export(exports_platform_browser, {
1155
+ \u{275}getDOM: () => getDOM,
1156
+ \u{275}SharedStylesHost: () => SharedStylesHost,
1157
+ \u{275}KeyEventsPlugin: () => KeyEventsPlugin,
1158
+ \u{275}HammerGesturesPlugin: () => HammerGesturesPlugin,
1159
+ \u{275}DomSanitizerImpl: () => DomSanitizerImpl,
1160
+ \u{275}DomRendererFactory2: () => DomRendererFactory2,
1161
+ \u{275}DomEventsPlugin: () => DomEventsPlugin,
1162
+ \u{275}BrowserGetTestability: () => BrowserGetTestability,
1163
+ \u{275}BrowserDomAdapter: () => BrowserDomAdapter,
1164
+ withNoHttpTransferCache: () => withNoHttpTransferCache,
1165
+ withIncrementalHydration: () => withIncrementalHydration2,
1166
+ withI18nSupport: () => withI18nSupport2,
1167
+ withHttpTransferCacheOptions: () => withHttpTransferCacheOptions,
1168
+ withEventReplay: () => withEventReplay2,
1169
+ provideProtractorTestingSupport: () => provideProtractorTestingSupport,
1170
+ provideClientHydration: () => provideClientHydration,
1171
+ platformBrowser: () => platformBrowser,
1172
+ enableDebugTools: () => enableDebugTools,
1173
+ disableDebugTools: () => disableDebugTools,
1174
+ createApplication: () => createApplication,
1175
+ bootstrapApplication: () => bootstrapApplication,
1176
+ VERSION: () => VERSION,
1177
+ Title: () => Title,
1178
+ REMOVE_STYLES_ON_COMPONENT_DESTROY: () => REMOVE_STYLES_ON_COMPONENT_DESTROY,
1179
+ Meta: () => Meta,
1180
+ HydrationFeatureKind: () => HydrationFeatureKind,
1181
+ HammerModule: () => HammerModule,
1182
+ HammerGestureConfig: () => HammerGestureConfig,
1183
+ HAMMER_LOADER: () => HAMMER_LOADER,
1184
+ HAMMER_GESTURE_CONFIG: () => HAMMER_GESTURE_CONFIG,
1185
+ EventManagerPlugin: () => EventManagerPlugin,
1186
+ EventManager: () => EventManager,
1187
+ EVENT_MANAGER_PLUGINS: () => EVENT_MANAGER_PLUGINS,
1188
+ DomSanitizer: () => DomSanitizer,
1189
+ By: () => By,
1190
+ BrowserModule: () => BrowserModule
1191
+ });
1192
+ class Meta {
1193
+ _doc;
1194
+ _dom;
1195
+ constructor(_doc) {
1196
+ this._doc = _doc;
1197
+ this._dom = getDOM();
1198
+ }
1199
+ addTag(tag, forceCreation = false) {
1200
+ if (!tag)
1201
+ return null;
1202
+ return this._getOrCreateElement(tag, forceCreation);
1203
+ }
1204
+ addTags(tags, forceCreation = false) {
1205
+ if (!tags)
1206
+ return [];
1207
+ return tags.reduce((result, tag) => {
1208
+ if (tag) {
1209
+ result.push(this._getOrCreateElement(tag, forceCreation));
1210
+ }
1211
+ return result;
1212
+ }, []);
1213
+ }
1214
+ getTag(attrSelector) {
1215
+ if (!attrSelector)
1216
+ return null;
1217
+ return this._doc.querySelector(`meta[${attrSelector}]`) || null;
1218
+ }
1219
+ getTags(attrSelector) {
1220
+ if (!attrSelector)
1221
+ return [];
1222
+ const list = this._doc.querySelectorAll(`meta[${attrSelector}]`);
1223
+ return list ? [].slice.call(list) : [];
1224
+ }
1225
+ updateTag(tag, selector) {
1226
+ if (!tag)
1227
+ return null;
1228
+ selector = selector || this._parseSelector(tag);
1229
+ const meta = this.getTag(selector);
1230
+ if (meta) {
1231
+ return this._setMetaElementAttributes(tag, meta);
1232
+ }
1233
+ return this._getOrCreateElement(tag, true);
1234
+ }
1235
+ removeTag(attrSelector) {
1236
+ this.removeTagElement(this.getTag(attrSelector));
1237
+ }
1238
+ removeTagElement(meta) {
1239
+ if (meta) {
1240
+ this._dom.remove(meta);
1241
+ }
1242
+ }
1243
+ _getOrCreateElement(meta, forceCreation = false) {
1244
+ if (!forceCreation) {
1245
+ const selector = this._parseSelector(meta);
1246
+ const elem = this.getTags(selector).filter((elem2) => this._containsAttributes(meta, elem2))[0];
1247
+ if (elem !== undefined)
1248
+ return elem;
1249
+ }
1250
+ const element = this._dom.createElement("meta");
1251
+ this._setMetaElementAttributes(meta, element);
1252
+ const head = this._doc.getElementsByTagName("head")[0];
1253
+ head.appendChild(element);
1254
+ return element;
1255
+ }
1256
+ _setMetaElementAttributes(tag, el) {
1257
+ Object.keys(tag).forEach((prop) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));
1258
+ return el;
1259
+ }
1260
+ _parseSelector(tag) {
1261
+ const attr = tag.name ? "name" : "property";
1262
+ return `${attr}="${tag[attr]}"`;
1263
+ }
1264
+ _containsAttributes(tag, elem) {
1265
+ return Object.keys(tag).every((key) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);
1266
+ }
1267
+ _getMetaKeyMap(prop) {
1268
+ return META_KEYS_MAP[prop] || prop;
1269
+ }
1270
+ static \u{275}fac = function Meta_Factory(__ngFactoryType__) {
1271
+ return new (__ngFactoryType__ || Meta)(\u{275}_inject(DOCUMENT));
1272
+ };
1273
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1274
+ token: Meta,
1275
+ factory: Meta.\u{275}fac,
1276
+ providedIn: "root"
1277
+ });
1278
+ }
1279
+ (() => {
1280
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Meta, [{
1281
+ type: Injectable,
1282
+ args: [{
1283
+ providedIn: "root"
1284
+ }]
1285
+ }], () => [{
1286
+ type: undefined,
1287
+ decorators: [{
1288
+ type: Inject,
1289
+ args: [DOCUMENT]
1290
+ }]
1291
+ }], null);
1292
+ })();
1293
+ var META_KEYS_MAP = {
1294
+ httpEquiv: "http-equiv"
1295
+ };
1296
+
1297
+ class Title {
1298
+ _doc;
1299
+ constructor(_doc) {
1300
+ this._doc = _doc;
1301
+ }
1302
+ getTitle() {
1303
+ return this._doc.title;
1304
+ }
1305
+ setTitle(newTitle) {
1306
+ this._doc.title = newTitle || "";
1307
+ }
1308
+ static \u{275}fac = function Title_Factory(__ngFactoryType__) {
1309
+ return new (__ngFactoryType__ || Title)(\u{275}_inject(DOCUMENT));
1310
+ };
1311
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1312
+ token: Title,
1313
+ factory: Title.\u{275}fac,
1314
+ providedIn: "root"
1315
+ });
1316
+ }
1317
+ (() => {
1318
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Title, [{
1319
+ type: Injectable,
1320
+ args: [{
1321
+ providedIn: "root"
1322
+ }]
1323
+ }], () => [{
1324
+ type: undefined,
1325
+ decorators: [{
1326
+ type: Inject,
1327
+ args: [DOCUMENT]
1328
+ }]
1329
+ }], null);
1330
+ })();
1331
+ function exportNgVar(name, value) {
1332
+ if (typeof COMPILED === "undefined" || !COMPILED) {
1333
+ const ng = _global["ng"] = _global["ng"] || {};
1334
+ ng[name] = value;
1335
+ }
1336
+ }
1337
+
1338
+ class ChangeDetectionPerfRecord {
1339
+ msPerTick;
1340
+ numTicks;
1341
+ constructor(msPerTick, numTicks) {
1342
+ this.msPerTick = msPerTick;
1343
+ this.numTicks = numTicks;
1344
+ }
1345
+ }
1346
+
1347
+ class AngularProfiler {
1348
+ appRef;
1349
+ constructor(ref) {
1350
+ this.appRef = ref.injector.get(ApplicationRef);
1351
+ }
1352
+ timeChangeDetection(config) {
1353
+ const record = config && config["record"];
1354
+ const profileName = "Change Detection";
1355
+ if (record && "profile" in console && typeof console.profile === "function") {
1356
+ console.profile(profileName);
1357
+ }
1358
+ const start = performance.now();
1359
+ let numTicks = 0;
1360
+ while (numTicks < 5 || performance.now() - start < 500) {
1361
+ this.appRef.tick();
1362
+ numTicks++;
1363
+ }
1364
+ const end = performance.now();
1365
+ if (record && "profileEnd" in console && typeof console.profileEnd === "function") {
1366
+ console.profileEnd(profileName);
1367
+ }
1368
+ const msPerTick = (end - start) / numTicks;
1369
+ console.log(`ran ${numTicks} change detection cycles`);
1370
+ console.log(`${msPerTick.toFixed(2)} ms per check`);
1371
+ return new ChangeDetectionPerfRecord(msPerTick, numTicks);
1372
+ }
1373
+ }
1374
+ var PROFILER_GLOBAL_NAME = "profiler";
1375
+ function enableDebugTools(ref) {
1376
+ exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));
1377
+ return ref;
1378
+ }
1379
+ function disableDebugTools() {
1380
+ exportNgVar(PROFILER_GLOBAL_NAME, null);
1381
+ }
1382
+
1383
+ class By {
1384
+ static all() {
1385
+ return () => true;
1386
+ }
1387
+ static css(selector) {
1388
+ return (debugElement) => {
1389
+ return debugElement.nativeElement != null ? elementMatches(debugElement.nativeElement, selector) : false;
1390
+ };
1391
+ }
1392
+ static directive(type) {
1393
+ return (debugNode) => debugNode.providerTokens.indexOf(type) !== -1;
1394
+ }
1395
+ }
1396
+ function elementMatches(n, selector) {
1397
+ if (getDOM().isElementNode(n)) {
1398
+ return n.matches && n.matches(selector) || n.msMatchesSelector && n.msMatchesSelector(selector) || n.webkitMatchesSelector && n.webkitMatchesSelector(selector);
1399
+ }
1400
+ return false;
1401
+ }
1402
+ var EVENT_NAMES = {
1403
+ pan: true,
1404
+ panstart: true,
1405
+ panmove: true,
1406
+ panend: true,
1407
+ pancancel: true,
1408
+ panleft: true,
1409
+ panright: true,
1410
+ panup: true,
1411
+ pandown: true,
1412
+ pinch: true,
1413
+ pinchstart: true,
1414
+ pinchmove: true,
1415
+ pinchend: true,
1416
+ pinchcancel: true,
1417
+ pinchin: true,
1418
+ pinchout: true,
1419
+ press: true,
1420
+ pressup: true,
1421
+ rotate: true,
1422
+ rotatestart: true,
1423
+ rotatemove: true,
1424
+ rotateend: true,
1425
+ rotatecancel: true,
1426
+ swipe: true,
1427
+ swipeleft: true,
1428
+ swiperight: true,
1429
+ swipeup: true,
1430
+ swipedown: true,
1431
+ tap: true,
1432
+ doubletap: true
1433
+ };
1434
+ var HAMMER_GESTURE_CONFIG = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "HammerGestureConfig" : "");
1435
+ var HAMMER_LOADER = new InjectionToken(typeof ngDevMode === "undefined" || ngDevMode ? "HammerLoader" : "");
1436
+
1437
+ class HammerGestureConfig {
1438
+ events = [];
1439
+ overrides = {};
1440
+ options;
1441
+ buildHammer(element) {
1442
+ const mc = new Hammer(element, this.options);
1443
+ mc.get("pinch").set({
1444
+ enable: true
1445
+ });
1446
+ mc.get("rotate").set({
1447
+ enable: true
1448
+ });
1449
+ for (const eventName in this.overrides) {
1450
+ mc.get(eventName).set(this.overrides[eventName]);
1451
+ }
1452
+ return mc;
1453
+ }
1454
+ static \u{275}fac = function HammerGestureConfig_Factory(__ngFactoryType__) {
1455
+ return new (__ngFactoryType__ || HammerGestureConfig);
1456
+ };
1457
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1458
+ token: HammerGestureConfig,
1459
+ factory: HammerGestureConfig.\u{275}fac
1460
+ });
1461
+ }
1462
+ (() => {
1463
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(HammerGestureConfig, [{
1464
+ type: Injectable
1465
+ }], null, null);
1466
+ })();
1467
+
1468
+ class HammerGesturesPlugin extends EventManagerPlugin {
1469
+ _config;
1470
+ _injector;
1471
+ loader;
1472
+ _loaderPromise = null;
1473
+ constructor(doc, _config, _injector, loader) {
1474
+ super(doc);
1475
+ this._config = _config;
1476
+ this._injector = _injector;
1477
+ this.loader = loader;
1478
+ }
1479
+ supports(eventName) {
1480
+ if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {
1481
+ return false;
1482
+ }
1483
+ if (!window.Hammer && !this.loader) {
1484
+ if (typeof ngDevMode === "undefined" || ngDevMode) {
1485
+ const _console = this._injector.get(Console);
1486
+ _console.warn(`The "${eventName}" event cannot be bound because Hammer.JS is not ` + `loaded and no custom loader has been specified.`);
1487
+ }
1488
+ return false;
1489
+ }
1490
+ return true;
1491
+ }
1492
+ addEventListener(element, eventName, handler) {
1493
+ const zone = this.manager.getZone();
1494
+ eventName = eventName.toLowerCase();
1495
+ if (!window.Hammer && this.loader) {
1496
+ this._loaderPromise = this._loaderPromise || zone.runOutsideAngular(() => this.loader());
1497
+ let cancelRegistration = false;
1498
+ let deregister = () => {
1499
+ cancelRegistration = true;
1500
+ };
1501
+ zone.runOutsideAngular(() => this._loaderPromise.then(() => {
1502
+ if (!window.Hammer) {
1503
+ if (typeof ngDevMode === "undefined" || ngDevMode) {
1504
+ const _console = this._injector.get(Console);
1505
+ _console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);
1506
+ }
1507
+ deregister = () => {};
1508
+ return;
1509
+ }
1510
+ if (!cancelRegistration) {
1511
+ deregister = this.addEventListener(element, eventName, handler);
1512
+ }
1513
+ }).catch(() => {
1514
+ if (typeof ngDevMode === "undefined" || ngDevMode) {
1515
+ const _console = this._injector.get(Console);
1516
+ _console.warn(`The "${eventName}" event cannot be bound because the custom ` + `Hammer.JS loader failed.`);
1517
+ }
1518
+ deregister = () => {};
1519
+ }));
1520
+ return () => {
1521
+ deregister();
1522
+ };
1523
+ }
1524
+ return zone.runOutsideAngular(() => {
1525
+ const mc = this._config.buildHammer(element);
1526
+ const callback = function(eventObj) {
1527
+ zone.runGuarded(function() {
1528
+ handler(eventObj);
1529
+ });
1530
+ };
1531
+ mc.on(eventName, callback);
1532
+ return () => {
1533
+ mc.off(eventName, callback);
1534
+ if (typeof mc.destroy === "function") {
1535
+ mc.destroy();
1536
+ }
1537
+ };
1538
+ });
1539
+ }
1540
+ isCustomEvent(eventName) {
1541
+ return this._config.events.indexOf(eventName) > -1;
1542
+ }
1543
+ static \u{275}fac = function HammerGesturesPlugin_Factory(__ngFactoryType__) {
1544
+ return new (__ngFactoryType__ || HammerGesturesPlugin)(\u{275}_inject(DOCUMENT), \u{275}_inject(HAMMER_GESTURE_CONFIG), \u{275}_inject(Injector), \u{275}_inject(HAMMER_LOADER, 8));
1545
+ };
1546
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1547
+ token: HammerGesturesPlugin,
1548
+ factory: HammerGesturesPlugin.\u{275}fac
1549
+ });
1550
+ }
1551
+ (() => {
1552
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(HammerGesturesPlugin, [{
1553
+ type: Injectable
1554
+ }], () => [{
1555
+ type: undefined,
1556
+ decorators: [{
1557
+ type: Inject,
1558
+ args: [DOCUMENT]
1559
+ }]
1560
+ }, {
1561
+ type: HammerGestureConfig,
1562
+ decorators: [{
1563
+ type: Inject,
1564
+ args: [HAMMER_GESTURE_CONFIG]
1565
+ }]
1566
+ }, {
1567
+ type: Injector
1568
+ }, {
1569
+ type: undefined,
1570
+ decorators: [{
1571
+ type: Optional
1572
+ }, {
1573
+ type: Inject,
1574
+ args: [HAMMER_LOADER]
1575
+ }]
1576
+ }], null);
1577
+ })();
1578
+
1579
+ class HammerModule {
1580
+ static \u{275}fac = function HammerModule_Factory(__ngFactoryType__) {
1581
+ return new (__ngFactoryType__ || HammerModule);
1582
+ };
1583
+ static \u{275}mod = /* @__PURE__ */ \u{275}_defineNgModule({
1584
+ type: HammerModule
1585
+ });
1586
+ static \u{275}inj = /* @__PURE__ */ \u{275}_defineInjector({
1587
+ providers: [{
1588
+ provide: EVENT_MANAGER_PLUGINS,
1589
+ useClass: HammerGesturesPlugin,
1590
+ multi: true,
1591
+ deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Injector, [new Optional, HAMMER_LOADER]]
1592
+ }, {
1593
+ provide: HAMMER_GESTURE_CONFIG,
1594
+ useClass: HammerGestureConfig
1595
+ }]
1596
+ });
1597
+ }
1598
+ (() => {
1599
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(HammerModule, [{
1600
+ type: NgModule,
1601
+ args: [{
1602
+ providers: [{
1603
+ provide: EVENT_MANAGER_PLUGINS,
1604
+ useClass: HammerGesturesPlugin,
1605
+ multi: true,
1606
+ deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Injector, [new Optional, HAMMER_LOADER]]
1607
+ }, {
1608
+ provide: HAMMER_GESTURE_CONFIG,
1609
+ useClass: HammerGestureConfig
1610
+ }]
1611
+ }]
1612
+ }], null, null);
1613
+ })();
1614
+
1615
+ class DomSanitizer {
1616
+ static \u{275}fac = function DomSanitizer_Factory(__ngFactoryType__) {
1617
+ return new (__ngFactoryType__ || DomSanitizer);
1618
+ };
1619
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1620
+ token: DomSanitizer,
1621
+ factory: function DomSanitizer_Factory(__ngFactoryType__) {
1622
+ let __ngConditionalFactory__ = null;
1623
+ if (__ngFactoryType__) {
1624
+ __ngConditionalFactory__ = new (__ngFactoryType__ || DomSanitizer);
1625
+ } else {
1626
+ __ngConditionalFactory__ = \u{275}_inject(DomSanitizerImpl);
1627
+ }
1628
+ return __ngConditionalFactory__;
1629
+ },
1630
+ providedIn: "root"
1631
+ });
1632
+ }
1633
+ (() => {
1634
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DomSanitizer, [{
1635
+ type: Injectable,
1636
+ args: [{
1637
+ providedIn: "root",
1638
+ useExisting: forwardRef(() => DomSanitizerImpl)
1639
+ }]
1640
+ }], null, null);
1641
+ })();
1642
+
1643
+ class DomSanitizerImpl extends DomSanitizer {
1644
+ _doc;
1645
+ constructor(_doc) {
1646
+ super();
1647
+ this._doc = _doc;
1648
+ }
1649
+ sanitize(ctx, value) {
1650
+ if (value == null)
1651
+ return null;
1652
+ switch (ctx) {
1653
+ case SecurityContext.NONE:
1654
+ return value;
1655
+ case SecurityContext.HTML:
1656
+ if (allowSanitizationBypassAndThrow(value, "HTML")) {
1657
+ return unwrapSafeValue(value);
1658
+ }
1659
+ return _sanitizeHtml(this._doc, String(value)).toString();
1660
+ case SecurityContext.STYLE:
1661
+ if (allowSanitizationBypassAndThrow(value, "Style")) {
1662
+ return unwrapSafeValue(value);
1663
+ }
1664
+ return value;
1665
+ case SecurityContext.SCRIPT:
1666
+ if (allowSanitizationBypassAndThrow(value, "Script")) {
1667
+ return unwrapSafeValue(value);
1668
+ }
1669
+ throw new RuntimeError(5200, (typeof ngDevMode === "undefined" || ngDevMode) && "unsafe value used in a script context");
1670
+ case SecurityContext.URL:
1671
+ if (allowSanitizationBypassAndThrow(value, "URL")) {
1672
+ return unwrapSafeValue(value);
1673
+ }
1674
+ return _sanitizeUrl(String(value));
1675
+ case SecurityContext.RESOURCE_URL:
1676
+ if (allowSanitizationBypassAndThrow(value, "ResourceURL")) {
1677
+ return unwrapSafeValue(value);
1678
+ }
1679
+ throw new RuntimeError(5201, (typeof ngDevMode === "undefined" || ngDevMode) && `unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`);
1680
+ default:
1681
+ throw new RuntimeError(5202, (typeof ngDevMode === "undefined" || ngDevMode) && `Unexpected SecurityContext ${ctx} (see ${XSS_SECURITY_URL})`);
1682
+ }
1683
+ }
1684
+ bypassSecurityTrustHtml(value) {
1685
+ return bypassSanitizationTrustHtml(value);
1686
+ }
1687
+ bypassSecurityTrustStyle(value) {
1688
+ return bypassSanitizationTrustStyle(value);
1689
+ }
1690
+ bypassSecurityTrustScript(value) {
1691
+ return bypassSanitizationTrustScript(value);
1692
+ }
1693
+ bypassSecurityTrustUrl(value) {
1694
+ return bypassSanitizationTrustUrl(value);
1695
+ }
1696
+ bypassSecurityTrustResourceUrl(value) {
1697
+ return bypassSanitizationTrustResourceUrl(value);
1698
+ }
1699
+ static \u{275}fac = function DomSanitizerImpl_Factory(__ngFactoryType__) {
1700
+ return new (__ngFactoryType__ || DomSanitizerImpl)(\u{275}_inject(DOCUMENT));
1701
+ };
1702
+ static \u{275}prov = /* @__PURE__ */ \u{275}_defineInjectable({
1703
+ token: DomSanitizerImpl,
1704
+ factory: DomSanitizerImpl.\u{275}fac,
1705
+ providedIn: "root"
1706
+ });
1707
+ }
1708
+ (() => {
1709
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(DomSanitizerImpl, [{
1710
+ type: Injectable,
1711
+ args: [{
1712
+ providedIn: "root"
1713
+ }]
1714
+ }], () => [{
1715
+ type: undefined,
1716
+ decorators: [{
1717
+ type: Inject,
1718
+ args: [DOCUMENT]
1719
+ }]
1720
+ }], null);
1721
+ })();
1722
+ var HydrationFeatureKind;
1723
+ (function(HydrationFeatureKind2) {
1724
+ HydrationFeatureKind2[HydrationFeatureKind2["NoHttpTransferCache"] = 0] = "NoHttpTransferCache";
1725
+ HydrationFeatureKind2[HydrationFeatureKind2["HttpTransferCacheOptions"] = 1] = "HttpTransferCacheOptions";
1726
+ HydrationFeatureKind2[HydrationFeatureKind2["I18nSupport"] = 2] = "I18nSupport";
1727
+ HydrationFeatureKind2[HydrationFeatureKind2["EventReplay"] = 3] = "EventReplay";
1728
+ HydrationFeatureKind2[HydrationFeatureKind2["IncrementalHydration"] = 4] = "IncrementalHydration";
1729
+ })(HydrationFeatureKind || (HydrationFeatureKind = {}));
1730
+ function hydrationFeature(\u{275}kind, \u{275}providers = [], \u{275}options = {}) {
1731
+ return {
1732
+ \u{275}kind,
1733
+ \u{275}providers
1734
+ };
1735
+ }
1736
+ function withNoHttpTransferCache() {
1737
+ return hydrationFeature(HydrationFeatureKind.NoHttpTransferCache);
1738
+ }
1739
+ function withHttpTransferCacheOptions(options) {
1740
+ return hydrationFeature(HydrationFeatureKind.HttpTransferCacheOptions, withHttpTransferCache(options));
1741
+ }
1742
+ function withI18nSupport2() {
1743
+ return hydrationFeature(HydrationFeatureKind.I18nSupport, withI18nSupport());
1744
+ }
1745
+ function withEventReplay2() {
1746
+ return hydrationFeature(HydrationFeatureKind.EventReplay, withEventReplay());
1747
+ }
1748
+ function withIncrementalHydration2() {
1749
+ return hydrationFeature(HydrationFeatureKind.IncrementalHydration, withIncrementalHydration());
1750
+ }
1751
+ function provideEnabledBlockingInitialNavigationDetector() {
1752
+ return [{
1753
+ provide: ENVIRONMENT_INITIALIZER,
1754
+ useValue: () => {
1755
+ const isEnabledBlockingInitialNavigation = inject(IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, {
1756
+ optional: true
1757
+ });
1758
+ if (isEnabledBlockingInitialNavigation) {
1759
+ const console2 = inject(Console);
1760
+ const message = formatRuntimeError(5001, "Configuration error: found both hydration and enabledBlocking initial navigation " + "in the same application, which is a contradiction.");
1761
+ console2.warn(message);
1762
+ }
1763
+ },
1764
+ multi: true
1765
+ }];
1766
+ }
1767
+ function provideClientHydration(...features) {
1768
+ const providers = [];
1769
+ const featuresKind = new Set;
1770
+ for (const {
1771
+ \u{275}providers,
1772
+ \u{275}kind
1773
+ } of features) {
1774
+ featuresKind.add(\u{275}kind);
1775
+ if (\u{275}providers.length) {
1776
+ providers.push(\u{275}providers);
1777
+ }
1778
+ }
1779
+ const hasHttpTransferCacheOptions = featuresKind.has(HydrationFeatureKind.HttpTransferCacheOptions);
1780
+ if (typeof ngDevMode !== "undefined" && ngDevMode && featuresKind.has(HydrationFeatureKind.NoHttpTransferCache) && hasHttpTransferCacheOptions) {
1781
+ throw new RuntimeError(5001, "Configuration error: found both withHttpTransferCacheOptions() and withNoHttpTransferCache() in the same call to provideClientHydration(), which is a contradiction.");
1782
+ }
1783
+ return makeEnvironmentProviders([typeof ngDevMode !== "undefined" && ngDevMode ? provideEnabledBlockingInitialNavigationDetector() : [], typeof ngDevMode !== "undefined" && ngDevMode ? provideStabilityDebugging() : [], withDomHydration(), featuresKind.has(HydrationFeatureKind.NoHttpTransferCache) || hasHttpTransferCacheOptions ? [] : withHttpTransferCache({}), providers]);
1784
+ }
1785
+ var VERSION = /* @__PURE__ */ new Version("21.2.6");
1786
+
1787
+ export { EventManagerPlugin, EVENT_MANAGER_PLUGINS, EventManager, REMOVE_STYLES_ON_COMPONENT_DESTROY, BrowserDomAdapter, bootstrapApplication, createApplication, provideProtractorTestingSupport, platformBrowser, BrowserModule, Meta, Title, enableDebugTools, disableDebugTools, By, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, DomSanitizer, HydrationFeatureKind, withNoHttpTransferCache, withHttpTransferCacheOptions, withI18nSupport2 as withI18nSupport, withEventReplay2 as withEventReplay, withIncrementalHydration2 as withIncrementalHydration, provideClientHydration, VERSION, exports_platform_browser };