@angular/platform-browser 15.2.0-rc.0 → 15.2.1

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 v15.2.0-rc.0
2
+ * @license Angular v15.2.1
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -190,9 +190,9 @@ class BrowserXhr {
190
190
  return new XMLHttpRequest();
191
191
  }
192
192
  }
193
- BrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
194
- BrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserXhr });
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserXhr, decorators: [{
193
+ BrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
194
+ BrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserXhr });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserXhr, decorators: [{
196
196
  type: Injectable
197
197
  }] });
198
198
 
@@ -268,9 +268,9 @@ class EventManager {
268
268
  throw new Error(`No event manager plugin found for event ${eventName}`);
269
269
  }
270
270
  }
271
- EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
272
- EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: EventManager });
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: EventManager, decorators: [{
271
+ EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
272
+ EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: EventManager });
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: EventManager, decorators: [{
274
274
  type: Injectable
275
275
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
276
276
  type: Inject,
@@ -291,76 +291,114 @@ class EventManagerPlugin {
291
291
 
292
292
  class SharedStylesHost {
293
293
  constructor() {
294
- /** @internal */
295
- this._stylesSet = new Set();
294
+ this.usageCount = new Map();
296
295
  }
297
296
  addStyles(styles) {
298
- const additions = new Set();
299
- styles.forEach(style => {
300
- if (!this._stylesSet.has(style)) {
301
- this._stylesSet.add(style);
302
- additions.add(style);
297
+ for (const style of styles) {
298
+ const usageCount = this.changeUsageCount(style, 1);
299
+ if (usageCount === 1) {
300
+ this.onStyleAdded(style);
303
301
  }
304
- });
305
- this.onStylesAdded(additions);
302
+ }
303
+ }
304
+ removeStyles(styles) {
305
+ for (const style of styles) {
306
+ const usageCount = this.changeUsageCount(style, -1);
307
+ if (usageCount === 0) {
308
+ this.onStyleRemoved(style);
309
+ }
310
+ }
306
311
  }
307
- onStylesAdded(additions) { }
312
+ onStyleRemoved(style) { }
313
+ onStyleAdded(style) { }
308
314
  getAllStyles() {
309
- return Array.from(this._stylesSet);
315
+ return this.usageCount.keys();
316
+ }
317
+ changeUsageCount(style, delta) {
318
+ const map = this.usageCount;
319
+ let usage = map.get(style) ?? 0;
320
+ usage += delta;
321
+ if (usage > 0) {
322
+ map.set(style, usage);
323
+ }
324
+ else {
325
+ map.delete(style);
326
+ }
327
+ return usage;
328
+ }
329
+ ngOnDestroy() {
330
+ for (const style of this.getAllStyles()) {
331
+ this.onStyleRemoved(style);
332
+ }
333
+ this.usageCount.clear();
310
334
  }
311
335
  }
312
- SharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: SharedStylesHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
313
- SharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: SharedStylesHost });
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: SharedStylesHost, decorators: [{
336
+ SharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SharedStylesHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
337
+ SharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SharedStylesHost });
338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SharedStylesHost, decorators: [{
315
339
  type: Injectable
316
340
  }] });
