@angular/common 18.2.6 → 18.2.8

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 (56) hide show
  1. package/LICENSE +21 -0
  2. package/esm2022/http/src/client.mjs +3 -3
  3. package/esm2022/http/src/fetch.mjs +3 -3
  4. package/esm2022/http/src/interceptor.mjs +3 -3
  5. package/esm2022/http/src/jsonp.mjs +9 -7
  6. package/esm2022/http/src/module.mjs +12 -12
  7. package/esm2022/http/src/xhr.mjs +3 -3
  8. package/esm2022/http/src/xsrf.mjs +6 -6
  9. package/esm2022/http/testing/src/backend.mjs +3 -3
  10. package/esm2022/http/testing/src/module.mjs +4 -4
  11. package/esm2022/src/common_module.mjs +4 -4
  12. package/esm2022/src/directives/ng_class.mjs +3 -3
  13. package/esm2022/src/directives/ng_component_outlet.mjs +3 -3
  14. package/esm2022/src/directives/ng_for_of.mjs +21 -5
  15. package/esm2022/src/directives/ng_if.mjs +3 -3
  16. package/esm2022/src/directives/ng_optimized_image/lcp_image_observer.mjs +3 -3
  17. package/esm2022/src/directives/ng_optimized_image/ng_optimized_image.mjs +29 -9
  18. package/esm2022/src/directives/ng_optimized_image/preconnect_link_checker.mjs +3 -3
  19. package/esm2022/src/directives/ng_optimized_image/preload-link-creator.mjs +3 -3
  20. package/esm2022/src/directives/ng_plural.mjs +6 -6
  21. package/esm2022/src/directives/ng_style.mjs +3 -3
  22. package/esm2022/src/directives/ng_switch.mjs +9 -9
  23. package/esm2022/src/directives/ng_template_outlet.mjs +3 -3
  24. package/esm2022/src/i18n/localization.mjs +6 -6
  25. package/esm2022/src/location/hash_location_strategy.mjs +3 -3
  26. package/esm2022/src/location/location.mjs +3 -3
  27. package/esm2022/src/location/location_strategy.mjs +8 -8
  28. package/esm2022/src/location/platform_location.mjs +6 -6
  29. package/esm2022/src/navigation/platform_navigation.mjs +3 -3
  30. package/esm2022/src/pipes/async_pipe.mjs +3 -3
  31. package/esm2022/src/pipes/case_conversion_pipes.mjs +9 -9
  32. package/esm2022/src/pipes/date_pipe.mjs +3 -3
  33. package/esm2022/src/pipes/i18n_plural_pipe.mjs +3 -3
  34. package/esm2022/src/pipes/i18n_select_pipe.mjs +3 -3
  35. package/esm2022/src/pipes/json_pipe.mjs +3 -3
  36. package/esm2022/src/pipes/keyvalue_pipe.mjs +3 -3
  37. package/esm2022/src/pipes/number_pipe.mjs +10 -17
  38. package/esm2022/src/pipes/slice_pipe.mjs +3 -3
  39. package/esm2022/src/version.mjs +1 -1
  40. package/esm2022/testing/src/location_mock.mjs +3 -3
  41. package/esm2022/testing/src/mock_location_strategy.mjs +3 -3
  42. package/esm2022/testing/src/mock_platform_location.mjs +6 -6
  43. package/esm2022/upgrade/src/location_upgrade_module.mjs +4 -4
  44. package/fesm2022/common.mjs +160 -131
  45. package/fesm2022/common.mjs.map +1 -1
  46. package/fesm2022/http/testing.mjs +8 -8
  47. package/fesm2022/http.mjs +39 -37
  48. package/fesm2022/http.mjs.map +1 -1
  49. package/fesm2022/testing.mjs +16 -16
  50. package/fesm2022/upgrade.mjs +5 -5
  51. package/http/index.d.ts +1 -1
  52. package/http/testing/index.d.ts +1 -1
  53. package/index.d.ts +31 -4
  54. package/package.json +2 -2
  55. package/testing/index.d.ts +1 -1
  56. package/upgrade/index.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.2.6
