@angular/common 15.2.0-next.0 → 15.2.0-next.2

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 (58) hide show
  1. package/esm2020/http/src/client.mjs +3 -3
  2. package/esm2020/http/src/interceptor.mjs +3 -3
  3. package/esm2020/http/src/jsonp.mjs +6 -6
  4. package/esm2020/http/src/module.mjs +12 -12
  5. package/esm2020/http/src/xhr.mjs +3 -3
  6. package/esm2020/http/src/xsrf.mjs +6 -6
  7. package/esm2020/http/testing/src/backend.mjs +3 -3
  8. package/esm2020/http/testing/src/module.mjs +4 -4
  9. package/esm2020/src/common_module.mjs +4 -4
  10. package/esm2020/src/directives/ng_class.mjs +84 -82
  11. package/esm2020/src/directives/ng_component_outlet.mjs +3 -3
  12. package/esm2020/src/directives/ng_for_of.mjs +3 -3
  13. package/esm2020/src/directives/ng_if.mjs +3 -3
  14. package/esm2020/src/directives/ng_optimized_image/lcp_image_observer.mjs +3 -3
  15. package/esm2020/src/directives/ng_optimized_image/ng_optimized_image.mjs +3 -3
  16. package/esm2020/src/directives/ng_optimized_image/preconnect_link_checker.mjs +3 -3
  17. package/esm2020/src/directives/ng_optimized_image/preload-link-creator.mjs +3 -3
  18. package/esm2020/src/directives/ng_plural.mjs +6 -6
  19. package/esm2020/src/directives/ng_style.mjs +3 -3
  20. package/esm2020/src/directives/ng_switch.mjs +9 -9
  21. package/esm2020/src/directives/ng_template_outlet.mjs +3 -3
  22. package/esm2020/src/i18n/localization.mjs +6 -6
  23. package/esm2020/src/location/hash_location_strategy.mjs +3 -3
  24. package/esm2020/src/location/location.mjs +7 -5
  25. package/esm2020/src/location/location_strategy.mjs +6 -6
  26. package/esm2020/src/location/platform_location.mjs +6 -6
  27. package/esm2020/src/pipes/async_pipe.mjs +3 -3
  28. package/esm2020/src/pipes/case_conversion_pipes.mjs +9 -9
  29. package/esm2020/src/pipes/date_pipe.mjs +3 -3
  30. package/esm2020/src/pipes/i18n_plural_pipe.mjs +3 -3
  31. package/esm2020/src/pipes/i18n_select_pipe.mjs +3 -3
  32. package/esm2020/src/pipes/json_pipe.mjs +3 -3
  33. package/esm2020/src/pipes/keyvalue_pipe.mjs +3 -3
  34. package/esm2020/src/pipes/number_pipe.mjs +9 -9
  35. package/esm2020/src/pipes/slice_pipe.mjs +3 -3
  36. package/esm2020/src/version.mjs +1 -1
  37. package/esm2020/testing/src/location_mock.mjs +3 -3
  38. package/esm2020/testing/src/mock_location_strategy.mjs +3 -3
  39. package/esm2020/testing/src/mock_platform_location.mjs +3 -3
  40. package/esm2020/upgrade/src/location_upgrade_module.mjs +4 -4
  41. package/fesm2015/common.mjs +198 -194
  42. package/fesm2015/common.mjs.map +1 -1
  43. package/fesm2015/http/testing.mjs +8 -8
  44. package/fesm2015/http.mjs +34 -34
  45. package/fesm2015/testing.mjs +10 -10
  46. package/fesm2015/upgrade.mjs +5 -5
  47. package/fesm2020/common.mjs +198 -194
  48. package/fesm2020/common.mjs.map +1 -1
  49. package/fesm2020/http/testing.mjs +8 -8
  50. package/fesm2020/http.mjs +34 -34
  51. package/fesm2020/testing.mjs +10 -10
  52. package/fesm2020/upgrade.mjs +5 -5
  53. package/http/index.d.ts +1 -1
  54. package/http/testing/index.d.ts +1 -1
  55. package/index.d.ts +6 -21
  56. package/package.json +2 -2
  57. package/testing/index.d.ts +1 -1
  58. package/upgrade/index.d.ts +1 -1
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Angular v15.1.0
2
+ * @license Angular v15.2.0-next.2
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import * as i0 from '@angular/core';
8
- import { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/core';
8
+ import { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/core';
9
9
 
10
10
  let _DOM = null;
11
11
  function getDOM() {
@@ -63,9 +63,9 @@ class PlatformLocation {
63
63
  throw new Error('Not implemented');
64
64
  }
65
65
  }
66
- PlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
- PlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PlatformLocation, decorators: [{
66
+ PlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
+ PlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PlatformLocation, decorators: [{
69
69
  type: Injectable,
70
70
  args: [{
71
71
  providedIn: 'platform',
@@ -163,9 +163,9 @@ class BrowserPlatformLocation extends PlatformLocation {
163
163
  return this._history.state;
164
164
  }
165
165
  }
166
- BrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
167
- BrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
166
+ BrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
167
+ BrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
169
169
  type: Injectable,
170
170
  args: [{
171
171
  providedIn: 'platform',
@@ -264,9 +264,9 @@ class LocationStrategy {
264
264
  throw new Error('Not implemented');
265
265
  }
266
266
  }
267
- LocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
268
- LocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LocationStrategy, decorators: [{
267
+ LocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
268
+ LocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LocationStrategy, decorators: [{
270
270
  type: Injectable,
271
271
  args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]
272
272
  }] });
@@ -375,9 +375,9 @@ class PathLocationStrategy extends LocationStrategy {
375
375
  (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);
376
376
  }
377
377
  }
378
- PathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
379
- PathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PathLocationStrategy, decorators: [{
378
+ PathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
379
+ PathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PathLocationStrategy, decorators: [{
381
381
  type: Injectable,
382
382
  args: [{ providedIn: 'root' }]
383
383
  }], ctorParameters: function () {
@@ -469,9 +469,9 @@ class HashLocationStrategy extends LocationStrategy {
469
469
  (_b = (_a = this._platformLocation).historyGo) === null || _b === void 0 ? void 0 : _b.call(_a, relativePosition);
470
470
  }
471
471
  }
472
- HashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
473
- HashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: HashLocationStrategy });
474
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: HashLocationStrategy, decorators: [{
472
+ HashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
473
+ HashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: HashLocationStrategy });
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: HashLocationStrategy, decorators: [{
475
475
  type: Injectable
476
476
  }], ctorParameters: function () {
477
477
  return [{ type: PlatformLocation }, { type: undefined, decorators: [{
@@ -726,9 +726,9 @@ Location.joinWithSlash = joinWithSlash;
726
726
  * @returns The URL string, modified if needed.
727
727
  */
728
728
  Location.stripTrailingSlash = stripTrailingSlash;
729
- Location.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
730
- Location.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: Location, decorators: [{
729
+ Location.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
730
+ Location.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: Location, decorators: [{
732
732
  type: Injectable,
733
733
  args: [{
734
734
  providedIn: 'root',
@@ -740,7 +740,9 @@ function createLocation() {
740
740
  return new Location(ɵɵinject(LocationStrategy));
741
741
  }
742
742
  function _stripBasePath(basePath, url) {
743
- return basePath && url.startsWith(basePath) ? url.substring(basePath.length) : url;
743
+ return basePath && new RegExp(`^${basePath}([/;?#]|$)`).test(url) ?
744
+ url.substring(basePath.length) :
745
+ url;
744
746
  }
745
747
  function _stripIndexHtml(url) {
746
748
  return url.replace(/\/index.html$/, '');
@@ -2514,9 +2516,9 @@ function parseIntAutoRadix(text) {
2514
2516
  */
2515
2517
  class NgLocalization {
2516
2518
  }
2517
- NgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2518
- NgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });
2519
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgLocalization, decorators: [{
2519
+ NgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2520
+ NgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });
2521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgLocalization, decorators: [{
2520
2522
  type: Injectable,
2521
2523
  args: [{
2522
2524
  providedIn: 'root',
@@ -2571,9 +2573,9 @@ class NgLocaleLocalization extends NgLocalization {
2571
2573
  }
2572
2574
  }
2573
2575
  }
2574
- NgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2575
- NgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgLocaleLocalization });
2576
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2576
+ NgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2577
+ NgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgLocaleLocalization });
2578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2577
2579
  type: Injectable
2578
2580
  }], ctorParameters: function () {
2579
2581
  return [{ type: undefined, decorators: [{
@@ -2607,6 +2609,8 @@ function parseCookieValue(cookieStr, name) {
2607
2609
  return null;
2608
2610
  }
2609
2611
 
2612
+ const WS_REGEXP = /\s+/;
2613
+ const EMPTY_ARRAY = [];
2610
2614
  /**
2611
2615
  * @ngModule CommonModule
2612
2616
  *
@@ -2636,107 +2640,107 @@ function parseCookieValue(cookieStr, name) {
2636
2640
  * @publicApi
2637
2641
  */
2638
2642
  class NgClass {
2639
- constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {
2643
+ constructor(
2644
+ // leaving references to differs in place since flex layout is extending NgClass...
2645
+ _iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {
2640
2646
  this._iterableDiffers = _iterableDiffers;
2641
2647
  this._keyValueDiffers = _keyValueDiffers;
2642
2648
  this._ngEl = _ngEl;
2643
2649
  this._renderer = _renderer;
2644
- this._iterableDiffer = null;
2645
- this._keyValueDiffer = null;
2646
- this._initialClasses = [];
2647
- this._rawClass = null;
2650
+ this.initialClasses = EMPTY_ARRAY;
2651
+ this.stateMap = new Map();
2648
2652
  }
2649
2653
  set klass(value) {
2650
- this._removeClasses(this._initialClasses);
2651
- this._initialClasses = typeof value === 'string' ? value.split(/\s+/) : [];
2652
- this._applyClasses(this._initialClasses);
2653
- this._applyClasses(this._rawClass);
2654
+ this.initialClasses = value != null ? value.trim().split(WS_REGEXP) : EMPTY_ARRAY;
2654
2655
  }
2655
2656
  set ngClass(value) {
2656
- this._removeClasses(this._rawClass);
2657
- this._applyClasses(this._initialClasses);
2658
- this._iterableDiffer = null;
2659
- this._keyValueDiffer = null;
2660
- this._rawClass = typeof value === 'string' ? value.split(/\s+/) : value;
2661
- if (this._rawClass) {
2662
- if (ɵisListLikeIterable(this._rawClass)) {
2663
- this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();
2664
- }
2665
- else {
2666
- this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();
2667
- }
2668
- }
2669
- }
2657
+ this.rawClass = typeof value === 'string' ? value.trim().split(WS_REGEXP) : value;
2658
+ }
2659
+ /*
2660
+ The NgClass directive uses the custom change detection algorithm for its inputs. The custom
2661
+ algorithm is necessary since inputs are represented as complex object or arrays that need to be
2662
+ deeply-compared.
2663
+
2664
+ This algorithm is perf-sensitive since NgClass is used very frequently and its poor performance
2665
+ might negatively impact runtime performance of the entire change detection cycle. The design of
2666
+ this algorithm is making sure that:
2667
+ - there is no unnecessary DOM manipulation (CSS classes are added / removed from the DOM only when
2668
+ needed), even if references to bound objects change;
2669
+ - there is no memory allocation if nothing changes (even relatively modest memory allocation
2670
+ during the change detection cycle can result in GC pauses for some of the CD cycles).
2671
+
2672
+ The algorithm works by iterating over the set of bound classes, staring with [class] binding and
2673
+ then going over [ngClass] binding. For each CSS class name:
2674
+ - check if it was seen before (this information is tracked in the state map) and if its value
2675
+ changed;
2676
+ - mark it as "touched" - names that are not marked are not present in the latest set of binding
2677
+ and we can remove such class name from the internal data structures;
2678
+
2679
+ After iteration over all the CSS class names we've got data structure with all the information
2680
+ necessary to synchronize changes to the DOM - it is enough to iterate over the state map, flush
2681
+ changes to the DOM and reset internal data structures so those are ready for the next change
2682
+ detection cycle.
2683
+ */
2670
2684
  ngDoCheck() {
2671
- if (this._iterableDiffer) {
2672
- const iterableChanges = this._iterableDiffer.diff(this._rawClass);
2673
- if (iterableChanges) {
2674
- this._applyIterableChanges(iterableChanges);
2685
+ // classes from the [class] binding
2686
+ for (const klass of this.initialClasses) {
2687
+ this._updateState(klass, true);
2688
+ }
2689
+ // classes from the [ngClass] binding
2690
+ const rawClass = this.rawClass;
2691
+ if (Array.isArray(rawClass) || rawClass instanceof Set) {
2692
+ for (const klass of rawClass) {
2693
+ this._updateState(klass, true);
2675
2694
  }
2676
2695
  }
2677
- else if (this._keyValueDiffer) {
2678
- const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);
2679
- if (keyValueChanges) {
2680
- this._applyKeyValueChanges(keyValueChanges);
2696
+ else if (rawClass != null) {
2697
+ for (const klass of Object.keys(rawClass)) {
2698
+ this._updateState(klass, Boolean(rawClass[klass]));
2681
2699
  }
2682
2700
  }
2701
+ this._applyStateDiff();
2683
2702
  }
2684
- _applyKeyValueChanges(changes) {
2685
- changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));
2686
- changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));
2687
- changes.forEachRemovedItem((record) => {
2688
- if (record.previousValue) {
2689
- this._toggleClass(record.key, false);
2690
- }
2691
- });
2692
- }
2693
- _applyIterableChanges(changes) {
2694
- changes.forEachAddedItem((record) => {
2695
- if (typeof record.item === 'string') {
2696
- this._toggleClass(record.item, true);
2697
- }
2698
- else {
2699
- throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);
2700
- }
2701
- });
2702
- changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));
2703
- }
2704
- /**
2705
- * Applies a collection of CSS classes to the DOM element.
2706
- *
2707
- * For argument of type Set and Array CSS class names contained in those collections are always
2708
- * added.
2709
- * For argument of type Map CSS class name in the map's key is toggled based on the value (added
2710
- * for truthy and removed for falsy).
2711
- */
2712
- _applyClasses(rawClassVal) {
2713
- if (rawClassVal) {
2714
- if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {
2715
- rawClassVal.forEach((klass) => this._toggleClass(klass, true));
2716
- }
2717
- else {
2718
- Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));
2703
+ _updateState(klass, nextEnabled) {
2704
+ const state = this.stateMap.get(klass);
2705
+ if (state !== undefined) {
2706
+ if (state.enabled !== nextEnabled) {
2707
+ state.changed = true;
2708
+ state.enabled = nextEnabled;
2719
2709
  }
2710
+ state.touched = true;
2711
+ }
2712
+ else {
2713
+ this.stateMap.set(klass, { enabled: nextEnabled, changed: true, touched: true });
2720
2714
  }
2721
2715
  }
2722
- /**
2723
- * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup
2724
- * purposes.
2725
- */
2726
- _removeClasses(rawClassVal) {
2727
- if (rawClassVal) {
2728
- if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {
2729
- rawClassVal.forEach((klass) => this._toggleClass(klass, false));
2716
+ _applyStateDiff() {
2717
+ for (const stateEntry of this.stateMap) {
2718
+ const klass = stateEntry[0];
2719
+ const state = stateEntry[1];
2720
+ if (state.changed) {
2721
+ this._toggleClass(klass, state.enabled);
2722
+ state.changed = false;
2730
2723
  }
2731
- else {
2732
- Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));
2724
+ else if (!state.touched) {
2725
+ // A class that was previously active got removed from the new collection of classes -
2726
+ // remove from the DOM as well.
2727
+ if (state.enabled) {
2728
+ this._toggleClass(klass, false);
2729
+ }
2730
+ this.stateMap.delete(klass);
2733
2731
  }
2732
+ state.touched = false;
2734
2733
  }
2735
2734
  }
2736
2735
  _toggleClass(klass, enabled) {
2736
+ if (ngDevMode) {
2737
+ if (typeof klass !== 'string') {
2738
+ throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(klass)}`);
2739
+ }
2740
+ }
2737
2741
  klass = klass.trim();
2738
- if (klass) {
2739
- klass.split(/\s+/g).forEach(klass => {
2742
+ if (klass.length > 0) {
2743
+ klass.split(WS_REGEXP).forEach(klass => {
2740
2744
  if (enabled) {
2741
2745
  this._renderer.addClass(this._ngEl.nativeElement, klass);
2742
2746
  }
@@ -2747,9 +2751,9 @@ class NgClass {
2747
2751
  }
2748
2752
  }
2749
2753
  }
2750
- NgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2751
- NgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgClass, decorators: [{
2754
+ NgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2755
+ NgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgClass, decorators: [{
2753
2757
  type: Directive,
2754
2758
  args: [{
2755
2759
  selector: '[ngClass]',
@@ -2861,9 +2865,9 @@ class NgComponentOutlet {
2861
2865
  this._moduleRef.destroy();
2862
2866
  }
2863
2867
  }
2864
- NgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
2865
- NgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, usesOnChanges: true, ngImport: i0 });
2866
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgComponentOutlet, decorators: [{
2868
+ NgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
2869
+ NgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, usesOnChanges: true, ngImport: i0 });
2870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgComponentOutlet, decorators: [{
2867
2871
  type: Directive,
2868
2872
  args: [{
2869
2873
  selector: '[ngComponentOutlet]',
@@ -3143,9 +3147,9 @@ class NgForOf {
3143
3147
  return true;
3144
3148
  }
3145
3149
  }
3146
- NgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3147
- NgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgForOf, decorators: [{
3150
+ NgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3151
+ NgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgForOf, decorators: [{
3149
3153
  type: Directive,
3150
3154
  args: [{
3151
3155
  selector: '[ngFor][ngForOf]',
@@ -3371,9 +3375,9 @@ class NgIf {
3371
3375
  return true;
3372
3376
  }
3373
3377
  }
3374
- NgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3375
- NgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgIf, decorators: [{
3378
+ NgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3379
+ NgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgIf, decorators: [{
3377
3381
  type: Directive,
3378
3382
  args: [{
3379
3383
  selector: '[ngIf]',
@@ -3534,9 +3538,9 @@ class NgSwitch {
3534
3538
  }
3535
3539
  }
3536
3540
  }
3537
- NgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3538
- NgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgSwitch, decorators: [{
3541
+ NgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3542
+ NgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgSwitch, decorators: [{
3540
3544
  type: Directive,
3541
3545
  args: [{
3542
3546
  selector: '[ngSwitch]',
@@ -3595,9 +3599,9 @@ class NgSwitchCase {
3595
3599
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3596
3600
  }
3597
3601
  }
3598
- NgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3599
- NgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3600
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgSwitchCase, decorators: [{
3602
+ NgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3603
+ NgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgSwitchCase, decorators: [{
3601
3605
  type: Directive,
3602
3606
  args: [{
3603
3607
  selector: '[ngSwitchCase]',
@@ -3634,9 +3638,9 @@ class NgSwitchDefault {
3634
3638
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3635
3639
  }
3636
3640
  }
3637
- NgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3638
- NgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3639
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgSwitchDefault, decorators: [{
3641
+ NgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3642
+ NgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgSwitchDefault, decorators: [{
3640
3644
  type: Directive,
3641
3645
  args: [{
3642
3646
  selector: '[ngSwitchDefault]',
@@ -3714,9 +3718,9 @@ class NgPlural {
3714
3718
  }
3715
3719
  }
3716
3720
  }
3717
- NgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3718
- NgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgPlural, decorators: [{
3721
+ NgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3722
+ NgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgPlural, decorators: [{
3720
3724
  type: Directive,
3721
3725
  args: [{
3722
3726
  selector: '[ngPlural]',
@@ -3752,9 +3756,9 @@ class NgPluralCase {
3752
3756
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3753
3757
  }
3754
3758
  }
3755
- NgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3756
- NgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3757
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgPluralCase, decorators: [{
3759
+ NgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3760
+ NgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3761
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgPluralCase, decorators: [{
3758
3762
  type: Directive,
3759
3763
  args: [{
3760
3764
  selector: '[ngPluralCase]',
@@ -3843,9 +3847,9 @@ class NgStyle {
3843
3847
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
3844
3848
  }
3845
3849
  }
3846
- NgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
3847
- NgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
3848
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgStyle, decorators: [{
3850
+ NgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
3851
+ NgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
3852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgStyle, decorators: [{
3849
3853
  type: Directive,
3850
3854
  args: [{
3851
3855
  selector: '[ngStyle]',
@@ -3918,9 +3922,9 @@ class NgTemplateOutlet {
3918
3922
  }
3919
3923
  }
3920
3924
  }
3921
- NgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3922
- NgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
3923
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgTemplateOutlet, decorators: [{
3925
+ NgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3926
+ NgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
3927
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgTemplateOutlet, decorators: [{
3924
3928
  type: Directive,
3925
3929
  args: [{
3926
3930
  selector: '[ngTemplateOutlet]',
@@ -4071,9 +4075,9 @@ class AsyncPipe {
4071
4075
  }
4072
4076
  }
4073
4077
  }
4074
- AsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4075
- AsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4076
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: AsyncPipe, decorators: [{
4078
+ AsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4079
+ AsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: AsyncPipe, decorators: [{
4077
4081
  type: Pipe,
4078
4082
  args: [{
4079
4083
  name: 'async',
@@ -4107,9 +4111,9 @@ class LowerCasePipe {
4107
4111
  return value.toLowerCase();
4108
4112
  }
4109
4113
  }
4110
- LowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4111
- LowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LowerCasePipe, decorators: [{
4114
+ LowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4115
+ LowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LowerCasePipe, decorators: [{
4113
4117
  type: Pipe,
4114
4118
  args: [{
4115
4119
  name: 'lowercase',
@@ -4152,9 +4156,9 @@ class TitleCasePipe {
4152
4156
  return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));
4153
4157
  }
4154
4158
  }
4155
- TitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4156
- TitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: TitleCasePipe, decorators: [{
4159
+ TitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4160
+ TitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: TitleCasePipe, decorators: [{
4158
4162
  type: Pipe,
4159
4163
  args: [{
4160
4164
  name: 'titlecase',
@@ -4179,9 +4183,9 @@ class UpperCasePipe {
4179
4183
  return value.toUpperCase();
4180
4184
  }
4181
4185
  }
4182
- UpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4183
- UpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: UpperCasePipe, decorators: [{
4186
+ UpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4187
+ UpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: UpperCasePipe, decorators: [{
4185
4189
  type: Pipe,
4186
4190
  args: [{
4187
4191
  name: 'uppercase',
@@ -4413,9 +4417,9 @@ class DatePipe {
4413
4417
  }
4414
4418
  }
4415
4419
  }
4416
- DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
4417
- DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: DatePipe, decorators: [{
4420
+ DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
4421
+ DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: DatePipe, decorators: [{
4419
4423
  type: Pipe,
4420
4424
  args: [{
4421
4425
  name: 'date',
@@ -4475,9 +4479,9 @@ class I18nPluralPipe {
4475
4479
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4476
4480
  }
4477
4481
  }
4478
- I18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4479
- I18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4480
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: I18nPluralPipe, decorators: [{
4482
+ I18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4483
+ I18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: I18nPluralPipe, decorators: [{
4481
4485
  type: Pipe,
4482
4486
  args: [{
4483
4487
  name: 'i18nPlural',
@@ -4524,9 +4528,9 @@ class I18nSelectPipe {
4524
4528
  return '';
4525
4529
  }
4526
4530
  }
4527
- I18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4528
- I18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: I18nSelectPipe, decorators: [{
4531
+ I18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4532
+ I18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: I18nSelectPipe, decorators: [{
4530
4534
  type: Pipe,
4531
4535
  args: [{
4532
4536
  name: 'i18nSelect',
@@ -4558,9 +4562,9 @@ class JsonPipe {
4558
4562
  return JSON.stringify(value, null, 2);
4559
4563
  }
4560
4564
  }
4561
- JsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4562
- JsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4563
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: JsonPipe, decorators: [{
4565
+ JsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4566
+ JsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: JsonPipe, decorators: [{
4564
4568
  type: Pipe,
4565
4569
  args: [{
4566
4570
  name: 'json',
@@ -4621,9 +4625,9 @@ class KeyValuePipe {
4621
4625
  return this.keyValues;
4622
4626
  }
4623
4627
  }
4624
- KeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4625
- KeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4626
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: KeyValuePipe, decorators: [{
4628
+ KeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4629
+ KeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: KeyValuePipe, decorators: [{
4627
4631
  type: Pipe,
4628
4632
  args: [{
4629
4633
  name: 'keyvalue',
@@ -4749,9 +4753,9 @@ class DecimalPipe {
4749
4753
  }
4750
4754
  }
4751
4755
  }
4752
- DecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4753
- DecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4754
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: DecimalPipe, decorators: [{
4756
+ DecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4757
+ DecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: DecimalPipe, decorators: [{
4755
4759
  type: Pipe,
4756
4760
  args: [{
4757
4761
  name: 'number',
@@ -4816,9 +4820,9 @@ class PercentPipe {
4816
4820
  }
4817
4821
  }
4818
4822
  }
4819
- PercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4820
- PercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
4821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PercentPipe, decorators: [{
4823
+ PercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4824
+ PercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
4825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PercentPipe, decorators: [{
4822
4826
  type: Pipe,
4823
4827
  args: [{
4824
4828
  name: 'percent',
@@ -4936,9 +4940,9 @@ class CurrencyPipe {
4936
4940
  }
4937
4941
  }
4938
4942
  }
4939
- CurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
4940
- CurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
4941
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: CurrencyPipe, decorators: [{
4943
+ CurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
4944
+ CurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
4945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: CurrencyPipe, decorators: [{
4942
4946
  type: Pipe,
4943
4947
  args: [{
4944
4948
  name: 'currency',
@@ -5018,9 +5022,9 @@ class SlicePipe {
5018
5022
  return typeof obj === 'string' || Array.isArray(obj);
5019
5023
  }
5020
5024
  }
5021
- SlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5022
- SlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5023
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: SlicePipe, decorators: [{
5025
+ SlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5026
+ SlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: SlicePipe, decorators: [{
5024
5028
  type: Pipe,
5025
5029
  args: [{
5026
5030
  name: 'slice',
@@ -5065,10 +5069,10 @@ const COMMON_PIPES = [
5065
5069
  */
5066
5070
  class CommonModule {
5067
5071
  }
5068
- CommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5069
- CommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0-next.0", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });
5070
- CommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: CommonModule });
5071
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: CommonModule, decorators: [{
5072
+ CommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5073
+ CommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0-next.2", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });
5074
+ CommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: CommonModule });
5075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: CommonModule, decorators: [{
5072
5076
  type: NgModule,
5073
5077
  args: [{
5074
5078
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5117,7 +5121,7 @@ function isPlatformWorkerUi(platformId) {
5117
5121
  /**
5118
5122
  * @publicApi
5119
5123
  */
5120
- const VERSION = new Version('15.2.0-next.0');
5124
+ const VERSION = new Version('15.2.0-next.2');
5121
5125
 
5122
5126
  /**
5123
5127
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5655,9 +5659,9 @@ class LCPImageObserver {
5655
5659
  this.alreadyWarned.clear();
5656
5660
  }
5657
5661
  }
5658
- LCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5659
- LCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: LCPImageObserver, decorators: [{
5662
+ LCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5663
+ LCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: LCPImageObserver, decorators: [{
5661
5665
  type: Injectable,
5662
5666
  args: [{ providedIn: 'root' }]
5663
5667
  }], ctorParameters: function () { return []; } });
@@ -5777,9 +5781,9 @@ class PreconnectLinkChecker {
5777
5781
  this.alreadySeen.clear();
5778
5782
  }
5779
5783
  }
5780
- PreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5781
- PreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
5782
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5784
+ PreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5785
+ PreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
5786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5783
5787
  type: Injectable,
5784
5788
  args: [{ providedIn: 'root' }]
5785
5789
  }], ctorParameters: function () { return []; } });
@@ -5866,9 +5870,9 @@ class PreloadLinkCreator {
5866
5870
  renderer.appendChild(this.document.head, preload);
5867
5871
  }
5868
5872
  }
5869
- PreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5870
- PreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
5871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: PreloadLinkCreator, decorators: [{
5873
+ PreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5874
+ PreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
5875
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: PreloadLinkCreator, decorators: [{
5872
5876
  type: Injectable,
5873
5877
  args: [{ providedIn: 'root' }]
5874
5878
  }] });
@@ -6279,9 +6283,9 @@ class NgOptimizedImage {
6279
6283
  this.renderer.setAttribute(this.imgElement, name, value);
6280
6284
  }
6281
6285
  }
6282
- NgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6283
- NgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.0", type: NgOptimizedImage, isStandalone: true, selector: "img[ngSrc]", inputs: { ngSrc: "ngSrc", ngSrcset: "ngSrcset", sizes: "sizes", width: "width", height: "height", loading: "loading", priority: "priority", disableOptimizedSrcset: "disableOptimizedSrcset", fill: "fill", src: "src", srcset: "srcset" }, host: { properties: { "style.position": "fill ? \"absolute\" : null", "style.width": "fill ? \"100%\" : null", "style.height": "fill ? \"100%\" : null", "style.inset": "fill ? \"0px\" : null" } }, usesOnChanges: true, ngImport: i0 });
6284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.0", ngImport: i0, type: NgOptimizedImage, decorators: [{
6286
+ NgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6287
+ NgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0-next.2", type: NgOptimizedImage, isStandalone: true, selector: "img[ngSrc]", inputs: { ngSrc: "ngSrc", ngSrcset: "ngSrcset", sizes: "sizes", width: "width", height: "height", loading: "loading", priority: "priority", disableOptimizedSrcset: "disableOptimizedSrcset", fill: "fill", src: "src", srcset: "srcset" }, host: { properties: { "style.position": "fill ? \"absolute\" : null", "style.width": "fill ? \"100%\" : null", "style.height": "fill ? \"100%\" : null", "style.inset": "fill ? \"0px\" : null" } }, usesOnChanges: true, ngImport: i0 });
6288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0-next.2", ngImport: i0, type: NgOptimizedImage, decorators: [{
6285
6289
  type: Directive,
6286
6290
  args: [{
6287
6291
  standalone: true,