@angular/platform-browser 17.0.0-next.5 → 17.0.0-next.7

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 (36) hide show
  1. package/animations/async/index.d.ts +40 -0
  2. package/animations/index.d.ts +1 -72
  3. package/esm2022/animations/async/async.mjs +5 -0
  4. package/esm2022/animations/async/index.mjs +13 -0
  5. package/esm2022/animations/async/public_api.mjs +14 -0
  6. package/esm2022/animations/async/src/async-animations.mjs +14 -0
  7. package/esm2022/animations/async/src/async_animation_renderer.mjs +156 -0
  8. package/esm2022/animations/async/src/providers.mjs +55 -0
  9. package/esm2022/animations/src/animation_builder.mjs +7 -7
  10. package/esm2022/animations/src/module.mjs +8 -8
  11. package/esm2022/animations/src/private_export.mjs +2 -3
  12. package/esm2022/animations/src/providers.mjs +7 -8
  13. package/esm2022/src/browser/meta.mjs +5 -5
  14. package/esm2022/src/browser/title.mjs +5 -5
  15. package/esm2022/src/browser/xhr.mjs +3 -3
  16. package/esm2022/src/browser.mjs +6 -6
  17. package/esm2022/src/dom/dom_renderer.mjs +30 -23
  18. package/esm2022/src/dom/events/dom_events.mjs +5 -5
  19. package/esm2022/src/dom/events/event_manager.mjs +5 -5
  20. package/esm2022/src/dom/events/hammer_gestures.mjs +12 -12
  21. package/esm2022/src/dom/events/key_events.mjs +5 -5
  22. package/esm2022/src/dom/shared_styles_host.mjs +48 -21
  23. package/esm2022/src/security/dom_sanitization_service.mjs +9 -9
  24. package/esm2022/src/version.mjs +1 -1
  25. package/esm2022/testing/src/browser.mjs +4 -4
  26. package/fesm2022/animations/async.mjs +223 -0
  27. package/fesm2022/animations/async.mjs.map +1 -0
  28. package/fesm2022/animations.mjs +23 -280
  29. package/fesm2022/animations.mjs.map +1 -1
  30. package/fesm2022/platform-browser.mjs +132 -98
  31. package/fesm2022/platform-browser.mjs.map +1 -1
  32. package/fesm2022/testing.mjs +5 -5
  33. package/index.d.ts +6 -6
  34. package/package.json +10 -4
  35. package/testing/index.d.ts +1 -1
  36. package/esm2022/animations/src/animation_renderer.mjs +0 -261
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.5
2
+ * @license Angular v17.0.0-next.7
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -162,10 +162,10 @@ class BrowserXhr {
162
162
  build() {
163
163
  return new XMLHttpRequest();
164
164
  }
165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
166
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserXhr }); }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
166
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserXhr }); }
167
167
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserXhr, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserXhr, decorators: [{
169
169
  type: Injectable
170
170
  }] });
171
171
 
@@ -227,15 +227,15 @@ class EventManager {
227
227
  this._eventNameToPlugin.set(eventName, plugin);
228
228
  return plugin;
229
229
  }
