@angular/platform-browser 19.1.0-next.2 → 19.1.0-next.4

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.1.0-next.2
2
+ * @license Angular v19.1.0-next.4
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -7,7 +7,7 @@
7
7
  import { ɵDomAdapter, ɵsetRootDomAdapter, ɵparseCookieValue, ɵgetDOM, isPlatformServer, DOCUMENT, ɵPLATFORM_BROWSER_ID, XhrFactory, CommonModule } from '@angular/common';
8
8
  export { ɵgetDOM } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
- import { ɵglobal, ɵRuntimeError, Injectable, InjectionToken, Inject, APP_ID, CSP_NONCE, PLATFORM_ID, Optional, ViewEncapsulation, RendererStyleFlags2, ɵinternalCreateApplication, ErrorHandler, ɵsetDocument, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵTESTABILITY_GETTER, ɵTESTABILITY, Testability, NgZone, TestabilityRegistry, ɵINJECTOR_SCOPE, RendererFactory2, ApplicationModule, NgModule, SkipSelf, ApplicationRef, ɵConsole, forwardRef, ɵXSS_SECURITY_URL, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, ɵwithI18nSupport, ɵwithEventReplay, ɵwithIncrementalHydration, ENVIRONMENT_INITIALIZER, inject, ɵZONELESS_ENABLED, ɵformatRuntimeError, makeEnvironmentProviders, ɵwithDomHydration, Version } from '@angular/core';
10
+ import { ɵglobal, ɵRuntimeError, Injectable, InjectionToken, Inject, APP_ID, CSP_NONCE, PLATFORM_ID, Optional, ViewEncapsulation, ɵTracingService, RendererStyleFlags2, ɵinternalCreateApplication, ErrorHandler, ɵsetDocument, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵTESTABILITY_GETTER, ɵTESTABILITY, Testability, NgZone, TestabilityRegistry, ɵINJECTOR_SCOPE, RendererFactory2, ApplicationModule, NgModule, SkipSelf, ApplicationRef, ɵConsole, forwardRef, ɵXSS_SECURITY_URL, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, ɵwithI18nSupport, ɵwithEventReplay, ɵwithIncrementalHydration, ENVIRONMENT_INITIALIZER, inject, ɵZONELESS_ENABLED, ɵformatRuntimeError, makeEnvironmentProviders, ɵwithDomHydration, Version } from '@angular/core';
11
11
  import { ɵwithHttpTransferCache } from '@angular/common/http';
12
12
 
13
13
  /**
@@ -26,15 +26,14 @@ class GenericBrowserDomAdapter extends ɵDomAdapter {
26
26
  * @security Tread carefully! Interacting with the DOM directly is dangerous and
27
27
  * can introduce XSS risks.
28
28
  */
29
- /* tslint:disable:requireParameterType no-console */
30
29
  class BrowserDomAdapter extends GenericBrowserDomAdapter {
31
30
  static makeCurrent() {
32
31
  ɵsetRootDomAdapter(new BrowserDomAdapter());
33
32
  }
34
- onAndCancel(el, evt, listener) {
35
- el.addEventListener(evt, listener);
33
+ onAndCancel(el, evt, listener, options) {
34
+ el.addEventListener(evt, listener, options);
36
35
  return () => {
37
- el.removeEventListener(evt, listener);
36
+ el.removeEventListener(evt, listener, options);
38
37
  };
39
38
  }
40
39
  dispatchEvent(el, evt) {
@@ -152,10 +151,10 @@ class BrowserXhr {
152
151
  build() {
153
152
  return new XMLHttpRequest();
154
153
  }
155
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
156
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserXhr });
154
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
155
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserXhr });
157
156
  }
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserXhr, decorators: [{
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserXhr, decorators: [{
159
158
  type: Injectable
160
159
  }] });
161
160
 