2
+ * @license Angular v18.2.8
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -30,10 +30,10 @@ class DomAdapter {
30
30
  * implementations.
31
31
  */
32
32
  class PlatformNavigation {
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation }); }
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PlatformNavigation, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PlatformNavigation, decorators: [{
37
37
  type: Injectable,
38
38
  args: [{ providedIn: 'platform', useFactory: () => window.navigation }]
39
39
  }] });
@@ -73,10 +73,10 @@ class PlatformLocation {
73
73
  historyGo(relativePosition) {
74
74
  throw new Error(ngDevMode ? 'Not implemented' : '');
75
75
  }
76
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
77
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }); }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
77
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }); }
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PlatformLocation, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PlatformLocation, decorators: [{
80
80
  type: Injectable,
81
81
  args: [{ providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }]
82
82
  }] });
@@ -156,10 +156,10 @@ class BrowserPlatformLocation extends PlatformLocation {
156
156
  getState() {
157
157
  return this._history.state;
158
158
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
160
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
160
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
163
163
  type: Injectable,
164
164
  args: [{
165
165
  providedIn: 'platform',
@@ -233,7 +233,7 @@ function normalizeQueryParams(params) {
233
233
  * interact with application route state.
234
234
  *
235
235
  * For instance, `HashLocationStrategy` produces URLs like
236
- * <code class="no-auto-link">http://example.com#/foo</code>,
236
+ * <code class="no-auto-link">http://example.com/#/foo</code>,
237
237
  * and `PathLocationStrategy` produces
238
238
  * <code class="no-auto-link">http://example.com/foo</code> as an equivalent URL.
239
239
  *
@@ -245,10 +245,10 @@ class LocationStrategy {
245
245
  historyGo(relativePosition) {
246
246
  throw new Error(ngDevMode ? 'Not implemented' : '');
247
247
  }
248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
249
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }); }
248
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
249
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }); }
250
250
  }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LocationStrategy, decorators: [{
251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LocationStrategy, decorators: [{
252
252
  type: Injectable,
253
253
  args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]
254
254
  }] });
@@ -358,10 +358,10 @@ class PathLocationStrategy extends LocationStrategy {
358
358
  historyGo(relativePosition = 0) {
359
359
  this._platformLocation.historyGo?.(relativePosition);
360
360
  }
361
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
362
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' }); }
361
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
362
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' }); }
363
363
  }
364
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PathLocationStrategy, decorators: [{
364
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PathLocationStrategy, decorators: [{
365
365
  type: Injectable,
366
366
  args: [{ providedIn: 'root' }]
367
367
  }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{
@@ -447,10 +447,10 @@ class HashLocationStrategy extends LocationStrategy {
447
447
  historyGo(relativePosition = 0) {
448
448
  this._platformLocation.historyGo?.(relativePosition);
449
449
  }
450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
451
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HashLocationStrategy }); }
450
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
451
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HashLocationStrategy }); }
452
452
  }
453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: HashLocationStrategy, decorators: [{
453
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: HashLocationStrategy, decorators: [{
454
454
  type: Injectable
455
455
  }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{
456
456
  type: Optional
@@ -697,10 +697,10 @@ class Location {
697
697
  * @returns The URL string, modified if needed.
698
698
  */
699
699
  static { this.stripTrailingSlash = stripTrailingSlash; }
700
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
701
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation }); }
700
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable }); }
701
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation }); }
702
702
  }
703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: Location, decorators: [{
703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: Location, decorators: [{
704
704
  type: Injectable,
705
705
  args: [{
706
706
  providedIn: 'root',
@@ -2602,10 +2602,10 @@ function parseIntAutoRadix(text) {
2602
2602
  * @publicApi
2603
2603
  */
2604
2604
  class NgLocalization {
2605
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2606
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] }); }
2605
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2606
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] }); }
2607
2607
  }
2608
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgLocalization, decorators: [{
2608
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgLocalization, decorators: [{
2609
2609
  type: Injectable,
2610
2610
  args: [{
2611
2611
  providedIn: 'root',
@@ -2659,10 +2659,10 @@ class NgLocaleLocalization extends NgLocalization {
2659
2659
  return 'other';
2660
2660
  }
2661
2661
  }
2662
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
2663
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgLocaleLocalization }); }
2662
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
2663
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgLocaleLocalization }); }
2664
2664
  }