230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
231
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: EventManager }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
231
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EventManager }); }
232
232
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: EventManager, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: EventManager, decorators: [{
234
234
  type: Injectable
235
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
235
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
236
236
  type: Inject,
237
237
  args: [EVENT_MANAGER_PLUGINS]
238
- }] }, { type: i0.NgZone }]; } });
238
+ }] }, { type: i0.NgZone }] });
239
239
  /**
240
240
  * The plugin definition for the `EventManager` class
241
241
  *
@@ -274,14 +274,17 @@ class SharedStylesHost {
274
274
  }
275
275
  }
276
276
  }
277
- removeStyles(styles) {
277
+ disableStyles(styles) {
278
278
  for (const style of styles) {
279
279
  const usageCount = this.changeUsageCount(style, -1);
280
- if (usageCount <= 0) {
281
- this.onStyleRemoved(style);
280
+ if (usageCount === 0) {
281
+ this.visitStyleElement(style, disableStylesheet);
282
282
  }
283
283
  }
284
284
  }
285
+ visitStyleElement(style, callback) {
286
+ this.styleRef.get(style)?.elements?.forEach(callback);
287
+ }
285
288
  ngOnDestroy() {
286
289
  const styleNodesInDOM = this.styleNodesInDOM;
287
290
  if (styleNodesInDOM) {
@@ -289,7 +292,8 @@ class SharedStylesHost {
289
292
  styleNodesInDOM.clear();
290
293
  }
291
294
  for (const style of this.getAllStyles()) {
292
- this.onStyleRemoved(style);
295
+ this.visitStyleElement(style, (node) => node.remove());
296
+ this.styleRef.delete(style);
293
297
  }
294
298
  this.resetHostNodes();
295
299
  }
@@ -310,11 +314,6 @@ class SharedStylesHost {
310
314
  this.addStyleToHost(host, style);
311
315
  }
312
316
  }
313
- onStyleRemoved(style) {
314
- const styleRef = this.styleRef;
315
- styleRef.get(style)?.elements?.forEach((node) => node.remove());
316
- styleRef.delete(style);
317
- }
318
317
  collectServerRenderedStyles() {
319
318
  const styles = this.doc.head?.querySelectorAll(`style[${APP_ID_ATTRIBUTE_NAME}="${this.appId}"]`);
320
319
  if (styles?.length) {
@@ -332,11 +331,12 @@ class SharedStylesHost {
332
331
  const map = this.styleRef;
333
332
  if (map.has(style)) {
334
333
  const styleRefValue = map.get(style);
335
- styleRefValue.usage += delta;
334
+ styleRefValue.usage = nonNegativeNumber(styleRefValue.usage + delta);
336
335
  return styleRefValue.usage;
337
336
  }
338
- map.set(style, { usage: delta, elements: [] });
339
- return delta;
337
+ const usage = nonNegativeNumber(delta);
338
+ map.set(style, { usage, elements: [] });
339
+ return usage;
340
340
  }
341
341
  getStyleElement(host, style) {
342
342
  const styleNodesInDOM = this.styleNodesInDOM;
@@ -367,9 +367,15 @@ class SharedStylesHost {
367
367
  const styleEl = this.getStyleElement(host, style);
368
368
  host.appendChild(styleEl);
369
369
  const styleRef = this.styleRef;
370
- const styleElRef = styleRef.get(style)?.elements;
371
- if (styleElRef) {
372
- styleElRef.push(styleEl);
370
+ const styleResult = styleRef.get(style);
371
+ if (styleResult) {
372
+ if (styleResult.usage === 0) {
373
+ disableStylesheet(styleEl);
374
+ }
375
+ else {
376
+ enableStylesheet(styleEl);
377
+ }
378
+ styleResult.elements.push(styleEl);
373
379
  }
374
380
  else {
375
381
  styleRef.set(style, { elements: [styleEl], usage: 1 });
@@ -381,12 +387,12 @@ class SharedStylesHost {
381
387
  // Re-add the head element back since this is the default host.
382
388
  hostNodes.add(this.doc.head);
383
389
  }
384
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: SharedStylesHost, deps: [{ token: DOCUMENT }, { token: APP_ID }, { token: CSP_NONCE, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
385
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: SharedStylesHost }); }
390
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: SharedStylesHost, deps: [{ token: DOCUMENT }, { token: APP_ID }, { token: CSP_NONCE, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
391
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: SharedStylesHost }); }
386
392
  }
387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: SharedStylesHost, decorators: [{
393
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: SharedStylesHost, decorators: [{
388
394
  type: Injectable
389
- }], ctorParameters: function () { return [{ type: Document, decorators: [{
395
+ }], ctorParameters: () => [{ type: Document, decorators: [{
390
396
  type: Inject,
391
397
  args: [DOCUMENT]
392
398
  }] }, { type: undefined, decorators: [{
@@ -400,7 +406,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5",
400
406
  }] }, { type: undefined, decorators: [{
401
407
  type: Inject,
402
408
  args: [PLATFORM_ID]
403
- }] }]; } });
409
+ }] }] });
410
+ /**
411
+ * When a component that has styles is destroyed, we disable stylesheets
412
+ * instead of removing them to avoid performance issues related to style
413
+ * recalculation in a browser.
414
+ */
415
+ function disableStylesheet(node) {
416
+ node.disabled = true;
417
+ }
418
+ /**
419
+ * Enables a stylesheet in a browser, see the `disableStylesheet` function
420
+ * docs for additional info.
421
+ */
422
+ function enableStylesheet(node) {
423
+ node.disabled = false;
424
+ }
425
+ /**
426
+ * When the value is a negative a value of `0` is returned.
427
+ */
428
+ function nonNegativeNumber(value) {
429
+ return value < 0 ? 0 : value;
430
+ }
404
431
 
