@angular/common 15.1.0-rc.0 → 15.1.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.
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 +6 -9
  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 +10 -11
  19. package/esm2020/src/directives/ng_style.mjs +3 -3
  20. package/esm2020/src/directives/ng_switch.mjs +13 -16
  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 +206 -209
  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 +206 -209
  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 +7 -23
  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-rc.0
2
+ * @license Angular v15.1.1
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.1.0-rc.0", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
- PlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PlatformLocation, decorators: [{
66
+ PlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
67
+ PlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.0", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
167
- BrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
166
+ BrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
167
+ BrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.0", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
268
- LocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LocationStrategy, decorators: [{
267
+ LocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
268
+ LocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.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.1.0-rc.0", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PathLocationStrategy, decorators: [{
378
+ PathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.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.1.0-rc.0", ngImport: i0, type: HashLocationStrategy });
474
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: HashLocationStrategy, decorators: [{
472
+ HashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: HashLocationStrategy });
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.0", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
730
- Location.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
731
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: Location, decorators: [{
729
+ Location.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
730
+ Location.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
731
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.0", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2518
- NgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.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.1.0-rc.0", ngImport: i0, type: NgLocalization, decorators: [{
2519
+ NgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2520
+ NgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });
2521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2575
- NgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization });
2576
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2576
+ NgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2577
+ NgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocaleLocalization });
2578
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.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.1.0-rc.0", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgClass, decorators: [{
2754
+ NgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", 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.1.0-rc.0", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
2865
- NgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.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.1.0-rc.0", ngImport: i0, type: NgComponentOutlet, decorators: [{
2868
+ NgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
2869
+ NgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: NgComponentOutlet, decorators: [{
2867
2871
  type: Directive,
2868
2872
  args: [{
2869
2873
  selector: '[ngComponentOutlet]',
@@ -3037,11 +3041,8 @@ class NgForOf {
3037
3041
  */
3038
3042
  set ngForTrackBy(fn) {
3039
3043
  if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {
3040
- // TODO(vicb): use a log service once there is a public one available
3041
- if (console && console.warn) {
3042
- console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +
3043
- `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);
3044
- }
3044
+ console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +
3045
+ `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);
3045
3046
  }
3046
3047
  this._trackByFn = fn;
3047
3048
  }
@@ -3146,9 +3147,9 @@ class NgForOf {
3146
3147
  return true;
3147
3148
  }
3148
3149
  }
3149
- NgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3150
- NgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgForOf, decorators: [{
3150
+ NgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", 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.1.1", ngImport: i0, type: NgForOf, decorators: [{
3152
3153
  type: Directive,
3153
3154
  args: [{
3154
3155
  selector: '[ngFor][ngForOf]',
@@ -3374,9 +3375,9 @@ class NgIf {
3374
3375
  return true;
3375
3376
  }
3376
3377
  }
3377
- NgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3378
- NgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgIf, decorators: [{
3378
+ NgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgIf, decorators: [{
3380
3381
  type: Directive,
3381
3382
  args: [{
3382
3383
  selector: '[ngIf]',
@@ -3496,6 +3497,7 @@ class SwitchView {
3496
3497
  */
3497
3498
  class NgSwitch {
3498
3499
  constructor() {
3500
+ this._defaultViews = [];
3499
3501
  this._defaultUsed = false;
3500
3502
  this._caseCount = 0;
3501
3503
  this._lastCaseCheckIndex = 0;
@@ -3513,9 +3515,6 @@ class NgSwitch {
3513
3515
  }
3514
3516
  /** @internal */
3515
3517
  _addDefault(view) {
3516
- if (!this._defaultViews) {
3517
- this._defaultViews = [];
3518
- }
3519
3518
  this._defaultViews.push(view);
3520
3519
  }
3521
3520
  /** @internal */
@@ -3531,18 +3530,17 @@ class NgSwitch {
3531
3530
  return matched;
3532
3531
  }
3533
3532
  _updateDefaultCases(useDefault) {
3534
- if (this._defaultViews && useDefault !== this._defaultUsed) {
3533
+ if (this._defaultViews.length > 0 && useDefault !== this._defaultUsed) {
3535
3534
  this._defaultUsed = useDefault;
3536
- for (let i = 0; i < this._defaultViews.length; i++) {
3537
- const defaultView = this._defaultViews[i];
3535
+ for (const defaultView of this._defaultViews) {
3538
3536
  defaultView.enforceState(useDefault);
3539
3537
  }
3540
3538
  }
3541
3539
  }
3542
3540
  }
3543
- NgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3544
- NgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitch, decorators: [{
3541
+ NgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3542
+ NgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3543
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitch, decorators: [{
3546
3544
  type: Directive,
3547
3545
  args: [{
3548
3546
  selector: '[ngSwitch]',
@@ -3601,9 +3599,9 @@ class NgSwitchCase {
3601
3599
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3602
3600
  }
3603
3601
  }
3604
- NgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3605
- NgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitchCase, decorators: [{
3602
+ NgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitchCase, decorators: [{
3607
3605
  type: Directive,
3608
3606
  args: [{
3609
3607
  selector: '[ngSwitchCase]',
@@ -3640,9 +3638,9 @@ class NgSwitchDefault {
3640
3638
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3641
3639
  }
3642
3640
  }
3643
- NgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3644
- NgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3645
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitchDefault, decorators: [{
3641
+ NgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitchDefault, decorators: [{
3646
3644
  type: Directive,
3647
3645
  args: [{
3648
3646
  selector: '[ngSwitchDefault]',
@@ -3698,16 +3696,15 @@ class NgPlural {
3698
3696
  this._caseViews = {};
3699
3697
  }
3700
3698
  set ngPlural(value) {
3701
- this._switchValue = value;
3702
- this._updateView();
3699
+ this._updateView(value);
3703
3700
  }
3704
3701
  addCase(value, switchView) {
3705
3702
  this._caseViews[value] = switchView;
3706
3703
  }
3707
- _updateView() {
3704
+ _updateView(switchValue) {
3708
3705
  this._clearViews();
3709
3706
  const cases = Object.keys(this._caseViews);
3710
- const key = getPluralCategory(this._switchValue, cases, this._localization);
3707
+ const key = getPluralCategory(switchValue, cases, this._localization);
3711
3708
  this._activateView(this._caseViews[key]);
3712
3709
  }
3713
3710
  _clearViews() {
@@ -3721,9 +3718,9 @@ class NgPlural {
3721
3718
  }
3722
3719
  }
3723
3720
  }
3724
- NgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3725
- NgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgPlural, decorators: [{
3721
+ NgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3722
+ NgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgPlural, decorators: [{
3727
3724
  type: Directive,
3728
3725
  args: [{
3729
3726
  selector: '[ngPlural]',
@@ -3759,9 +3756,9 @@ class NgPluralCase {
3759
3756
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3760
3757
  }
3761
3758
  }
3762
- NgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3763
- NgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3764
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgPluralCase, decorators: [{
3759
+ NgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3761
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgPluralCase, decorators: [{
3765
3762
  type: Directive,
3766
3763
  args: [{
3767
3764
  selector: '[ngPluralCase]',
@@ -3850,9 +3847,9 @@ class NgStyle {
3850
3847
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
3851
3848
  }
3852
3849
  }
3853
- NgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
3854
- NgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
3855
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgStyle, decorators: [{
3850
+ NgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
3852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgStyle, decorators: [{
3856
3853
  type: Directive,
3857
3854
  args: [{
3858
3855
  selector: '[ngStyle]',
@@ -3925,9 +3922,9 @@ class NgTemplateOutlet {
3925
3922
  }
3926
3923
  }
3927
3924
  }
3928
- NgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3929
- NgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
3930
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgTemplateOutlet, decorators: [{
3925
+ NgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3926
+ NgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: NgTemplateOutlet, decorators: [{
3931
3928
  type: Directive,
3932
3929
  args: [{
3933
3930
  selector: '[ngTemplateOutlet]',
@@ -4078,9 +4075,9 @@ class AsyncPipe {
4078
4075
  }
4079
4076
  }
4080
4077
  }
4081
- AsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4082
- AsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4083
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: AsyncPipe, decorators: [{
4078
+ AsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4079
+ AsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AsyncPipe, decorators: [{
4084
4081
  type: Pipe,
4085
4082
  args: [{
4086
4083
  name: 'async',
@@ -4114,9 +4111,9 @@ class LowerCasePipe {
4114
4111
  return value.toLowerCase();
4115
4112
  }
4116
4113
  }
4117
- LowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4118
- LowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LowerCasePipe, decorators: [{
4114
+ LowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4115
+ LowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LowerCasePipe, decorators: [{
4120
4117
  type: Pipe,
4121
4118
  args: [{
4122
4119
  name: 'lowercase',
@@ -4159,9 +4156,9 @@ class TitleCasePipe {
4159
4156
  return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));
4160
4157
  }
4161
4158
  }
4162
- TitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4163
- TitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: TitleCasePipe, decorators: [{
4159
+ TitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4160
+ TitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: TitleCasePipe, decorators: [{
4165
4162
  type: Pipe,
4166
4163
  args: [{
4167
4164
  name: 'titlecase',
@@ -4186,9 +4183,9 @@ class UpperCasePipe {
4186
4183
  return value.toUpperCase();
4187
4184
  }
4188
4185
  }
4189
- UpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4190
- UpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: UpperCasePipe, decorators: [{
4186
+ UpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4187
+ UpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: UpperCasePipe, decorators: [{
4192
4189
  type: Pipe,
4193
4190
  args: [{
4194
4191
  name: 'uppercase',
@@ -4420,9 +4417,9 @@ class DatePipe {
4420
4417
  }
4421
4418
  }
4422
4419
  }
4423
- DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.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 });
4424
- DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4425
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DatePipe, decorators: [{
4420
+ DatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatePipe, decorators: [{
4426
4423
  type: Pipe,
4427
4424
  args: [{
4428
4425
  name: 'date',
@@ -4482,9 +4479,9 @@ class I18nPluralPipe {
4482
4479
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4483
4480
  }
4484
4481
  }
4485
- I18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4486
- I18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4487
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, decorators: [{
4482
+ I18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4483
+ I18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nPluralPipe, decorators: [{
4488
4485
  type: Pipe,
4489
4486
  args: [{
4490
4487
  name: 'i18nPlural',
@@ -4531,9 +4528,9 @@ class I18nSelectPipe {
4531
4528
  return '';
4532
4529
  }
4533
4530
  }
4534
- I18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4535
- I18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4536
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, decorators: [{
4531
+ I18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4532
+ I18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nSelectPipe, decorators: [{
4537
4534
  type: Pipe,
4538
4535
  args: [{
4539
4536
  name: 'i18nSelect',
@@ -4565,9 +4562,9 @@ class JsonPipe {
4565
4562
  return JSON.stringify(value, null, 2);
4566
4563
  }
4567
4564
  }
4568
- JsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4569
- JsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: JsonPipe, decorators: [{
4565
+ JsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4566
+ JsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: JsonPipe, decorators: [{
4571
4568
  type: Pipe,
4572
4569
  args: [{
4573
4570
  name: 'json',
@@ -4628,9 +4625,9 @@ class KeyValuePipe {
4628
4625
  return this.keyValues;
4629
4626
  }
4630
4627
  }
4631
- KeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4632
- KeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4633
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: KeyValuePipe, decorators: [{
4628
+ KeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4629
+ KeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4630
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: KeyValuePipe, decorators: [{
4634
4631
  type: Pipe,
4635
4632
  args: [{
4636
4633
  name: 'keyvalue',
@@ -4756,9 +4753,9 @@ class DecimalPipe {
4756
4753
  }
4757
4754
  }
4758
4755
  }
4759
- DecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4760
- DecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DecimalPipe, decorators: [{
4756
+ DecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4757
+ DecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4758
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DecimalPipe, decorators: [{
4762
4759
  type: Pipe,
4763
4760
  args: [{
4764
4761
  name: 'number',
@@ -4823,9 +4820,9 @@ class PercentPipe {
4823
4820
  }
4824
4821
  }
4825
4822
  }
4826
- PercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4827
- PercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
4828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PercentPipe, decorators: [{
4823
+ PercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4824
+ PercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
4825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PercentPipe, decorators: [{
4829
4826
  type: Pipe,
4830
4827
  args: [{
4831
4828
  name: 'percent',
@@ -4943,9 +4940,9 @@ class CurrencyPipe {
4943
4940
  }
4944
4941
  }
4945
4942
  }
4946
- CurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
4947
- CurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
4948
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CurrencyPipe, decorators: [{
4943
+ CurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
4945
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CurrencyPipe, decorators: [{
4949
4946
  type: Pipe,
4950
4947
  args: [{
4951
4948
  name: 'currency',
@@ -5025,9 +5022,9 @@ class SlicePipe {
5025
5022
  return typeof obj === 'string' || Array.isArray(obj);
5026
5023
  }
5027
5024
  }
5028
- SlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5029
- SlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: SlicePipe, decorators: [{
5025
+ SlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5026
+ SlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SlicePipe, decorators: [{
5031
5028
  type: Pipe,
5032
5029
  args: [{
5033
5030
  name: 'slice',
@@ -5072,10 +5069,10 @@ const COMMON_PIPES = [
5072
5069
  */
5073
5070
  class CommonModule {
5074
5071
  }
5075
- CommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5076
- CommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0-rc.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] });
5077
- CommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CommonModule });
5078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CommonModule, decorators: [{
5072
+ CommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5073
+ CommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: CommonModule });
5075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CommonModule, decorators: [{
5079
5076
  type: NgModule,
5080
5077
  args: [{
5081
5078
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5124,7 +5121,7 @@ function isPlatformWorkerUi(platformId) {
5124
5121
  /**
5125
5122
  * @publicApi
5126
5123
  */
5127
- const VERSION = new Version('15.1.0-rc.0');
5124
+ const VERSION = new Version('15.1.1');
5128
5125
 
5129
5126
  /**
5130
5127
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5662,9 +5659,9 @@ class LCPImageObserver {
5662
5659
  this.alreadyWarned.clear();
5663
5660
  }
5664
5661
  }
5665
- LCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5666
- LCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LCPImageObserver, decorators: [{
5662
+ LCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5663
+ LCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LCPImageObserver, decorators: [{
5668
5665
  type: Injectable,
5669
5666
  args: [{ providedIn: 'root' }]
5670
5667
  }], ctorParameters: function () { return []; } });
@@ -5784,9 +5781,9 @@ class PreconnectLinkChecker {
5784
5781
  this.alreadySeen.clear();
5785
5782
  }
5786
5783
  }
5787
- PreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5788
- PreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
5789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5784
+ PreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5785
+ PreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
5786
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5790
5787
  type: Injectable,
5791
5788
  args: [{ providedIn: 'root' }]
5792
5789
  }], ctorParameters: function () { return []; } });
@@ -5873,9 +5870,9 @@ class PreloadLinkCreator {
5873
5870
  renderer.appendChild(this.document.head, preload);
5874
5871
  }
5875
5872
  }
5876
- PreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5877
- PreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
5878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, decorators: [{
5873
+ PreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5874
+ PreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
5875
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreloadLinkCreator, decorators: [{
5879
5876
  type: Injectable,
5880
5877
  args: [{ providedIn: 'root' }]
5881
5878
  }] });
@@ -6286,9 +6283,9 @@ class NgOptimizedImage {
6286
6283
  this.renderer.setAttribute(this.imgElement, name, value);
6287
6284
  }
6288
6285
  }
6289
- NgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6290
- NgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.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 });
6291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgOptimizedImage, decorators: [{
6286
+ NgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6287
+ NgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", 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.1.1", ngImport: i0, type: NgOptimizedImage, decorators: [{
6292
6289
  type: Directive,
6293
6290
  args: [{
6294
6291
  standalone: true,