@@ -192,11 +191,12 @@ class EventManager {
192
191
  * @param eventName The name of the event to listen for.
193
192
  * @param handler A function to call when the notification occurs. Receives the
194
193
  * event object as an argument.
194
+ * @param options Options that configure how the event listener is bound.
195
195
  * @returns A callback function that can be used to remove the handler.
196
196
  */
197
- addEventListener(element, eventName, handler) {
197
+ addEventListener(element, eventName, handler, options) {
198
198
  const plugin = this._findPluginFor(eventName);
199
- return plugin.addEventListener(element, eventName, handler);
199
+ return plugin.addEventListener(element, eventName, handler, options);
200
200
  }
201
201
  /**
202
202
  * Retrieves the compilation zone in which event listeners are registered.
@@ -219,10 +219,10 @@ class EventManager {
219
219
  this._eventNameToPlugin.set(eventName, plugin);
220
220
  return plugin;
221
221
  }
222
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
223
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: EventManager });
222
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
223
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: EventManager });
224
224
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: EventManager, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: EventManager, decorators: [{
226
226
  type: Injectable
227
227
  }], ctorParameters: () => [{ type: undefined, decorators: [{
228
228
  type: Inject,
@@ -273,15 +273,24 @@ function createStyleElement(style, doc) {
273
273
  * identifier attribute (`ng-app-id`) to the provide identifier and adds usage records for each.
274
274
  * @param doc An HTML DOM document instance.
275
275
  * @param appId A string containing an Angular application identifer.
276
- * @param usages A Map object for tracking style usage.
276
+ * @param inline A Map object for tracking inline (defined via `styles` in component decorator) style usage.
277
+ * @param external A Map object for tracking external (defined via `styleUrls` in component decorator) style usage.
277
278
  */
278
- function addServerStyles(doc, appId, usages) {
279
- const styleElements = doc.head?.querySelectorAll(`style[${APP_ID_ATTRIBUTE_NAME}="${appId}"]`);
280
- if (styleElements) {
281
- for (const styleElement of styleElements) {
282
- if (styleElement.textContent) {
283
- styleElement.removeAttribute(APP_ID_ATTRIBUTE_NAME);
284
- usages.set(styleElement.textContent, { usage: 0, elements: [styleElement] });
279
+ function addServerStyles(doc, appId, inline, external) {
280
+ const elements = doc.head?.querySelectorAll(`style[${APP_ID_ATTRIBUTE_NAME}="${appId}"],link[${APP_ID_ATTRIBUTE_NAME}="${appId}"]`);
281
+ if (elements) {
282
+ for (const styleElement of elements) {
283
+ styleElement.removeAttribute(APP_ID_ATTRIBUTE_NAME);
284
+ if (styleElement instanceof HTMLLinkElement) {
285
+ // Only use filename from href
286
+ // The href is build time generated with a unique value to prevent duplicates.
287
+ external.set(styleElement.href.slice(styleElement.href.lastIndexOf('/') + 1), {
288
+ usage: 0,
289
+ elements: [styleElement],
290
+ });
291
+ }
292
+ else if (styleElement.textContent) {
293
+ inline.set(styleElement.textContent, { usage: 0, elements: [styleElement] });
285
294
  }
286
295
  }
287
296
  }
@@ -325,7 +334,7 @@ class SharedStylesHost {
325
334
  this.appId = appId;
326
335
  this.nonce = nonce;
327
336
  this.isServer = isPlatformServer(platformId);
328
- addServerStyles(doc, appId, this.inline);
337
+ addServerStyles(doc, appId, this.inline, this.external);
329
338
  this.hosts.add(doc.head);
330
339
  }
331
340
  /**
@@ -418,10 +427,10 @@ class SharedStylesHost {
418
427
  // Insert the element into the DOM with the host node as parent
419
428
  return host.appendChild(element);
420
429
  }
421
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: SharedStylesHost, deps: [{ token: DOCUMENT }, { token: APP_ID }, { token: CSP_NONCE, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
422
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: SharedStylesHost });
430
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: SharedStylesHost, deps: [{ token: DOCUMENT }, { token: APP_ID }, { token: CSP_NONCE, optional: true }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
431
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: SharedStylesHost });
423
432
  }
424
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: SharedStylesHost, decorators: [{
433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: SharedStylesHost, decorators: [{
425
434
  type: Injectable
426
435
  }], ctorParameters: () => [{ type: Document, decorators: [{
427
436
  type: Inject,
@@ -484,10 +493,11 @@ class DomRendererFactory2 {
484
493
  platformId;
485
494
  ngZone;
486
495
  nonce;
496
+ tracingService;
487
497
  rendererByCompId = new Map();
488
498
  defaultRenderer;
489
499
  platformIsServer;
490
- constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestroy, doc, platformId, ngZone, nonce = null) {
500
+ constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestroy, doc, platformId, ngZone, nonce = null, tracingService = null) {
491
501
  this.eventManager = eventManager;
492
502
  this.sharedStylesHost = sharedStylesHost;
493
503
  this.appId = appId;
@@ -496,8 +506,9 @@ class DomRendererFactory2 {
496
506
  this.platformId = platformId;
497
507
  this.ngZone = ngZone;
498
508
  this.nonce = nonce;
509
+ this.tracingService = tracingService;
499
510
  this.platformIsServer = isPlatformServer(platformId);
500
- this.defaultRenderer = new DefaultDomRenderer2(eventManager, doc, ngZone, this.platformIsServer);
511
+ this.defaultRenderer = new DefaultDomRenderer2(eventManager, doc, ngZone, this.platformIsServer, this.tracingService);
501
512
  }
502
513
  createRenderer(element, type) {
503
514
  if (!element || !type) {
@@ -530,12 +541,12 @@ class DomRendererFactory2 {
530
541
  const platformIsServer = this.platformIsServer;
531
542
  switch (type.encapsulation) {
532
543
  case ViewEncapsulation.Emulated:
533
- renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer);
544
+ renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, this.tracingService);
534
545
  break;
535
546
  case ViewEncapsulation.ShadowDom:
536
- return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type, doc, ngZone, this.nonce, platformIsServer);
547
+ return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type, doc, ngZone, this.nonce, platformIsServer, this.tracingService);
537
548
  default:
538
- renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestroy, doc, ngZone, platformIsServer);
549
+ renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, this.tracingService);
539
550
  break;
540
551
  }
541
552
  rendererByCompId.set(type.id, renderer);
@@ -545,10 +556,10 @@ class DomRendererFactory2 {
545
556
  ngOnDestroy() {
546
557
  this.rendererByCompId.clear();
547
558
  }
548
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", 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 });
549
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomRendererFactory2 });
559
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 }, { token: ɵTracingService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
560
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomRendererFactory2 });
550
561
  }
551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomRendererFactory2, decorators: [{
562
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomRendererFactory2, decorators: [{
552
563
  type: Injectable
553
564
  }], ctorParameters: () => [{ type: EventManager }, { type: SharedStylesHost }, { type: undefined, decorators: [{
554
565
  type: Inject,
@@ -565,23 +576,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2",
565
576
  }] }, { type: i0.NgZone }, { type: undefined, decorators: [{
566
577
  type: Inject,
567
578
  args: [CSP_NONCE]
579
+ }] }, { type: i0.ɵTracingService, decorators: [{
580
+ type: Inject,
581
+ args: [ɵTracingService]
582
+ }, {
583
+ type: Optional
568
584
  }] }] });
569
585
  class DefaultDomRenderer2 {
570
586
  eventManager;
571
587
  doc;
572
588
  ngZone;
573
589
  platformIsServer;
590
+ tracingService;
574
591
  data = Object.create(null);
575
592
  /**
576
593
  * By default this renderer throws when encountering synthetic properties
577
594
  * This can be disabled for example by the AsyncAnimationRendererFactory
578
595
  */
579
596
  throwOnSyntheticProps = true;
580
- constructor(eventManager, doc, ngZone, platformIsServer) {
597
+ constructor(eventManager, doc, ngZone, platformIsServer, tracingService) {
581
598
  this.eventManager = eventManager;
582
599
  this.doc = doc;
583
600
  this.ngZone = ngZone;
584
601
  this.platformIsServer = platformIsServer;
602
+ this.tracingService = tracingService;
585
603
  }
586
604
  destroy() { }
587
605
  destroyNode = null;
@@ -700,7 +718,7 @@ class DefaultDomRenderer2 {
700
718
  setValue(node, value) {
701
719
  node.nodeValue = value;
702
720
  }
703
- listen(target, event, callback) {
721
+ listen(target, event, callback, options) {
704
722
  (typeof ngDevMode === 'undefined' || ngDevMode) &&
705
723
  this.throwOnSyntheticProps &&
706
724
  checkNoSyntheticProp(event, 'listener');
@@ -710,7 +728,11 @@ class DefaultDomRenderer2 {
710
728
  throw new Error(`Unsupported event target ${target} for event ${event}`);
711
729
  }
712
730
  }
713
- return this.eventManager.addEventListener(target, event, this.decoratePreventDefault(callback));
731
+ let wrappedCallback = this.decoratePreventDefault(callback);
732
+ if (this.tracingService !== null && this.tracingService.wrapEventListener) {
733
+ wrappedCallback = this.tracingService.wrapEventListener(target, event, wrappedCallback);
734
+ }
735
+ return this.eventManager.addEventListener(target, event, wrappedCallback, options);
714
736
  }
715
737
  decoratePreventDefault(eventHandler) {
716
738
  // `DebugNode.triggerEventHandler` needs to know if the listener was created with
@@ -753,8 +775,8 @@ class ShadowDomRenderer extends DefaultDomRenderer2 {
753
775
  sharedStylesHost;
754
776
  hostEl;
755
777
  shadowRoot;
756
- constructor(eventManager, sharedStylesHost, hostEl, component, doc, ngZone, nonce, platformIsServer) {
757
- super(eventManager, doc, ngZone, platformIsServer);
778
+ constructor(eventManager, sharedStylesHost, hostEl, component, doc, ngZone, nonce, platformIsServer, tracingService) {
779
+ super(eventManager, doc, ngZone, platformIsServer, tracingService);
758
780
  this.sharedStylesHost = sharedStylesHost;
759
781
  this.hostEl = hostEl;
760
782
  this.shadowRoot = hostEl.attachShadow({ mode: 'open' });
@@ -809,8 +831,8 @@ class NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {
809
831
  removeStylesOnCompDestroy;
810
832
  styles;
811
833
  styleUrls;
812
- constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, compId) {
813
- super(eventManager, doc, ngZone, platformIsServer);
834
+ constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService, compId) {
835
+ super(eventManager, doc, ngZone, platformIsServer, tracingService);
814
836
  this.sharedStylesHost = sharedStylesHost;
815
837
  this.removeStylesOnCompDestroy = removeStylesOnCompDestroy;
816
838
  this.styles = compId ? shimStylesContent(compId, component.styles) : component.styles;
@@ -829,9 +851,9 @@ class NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {
829
851
  class EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {
830
852
  contentAttr;
831
853
  hostAttr;
832
- constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer) {
854
+ constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService) {
833
855
  const compId = appId + '-' + component.id;
834
- super(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, compId);
856
+ super(eventManager, sharedStylesHost, component, removeStylesOnCompDestroy, doc, ngZone, platformIsServer, tracingService, compId);
835
857
  this.contentAttr = shimContentAttribute(compId);
836
858
  this.hostAttr = shimHostAttribute(compId);
837
859
  }
@@ -855,17 +877,17 @@ class DomEventsPlugin extends EventManagerPlugin {
855
877
  supports(eventName) {
856
878
  return true;
857
879
  }
858
- addEventListener(element, eventName, handler) {
859
- element.addEventListener(eventName, handler, false);
860
- return () => this.removeEventListener(element, eventName, handler);
880
+ addEventListener(element, eventName, handler, options) {
881
+ element.addEventListener(eventName, handler, options);
882
+ return () => this.removeEventListener(element, eventName, handler, options);
861
883
  }
862
- removeEventListener(target, eventName, callback) {
863
- return target.removeEventListener(eventName, callback);
884
+ removeEventListener(target, eventName, callback, options) {
885
+ return target.removeEventListener(eventName, callback, options);
864
886
  }
865
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
866
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomEventsPlugin });
887
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
888
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomEventsPlugin });
867
889
  }
868
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomEventsPlugin, decorators: [{
890
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomEventsPlugin, decorators: [{
869
891
  type: Injectable
870
892
  }], ctorParameters: () => [{ type: undefined, decorators: [{
871
893
  type: Inject,
@@ -929,11 +951,11 @@ class KeyEventsPlugin extends EventManagerPlugin {
929
951
  * event object as an argument.
930
952
  * @returns The key event that was registered.
931
953
  */
932
- addEventListener(element, eventName, handler) {
954
+ addEventListener(element, eventName, handler, options) {
933
955
  const parsedEvent = KeyEventsPlugin.parseEventName(eventName);
934
956
  const outsideHandler = KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());
935
957
  return this.manager.getZone().runOutsideAngular(() => {
936
- return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);
958
+ return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler, options);
937
959
  });
938
960
  }
939
961
  /**
@@ -1034,10 +1056,10 @@ class KeyEventsPlugin extends EventManagerPlugin {
1034
1056
  static _normalizeKey(keyName) {
1035
1057
  return keyName === 'esc' ? 'escape' : keyName;
1036
1058
  }
1037
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1038
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: KeyEventsPlugin });
1059
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1060
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: KeyEventsPlugin });
1039
1061
  }
1040
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: KeyEventsPlugin, decorators: [{
1062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: KeyEventsPlugin, decorators: [{
1041
1063
  type: Injectable
1042
1064
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1043
1065
  type: Inject,
@@ -1226,11 +1248,11 @@ class BrowserModule {
1226
1248
  `to common directives such as NgIf and NgFor, import the \`CommonModule\` instead.`);
1227
1249
  }
1228
1250
  }
1229
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
1230
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
1231
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] });
1251
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
1252
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
1253
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserModule, providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS], imports: [CommonModule, ApplicationModule] });
1232
1254
  }
1233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: BrowserModule, decorators: [{
1255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserModule, decorators: [{
1234
1256
  type: NgModule,
1235
1257
  args: [{
1236
1258
  providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],
@@ -1396,10 +1418,10 @@ class Meta {
1396
1418
  _getMetaKeyMap(prop) {
1397
1419
  return META_KEYS_MAP[prop] || prop;
1398
1420
  }
1399
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1400
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: Meta, providedIn: 'root' });
1421
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1422
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Meta, providedIn: 'root' });
1401
1423
  }
1402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: Meta, decorators: [{
1424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Meta, decorators: [{
1403
1425
  type: Injectable,
1404
1426
  args: [{ providedIn: 'root' }]
1405
1427
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -1441,10 +1463,10 @@ class Title {
1441
1463
  setTitle(newTitle) {
1442
1464
  this._doc.title = newTitle || '';
1443
1465
  }
1444
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1445
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: Title, providedIn: 'root' });
1466
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1467
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Title, providedIn: 'root' });
1446
1468
  }
1447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: Title, decorators: [{
1469
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Title, decorators: [{
1448
1470
  type: Injectable,
1449
1471
  args: [{ providedIn: 'root' }]
1450
1472
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -1717,10 +1739,10 @@ class HammerGestureConfig {
1717
1739
  }
1718
1740
  return mc;
1719
1741
  }
1720
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1721
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerGestureConfig });
1742
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1743
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerGestureConfig });
1722
1744
  }
1723
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerGestureConfig, decorators: [{
1745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerGestureConfig, decorators: [{
1724
1746
  type: Injectable
1725
1747
  }] });
1726
1748
  /**
@@ -1816,10 +1838,10 @@ class HammerGesturesPlugin extends EventManagerPlugin {
1816
1838
  isCustomEvent(eventName) {
1817
1839
  return this._config.events.indexOf(eventName) > -1;
1818
1840
  }
1819
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1820
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerGesturesPlugin });
1841
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1842
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerGesturesPlugin });
1821
1843
  }
1822
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
1844
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
1823
1845
  type: Injectable
1824
1846
  }], ctorParameters: () => [{ type: undefined, decorators: [{
1825
1847
  type: Inject,
@@ -1845,9 +1867,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2",
1845
1867
  * @publicApi
1846
1868
  */
1847
1869
  class HammerModule {
1848
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1849
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerModule });
1850
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerModule, providers: [
1870
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1871
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerModule });
1872
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerModule, providers: [
1851
1873
  {
1852
1874
  provide: EVENT_MANAGER_PLUGINS,
1853
1875
  useClass: HammerGesturesPlugin,
@@ -1857,7 +1879,7 @@ class HammerModule {
1857
1879
  { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },
1858
1880
  ] });
1859
1881
  }
1860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: HammerModule, decorators: [{
1882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HammerModule, decorators: [{
1861
1883
  type: NgModule,
1862
1884
  args: [{
1863
1885
  providers: [
@@ -1904,10 +1926,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2",
1904
1926
  * @publicApi
1905
1927
  */
1906
1928
  class DomSanitizer {
1907
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1908
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) });
1929
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1930
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(() => DomSanitizerImpl) });
1909
1931
  }
1910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomSanitizer, decorators: [{
1932
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomSanitizer, decorators: [{
1911
1933
  type: Injectable,
1912
1934
  args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]
1913
1935
  }] });
@@ -1970,10 +1992,10 @@ class DomSanitizerImpl extends DomSanitizer {
1970
1992
  bypassSecurityTrustResourceUrl(value) {
1971
1993
  return ɵbypassSanitizationTrustResourceUrl(value);
1972
1994
  }
1973
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1974
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root' });
1995
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1996
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root' });
1975
1997
  }
1976
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.2", ngImport: i0, type: DomSanitizerImpl, decorators: [{
1998
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DomSanitizerImpl, decorators: [{
1977
1999
  type: Injectable,
1978
2000
  args: [{ providedIn: 'root' }]
1979
2001
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -2183,7 +2205,7 @@ function provideClientHydration(...features) {
2183
2205
  /**
2184
2206
  * @publicApi
2185
2207
  */
2186
- const VERSION = new Version('19.1.0-next.2');
2208
+ const VERSION = new Version('19.1.0-next.4');
2187
2209
 
2188
2210
  /**
2189
2211
  * @module