405
432
  const NAMESPACE_URIS = {
406
433
  'svg': 'http://www.w3.org/2000/svg',
@@ -420,12 +447,12 @@ const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;
420
447
  const REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT = true;
421
448
  /**
422
449
  * A [DI token](guide/glossary#di-token "DI token definition") that indicates whether styles
423
- * of destroyed components should be removed from DOM.
450
+ * of destroyed components should be disabled.
424
451
  *
425
452
  * By default, the value is set to `true`.
426
453
  * @publicApi
427
454
  */
428
- const REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken('RemoveStylesOnCompDestroy', {
455
+ const REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken(ngDevMode ? 'RemoveStylesOnCompDestroy' : '', {
429
456
  providedIn: 'root',
430
457
  factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,
431
458
  });
@@ -439,11 +466,11 @@ function shimStylesContent(compId, styles) {
439
466
  return styles.map(s => s.replace(COMPONENT_REGEX, compId));
440
467
  }
441
468
  class DomRendererFactory2 {
442
- constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestroy, doc, platformId, ngZone, nonce = null) {
469
+ constructor(eventManager, sharedStylesHost, appId, disableStylesOnCompDestroy, doc, platformId, ngZone, nonce = null) {
443
470
  this.eventManager = eventManager;
444
471
  this.sharedStylesHost = sharedStylesHost;
445
472
  this.appId = appId;
446
- this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;
473
+ this.disableStylesOnCompDestroy = disableStylesOnCompDestroy;
447
474
  this.doc = doc;
448
475
  this.platformId = platformId;
449
476
  this.ngZone = ngZone;
@@ -480,16 +507,16 @@ class DomRendererFactory2 {
480
507
  const ngZone = this.ngZone;
481
508
  const eventManager = this.eventManager;
482
509
  const sharedStylesHost = this.sharedStylesHost;
483
- const removeStylesOnCompDestroy = this.removeStylesOnCompDestroy;
510
+ const disableStylesOnCompDestroy = this.disableStylesOnCompDestroy;
484
511
  const platformIsServer = this.platformIsServer;
485
512
  switch (type.encapsulation) {
486
513
  case ViewEncapsulation.Emulated:
487
- renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer);
514
+ renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, disableStylesOnCompDestroy, doc, ngZone, platformIsServer);
488
515
  break;
489
516
  case ViewEncapsulation.ShadowDom:
490
517
  return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type, doc, ngZone, this.nonce, platformIsServer);
491
518
  default:
492
- renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestroy, doc, ngZone, platformIsServer);
519
+ renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, disableStylesOnCompDestroy, doc, ngZone, platformIsServer);
493
520
  break;
494
521
  }
495
522
  rendererByCompId.set(type.id, renderer);
@@ -499,12 +526,12 @@ class DomRendererFactory2 {
499
526
  ngOnDestroy() {
500
527
  this.rendererByCompId.clear();
501
528
  }
502
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: SharedStylesHost }, { token: APP_ID }, { token: REMOVE_STYLES_ON_COMPONENT_DESTROY }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: CSP_NONCE }], target: i0.ɵɵFactoryTarget.Injectable }); }
503
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomRendererFactory2 }); }
529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: SharedStylesHost }, { token: APP_ID }, { token: REMOVE_STYLES_ON_COMPONENT_DESTROY }, { token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: CSP_NONCE }], target: i0.ɵɵFactoryTarget.Injectable }); }
530
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomRendererFactory2 }); }
504
531
  }
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomRendererFactory2, decorators: [{
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomRendererFactory2, decorators: [{
506
533
  type: Injectable
507
- }], ctorParameters: function () { return [{ type: EventManager }, { type: SharedStylesHost }, { type: undefined, decorators: [{
534
+ }], ctorParameters: () => [{ type: EventManager }, { type: SharedStylesHost }, { type: undefined, decorators: [{
508
535
  type: Inject,
509
536
  args: [APP_ID]
510
537
  }] }, { type: undefined, decorators: [{
@@ -519,7 +546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5",
519
546
  }] }, { type: i0.NgZone }, { type: undefined, decorators: [{
520
547
  type: Inject,
521
548
  args: [CSP_NONCE]
522
- }] }]; } });
549
+ }] }] });
523
550
  class DefaultDomRenderer2 {
524
551
  constructor(eventManager, doc, ngZone, platformIsServer) {
525
552
  this.eventManager = eventManager;
@@ -527,6 +554,11 @@ class DefaultDomRenderer2 {
527
554
  this.ngZone = ngZone;
528
555
  this.platformIsServer = platformIsServer;
529
556
  this.data = Object.create(null);
557
+ /**
558
+ * By default this renderer throws when encountering synthetic properties
559
+ * This can be disabled for example by the AsyncAnimationRendererFactory
560
+ */
561
+ this.throwOnSyntheticProps = true;
530
562
  this.destroyNode = null;
531
563
  }
532
564
  destroy() { }
@@ -637,14 +669,16 @@ class DefaultDomRenderer2 {
637
669
  }
638
670
  }
639
671
  setProperty(el, name, value) {
640
- (typeof ngDevMode === 'undefined' || ngDevMode) && checkNoSyntheticProp(name, 'property');
672
+ (typeof ngDevMode === 'undefined' || ngDevMode) && this.throwOnSyntheticProps &&
673
+ checkNoSyntheticProp(name, 'property');
641
674
  el[name] = value;
642
675
  }
643
676
  setValue(node, value) {
644
677
  node.nodeValue = value;
645
678
  }
646
679
  listen(target, event, callback) {
647
- (typeof ngDevMode === 'undefined' || ngDevMode) && checkNoSyntheticProp(event, 'listener');
680
+ (typeof ngDevMode === 'undefined' || ngDevMode) && this.throwOnSyntheticProps &&
681
+ checkNoSyntheticProp(event, 'listener');
648
682
  if (typeof target === 'string') {
649
683
  target = ɵgetDOM().getGlobalEventTarget(this.doc, target);
650
684
  if (!target) {
@@ -727,26 +761,26 @@ class ShadowDomRenderer extends DefaultDomRenderer2 {
727
761
  }
728
762
  }
729
763
  class NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {
730
- constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, compId) {
764
+ constructor(eventManager, sharedStylesHost, component, disableStylesOnCompDestroy, doc, ngZone, platformIsServer) {
731
765
  super(eventManager, doc, ngZone, platformIsServer);
732
766
  this.sharedStylesHost = sharedStylesHost;
733
- this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;
734
- this.styles = compId ? shimStylesContent(compId, component.styles) : component.styles;
767
+ this.disableStylesOnCompDestroy = disableStylesOnCompDestroy;
768
+ this.styles = component.styles;
735
769
  }
736
770
  applyStyles() {
737
771
  this.sharedStylesHost.addStyles(this.styles);
738
772
  }
739
773
  destroy() {
740
- if (!this.removeStylesOnCompDestroy) {
741
- return;
774
+ if (this.disableStylesOnCompDestroy) {
775
+ this.sharedStylesHost.disableStyles(this.styles);
742
776
  }
743
- this.sharedStylesHost.removeStyles(this.styles);
744
777
  }
745
778
  }
746
779
  class EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {
747
- constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer) {
780
+ constructor(eventManager, sharedStylesHost, component, appId, disableStylesOnCompDestroy, doc, ngZone, platformIsServer) {
781
+ super(eventManager, sharedStylesHost, component, disableStylesOnCompDestroy, doc, ngZone, platformIsServer);
748
782
  const compId = appId + '-' + component.id;
749
- super(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, compId);
783
+ this.styles = shimStylesContent(compId, component.styles);
750
784
  this.contentAttr = shimContentAttribute(compId);
751
785
  this.hostAttr = shimHostAttribute(compId);
752
786
  }
@@ -777,15 +811,15 @@ class DomEventsPlugin extends EventManagerPlugin {
777
811
  removeEventListener(target, eventName, callback) {
778
812
  return target.removeEventListener(eventName, callback);
779
813
  }
780
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
781
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomEventsPlugin }); }
814
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
815
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomEventsPlugin }); }
782
816
  }