317
341
  class DomSharedStylesHost extends SharedStylesHost {
318
- constructor(_doc) {
342
+ constructor(doc) {
319
343
  super();
320
- this._doc = _doc;
344
+ this.doc = doc;
321
345
  // Maps all registered host nodes to a list of style nodes that have been added to the host node.
322
- this._hostNodes = new Map();
323
- this._hostNodes.set(_doc.head, []);
346
+ this.styleRef = new Map();
347
+ this.hostNodes = new Set();
348
+ this.resetHostNodes();
324
349
  }
325
- _addStylesToHost(styles, host, styleNodes) {
326
- styles.forEach((style) => {
327
- const styleEl = this._doc.createElement('style');
328
- styleEl.textContent = style;
329
- styleNodes.push(host.appendChild(styleEl));
330
- });
350
+ onStyleAdded(style) {
351
+ for (const host of this.hostNodes) {
352
+ this.addStyleToHost(host, style);
353
+ }
354
+ }
355
+ onStyleRemoved(style) {
356
+ const styleRef = this.styleRef;
357
+ const styleElements = styleRef.get(style);
358
+ styleElements?.forEach(e => e.remove());
359
+ styleRef.delete(style);
360
+ }
361
+ ngOnDestroy() {
362
+ super.ngOnDestroy();
363
+ this.styleRef.clear();
364
+ this.resetHostNodes();
331
365
  }
332
366
  addHost(hostNode) {
333
- const styleNodes = [];
334
- this._addStylesToHost(this._stylesSet, hostNode, styleNodes);
335
- this._hostNodes.set(hostNode, styleNodes);
367
+ this.hostNodes.add(hostNode);
368
+ for (const style of this.getAllStyles()) {
369
+ this.addStyleToHost(hostNode, style);
370
+ }
336
371
  }
337
372
  removeHost(hostNode) {
338
- const styleNodes = this._hostNodes.get(hostNode);
339
- if (styleNodes) {
340
- styleNodes.forEach(removeStyle);
373
+ this.hostNodes.delete(hostNode);
374
+ }
375
+ addStyleToHost(host, style) {
376
+ const styleEl = this.doc.createElement('style');
377
+ styleEl.textContent = style;
378
+ host.appendChild(styleEl);
379
+ const styleElRef = this.styleRef.get(style);
380
+ if (styleElRef) {
381
+ styleElRef.push(styleEl);
382
+ }
383
+ else {
384
+ this.styleRef.set(style, [styleEl]);
341
385
  }
342
- this._hostNodes.delete(hostNode);
343
- }
344
- onStylesAdded(additions) {
345
- this._hostNodes.forEach((styleNodes, hostNode) => {
346
- this._addStylesToHost(additions, hostNode, styleNodes);
347
- });
348
386
  }
349
- ngOnDestroy() {
350
- this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));
387
+ resetHostNodes() {
388
+ const hostNodes = this.hostNodes;
389
+ hostNodes.clear();
390
+ // Re-add the head element back since this is the default host.
391
+ hostNodes.add(this.doc.head);
351
392
  }
352
393
  }
353
- DomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSharedStylesHost, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
354
- DomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSharedStylesHost });
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSharedStylesHost, decorators: [{
394
+ DomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSharedStylesHost, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
395
+ DomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSharedStylesHost });
396
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSharedStylesHost, decorators: [{
356
397
  type: Injectable
357
398
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
358
399
  type: Inject,
359
400
  args: [DOCUMENT]
360
401
  }] }]; } });
361
- function removeStyle(styleNode) {
362
- ɵgetDOM().remove(styleNode);
363
- }
364
402
 
365
403
  const NAMESPACE_URIS = {
366
404
  'svg': 'http://www.w3.org/2000/svg',
@@ -375,6 +413,21 @@ const NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || !!ngDevMode;
375
413
  const COMPONENT_VARIABLE = '%COMP%';
376
414
  const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
377
415
  const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;
416
+ /**
417
+ * The default value for the `REMOVE_STYLES_ON_COMPONENT_DESTROY` DI token.
418
+ */
419
+ const REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT = false;
420
+ /**
421
+ * A [DI token](guide/glossary#di-token "DI token definition") that indicates whether styles
422
+ * of destroyed components should be removed from DOM.
423
+ *
424
+ * By default, the value is set to `false`. This will be changed in the next major version.
425
+ * @publicApi
426
+ */
427
+ const REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken('RemoveStylesOnCompDestory', {
428
+ providedIn: 'root',
429
+ factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,
430
+ });
378
431
  function shimContentAttribute(componentShortId) {
379
432
  return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);
380
433
  }
@@ -409,10 +462,11 @@ function decoratePreventDefault(eventHandler) {
409
462
  };
410
463
  }
