@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',
@@ -262,9 +262,9 @@ class LocationStrategy {
262
262
  throw new Error('Not implemented');
263
263
  }
264
264
  }
265
- LocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
266
- LocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LocationStrategy, decorators: [{
265
+ LocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
266
+ LocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LocationStrategy, decorators: [{
268
268
  type: Injectable,
269
269
  args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]
270
270
  }] });
@@ -372,9 +372,9 @@ class PathLocationStrategy extends LocationStrategy {
372
372
  this._platformLocation.historyGo?.(relativePosition);
373
373
  }
374
374
  }
375
- 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 });
376
- PathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PathLocationStrategy, decorators: [{
375
+ 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 });
376
+ PathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PathLocationStrategy, decorators: [{
378
378
  type: Injectable,
379
379
  args: [{ providedIn: 'root' }]
380
380
  }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{
@@ -463,9 +463,9 @@ class HashLocationStrategy extends LocationStrategy {
463
463
  this._platformLocation.historyGo?.(relativePosition);
464
464
  }
465
465
  }
466
- 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 });
467
- HashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: HashLocationStrategy });
468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: HashLocationStrategy, decorators: [{
466
+ 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 });
467
+ HashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: HashLocationStrategy });
468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: HashLocationStrategy, decorators: [{
469
469
  type: Injectable
470
470
  }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{
471
471
  type: Optional
@@ -715,9 +715,9 @@ Location.joinWithSlash = joinWithSlash;
715
715
  * @returns The URL string, modified if needed.
716
716
  */
717
717
  Location.stripTrailingSlash = stripTrailingSlash;
718
- 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 });
719
- Location.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
720
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: Location, decorators: [{
718
+ Location.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
719
+ Location.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
720
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: Location, decorators: [{
721
721
  type: Injectable,
722
722
  args: [{
723
723
  providedIn: 'root',
@@ -729,7 +729,9 @@ function createLocation() {
729
729
  return new Location(ɵɵinject(LocationStrategy));
730
730
  }
731
731
  function _stripBasePath(basePath, url) {
732
- return basePath && url.startsWith(basePath) ? url.substring(basePath.length) : url;
732
+ return basePath && new RegExp(`^${basePath}([/;?#]|$)`).test(url) ?
733
+ url.substring(basePath.length) :
734
+ url;
733
735
  }
734
736
  function _stripIndexHtml(url) {
735
737
  return url.replace(/\/index.html$/, '');
@@ -2503,9 +2505,9 @@ function parseIntAutoRadix(text) {
2503
2505
  */
2504
2506
  class NgLocalization {
2505
2507
  }
2506
- NgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2507
- 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 }] });
2508
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgLocalization, decorators: [{
2508
+ NgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2509
+ 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 }] });
2510
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocalization, decorators: [{
2509
2511
  type: Injectable,
2510
2512
  args: [{
2511
2513
  providedIn: 'root',
@@ -2560,9 +2562,9 @@ class NgLocaleLocalization extends NgLocalization {
2560
2562
  }
2561
2563
  }
2562
2564
  }
2563
- 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 });
2564
- NgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization });
2565
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2565
+ NgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2566
+ NgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocaleLocalization });
2567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2566
2568
  type: Injectable
2567
2569
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
2568
2570
  type: Inject,
@@ -2594,6 +2596,8 @@ function parseCookieValue(cookieStr, name) {
2594
2596
  return null;
2595
2597
  }
2596
2598
 
2599
+ const WS_REGEXP = /\s+/;
2600
+ const EMPTY_ARRAY = [];
2597
2601
  /**
2598
2602
  * @ngModule CommonModule
2599
2603
  *
@@ -2623,107 +2627,107 @@ function parseCookieValue(cookieStr, name) {
2623
2627
  * @publicApi
2624
2628
  */