783
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomEventsPlugin, decorators: [{
817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomEventsPlugin, decorators: [{
784
818
  type: Injectable
785
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
819
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
786
820
  type: Inject,
787
821
  args: [DOCUMENT]
788
- }] }]; } });
822
+ }] }] });
789
823
 
790
824
  /**
791
825
  * Defines supported modifiers for key events.
@@ -949,15 +983,15 @@ class KeyEventsPlugin extends EventManagerPlugin {
949
983
  static _normalizeKey(keyName) {
950
984
  return keyName === 'esc' ? 'escape' : keyName;
951
985
  }
952
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
953
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: KeyEventsPlugin }); }
986
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
987
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: KeyEventsPlugin }); }
954
988
  }
955
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: KeyEventsPlugin, decorators: [{
989
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: KeyEventsPlugin, decorators: [{
956
990
  type: Injectable
957
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
991
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
958
992
  type: Inject,
959
993
  args: [DOCUMENT]
960
- }] }]; } });
994
+ }] }] });
961
995
 
962
996
  /**
963
997
  * Bootstraps an instance of an Angular application and renders a standalone component as the
@@ -1159,24 +1193,24 @@ class BrowserModule {
1159
1193
  ],
1160
1194
  };
1161
1195
  }
1162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1163
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] }); }
1164
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] }); }
1196
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1197
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] }); }
1198
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] }); }
1165
1199
  }
1166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: BrowserModule, decorators: [{
1200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: BrowserModule, decorators: [{
1167
1201
  type: NgModule,
1168
1202
  args: [{
1169
1203
  providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],
1170
1204
  exports: [CommonModule, ApplicationModule],
1171
1205
  }]
1172
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1206
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1173
1207
  type: Optional
1174
1208
  }, {
1175
1209
  type: SkipSelf
1176
1210
  }, {
1177
1211
  type: Inject,
1178
1212
  args: [BROWSER_MODULE_PROVIDERS_MARKER]
1179
- }] }]; } });
1213
+ }] }] });
1180
1214
 
1181
1215
  /**
1182
1216
  * Factory to create a `Meta` service instance for the current DOM document.
@@ -1333,16 +1367,16 @@ class Meta {
1333
1367
  _getMetaKeyMap(prop) {
1334
1368
  return META_KEYS_MAP[prop] || prop;
1335
1369
  }
1336
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
1337
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] }); }
1370
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
1371
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] }); }
1338
1372
  }
1339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Meta, decorators: [{
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: Meta, decorators: [{
1340
1374
  type: Injectable,
1341
1375
  args: [{ providedIn: 'root', useFactory: createMeta, deps: [] }]
1342
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1376
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1343
1377
  type: Inject,
1344
1378
  args: [DOCUMENT]
1345
- }] }]; } });
1379
+ }] }] });
1346
1380
  /**
1347
1381
  * Mapping for MetaDefinition properties with their correct meta attribute names
1348
1382
  */