411
464
  class DomRendererFactory2 {
412
- constructor(eventManager, sharedStylesHost, appId) {
465
+ constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestory) {
413
466
  this.eventManager = eventManager;
414
467
  this.sharedStylesHost = sharedStylesHost;
415
468
  this.appId = appId;
469
+ this.removeStylesOnCompDestory = removeStylesOnCompDestory;
416
470
  this.rendererByCompId = new Map();
417
471
  this.defaultRenderer = new DefaultDomRenderer2(eventManager);
418
472
  }
@@ -420,38 +474,55 @@ class DomRendererFactory2 {
420
474
  if (!element || !type) {
421
475
  return this.defaultRenderer;
422
476
  }
423
- switch (type.encapsulation) {
424
- case ViewEncapsulation.Emulated: {
425
- let renderer = this.rendererByCompId.get(type.id);
426
- if (!renderer) {
427
- renderer = new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type, this.appId);
428
- this.rendererByCompId.set(type.id, renderer);
429
- }
430
- renderer.applyToHost(element);
431
- return renderer;
432
- }
433
- case ViewEncapsulation.ShadowDom:
434
- return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);
435
- default: {
436
- if (!this.rendererByCompId.has(type.id)) {
437
- const styles = flattenStyles(type.id, type.styles);
438
- this.sharedStylesHost.addStyles(styles);
439
- this.rendererByCompId.set(type.id, this.defaultRenderer);
440
- }
441
- return this.defaultRenderer;
477
+ const renderer = this.getOrCreateRenderer(element, type);
478
+ // Renderers have different logic due to different encapsulation behaviours.
479
+ // Ex: for emulated, an attribute is added to the element.
480
+ if (renderer instanceof EmulatedEncapsulationDomRenderer2) {
481
+ renderer.applyToHost(element);
482
+ }
483
+ else if (renderer instanceof NoneEncapsulationDomRenderer) {
484
+ renderer.applyStyles();
485
+ }
486
+ return renderer;
487
+ }
488
+ getOrCreateRenderer(element, type) {
489
+ const rendererByCompId = this.rendererByCompId;
490
+ let renderer = rendererByCompId.get(type.id);
491
+ if (!renderer) {
492
+ const eventManager = this.eventManager;
493
+ const sharedStylesHost = this.sharedStylesHost;
494
+ const removeStylesOnCompDestory = this.removeStylesOnCompDestory;
495
+ switch (type.encapsulation) {
496
+ case ViewEncapsulation.Emulated:
497
+ renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestory);
498
+ break;
499
+ case ViewEncapsulation.ShadowDom:
500
+ return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type);
501
+ default:
502
+ renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestory);
503
+ break;
442
504
  }
505
+ renderer.onDestroy = () => rendererByCompId.delete(type.id);
506
+ rendererByCompId.set(type.id, renderer);
443
507
  }
508
+ return renderer;
509
+ }
510
+ ngOnDestroy() {
511
+ this.rendererByCompId.clear();
444
512
  }
445
513
  begin() { }
446
514
  end() { }
447
515
  }
448
- DomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: DomSharedStylesHost }, { token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable });
449
- DomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomRendererFactory2 });
450
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomRendererFactory2, decorators: [{
516
+ DomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: DomSharedStylesHost }, { token: APP_ID }, { token: REMOVE_STYLES_ON_COMPONENT_DESTROY }], target: i0.ɵɵFactoryTarget.Injectable });
517
+ DomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomRendererFactory2 });
518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomRendererFactory2, decorators: [{
451
519
  type: Injectable
452
520
  }], ctorParameters: function () { return [{ type: EventManager }, { type: DomSharedStylesHost }, { type: undefined, decorators: [{
453
521
  type: Inject,
454
522
  args: [APP_ID]
523
+ }] }, { type: undefined, decorators: [{
524
+ type: Inject,
525
+ args: [REMOVE_STYLES_ON_COMPONENT_DESTROY]
455
526
  }] }]; } });