2625
2629
  class NgClass {
2626
- constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {
2630
+ constructor(
2631
+ // leaving references to differs in place since flex layout is extending NgClass...
2632
+ _iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {
2627
2633
  this._iterableDiffers = _iterableDiffers;
2628
2634
  this._keyValueDiffers = _keyValueDiffers;
2629
2635
  this._ngEl = _ngEl;
2630
2636
  this._renderer = _renderer;
2631
- this._iterableDiffer = null;
2632
- this._keyValueDiffer = null;
2633
- this._initialClasses = [];
2634
- this._rawClass = null;
2637
+ this.initialClasses = EMPTY_ARRAY;
2638
+ this.stateMap = new Map();
2635
2639
  }
2636
2640
  set klass(value) {
2637
- this._removeClasses(this._initialClasses);
2638
- this._initialClasses = typeof value === 'string' ? value.split(/\s+/) : [];
2639
- this._applyClasses(this._initialClasses);
2640
- this._applyClasses(this._rawClass);
2641
+ this.initialClasses = value != null ? value.trim().split(WS_REGEXP) : EMPTY_ARRAY;
2641
2642
  }
2642
2643
  set ngClass(value) {
2643
- this._removeClasses(this._rawClass);
2644
- this._applyClasses(this._initialClasses);
2645
- this._iterableDiffer = null;
2646
- this._keyValueDiffer = null;
2647
- this._rawClass = typeof value === 'string' ? value.split(/\s+/) : value;
2648
- if (this._rawClass) {
2649
- if (ɵisListLikeIterable(this._rawClass)) {
2650
- this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();
2651
- }
2652
- else {
2653
- this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();
2654
- }
2655
- }
2656
- }
2644
+ this.rawClass = typeof value === 'string' ? value.trim().split(WS_REGEXP) : value;
2645
+ }
2646
+ /*
2647
+ The NgClass directive uses the custom change detection algorithm for its inputs. The custom
2648
+ algorithm is necessary since inputs are represented as complex object or arrays that need to be
2649
+ deeply-compared.
2650
+
2651
+ This algorithm is perf-sensitive since NgClass is used very frequently and its poor performance
2652
+ might negatively impact runtime performance of the entire change detection cycle. The design of
2653
+ this algorithm is making sure that:
2654
+ - there is no unnecessary DOM manipulation (CSS classes are added / removed from the DOM only when
2655
+ needed), even if references to bound objects change;
2656
+ - there is no memory allocation if nothing changes (even relatively modest memory allocation
2657
+ during the change detection cycle can result in GC pauses for some of the CD cycles).
2658
+
2659
+ The algorithm works by iterating over the set of bound classes, staring with [class] binding and
2660
+ then going over [ngClass] binding. For each CSS class name:
2661
+ - check if it was seen before (this information is tracked in the state map) and if its value
2662
+ changed;
2663
+ - mark it as "touched" - names that are not marked are not present in the latest set of binding
2664
+ and we can remove such class name from the internal data structures;
2665
+
2666
+ After iteration over all the CSS class names we've got data structure with all the information
2667
+ necessary to synchronize changes to the DOM - it is enough to iterate over the state map, flush
2668
+ changes to the DOM and reset internal data structures so those are ready for the next change
2669
+ detection cycle.
2670
+ */
2657
2671
  ngDoCheck() {
2658
- if (this._iterableDiffer) {
2659
- const iterableChanges = this._iterableDiffer.diff(this._rawClass);
2660
- if (iterableChanges) {
2661
- this._applyIterableChanges(iterableChanges);
2672
+ // classes from the [class] binding
2673
+ for (const klass of this.initialClasses) {
2674
+ this._updateState(klass, true);
2675
+ }
2676
+ // classes from the [ngClass] binding
2677
+ const rawClass = this.rawClass;
2678
+ if (Array.isArray(rawClass) || rawClass instanceof Set) {
2679
+ for (const klass of rawClass) {
2680
+ this._updateState(klass, true);
2662
2681
  }
2663
2682
  }
2664
- else if (this._keyValueDiffer) {
2665
- const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);
2666
- if (keyValueChanges) {
2667
- this._applyKeyValueChanges(keyValueChanges);
2683
+ else if (rawClass != null) {
2684
+ for (const klass of Object.keys(rawClass)) {
2685
+ this._updateState(klass, Boolean(rawClass[klass]));
2668
2686
  }
2669
2687
  }
2688
+ this._applyStateDiff();
2670
2689
  }
2671
- _applyKeyValueChanges(changes) {
2672
- changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));
2673
- changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));
2674
- changes.forEachRemovedItem((record) => {
2675
- if (record.previousValue) {
2676
- this._toggleClass(record.key, false);
2677
- }
2678
- });
2679
- }
2680
- _applyIterableChanges(changes) {
2681
- changes.forEachAddedItem((record) => {
2682
- if (typeof record.item === 'string') {
2683
- this._toggleClass(record.item, true);
2684
- }
2685
- else {
2686
- throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);
2687
- }
2688
- });
2689
- changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));
2690
- }
2691
- /**
2692
- * Applies a collection of CSS classes to the DOM element.
2693
- *
2694
- * For argument of type Set and Array CSS class names contained in those collections are always
2695
- * added.
2696
- * For argument of type Map CSS class name in the map's key is toggled based on the value (added
2697
- * for truthy and removed for falsy).
2698
- */
2699
- _applyClasses(rawClassVal) {
2700
- if (rawClassVal) {
2701
- if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {
2702
- rawClassVal.forEach((klass) => this._toggleClass(klass, true));
2703
- }
2704
- else {
2705
- Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));
2690
+ _updateState(klass, nextEnabled) {
2691
+ const state = this.stateMap.get(klass);
2692
+ if (state !== undefined) {
2693
+ if (state.enabled !== nextEnabled) {
2694
+ state.changed = true;
2695
+ state.enabled = nextEnabled;
2706
2696
  }
2697
+ state.touched = true;
2698
+ }
2699
+ else {
2700
+ this.stateMap.set(klass, { enabled: nextEnabled, changed: true, touched: true });
2707
2701
  }
2708
2702
  }
2709
- /**
2710
- * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup
2711
- * purposes.
2712
- */
2713
- _removeClasses(rawClassVal) {
2714
- if (rawClassVal) {
2715
- if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {
2716
- rawClassVal.forEach((klass) => this._toggleClass(klass, false));
2703
+ _applyStateDiff() {
2704
+ for (const stateEntry of this.stateMap) {
2705
+ const klass = stateEntry[0];
2706
+ const state = stateEntry[1];
2707
+ if (state.changed) {
2708
+ this._toggleClass(klass, state.enabled);
2709
+ state.changed = false;
2717
2710
  }
2718
- else {
2719
- Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));
2711
+ else if (!state.touched) {
2712
+ // A class that was previously active got removed from the new collection of classes -
2713
+ // remove from the DOM as well.
2714
+ if (state.enabled) {
2715
+ this._toggleClass(klass, false);
2716
+ }
2717
+ this.stateMap.delete(klass);
2720
2718
  }
2719
+ state.touched = false;
2721
2720
  }
2722
2721
  }
2723
2722
  _toggleClass(klass, enabled) {
2723
+ if (ngDevMode) {
2724
+ if (typeof klass !== 'string') {
2725
+ throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(klass)}`);
2726
+ }
2727
+ }
2724
2728
  klass = klass.trim();
2725
- if (klass) {
2726
- klass.split(/\s+/g).forEach(klass => {
2729
+ if (klass.length > 0) {
2730
+ klass.split(WS_REGEXP).forEach(klass => {
2727
2731
  if (enabled) {
2728
2732
  this._renderer.addClass(this._ngEl.nativeElement, klass);
2729
2733
  }
@@ -2734,9 +2738,9 @@ class NgClass {
2734
2738
  }
2735
2739
  }
2736
2740
  }
2737
- 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 });
2738
- 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 });
2739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgClass, decorators: [{
2741
+ 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 });
2742
+ 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 });
2743
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgClass, decorators: [{
2740
2744
  type: Directive,
2741
2745
  args: [{
2742
2746
  selector: '[ngClass]',
@@ -2848,9 +2852,9 @@ class NgComponentOutlet {
2848
2852
  this._moduleRef.destroy();
2849
2853
  }
2850
2854
  }
2851
- 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 });
2852
- 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 });
2853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgComponentOutlet, decorators: [{
2855
+ NgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
2856
+ 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 });
2857
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgComponentOutlet, decorators: [{
2854
2858
  type: Directive,
2855
2859
  args: [{
2856
2860
  selector: '[ngComponentOutlet]',
@@ -3024,11 +3028,8 @@ class NgForOf {
3024
3028
  */
3025
3029
  set ngForTrackBy(fn) {
3026
3030
  if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {
3027
- // TODO(vicb): use a log service once there is a public one available
3028
- if (console && console.warn) {
3029
- console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +
3030
- `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);
3031
- }
3031
+ console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +
3032
+ `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);
3032
3033
  }
3033
3034
  this._trackByFn = fn;
3034
3035
  }
@@ -3133,9 +3134,9 @@ class NgForOf {
3133
3134
  return true;
3134
3135
  }
3135
3136
  }
3136
- 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 });
3137
- 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 });
3138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgForOf, decorators: [{
3137
+ 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 });
3138
+ 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 });
3139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgForOf, decorators: [{
3139
3140
  type: Directive,
3140
3141
  args: [{
3141
3142
  selector: '[ngFor][ngForOf]',
@@ -3361,9 +3362,9 @@ class NgIf {
3361
3362
  return true;
3362
3363
  }
3363
3364
  }
3364
- 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 });
3365
- 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 });
3366
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgIf, decorators: [{
3365
+ 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 });
3366
+ 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 });
3367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgIf, decorators: [{
3367
3368
  type: Directive,
3368
3369
  args: [{
3369
3370
  selector: '[ngIf]',
@@ -3483,6 +3484,7 @@ class SwitchView {
3483
3484
  */
3484
3485
  class NgSwitch {
3485
3486
  constructor() {
3487
+ this._defaultViews = [];
3486
3488
  this._defaultUsed = false;
3487
3489
  this._caseCount = 0;
3488
3490
  this._lastCaseCheckIndex = 0;
@@ -3500,9 +3502,6 @@ class NgSwitch {
3500
3502
  }
3501
3503
  /** @internal */
3502
3504
  _addDefault(view) {
3503
- if (!this._defaultViews) {
3504
- this._defaultViews = [];
3505
- }
3506
3505
  this._defaultViews.push(view);
3507
3506
  }
3508
3507
  /** @internal */
@@ -3518,18 +3517,17 @@ class NgSwitch {
3518
3517
  return matched;
3519
3518
  }
3520
3519
  _updateDefaultCases(useDefault) {
3521
- if (this._defaultViews && useDefault !== this._defaultUsed) {
3520
+ if (this._defaultViews.length > 0 && useDefault !== this._defaultUsed) {
3522
3521
  this._defaultUsed = useDefault;
3523
- for (let i = 0; i < this._defaultViews.length; i++) {
3524
- const defaultView = this._defaultViews[i];
3522
+ for (const defaultView of this._defaultViews) {
3525
3523
  defaultView.enforceState(useDefault);
3526
3524
  }
3527
3525
  }
3528
3526
  }
3529
3527
  }
3530
- NgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3531
- 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 });
3532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitch, decorators: [{
3528
+ NgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3529
+ NgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitch, decorators: [{
3533
3531
  type: Directive,
3534
3532
  args: [{
3535
3533
  selector: '[ngSwitch]',
@@ -3588,9 +3586,9 @@ class NgSwitchCase {
3588
3586
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3589
3587
  }
3590
3588
  }
3591
- 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 });
3592
- 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 });
3593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitchCase, decorators: [{
3589
+ 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 });
3590
+ NgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3591
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitchCase, decorators: [{
3594
3592
  type: Directive,
3595
3593
  args: [{
3596
3594
  selector: '[ngSwitchCase]',
@@ -3625,9 +3623,9 @@ class NgSwitchDefault {
3625
3623
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3626
3624
  }
3627
3625
  }
3628
- 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 });
3629
- NgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3630
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgSwitchDefault, decorators: [{
3626
+ 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 });
3627
+ NgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgSwitchDefault, decorators: [{
3631
3629
  type: Directive,
3632
3630
  args: [{
3633
3631
  selector: '[ngSwitchDefault]',
@@ -3681,16 +3679,15 @@ class NgPlural {
3681
3679
  this._caseViews = {};
3682
3680
  }
3683
3681
  set ngPlural(value) {
3684
- this._switchValue = value;
3685
- this._updateView();
3682
+ this._updateView(value);
3686
3683
  }
3687
3684
  addCase(value, switchView) {
3688
3685
  this._caseViews[value] = switchView;
3689
3686
  }
3690
- _updateView() {
3687
+ _updateView(switchValue) {
3691
3688
  this._clearViews();
3692
3689
  const cases = Object.keys(this._caseViews);
3693
- const key = getPluralCategory(this._switchValue, cases, this._localization);
3690
+ const key = getPluralCategory(switchValue, cases, this._localization);
3694
3691
  this._activateView(this._caseViews[key]);
3695
3692
  }
3696
3693
  _clearViews() {
@@ -3704,9 +3701,9 @@ class NgPlural {
3704
3701
  }
3705
3702
  }
3706
3703
  }
3707
- 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 });
3708
- 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 });
3709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgPlural, decorators: [{
3704
+ NgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3705
+ NgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgPlural, decorators: [{
3710
3707
  type: Directive,
3711
3708
  args: [{
3712
3709
  selector: '[ngPlural]',
@@ -3742,9 +3739,9 @@ class NgPluralCase {
3742
3739
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3743
3740
  }
3744
3741
  }
3745
- 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 });
3746
- NgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-rc.0", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3747
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgPluralCase, decorators: [{
3742
+ 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 });
3743
+ NgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgPluralCase, decorators: [{
3748
3745
  type: Directive,
3749
3746
  args: [{
3750
3747
  selector: '[ngPluralCase]',
@@ -3831,9 +3828,9 @@ class NgStyle {
3831
3828
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
3832
3829
  }
3833
3830
  }
3834
- 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 });
3835
- 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 });
3836
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgStyle, decorators: [{
3831
+ 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 });
3832
+ NgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
3833
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgStyle, decorators: [{
3837
3834
  type: Directive,
3838
3835
  args: [{
3839
3836
  selector: '[ngStyle]',
@@ -3906,9 +3903,9 @@ class NgTemplateOutlet {
3906
3903
  }
3907
3904
  }
3908
3905
  }
3909
- 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 });
3910
- 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 });
3911
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgTemplateOutlet, decorators: [{
3906
+ NgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3907
+ 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 });
3908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgTemplateOutlet, decorators: [{
3912
3909
  type: Directive,
3913
3910
  args: [{
3914
3911
  selector: '[ngTemplateOutlet]',
@@ -4059,9 +4056,9 @@ class AsyncPipe {
4059
4056
  }
4060
4057
  }
4061
4058
  }
4062
- 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 });
4063
- AsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: AsyncPipe, decorators: [{
4059
+ AsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4060
+ AsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AsyncPipe, decorators: [{
4065
4062
  type: Pipe,
4066
4063
  args: [{
4067
4064
  name: 'async',
@@ -4095,9 +4092,9 @@ class LowerCasePipe {
4095
4092
  return value.toLowerCase();
4096
4093
  }
4097
4094
  }
4098
- LowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4099
- LowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LowerCasePipe, decorators: [{
4095
+ LowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4096
+ LowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4097
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LowerCasePipe, decorators: [{
4101
4098
  type: Pipe,
4102
4099
  args: [{
4103
4100
  name: 'lowercase',
@@ -4140,9 +4137,9 @@ class TitleCasePipe {
4140
4137
  return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));
4141
4138
  }
4142
4139
  }
4143
- TitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4144
- TitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: TitleCasePipe, decorators: [{
4140
+ TitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4141
+ TitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: TitleCasePipe, decorators: [{
4146
4143
  type: Pipe,
4147
4144
  args: [{
4148
4145
  name: 'titlecase',
@@ -4167,9 +4164,9 @@ class UpperCasePipe {
4167
4164
  return value.toUpperCase();
4168
4165
  }
4169
4166
  }
4170
- UpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4171
- UpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: UpperCasePipe, decorators: [{
4167
+ UpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4168
+ UpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: UpperCasePipe, decorators: [{
4173
4170
  type: Pipe,
4174
4171
  args: [{
4175
4172
  name: 'uppercase',
@@ -4400,9 +4397,9 @@ class DatePipe {
4400
4397
  }
4401
4398
  }
4402
4399
  }
4403
- 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 });
4404
- DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DatePipe, decorators: [{
4400
+ 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 });
4401
+ DatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4402
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DatePipe, decorators: [{
4406
4403
  type: Pipe,
4407
4404
  args: [{
4408
4405
  name: 'date',
@@ -4460,9 +4457,9 @@ class I18nPluralPipe {
4460
4457
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4461
4458
  }
4462
4459
  }
4463
- 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 });
4464
- I18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4465
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, decorators: [{
4460
+ I18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4461
+ I18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nPluralPipe, decorators: [{
4466
4463
  type: Pipe,
4467
4464
  args: [{
4468
4465
  name: 'i18nPlural',
@@ -4509,9 +4506,9 @@ class I18nSelectPipe {
4509
4506
  return '';
4510
4507
  }
4511
4508
  }
4512
- I18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4513
- I18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, decorators: [{
4509
+ I18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4510
+ I18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: I18nSelectPipe, decorators: [{
4515
4512
  type: Pipe,
4516
4513
  args: [{
4517
4514
  name: 'i18nSelect',
@@ -4543,9 +4540,9 @@ class JsonPipe {
4543
4540
  return JSON.stringify(value, null, 2);
4544
4541
  }
4545
4542
  }
4546
- JsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4547
- JsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4548
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: JsonPipe, decorators: [{
4543
+ JsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4544
+ JsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: JsonPipe, decorators: [{
4549
4546
  type: Pipe,
4550
4547
  args: [{
4551
4548
  name: 'json',
@@ -4606,9 +4603,9 @@ class KeyValuePipe {
4606
4603
  return this.keyValues;
4607
4604
  }
4608
4605
  }
4609
- 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 });
4610
- KeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4611
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: KeyValuePipe, decorators: [{
4606
+ KeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4607
+ KeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: KeyValuePipe, decorators: [{
4612
4609
  type: Pipe,
4613
4610
  args: [{
4614
4611
  name: 'keyvalue',
@@ -4734,9 +4731,9 @@ class DecimalPipe {
4734
4731
  }
4735
4732
  }
4736
4733
  }
4737
- 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 });
4738
- DecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: DecimalPipe, decorators: [{
4734
+ DecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4735
+ DecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4736
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: DecimalPipe, decorators: [{
4740
4737
  type: Pipe,
4741
4738
  args: [{
4742
4739
  name: 'number',
@@ -4799,9 +4796,9 @@ class PercentPipe {
4799
4796
  }
4800
4797
  }
4801
4798
  }
4802
- 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 });
4803
- PercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
4804
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PercentPipe, decorators: [{
4799
+ PercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4800
+ PercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
4801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PercentPipe, decorators: [{
4805
4802
  type: Pipe,
4806
4803
  args: [{
4807
4804
  name: 'percent',
@@ -4917,9 +4914,9 @@ class CurrencyPipe {
4917
4914
  }
4918
4915
  }
4919
4916
  }
4920
- 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 });
4921
- CurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
4922
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CurrencyPipe, decorators: [{
4917
+ 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 });
4918
+ CurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
4919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CurrencyPipe, decorators: [{
4923
4920
  type: Pipe,
4924
4921
  args: [{
4925
4922
  name: 'currency',
@@ -4997,9 +4994,9 @@ class SlicePipe {
4997
4994
  return typeof obj === 'string' || Array.isArray(obj);
4998
4995
  }
4999
4996
  }
5000
- SlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5001
- SlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.0-rc.0", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: SlicePipe, decorators: [{
4997
+ SlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4998
+ SlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
4999
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SlicePipe, decorators: [{
5003
5000
  type: Pipe,
5004
5001
  args: [{
5005
5002
  name: 'slice',
@@ -5044,10 +5041,10 @@ const COMMON_PIPES = [
5044
5041
  */
5045
5042
  class CommonModule {
5046
5043
  }
5047
- CommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5048
- 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] });
5049
- CommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CommonModule });
5050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: CommonModule, decorators: [{
5044
+ CommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5045
+ 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] });
5046
+ CommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CommonModule });
5047
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CommonModule, decorators: [{
5051
5048
  type: NgModule,
5052
5049
  args: [{
5053
5050
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5096,7 +5093,7 @@ function isPlatformWorkerUi(platformId) {
5096
5093
  /**
5097
5094
  * @publicApi
5098
5095
  */
5099
- const VERSION = new Version('15.1.0-rc.0');
5096
+ const VERSION = new Version('15.1.1');
5100
5097
 
5101
5098
  /**
5102
5099
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5633,9 +5630,9 @@ class LCPImageObserver {
5633
5630
  this.alreadyWarned.clear();
5634
5631
  }
5635
5632
  }
5636
- LCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5637
- LCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: LCPImageObserver, decorators: [{
5633
+ LCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5634
+ LCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: LCPImageObserver, decorators: [{
5639
5636
  type: Injectable,
5640
5637
  args: [{ providedIn: 'root' }]
5641
5638
  }], ctorParameters: function () { return []; } });
@@ -5754,9 +5751,9 @@ class PreconnectLinkChecker {
5754
5751
  this.alreadySeen.clear();
5755
5752
  }
5756
5753
  }
5757
- PreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5758
- PreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
5759
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5754
+ PreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5755
+ PreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
5756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5760
5757
  type: Injectable,
5761
5758
  args: [{ providedIn: 'root' }]
5762
5759
  }], ctorParameters: function () { return []; } });
@@ -5843,9 +5840,9 @@ class PreloadLinkCreator {
5843
5840
  renderer.appendChild(this.document.head, preload);
5844
5841
  }
5845
5842
  }
5846
- PreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5847
- PreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
5848
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, decorators: [{
5843
+ PreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5844
+ PreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
5845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: PreloadLinkCreator, decorators: [{
5849
5846
  type: Injectable,
5850
5847
  args: [{ providedIn: 'root' }]
5851
5848
  }] });
@@ -6255,9 +6252,9 @@ class NgOptimizedImage {
6255
6252
  this.renderer.setAttribute(this.imgElement, name, value);
6256
6253
  }
6257
6254
  }
6258
- NgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6259
- 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 });
6260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-rc.0", ngImport: i0, type: NgOptimizedImage, decorators: [{
6255
+ NgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6256
+ 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 });
6257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: NgOptimizedImage, decorators: [{
6261
6258
  type: Directive,
6262
6259
  args: [{
6263
6260
  standalone: true,