@@ -1383,16 +1417,16 @@ class Title {
1383
1417
  setTitle(newTitle) {
1384
1418
  this._doc.title = newTitle || '';
1385
1419
  }
1386
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
1387
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] }); }
1420
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
1421
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] }); }
1388
1422
  }
1389
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Title, decorators: [{
1423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: Title, decorators: [{
1390
1424
  type: Injectable,
1391
1425
  args: [{ providedIn: 'root', useFactory: createTitle, deps: [] }]
1392
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1426
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1393
1427
  type: Inject,
1394
1428
  args: [DOCUMENT]
1395
- }] }]; } });
1429
+ }] }] });
1396
1430
 
1397
1431
  /**
1398
1432
  * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if
@@ -1655,10 +1689,10 @@ class HammerGestureConfig {
1655
1689
  }
1656
1690
  return mc;
1657
1691
  }
1658
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1659
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerGestureConfig }); }
1692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1693
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerGestureConfig }); }
1660
1694
  }
1661
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerGestureConfig, decorators: [{
1695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerGestureConfig, decorators: [{
1662
1696
  type: Injectable
1663
1697
  }] });
1664
1698
  /**
@@ -1753,12 +1787,12 @@ class HammerGesturesPlugin extends EventManagerPlugin {
1753
1787
  isCustomEvent(eventName) {
1754
1788
  return this._config.events.indexOf(eventName) > -1;
1755
1789
  }
1756
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1757
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerGesturesPlugin }); }
1790
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
1791
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerGesturesPlugin }); }
1758
1792
  }
1759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
1793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
1760
1794
  type: Injectable
1761
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1795
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1762
1796
  type: Inject,
1763
1797
  args: [DOCUMENT]
1764
1798
  }] }, { type: HammerGestureConfig, decorators: [{
@@ -1769,7 +1803,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5",
1769
1803
  }, {
1770
1804
  type: Inject,
1771
1805
  args: [HAMMER_LOADER]
1772
- }] }]; } });
1806
+ }] }] });
1773
1807
  /**
1774
1808
  * Adds support for HammerJS.
1775
1809
  *
@@ -1782,9 +1816,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5",
1782
1816
  * @publicApi
1783
1817
  */