456
527
  class DefaultDomRenderer2 {
457
528
  constructor(eventManager) {
@@ -592,24 +663,6 @@ function checkNoSyntheticProp(name, nameKind) {
592
663
  function isTemplateNode(node) {
593
664
  return node.tagName === 'TEMPLATE' && node.content !== undefined;
594
665
  }
595
- class EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {
596
- constructor(eventManager, sharedStylesHost, component, appId) {
597
- super(eventManager);
598
- this.component = component;
599
- const styles = flattenStyles(appId + '-' + component.id, component.styles);
600
- sharedStylesHost.addStyles(styles);
601
- this.contentAttr = shimContentAttribute(appId + '-' + component.id);
602
- this.hostAttr = shimHostAttribute(appId + '-' + component.id);
603
- }
604
- applyToHost(element) {
605
- super.setAttribute(element, this.hostAttr, '');
606
- }
607
- createElement(parent, name) {
608
- const el = super.createElement(parent, name);
609
- super.setAttribute(el, this.contentAttr, '');
610
- return el;
611
- }
612
- }
613
666
  class ShadowDomRenderer extends DefaultDomRenderer2 {
614
667
  constructor(eventManager, sharedStylesHost, hostEl, component) {
615
668
  super(eventManager);
@@ -618,18 +671,15 @@ class ShadowDomRenderer extends DefaultDomRenderer2 {
618
671
  this.shadowRoot = hostEl.attachShadow({ mode: 'open' });
619
672
  this.sharedStylesHost.addHost(this.shadowRoot);
620
673
  const styles = flattenStyles(component.id, component.styles);
621
- for (let i = 0; i < styles.length; i++) {
674
+ for (const style of styles) {
622
675
  const styleEl = document.createElement('style');
623
- styleEl.textContent = styles[i];
676
+ styleEl.textContent = style;
624
677
  this.shadowRoot.appendChild(styleEl);
625
678
  }
626
679
  }
627
680
  nodeOrShadowRoot(node) {
628
681
  return node === this.hostEl ? this.shadowRoot : node;
629
682
  }
630
- destroy() {
631
- this.sharedStylesHost.removeHost(this.shadowRoot);
632
- }
633
683
  appendChild(parent, newChild) {
634
684
  return super.appendChild(this.nodeOrShadowRoot(parent), newChild);
635
685
  }
@@ -642,6 +692,49 @@ class ShadowDomRenderer extends DefaultDomRenderer2 {
642
692
  parentNode(node) {
643
693
  return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));
644
694
  }
695
+ destroy() {
696
+ this.sharedStylesHost.removeHost(this.shadowRoot);
697
+ }
698
+ }
699
+ class NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {
700
+ constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestory, compId = component.id) {
701
+ super(eventManager);
702
+ this.sharedStylesHost = sharedStylesHost;
703
+ this.removeStylesOnCompDestory = removeStylesOnCompDestory;
704
+ this.rendererUsageCount = 0;
705
+ this.styles = flattenStyles(compId, component.styles);
706
+ }
707
+ applyStyles() {
708
+ this.sharedStylesHost.addStyles(this.styles);
709
+ this.rendererUsageCount++;
710
+ }
711
+ destroy() {
712
+ if (!this.removeStylesOnCompDestory) {
713
+ return;
714
+ }
715
+ this.sharedStylesHost.removeStyles(this.styles);
716
+ this.rendererUsageCount--;
717
+ if (this.rendererUsageCount === 0) {
718
+ this.onDestroy?.();
719
+ }
720
+ }
721
+ }
722
+ class EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {
723
+ constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestory) {
724
+ const compId = appId + '-' + component.id;
725
+ super(eventManager, sharedStylesHost, component, removeStylesOnCompDestory, compId);
726
+ this.contentAttr = shimContentAttribute(compId);
727
+ this.hostAttr = shimHostAttribute(compId);
728
+ }
729
+ applyToHost(element) {
730
+ this.applyStyles();
731
+ this.setAttribute(element, this.hostAttr, '');
732
+ }
733
+ createElement(parent, name) {
734
+ const el = super.createElement(parent, name);
735
+ super.setAttribute(el, this.contentAttr, '');
736
+ return el;
737
+ }
645
738
  }
646
739
 
647
740
  class DomEventsPlugin extends EventManagerPlugin {
@@ -661,9 +754,9 @@ class DomEventsPlugin extends EventManagerPlugin {
661
754
  return target.removeEventListener(eventName, callback);
662
755
  }
663
756
  }
664
- DomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
665
- DomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomEventsPlugin });
666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomEventsPlugin, decorators: [{
757
+ DomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
758
+ DomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomEventsPlugin });
759
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomEventsPlugin, decorators: [{
667
760
  type: Injectable
668
761
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
669
762
  type: Inject,
@@ -840,9 +933,9 @@ class KeyEventsPlugin extends EventManagerPlugin {
840
933
  }
841
934
  }
842
935
  }