2665
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2665
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2666
2666
  type: Injectable
2667
2667
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2668
2668
  type: Inject,
@@ -2831,10 +2831,10 @@ class NgClass {
2831
2831
  });
2832
2832
  }
2833
2833
  }
2834
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
2835
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 }); }
2834
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
2835
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 }); }
2836
2836
  }
2837
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgClass, decorators: [{
2837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgClass, decorators: [{
2838
2838
  type: Directive,
2839
2839
  args: [{
2840
2840
  selector: '[ngClass]',
@@ -3001,10 +3001,10 @@ class NgComponentOutlet {
3001
3001
  }
3002
3002
  }
3003
3003
  }
3004
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3005
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInputs: "ngComponentOutletInputs", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, usesOnChanges: true, ngImport: i0 }); }
3004
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3005
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInputs: "ngComponentOutletInputs", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, usesOnChanges: true, ngImport: i0 }); }
3006
3006
  }
3007
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgComponentOutlet, decorators: [{
3007
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgComponentOutlet, decorators: [{
3008
3008
  type: Directive,
3009
3009
  args: [{
3010
3010
  selector: '[ngComponentOutlet]',
@@ -3033,21 +3033,37 @@ function getParentInjector(injector) {
3033
3033
  * @publicApi
3034
3034
  */
3035
3035
  class NgForOfContext {
3036
- constructor($implicit, ngForOf, index, count) {
3036
+ constructor(
3037
+ /** Reference to the current item from the collection. */
3038
+ $implicit,
3039
+ /**
3040
+ * The value of the iterable expression. Useful when the expression is
3041
+ * more complex then a property access, for example when using the async pipe
3042
+ * (`userStreams | async`).
3043
+ */
3044
+ ngForOf,
3045
+ /** Returns an index of the current item in the collection. */
3046
+ index,
3047
+ /** Returns total amount of items in the collection. */
3048
+ count) {
3037
3049
  this.$implicit = $implicit;
3038
3050
  this.ngForOf = ngForOf;
3039
3051
  this.index = index;
3040
3052
  this.count = count;
3041
3053
  }
3054
+ // Indicates whether this is the first item in the collection.
3042
3055
  get first() {
3043
3056
  return this.index === 0;
3044
3057
  }
3058
+ // Indicates whether this is the last item in the collection.
3045
3059
  get last() {
3046
3060
  return this.index === this.count - 1;
3047
3061
  }
3062
+ // Indicates whether an index of this item in the collection is even.
3048
3063
  get even() {
3049
3064
  return this.index % 2 === 0;
3050
3065
  }
3066
+ // Indicates whether an index of this item in the collection is odd.
3051
3067
  get odd() {
3052
3068
  return !this.even;
3053
3069
  }
@@ -3284,10 +3300,10 @@ class NgForOf {
3284
3300
  static ngTemplateContextGuard(dir, ctx) {
3285
3301
  return true;
3286
3302
  }
3287
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
3288
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 }); }
3303
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
3304
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 }); }
3289
3305
  }
3290
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgForOf, decorators: [{
3306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgForOf, decorators: [{
3291
3307
  type: Directive,
3292
3308
  args: [{
3293
3309
  selector: '[ngFor][ngForOf]',
@@ -3510,10 +3526,10 @@ class NgIf {
3510
3526
  static ngTemplateContextGuard(dir, ctx) {
3511
3527
  return true;
3512
3528
  }
3513
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3514
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 }); }
3529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
3530
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 }); }
3515
3531
  }
3516
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgIf, decorators: [{
3532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgIf, decorators: [{
3517
3533
  type: Directive,
3518
3534
  args: [{
3519
3535
  selector: '[ngIf]',
@@ -3673,10 +3689,10 @@ class NgSwitch {
3673
3689
  }
3674
3690
  }
3675
3691
  }
3676
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3677
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 }); }
3692
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3693
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 }); }
3678
3694
  }