1784
1818
  class HammerModule {
1785
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1786
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerModule }); }
1787
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerModule, providers: [
1819
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1820
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerModule }); }
1821
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerModule, providers: [
1788
1822
  {
1789
1823
  provide: EVENT_MANAGER_PLUGINS,
1790
1824
  useClass: HammerGesturesPlugin,
@@ -1794,7 +1828,7 @@ class HammerModule {
1794
1828
  { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },
1795
1829
  ] }); }
1796
1830
  }
1797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: HammerModule, decorators: [{
1831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: HammerModule, decorators: [{
1798
1832
  type: NgModule,
1799
1833
  args: [{
1800
1834
  providers: [
@@ -1841,10 +1875,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5",
1841
1875
  * @publicApi
1842
1876
  */
1843
1877
  class DomSanitizer {
1844
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1845
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) }); }
1878
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1879
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) }); }
1846
1880
  }
1847
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomSanitizer, decorators: [{
1881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomSanitizer, decorators: [{
1848
1882
  type: Injectable,
1849
1883
  args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]
1850
1884
  }] });
@@ -1909,16 +1943,16 @@ class DomSanitizerImpl extends DomSanitizer {
1909
1943
  bypassSecurityTrustResourceUrl(value) {
1910
1944
  return ɵbypassSanitizationTrustResourceUrl(value);
1911
1945
  }
1912
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
1913
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] }); }
1946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
1947
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] }); }
1914
1948
  }
1915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DomSanitizerImpl, decorators: [{
1949
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.7", ngImport: i0, type: DomSanitizerImpl, decorators: [{
1916
1950
  type: Injectable,
1917
1951
  args: [{ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector] }]
1918
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1952
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1919
1953
  type: Inject,
1920
1954
  args: [DOCUMENT]
1921
- }] }]; } });
1955
+ }] }] });
1922
1956
 
1923
1957
  /**
1924
1958
  * Helper function to create an object that represents a Hydration feature.
@@ -2071,7 +2105,7 @@ function provideClientHydration(...features) {
2071
2105
  /**
2072
2106
  * @publicApi
2073
2107
  */
2074
- const VERSION = new Version('17.0.0-next.5');
2108
+ const VERSION = new Version('17.0.0-next.7');
2075
2109
 
2076
2110
  // Re-export TransferState to the public API of the `platform-browser` for backwards-compatibility.
2077
2111
  /**