843
- KeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
844
- KeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: KeyEventsPlugin });
845
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: KeyEventsPlugin, decorators: [{
936
+ KeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
937
+ KeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: KeyEventsPlugin });
938
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: KeyEventsPlugin, decorators: [{
846
939
  type: Injectable
847
940
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
848
941
  type: Inject,
@@ -1010,7 +1103,7 @@ const BROWSER_MODULE_PROVIDERS = [
1010
1103
  { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT] }, {
1011
1104
  provide: DomRendererFactory2,
1012
1105
  useClass: DomRendererFactory2,
1013
- deps: [EventManager, DomSharedStylesHost, APP_ID]
1106
+ deps: [EventManager, DomSharedStylesHost, APP_ID, REMOVE_STYLES_ON_COMPONENT_DESTROY]
1014
1107
  },
1015
1108
  { provide: RendererFactory2, useExisting: DomRendererFactory2 },
1016
1109
  { provide: SharedStylesHost, useExisting: DomSharedStylesHost },
@@ -1054,13 +1147,13 @@ class BrowserModule {
1054
1147
  };
1055
1148
  }
1056
1149
  }
1057
- BrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
1058
- BrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
1059
- BrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserModule, providers: [
1150
+ BrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
1151
+ BrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
1152
+ BrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserModule, providers: [
1060
1153
  ...BROWSER_MODULE_PROVIDERS,
1061
1154
  ...TESTABILITY_PROVIDERS
1062
1155
  ], imports: [CommonModule, ApplicationModule] });
1063
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserModule, decorators: [{
1156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserModule, decorators: [{
1064
1157
  type: NgModule,
1065
1158
  args: [{
1066
1159
  providers: [
@@ -1234,9 +1327,9 @@ class Meta {
1234
1327
  return META_KEYS_MAP[prop] || prop;
1235
1328
  }
1236
1329
  }
1237
- Meta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1238
- Meta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] });
1239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: Meta, decorators: [{
1330
+ Meta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1331
+ Meta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] });
1332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Meta, decorators: [{
1240
1333
  type: Injectable,
1241
1334
  args: [{ providedIn: 'root', useFactory: createMeta, deps: [] }]
1242
1335
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -1284,9 +1377,9 @@ class Title {
1284
1377
  this._doc.title = newTitle || '';
1285
1378
  }
1286
1379
  }
1287
- Title.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1288
- Title.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] });
1289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: Title, decorators: [{
1380
+ Title.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1381
+ Title.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] });
1382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: Title, decorators: [{
1290
1383
  type: Injectable,
1291
1384
  args: [{ providedIn: 'root', useFactory: createTitle, deps: [] }]
1292
1385
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -1465,6 +1558,7 @@ class TransferState {
1465
1558
  constructor() {
1466
1559
  this.store = {};
1467
1560
  this.onSerializeCallbacks = {};
1561
+ this.store = retrieveTransferredState(inject(DOCUMENT), inject(APP_ID));
1468
1562
  }
1469
1563
  /**
1470
1564
  * Get the value corresponding to a key. Return `defaultValue` if key is not found.
@@ -1520,27 +1614,12 @@ class TransferState {
1520
1614
  return JSON.stringify(this.store);
1521
1615
  }
1522
1616
  }
1523
- TransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: TransferState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1524
- TransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: TransferState, providedIn: 'root', useFactory: () => {
1525
- const doc = inject(DOCUMENT);
1526
- const appId = inject(APP_ID);
1527
- const state = new TransferState();
1528
- state.store = retrieveTransferredState(doc, appId);
1529
- return state;
1530
- } });
1531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: TransferState, decorators: [{
1617
+ TransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TransferState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1618
+ TransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TransferState, providedIn: 'root' });
1619
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TransferState, decorators: [{
1532
1620
  type: Injectable,
1533
- args: [{
1534
- providedIn: 'root',
1535
- useFactory: () => {
1536
- const doc = inject(DOCUMENT);
1537
- const appId = inject(APP_ID);
1538
- const state = new TransferState();
1539
- state.store = retrieveTransferredState(doc, appId);
1540
- return state;
1541
- }
1542
- }]
1543
- }] });
1621
+ args: [{ providedIn: 'root' }]
1622
+ }], ctorParameters: function () { return []; } });
1544
1623
  function retrieveTransferredState(doc, appId) {
1545
1624
  // Locate the script tag with the JSON data transferred from the server.
1546
1625
  // The id of the script tag is set to the Angular appId + 'state'.
@@ -1567,10 +1646,10 @@ function retrieveTransferredState(doc, appId) {
1567
1646
  */
1568
1647
  class BrowserTransferStateModule {
1569
1648
  }
1570
- BrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1571
- BrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserTransferStateModule });
1572
- BrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserTransferStateModule });
1573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: BrowserTransferStateModule, decorators: [{
1649
+ BrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1650
+ BrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: BrowserTransferStateModule });
1651
+ BrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserTransferStateModule });
1652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: BrowserTransferStateModule, decorators: [{
1574
1653
  type: NgModule,
1575
1654
  args: [{}]
1576
1655
  }] });