3679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgSwitch, decorators: [{
3695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgSwitch, decorators: [{
3680
3696
  type: Directive,
3681
3697
  args: [{
3682
3698
  selector: '[ngSwitch]',
@@ -3734,10 +3750,10 @@ class NgSwitchCase {
3734
3750
  ngDoCheck() {
3735
3751
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3736
3752
  }
3737
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3738
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 }); }
3753
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3754
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 }); }
3739
3755
  }
3740
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgSwitchCase, decorators: [{
3756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgSwitchCase, decorators: [{
3741
3757
  type: Directive,
3742
3758
  args: [{
3743
3759
  selector: '[ngSwitchCase]',
@@ -3771,10 +3787,10 @@ class NgSwitchDefault {
3771
3787
  }
3772
3788
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3773
3789
  }
3774
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3775
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 }); }
3790
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3791
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 }); }
3776
3792
  }
3777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgSwitchDefault, decorators: [{
3793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgSwitchDefault, decorators: [{
3778
3794
  type: Directive,
3779
3795
  args: [{
3780
3796
  selector: '[ngSwitchDefault]',
@@ -3852,10 +3868,10 @@ class NgPlural {
3852
3868
  this._activeView.create();
3853
3869
  }
3854
3870
  }
3855
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive }); }
3856
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 }); }
3871
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive }); }
3872
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 }); }
3857
3873
  }
3858
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgPlural, decorators: [{
3874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgPlural, decorators: [{
3859
3875
  type: Directive,
3860
3876
  args: [{
3861
3877
  selector: '[ngPlural]',
@@ -3890,10 +3906,10 @@ class NgPluralCase {
3890
3906
  const isANumber = !isNaN(Number(value));
3891
3907
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3892
3908
  }
3893
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3894
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 }); }
3909
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
3910
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 }); }
3895
3911
  }
3896
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgPluralCase, decorators: [{
3912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgPluralCase, decorators: [{
3897
3913
  type: Directive,
3898
3914
  args: [{
3899
3915
  selector: '[ngPluralCase]',
@@ -3979,10 +3995,10 @@ class NgStyle {
3979
3995
  changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));
3980
3996
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
3981
3997
  }
3982
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
3983
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 }); }
3998
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
3999
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 }); }
3984
4000
  }
3985
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgStyle, decorators: [{
4001
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgStyle, decorators: [{
3986
4002
  type: Directive,
3987
4003
  args: [{
3988
4004
  selector: '[ngStyle]',
@@ -4083,10 +4099,10 @@ class NgTemplateOutlet {
4083
4099
  },
4084
4100
  });
4085
4101
  }
4086
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4087
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 }); }
4102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
4103
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 }); }
4088
4104
  }
4089
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4090
4106
  type: Directive,
4091
4107
  args: [{
4092
4108
  selector: '[ngTemplateOutlet]',
@@ -4254,10 +4270,10 @@ class AsyncPipe {
4254
4270
  }
4255
4271
  }
4256
4272
  }
4257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe }); }
4258
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false }); }
4273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe }); }
4274
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false }); }
4259
4275
  }
4260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AsyncPipe, decorators: [{
4276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AsyncPipe, decorators: [{
4261
4277
  type: Pipe,
4262
4278
  args: [{
4263
4279
  name: 'async',
@@ -4290,10 +4306,10 @@ class LowerCasePipe {
4290
4306
  }
4291
4307
  return value.toLowerCase();
4292
4308
  }
4293
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4294
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" }); }
4309
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4310
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" }); }
4295
4311
  }
4296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LowerCasePipe, decorators: [{
4312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LowerCasePipe, decorators: [{
4297
4313
  type: Pipe,
4298
4314
  args: [{
4299
4315
  name: 'lowercase',
@@ -4335,10 +4351,10 @@ class TitleCasePipe {
4335
4351
  }
4336
4352
  return value.replace(unicodeWordMatch, (txt) => txt[0].toUpperCase() + txt.slice(1).toLowerCase());
4337
4353
  }
4338
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4339
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" }); }
4354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4355
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" }); }
4340
4356
  }
4341
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TitleCasePipe, decorators: [{
4357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TitleCasePipe, decorators: [{
4342
4358
  type: Pipe,
4343
4359
  args: [{
4344
4360
  name: 'titlecase',
@@ -4362,10 +4378,10 @@ class UpperCasePipe {
4362
4378
  }
4363
4379
  return value.toUpperCase();
4364
4380
  }
4365
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4366
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" }); }
4381
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4382
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" }); }
4367
4383
  }
4368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UpperCasePipe, decorators: [{
4384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: UpperCasePipe, decorators: [{
4369
4385
  type: Pipe,
4370
4386
  args: [{
4371
4387
  name: 'uppercase',
@@ -4594,10 +4610,10 @@ class DatePipe {
4594
4610
  throw invalidPipeArgumentError(DatePipe, error.message);
4595
4611
  }
4596
4612
  }
4597
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", 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 }); }
4598
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" }); }
4613
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", 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 }); }
4614
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" }); }
4599
4615
  }
4600
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DatePipe, decorators: [{
4616
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DatePipe, decorators: [{
4601
4617
  type: Pipe,
4602
4618
  args: [{
4603
4619
  name: 'date',
@@ -4653,10 +4669,10 @@ class I18nPluralPipe {
4653
4669
  const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);
4654
4670
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4655
4671
  }
4656
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe }); }
4657
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" }); }
4672
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe }); }
4673
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" }); }
4658
4674
  }
4659
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: I18nPluralPipe, decorators: [{
4675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: I18nPluralPipe, decorators: [{
4660
4676
  type: Pipe,
4661
4677
  args: [{
4662
4678
  name: 'i18nPlural',
@@ -4701,10 +4717,10 @@ class I18nSelectPipe {
4701
4717
  }
4702
4718
  return '';
4703
4719
  }
4704
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4705
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" }); }
4720
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4721
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" }); }
4706
4722
  }
4707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: I18nSelectPipe, decorators: [{
4723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: I18nSelectPipe, decorators: [{
4708
4724
  type: Pipe,
4709
4725
  args: [{
4710
4726
  name: 'i18nSelect',
@@ -4734,10 +4750,10 @@ class JsonPipe {
4734
4750
  transform(value) {
4735
4751
  return JSON.stringify(value, null, 2);
4736
4752
  }
4737
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4738
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false }); }
4753
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4754
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false }); }
4739
4755
  }
4740
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: JsonPipe, decorators: [{
4756
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: JsonPipe, decorators: [{
4741
4757
  type: Pipe,
4742
4758
  args: [{
4743
4759
  name: 'json',
@@ -4795,10 +4811,10 @@ class KeyValuePipe {
4795
4811
  }
4796
4812
  return this.keyValues;
4797
4813
  }
4798
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe }); }
4799
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false }); }
4814
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe }); }
4815
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false }); }
4800
4816
  }
4801
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KeyValuePipe, decorators: [{
4817
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyValuePipe, decorators: [{
4802
4818
  type: Pipe,
4803
4819
  args: [{
4804
4820
  name: 'keyvalue',
@@ -4904,13 +4920,6 @@ class DecimalPipe {
4904
4920
  constructor(_locale) {
4905
4921
  this._locale = _locale;
4906
4922
  }
4907
- /**
4908
- * @param value The value to be formatted.
4909
- * @param digitsInfo Sets digit and decimal representation.
4910
- * [See more](#digitsinfo).
4911
- * @param locale Specifies what locale format rules to use.
4912
- * [See more](#locale).
4913
- */
4914
4923
  transform(value, digitsInfo, locale) {
4915
4924
  if (!isValue(value))
4916
4925
  return null;
@@ -4923,10 +4932,10 @@ class DecimalPipe {
4923
4932
  throw invalidPipeArgumentError(DecimalPipe, error.message);
4924
4933
  }
4925
4934
  }
4926
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
4927
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" }); }
4935
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
4936
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" }); }
4928
4937
  }
4929
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: DecimalPipe, decorators: [{
4938
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DecimalPipe, decorators: [{
4930
4939
  type: Pipe,
4931
4940
  args: [{
4932
4941
  name: 'number',
@@ -4988,10 +4997,10 @@ class PercentPipe {
4988
4997
  throw invalidPipeArgumentError(PercentPipe, error.message);
4989
4998
  }
4990
4999
  }
4991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
4992
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" }); }
5000
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
5001
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" }); }
4993
5002
  }
4994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PercentPipe, decorators: [{
5003
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PercentPipe, decorators: [{
4995
5004
  type: Pipe,
4996
5005
  args: [{
4997
5006
  name: 'percent',
@@ -5087,10 +5096,10 @@ class CurrencyPipe {
5087
5096
  throw invalidPipeArgumentError(CurrencyPipe, error.message);
5088
5097
  }
5089
5098
  }
5090
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe }); }
5091
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" }); }
5099
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe }); }
5100
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" }); }
5092
5101
  }
5093
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: CurrencyPipe, decorators: [{
5102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CurrencyPipe, decorators: [{
5094
5103
  type: Pipe,
5095
5104
  args: [{
5096
5105
  name: 'currency',
@@ -5167,10 +5176,10 @@ class SlicePipe {
5167
5176
  supports(obj) {
5168
5177
  return typeof obj === 'string' || Array.isArray(obj);
5169
5178
  }
5170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
5171
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.6", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false }); }
5179
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
5180
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false }); }
5172
5181
  }
5173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SlicePipe, decorators: [{
5182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SlicePipe, decorators: [{
5174
5183
  type: Pipe,
5175
5184
  args: [{
5176
5185
  name: 'slice',
@@ -5214,11 +5223,11 @@ const COMMON_PIPES = [
5214
5223
  * @publicApi
5215
5224
  */
5216
5225
  class CommonModule {
5217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5218
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.6", 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] }); }
5219
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: CommonModule }); }
5226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5227
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", 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] }); }
5228
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CommonModule }); }
5220
5229
  }
5221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: CommonModule, decorators: [{
5230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: CommonModule, decorators: [{
5222
5231
  type: NgModule,
5223
5232
  args: [{
5224
5233
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5251,7 +5260,7 @@ function isPlatformServer(platformId) {
5251
5260
  /**
5252
5261
  * @publicApi
5253
5262
  */
5254
- const VERSION = new Version('18.2.6');
5263
+ const VERSION = new Version('18.2.8');
5255
5264
 
5256
5265
  /**
5257
5266
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5864,10 +5873,10 @@ class LCPImageObserver {
5864
5873
  this.observer.disconnect();
5865
5874
  this.images.clear();
5866
5875
  }
5867
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5868
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LCPImageObserver, providedIn: 'root' }); }
5876
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5877
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LCPImageObserver, providedIn: 'root' }); }
5869
5878
  }
5870
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LCPImageObserver, decorators: [{
5879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LCPImageObserver, decorators: [{
5871
5880
  type: Injectable,
5872
5881
  args: [{ providedIn: 'root' }]
5873
5882
  }], ctorParameters: () => [] });
@@ -5991,10 +6000,10 @@ class PreconnectLinkChecker {
5991
6000
  this.preconnectLinks?.clear();
5992
6001
  this.alreadySeen.clear();
5993
6002
  }
5994
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5995
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' }); }
6003
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6004
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' }); }
5996
6005
  }
5997
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
5998
6007
  type: Injectable,
5999
6008
  args: [{ providedIn: 'root' }]
6000
6009
  }], ctorParameters: () => [] });
@@ -6083,10 +6092,10 @@ class PreloadLinkCreator {
6083
6092
  }
6084
6093
  renderer.appendChild(this.document.head, preload);
6085
6094
  }
6086
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6087
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' }); }
6095
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6096
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' }); }
6088
6097
  }
6089
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6090
6099
  type: Injectable,
6091
6100
  args: [{ providedIn: 'root' }]
6092
6101
  }] });
@@ -6271,7 +6280,7 @@ function resetImagePriorityCount() {
6271
6280
  * {
6272
6281
  * provide: IMAGE_LOADER,
6273
6282
  * useValue: (config: ImageLoaderConfig) => {
6274
- * return `https://example.com/${config.src}-${config.width}.jpg}`;
6283
+ * return `https://example.com/${config.src}-${config.width}.jpg`;
6275
6284
  * }
6276
6285
  * },
6277
6286
  * ],
@@ -6566,6 +6575,7 @@ class NgOptimizedImage {
6566
6575
  };
6567
6576
  const removeLoadListenerFn = this.renderer.listen(img, 'load', callback);
6568
6577
  const removeErrorListenerFn = this.renderer.listen(img, 'error', callback);
6578
+ callOnLoadIfImageIsLoaded(img, callback);
6569
6579
  }
6570
6580
  /** @nodoc */
6571
6581
  ngOnDestroy() {
@@ -6578,10 +6588,10 @@ class NgOptimizedImage {
6578
6588
  setHostAttribute(name, value) {
6579
6589
  this.renderer.setAttribute(this.imgElement, name, value);
6580
6590
  }
6581
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6582
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.6", type: NgOptimizedImage, isStandalone: true, selector: "img[ngSrc]", inputs: { ngSrc: ["ngSrc", "ngSrc", unwrapSafeUrl], ngSrcset: "ngSrcset", sizes: "sizes", width: ["width", "width", numberAttribute], height: ["height", "height", numberAttribute], loading: "loading", priority: ["priority", "priority", booleanAttribute], loaderParams: "loaderParams", disableOptimizedSrcset: ["disableOptimizedSrcset", "disableOptimizedSrcset", booleanAttribute], fill: ["fill", "fill", booleanAttribute], placeholder: ["placeholder", "placeholder", booleanOrUrlAttribute], placeholderConfig: "placeholderConfig", src: "src", srcset: "srcset" }, host: { properties: { "style.position": "fill ? \"absolute\" : null", "style.width": "fill ? \"100%\" : null", "style.height": "fill ? \"100%\" : null", "style.inset": "fill ? \"0\" : null", "style.background-size": "placeholder ? \"cover\" : null", "style.background-position": "placeholder ? \"50% 50%\" : null", "style.background-repeat": "placeholder ? \"no-repeat\" : null", "style.background-image": "placeholder ? generatePlaceholder(placeholder) : null", "style.filter": "placeholder && shouldBlurPlaceholder(placeholderConfig) ? \"blur(15px)\" : null" } }, usesOnChanges: true, ngImport: i0 }); }
6591
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6592
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.8", type: NgOptimizedImage, isStandalone: true, selector: "img[ngSrc]", inputs: { ngSrc: ["ngSrc", "ngSrc", unwrapSafeUrl], ngSrcset: "ngSrcset", sizes: "sizes", width: ["width", "width", numberAttribute], height: ["height", "height", numberAttribute], loading: "loading", priority: ["priority", "priority", booleanAttribute], loaderParams: "loaderParams", disableOptimizedSrcset: ["disableOptimizedSrcset", "disableOptimizedSrcset", booleanAttribute], fill: ["fill", "fill", booleanAttribute], placeholder: ["placeholder", "placeholder", booleanOrUrlAttribute], placeholderConfig: "placeholderConfig", src: "src", srcset: "srcset" }, host: { properties: { "style.position": "fill ? \"absolute\" : null", "style.width": "fill ? \"100%\" : null", "style.height": "fill ? \"100%\" : null", "style.inset": "fill ? \"0\" : null", "style.background-size": "placeholder ? \"cover\" : null", "style.background-position": "placeholder ? \"50% 50%\" : null", "style.background-repeat": "placeholder ? \"no-repeat\" : null", "style.background-image": "placeholder ? generatePlaceholder(placeholder) : null", "style.filter": "placeholder && shouldBlurPlaceholder(placeholderConfig) ? \"blur(15px)\" : null" } }, usesOnChanges: true, ngImport: i0 }); }
6583
6593
  }
6584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: NgOptimizedImage, decorators: [{
6594
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NgOptimizedImage, decorators: [{
6585
6595
  type: Directive,
6586
6596
  args: [{
6587
6597
  standalone: true,
@@ -6855,7 +6865,7 @@ function assertGreaterThanZero(dir, inputValue, inputName) {
6855
6865
  * - Whether image styling is "correct" (see below for a longer explanation).
6856
6866
  */
6857
6867
  function assertNoImageDistortion(dir, img, renderer) {
6858
- const removeLoadListenerFn = renderer.listen(img, 'load', () => {
6868
+ const callback = () => {
6859
6869
  removeLoadListenerFn();
6860
6870
  removeErrorListenerFn();
6861
6871
  const computedStyle = window.getComputedStyle(img);
@@ -6923,7 +6933,8 @@ function assertNoImageDistortion(dir, img, renderer) {
6923
6933
  `or consider using the "ngSrcset" and "sizes" attributes.`));
6924
6934
  }
6925
6935
  }
6926
- });
6936
+ };
6937
+ const removeLoadListenerFn = renderer.listen(img, 'load', callback);
6927
6938
  // We only listen to the `error` event to remove the `load` event listener because it will not be
6928
6939
  // fired if the image fails to load. This is done to prevent memory leaks in development mode
6929
6940
  // because image elements aren't garbage-collected properly. It happens because zone.js stores the
@@ -6932,6 +6943,7 @@ function assertNoImageDistortion(dir, img, renderer) {
6932
6943
  removeLoadListenerFn();
6933
6944
  removeErrorListenerFn();
6934
6945
  });
6946
+ callOnLoadIfImageIsLoaded(img, callback);
6935
6947
  }
6936
6948
  /**
6937
6949
  * Verifies that a specified input is set.
@@ -6966,7 +6978,7 @@ function assertEmptyWidthAndHeight(dir) {
6966
6978
  * guidance that this can be caused by the containing element's CSS position property.
6967
6979
  */
6968
6980
  function assertNonZeroRenderedHeight(dir, img, renderer) {
6969
- const removeLoadListenerFn = renderer.listen(img, 'load', () => {
6981
+ const callback = () => {
6970
6982
  removeLoadListenerFn();
6971
6983
  removeErrorListenerFn();
6972
6984
  const renderedHeight = img.clientHeight;
@@ -6977,12 +6989,14 @@ function assertNonZeroRenderedHeight(dir, img, renderer) {
6977
6989
  `To fix this problem, make sure the container element has the CSS 'position' ` +
6978
6990
  `property defined and the height of the element is not zero.`));
6979
6991
  }
6980
- });
6992
+ };
6993
+ const removeLoadListenerFn = renderer.listen(img, 'load', callback);
6981
6994
  // See comments in the `assertNoImageDistortion`.
6982
6995
  const removeErrorListenerFn = renderer.listen(img, 'error', () => {
6983
6996
  removeLoadListenerFn();
6984
6997
  removeErrorListenerFn();
6985
6998
  });
6999
+ callOnLoadIfImageIsLoaded(img, callback);
6986
7000
  }
6987
7001
  /**
6988
7002
  * Verifies that the `loading` attribute is set to a valid input &
@@ -7087,6 +7101,21 @@ function assertPlaceholderDimensions(dir, imgElement) {
7087
7101
  `To fix this, use a smaller image as a placeholder.`));
7088
7102
  }
7089
7103
  }
7104
+ function callOnLoadIfImageIsLoaded(img, callback) {
7105
+ // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-complete
7106
+ // The spec defines that `complete` is truthy once its request state is fully available.
7107
+ // The image may already be available if it’s loaded from the browser cache.
7108
+ // In that case, the `load` event will not fire at all, meaning that all setup
7109
+ // callbacks listening for the `load` event will not be invoked.
7110
+ // In Safari, there is a known behavior where the `complete` property of an
7111
+ // `HTMLImageElement` may sometimes return `true` even when the image is not fully loaded.
7112
+ // Checking both `img.complete` and `img.naturalWidth` is the most reliable way to
7113
+ // determine if an image has been fully loaded, especially in browsers where the
7114
+ // `complete` property may return `true` prematurely.
7115
+ if (img.complete && img.naturalWidth) {
7116
+ callback();
7117
+ }
7118
+ }
7090
7119
  function round(input) {
7091
7120
  return Number.isInteger(input) ? input : input.toFixed(2);
7092
7121
  }