@@ -1730,9 +1809,9 @@ class HammerGestureConfig {
1730
1809
  return mc;
1731
1810
  }
1732
1811
  }
1733
- HammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1734
- HammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerGestureConfig });
1735
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerGestureConfig, decorators: [{
1812
+ HammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1813
+ HammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerGestureConfig });
1814
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerGestureConfig, decorators: [{
1736
1815
  type: Injectable
1737
1816
  }] });
1738
1817
  /**
@@ -1828,9 +1907,9 @@ class HammerGesturesPlugin extends EventManagerPlugin {
1828
1907
  return this._config.events.indexOf(eventName) > -1;
1829
1908
  }
1830
1909
  }
1831
- HammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1832
- HammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerGesturesPlugin });
1833
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
1910
+ HammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1911
+ HammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerGesturesPlugin });
1912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
1834
1913
  type: Injectable
1835
1914
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1836
1915
  type: Inject,
@@ -1857,9 +1936,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ng
1857
1936
  */
1858
1937
  class HammerModule {
1859
1938
  }
1860
- HammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1861
- HammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerModule });
1862
- HammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerModule, providers: [
1939
+ HammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1940
+ HammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: HammerModule });
1941
+ HammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerModule, providers: [
1863
1942
  {
1864
1943
  provide: EVENT_MANAGER_PLUGINS,
1865
1944
  useClass: HammerGesturesPlugin,
@@ -1868,7 +1947,7 @@ HammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
1868
1947
  },
1869
1948
  { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },
1870
1949
  ] });
1871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: HammerModule, decorators: [{
1950
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: HammerModule, decorators: [{
1872
1951
  type: NgModule,
1873
1952
  args: [{
1874
1953
  providers: [
@@ -1916,9 +1995,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ng
1916
1995
  */
1917
1996
  class DomSanitizer {
1918
1997
  }
1919
- DomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1920
- DomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) });
1921
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSanitizer, decorators: [{
1998
+ DomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1999
+ DomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) });
2000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSanitizer, decorators: [{
1922
2001
  type: Injectable,
1923
2002
  args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]
1924
2003
  }] });
@@ -1981,9 +2060,9 @@ class DomSanitizerImpl extends DomSanitizer {
1981
2060
  return ɵbypassSanitizationTrustResourceUrl(value);
1982
2061
  }
1983
2062
  }
1984
- DomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
1985
- DomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] });
1986
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ngImport: i0, type: DomSanitizerImpl, decorators: [{
2063
+ DomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
2064
+ DomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] });
2065
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: DomSanitizerImpl, decorators: [{
1987
2066
  type: Injectable,
1988
2067
  args: [{ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector] }]
1989
2068
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -1999,7 +2078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-rc.0", ng
1999
2078
  /**
2000
2079
  * @publicApi
2001
2080
  */
2002
- const VERSION = new Version('15.2.0-rc.0');
2081
+ const VERSION = new Version('15.2.1');
2003
2082
 
2004
2083
  /**
2005
2084
  * @module
@@ -2014,5 +2093,5 @@ const VERSION = new Version('15.2.0-rc.0');
2014
2093
  * Generated bundle index. Do not edit.
2015
2094
  */
2016
2095
 
2017
- export { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, Title, TransferState, VERSION, bootstrapApplication, createApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };
2096
+ export { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, REMOVE_STYLES_ON_COMPONENT_DESTROY, Title, TransferState, VERSION, bootstrapApplication, createApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };
2018
2097
  //# sourceMappingURL=platform-browser.mjs.map