@angular/common 19.0.5 → 19.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Angular v19.0.5
2
+ * @license Angular v19.0.7
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import * as i0 from '@angular/core';
8
- import { Injectable, InjectionToken, inject, Optional, Inject, ɵɵinject, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, untracked, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, PLATFORM_ID, ɵformatRuntimeError, ɵIMAGE_CONFIG, Renderer2, ElementRef, Injector, ɵperformanceMarkFeature, NgZone, ApplicationRef, ChangeDetectorRef, numberAttribute, booleanAttribute, ɵIMAGE_CONFIG_DEFAULTS, ɵunwrapSafeValue } from '@angular/core';
8
+ import { Injectable, InjectionToken, inject, Optional, Inject, ɵɵinject, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, untracked, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, PLATFORM_ID, ɵIMAGE_CONFIG, Renderer2, ElementRef, Injector, DestroyRef, ɵperformanceMarkFeature, NgZone, ApplicationRef, ChangeDetectorRef, numberAttribute, booleanAttribute, ɵIMAGE_CONFIG_DEFAULTS, ɵunwrapSafeValue } from '@angular/core';
9
9
  export { ɵIMAGE_CONFIG as IMAGE_CONFIG } from '@angular/core';
10
10
  import { Subject } from 'rxjs';
11
11
 
@@ -16,7 +16,6 @@ function getDOM() {
16
16
  function setRootDomAdapter(adapter) {
17
17
  _DOM ??= adapter;
18
18
  }
19
- /* tslint:disable:requireParameterType */
20
19
  /**
21
20
  * Provides DOM operations in an environment-agnostic way.
22
21
  *
@@ -31,10 +30,10 @@ class DomAdapter {
31
30
  * implementations.
32
31
  */
33
32
  class PlatformNavigation {
34
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation });
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation });
36
35
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PlatformNavigation, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PlatformNavigation, decorators: [{
38
37
  type: Injectable,
39
38
  args: [{ providedIn: 'platform', useFactory: () => window.navigation }]
40
39
  }] });
@@ -74,10 +73,10 @@ class PlatformLocation {
74
73
  historyGo(relativePosition) {
75
74
  throw new Error(ngDevMode ? 'Not implemented' : '');
76
75
  }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) });
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
77
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) });
79
78
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PlatformLocation, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PlatformLocation, decorators: [{
81
80
  type: Injectable,
82
81
  args: [{ providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }]
83
82
  }] });
@@ -159,10 +158,10 @@ class BrowserPlatformLocation extends PlatformLocation {
159
158
  getState() {
160
159
  return this._history.state;
161
160
  }
162
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
163
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() });
161
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
162
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() });
164
163
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
166
165
  type: Injectable,
167
166
  args: [{
168
167
  providedIn: 'platform',
@@ -248,10 +247,10 @@ class LocationStrategy {
248
247
  historyGo(relativePosition) {
249
248
  throw new Error(ngDevMode ? 'Not implemented' : '');
250
249
  }
251
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
252
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
250
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
251
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
253
252
  }
254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LocationStrategy, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LocationStrategy, decorators: [{
255
254
  type: Injectable,
256
255
  args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]
257
256
  }] });
@@ -363,10 +362,10 @@ class PathLocationStrategy extends LocationStrategy {
363
362
  historyGo(relativePosition = 0) {
364
363
  this._platformLocation.historyGo?.(relativePosition);
365
364
  }
366
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
367
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
365
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
366
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
368
367
  }
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PathLocationStrategy, decorators: [{
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PathLocationStrategy, decorators: [{
370
369
  type: Injectable,
371
370
  args: [{ providedIn: 'root' }]
372
371
  }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{
@@ -453,10 +452,10 @@ class HashLocationStrategy extends LocationStrategy {
453
452
  historyGo(relativePosition = 0) {
454
453
  this._platformLocation.historyGo?.(relativePosition);
455
454
  }
456
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
457
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HashLocationStrategy });
455
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
456
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: HashLocationStrategy });
458
457
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HashLocationStrategy, decorators: [{
458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: HashLocationStrategy, decorators: [{
460
459
  type: Injectable
461
460
  }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{
462
461
  type: Optional
@@ -710,10 +709,10 @@ class Location {
710
709
  * @returns The URL string, modified if needed.
711
710
  */
712
711
  static stripTrailingSlash = stripTrailingSlash;
713
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
714
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
713
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
715
714
  }
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: Location, decorators: [{
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: Location, decorators: [{
717
716
  type: Injectable,
718
717
  args: [{
719
718
  providedIn: 'root',
@@ -1471,31 +1470,6 @@ const ISO8601_DATE_REGEX = /^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(
1471
1470
  // 1 2 3 4 5 6 7 8 9 10 11
1472
1471
  const NAMED_FORMATS = {};
1473
1472
  const DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;
1474
- var ZoneWidth;
1475
- (function (ZoneWidth) {
1476
- ZoneWidth[ZoneWidth["Short"] = 0] = "Short";
1477
- ZoneWidth[ZoneWidth["ShortGMT"] = 1] = "ShortGMT";
1478
- ZoneWidth[ZoneWidth["Long"] = 2] = "Long";
1479
- ZoneWidth[ZoneWidth["Extended"] = 3] = "Extended";
1480
- })(ZoneWidth || (ZoneWidth = {}));
1481
- var DateType;
1482
- (function (DateType) {
1483
- DateType[DateType["FullYear"] = 0] = "FullYear";
1484
- DateType[DateType["Month"] = 1] = "Month";
1485
- DateType[DateType["Date"] = 2] = "Date";
1486
- DateType[DateType["Hours"] = 3] = "Hours";
1487
- DateType[DateType["Minutes"] = 4] = "Minutes";
1488
- DateType[DateType["Seconds"] = 5] = "Seconds";
1489
- DateType[DateType["FractionalSeconds"] = 6] = "FractionalSeconds";
1490
- DateType[DateType["Day"] = 7] = "Day";
1491
- })(DateType || (DateType = {}));
1492
- var TranslationType;
1493
- (function (TranslationType) {
1494
- TranslationType[TranslationType["DayPeriods"] = 0] = "DayPeriods";
1495
- TranslationType[TranslationType["Days"] = 1] = "Days";
1496
- TranslationType[TranslationType["Months"] = 2] = "Months";
1497
- TranslationType[TranslationType["Eras"] = 3] = "Eras";
1498
- })(TranslationType || (TranslationType = {}));
1499
1473
  /**
1500
1474
  * @ngModule CommonModule
1501
1475
  * @description
@@ -1692,12 +1666,12 @@ function dateGetter(name, size, offset = 0, trim = false, negWrap = false) {
1692
1666
  if (offset > 0 || part > -offset) {
1693
1667
  part += offset;
1694
1668
  }
1695
- if (name === DateType.Hours) {
1669
+ if (name === 3 /* DateType.Hours */) {
1696
1670
  if (part === 0 && offset === -12) {
1697
1671
  part = 12;
1698
1672
  }
1699
1673
  }
1700
- else if (name === DateType.FractionalSeconds) {
1674
+ else if (name === 6 /* DateType.FractionalSeconds */) {
1701
1675
  return formatFractionalSeconds(part, size);
1702
1676
  }
1703
1677
  const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);
@@ -1706,21 +1680,21 @@ function dateGetter(name, size, offset = 0, trim = false, negWrap = false) {
1706
1680
  }
1707
1681
  function getDatePart(part, date) {
1708
1682
  switch (part) {
1709
- case DateType.FullYear:
1683
+ case 0 /* DateType.FullYear */:
1710
1684
  return date.getFullYear();
1711
- case DateType.Month:
1685
+ case 1 /* DateType.Month */:
1712
1686
  return date.getMonth();
1713
- case DateType.Date:
1687
+ case 2 /* DateType.Date */:
1714
1688
  return date.getDate();
1715
- case DateType.Hours:
1689
+ case 3 /* DateType.Hours */:
1716
1690
  return date.getHours();
1717
- case DateType.Minutes:
1691
+ case 4 /* DateType.Minutes */:
1718
1692
  return date.getMinutes();
1719
- case DateType.Seconds:
1693
+ case 5 /* DateType.Seconds */:
1720
1694
  return date.getSeconds();
1721
- case DateType.FractionalSeconds:
1695
+ case 6 /* DateType.FractionalSeconds */:
1722
1696
  return date.getMilliseconds();
1723
- case DateType.Day:
1697
+ case 7 /* DateType.Day */:
1724
1698
  return date.getDay();
1725
1699
  default:
1726
1700
  throw new Error(`Unknown DateType value "${part}".`);
@@ -1739,11 +1713,11 @@ function dateStrGetter(name, width, form = FormStyle.Format, extended = false) {
1739
1713
  */
1740
1714
  function getDateTranslation(date, locale, name, width, form, extended) {
1741
1715
  switch (name) {
1742
- case TranslationType.Months:
1716
+ case 2 /* TranslationType.Months */:
1743
1717
  return getLocaleMonthNames(locale, form, width)[date.getMonth()];
1744
- case TranslationType.Days:
1718
+ case 1 /* TranslationType.Days */:
1745
1719
  return getLocaleDayNames(locale, form, width)[date.getDay()];
1746
- case TranslationType.DayPeriods:
1720
+ case 0 /* TranslationType.DayPeriods */:
1747
1721
  const currentHours = date.getHours();
1748
1722
  const currentMinutes = date.getMinutes();
1749
1723
  if (extended) {
@@ -1788,7 +1762,7 @@ function getDateTranslation(date, locale, name, width, form, extended) {
1788
1762
  }
1789
1763
  // if no rules for the day periods, we use am/pm by default
1790
1764
  return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];
1791
- case TranslationType.Eras:
1765
+ case 3 /* TranslationType.Eras */:
1792
1766
  return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];
1793
1767
  default:
1794
1768
  // This default case is not needed by TypeScript compiler, as the switch is exhaustive.
@@ -1810,19 +1784,19 @@ function timeZoneGetter(width) {
1810
1784
  const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);
1811
1785
  const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);
1812
1786
  switch (width) {
1813
- case ZoneWidth.Short:
1787
+ case 0 /* ZoneWidth.Short */:
1814
1788
  return ((zone >= 0 ? '+' : '') +
1815
1789
  padNumber(hours, 2, minusSign) +
1816
1790
  padNumber(Math.abs(zone % 60), 2, minusSign));
1817
- case ZoneWidth.ShortGMT:
1791
+ case 1 /* ZoneWidth.ShortGMT */:
1818
1792
  return 'GMT' + (zone >= 0 ? '+' : '') + padNumber(hours, 1, minusSign);
1819
- case ZoneWidth.Long:
1793
+ case 2 /* ZoneWidth.Long */:
1820
1794
  return ('GMT' +
1821
1795
  (zone >= 0 ? '+' : '') +
1822
1796
  padNumber(hours, 2, minusSign) +
1823
1797
  ':' +
1824
1798
  padNumber(Math.abs(zone % 60), 2, minusSign));
1825
- case ZoneWidth.Extended:
1799
+ case 3 /* ZoneWidth.Extended */:
1826
1800
  if (offset === 0) {
1827
1801
  return 'Z';
1828
1802
  }
@@ -1897,29 +1871,29 @@ function getDateFormatter(format) {
1897
1871
  case 'G':
1898
1872
  case 'GG':
1899
1873
  case 'GGG':
1900
- formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);
1874
+ formatter = dateStrGetter(3 /* TranslationType.Eras */, TranslationWidth.Abbreviated);
1901
1875
  break;
1902
1876
  case 'GGGG':
1903
- formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);
1877
+ formatter = dateStrGetter(3 /* TranslationType.Eras */, TranslationWidth.Wide);
1904
1878
  break;
1905
1879
  case 'GGGGG':
1906
- formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);
1880
+ formatter = dateStrGetter(3 /* TranslationType.Eras */, TranslationWidth.Narrow);
1907
1881
  break;
1908
1882
  // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)
1909
1883
  case 'y':
1910
- formatter = dateGetter(DateType.FullYear, 1, 0, false, true);
1884
+ formatter = dateGetter(0 /* DateType.FullYear */, 1, 0, false, true);
1911
1885
  break;
1912
1886
  // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)
1913
1887
  case 'yy':
1914
- formatter = dateGetter(DateType.FullYear, 2, 0, true, true);
1888
+ formatter = dateGetter(0 /* DateType.FullYear */, 2, 0, true, true);
1915
1889
  break;
1916
1890
  // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)
1917
1891
  case 'yyy':
1918
- formatter = dateGetter(DateType.FullYear, 3, 0, false, true);
1892
+ formatter = dateGetter(0 /* DateType.FullYear */, 3, 0, false, true);
1919
1893
  break;
1920
1894
  // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)
1921
1895
  case 'yyyy':
1922
- formatter = dateGetter(DateType.FullYear, 4, 0, false, true);
1896
+ formatter = dateGetter(0 /* DateType.FullYear */, 4, 0, false, true);
1923
1897
  break;
1924
1898
  // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)
1925
1899
  case 'Y':
@@ -1942,31 +1916,31 @@ function getDateFormatter(format) {
1942
1916
  // Month of the year (1-12), numeric
1943
1917
  case 'M':
1944
1918
  case 'L':
1945
- formatter = dateGetter(DateType.Month, 1, 1);
1919
+ formatter = dateGetter(1 /* DateType.Month */, 1, 1);
1946
1920
  break;
1947
1921
  case 'MM':
1948
1922
  case 'LL':
1949
- formatter = dateGetter(DateType.Month, 2, 1);
1923
+ formatter = dateGetter(1 /* DateType.Month */, 2, 1);
1950
1924
  break;
1951
1925
  // Month of the year (January, ...), string, format
1952
1926
  case 'MMM':
1953
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);
1927
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Abbreviated);
1954
1928
  break;
1955
1929
  case 'MMMM':
1956
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);
1930
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Wide);
1957
1931
  break;
1958
1932
  case 'MMMMM':
1959
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);
1933
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Narrow);
1960
1934
  break;
1961
1935
  // Month of the year (January, ...), string, standalone
1962
1936
  case 'LLL':
1963
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);
1937
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Abbreviated, FormStyle.Standalone);
1964
1938
  break;
1965
1939
  case 'LLLL':
1966
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);
1940
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Wide, FormStyle.Standalone);
1967
1941
  break;
1968
1942
  case 'LLLLL':
1969
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);
1943
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Narrow, FormStyle.Standalone);
1970
1944
  break;
1971
1945
  // Week of the year (1, ... 52)
1972
1946
  case 'w':
@@ -1981,127 +1955,127 @@ function getDateFormatter(format) {
1981
1955
  break;
1982
1956
  // Day of the month (1-31)
1983
1957
  case 'd':
1984
- formatter = dateGetter(DateType.Date, 1);
1958
+ formatter = dateGetter(2 /* DateType.Date */, 1);
1985
1959
  break;
1986
1960
  case 'dd':
1987
- formatter = dateGetter(DateType.Date, 2);
1961
+ formatter = dateGetter(2 /* DateType.Date */, 2);
1988
1962
  break;
1989
1963
  // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)
1990
1964
  case 'c':
1991
1965
  case 'cc':
1992
- formatter = dateGetter(DateType.Day, 1);
1966
+ formatter = dateGetter(7 /* DateType.Day */, 1);
1993
1967
  break;
1994
1968
  case 'ccc':
1995
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);
1969
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Abbreviated, FormStyle.Standalone);
1996
1970
  break;
1997
1971
  case 'cccc':
1998
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);
1972
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Wide, FormStyle.Standalone);
1999
1973
  break;
2000
1974
  case 'ccccc':
2001
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);
1975
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Narrow, FormStyle.Standalone);
2002
1976
  break;
2003
1977
  case 'cccccc':
2004
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);
1978
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Short, FormStyle.Standalone);
2005
1979
  break;
2006
1980
  // Day of the Week
2007
1981
  case 'E':
2008
1982
  case 'EE':
2009
1983
  case 'EEE':
2010
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);
1984
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Abbreviated);
2011
1985
  break;
2012
1986
  case 'EEEE':
2013
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);
1987
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Wide);
2014
1988
  break;
2015
1989
  case 'EEEEE':
2016
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);
1990
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Narrow);
2017
1991
  break;
2018
1992
  case 'EEEEEE':
2019
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);
1993
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Short);
2020
1994
  break;
2021
1995
  // Generic period of the day (am-pm)
2022
1996
  case 'a':
2023
1997
  case 'aa':
2024
1998
  case 'aaa':
2025
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);
1999
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Abbreviated);
2026
2000
  break;
2027
2001
  case 'aaaa':
2028
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);
2002
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Wide);
2029
2003
  break;
2030
2004
  case 'aaaaa':
2031
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);
2005
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Narrow);
2032
2006
  break;
2033
2007
  // Extended period of the day (midnight, at night, ...), standalone
2034
2008
  case 'b':
2035
2009
  case 'bb':
2036
2010
  case 'bbb':
2037
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);
2011
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Abbreviated, FormStyle.Standalone, true);
2038
2012
  break;
2039
2013
  case 'bbbb':
2040
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);
2014
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Wide, FormStyle.Standalone, true);
2041
2015
  break;
2042
2016
  case 'bbbbb':
2043
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);
2017
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Narrow, FormStyle.Standalone, true);
2044
2018
  break;
2045
2019
  // Extended period of the day (midnight, night, ...), standalone
2046
2020
  case 'B':
2047
2021
  case 'BB':
2048
2022
  case 'BBB':
2049
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);
2023
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Abbreviated, FormStyle.Format, true);
2050
2024
  break;
2051
2025
  case 'BBBB':
2052
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);
2026
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Wide, FormStyle.Format, true);
2053
2027
  break;
2054
2028
  case 'BBBBB':
2055
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);
2029
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Narrow, FormStyle.Format, true);
2056
2030
  break;
2057
2031
  // Hour in AM/PM, (1-12)
2058
2032
  case 'h':
2059
- formatter = dateGetter(DateType.Hours, 1, -12);
2033
+ formatter = dateGetter(3 /* DateType.Hours */, 1, -12);
2060
2034
  break;
2061
2035
  case 'hh':
2062
- formatter = dateGetter(DateType.Hours, 2, -12);
2036
+ formatter = dateGetter(3 /* DateType.Hours */, 2, -12);
2063
2037
  break;
2064
2038
  // Hour of the day (0-23)
2065
2039
  case 'H':
2066
- formatter = dateGetter(DateType.Hours, 1);
2040
+ formatter = dateGetter(3 /* DateType.Hours */, 1);
2067
2041
  break;
2068
2042
  // Hour in day, padded (00-23)
2069
2043
  case 'HH':
2070
- formatter = dateGetter(DateType.Hours, 2);
2044
+ formatter = dateGetter(3 /* DateType.Hours */, 2);
2071
2045
  break;
2072
2046
  // Minute of the hour (0-59)
2073
2047
  case 'm':
2074
- formatter = dateGetter(DateType.Minutes, 1);
2048
+ formatter = dateGetter(4 /* DateType.Minutes */, 1);
2075
2049
  break;
2076
2050
  case 'mm':
2077
- formatter = dateGetter(DateType.Minutes, 2);
2051
+ formatter = dateGetter(4 /* DateType.Minutes */, 2);
2078
2052
  break;
2079
2053
  // Second of the minute (0-59)
2080
2054
  case 's':
2081
- formatter = dateGetter(DateType.Seconds, 1);
2055
+ formatter = dateGetter(5 /* DateType.Seconds */, 1);
2082
2056
  break;
2083
2057
  case 'ss':
2084
- formatter = dateGetter(DateType.Seconds, 2);
2058
+ formatter = dateGetter(5 /* DateType.Seconds */, 2);
2085
2059
  break;
2086
2060
  // Fractional second
2087
2061
  case 'S':
2088
- formatter = dateGetter(DateType.FractionalSeconds, 1);
2062
+ formatter = dateGetter(6 /* DateType.FractionalSeconds */, 1);
2089
2063
  break;
2090
2064
  case 'SS':
2091
- formatter = dateGetter(DateType.FractionalSeconds, 2);
2065
+ formatter = dateGetter(6 /* DateType.FractionalSeconds */, 2);
2092
2066
  break;
2093
2067
  case 'SSS':
2094
- formatter = dateGetter(DateType.FractionalSeconds, 3);
2068
+ formatter = dateGetter(6 /* DateType.FractionalSeconds */, 3);
2095
2069
  break;
2096
2070
  // Timezone ISO8601 short format (-0430)
2097
2071
  case 'Z':
2098
2072
  case 'ZZ':
2099
2073
  case 'ZZZ':
2100
- formatter = timeZoneGetter(ZoneWidth.Short);
2074
+ formatter = timeZoneGetter(0 /* ZoneWidth.Short */);
2101
2075
  break;
2102
2076
  // Timezone ISO8601 extended format (-04:30)
2103
2077
  case 'ZZZZZ':
2104
- formatter = timeZoneGetter(ZoneWidth.Extended);
2078
+ formatter = timeZoneGetter(3 /* ZoneWidth.Extended */);
2105
2079
  break;
2106
2080
  // Timezone GMT short format (GMT+4)
2107
2081
  case 'O':
@@ -2111,14 +2085,14 @@ function getDateFormatter(format) {
2111
2085
  case 'z':
2112
2086
  case 'zz':
2113
2087
  case 'zzz':
2114
- formatter = timeZoneGetter(ZoneWidth.ShortGMT);
2088
+ formatter = timeZoneGetter(1 /* ZoneWidth.ShortGMT */);
2115
2089
  break;
2116
2090
  // Timezone GMT long format (GMT+0430)
2117
2091
  case 'OOOO':
2118
2092
  case 'ZZZZ':
2119
2093
  // Should be location, but fallback to format O instead because we don't have the data yet
2120
2094
  case 'zzzz':
2121
- formatter = timeZoneGetter(ZoneWidth.Long);
2095
+ formatter = timeZoneGetter(2 /* ZoneWidth.Long */);
2122
2096
  break;
2123
2097
  default:
2124
2098
  return null;
@@ -2615,10 +2589,10 @@ function parseIntAutoRadix(text) {
2615
2589
  * @publicApi
2616
2590
  */
2617
2591
  class NgLocalization {
2618
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2619
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });
2592
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2593
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });
2620
2594
  }
2621
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgLocalization, decorators: [{
2595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgLocalization, decorators: [{
2622
2596
  type: Injectable,
2623
2597
  args: [{
2624
2598
  providedIn: 'root',
@@ -2673,10 +2647,10 @@ class NgLocaleLocalization extends NgLocalization {
2673
2647
  return 'other';
2674
2648
  }
2675
2649
  }
2676
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2677
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgLocaleLocalization });
2650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2651
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgLocaleLocalization });
2678
2652
  }
2679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2680
2654
  type: Injectable
2681
2655
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2682
2656
  type: Inject,
@@ -2715,17 +2689,23 @@ const EMPTY_ARRAY = [];
2715
2689
  *
2716
2690
  * @usageNotes
2717
2691
  * ```html
2718
- * <some-element [ngClass]="'first second'">...</some-element>
2692
+ * <some-element [ngClass]="stringExp|arrayExp|objExp|Set">...</some-element>
2719
2693
  *
2720
- * <some-element [ngClass]="['first', 'second']">...</some-element>
2694
+ * <some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
2695
+ * ```
2721
2696
  *
2722
- * <some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
2697
+ * For more simple use cases you can use the [class bindings](/guide/templates/binding#css-class-and-style-property-bindings) directly.
2698
+ * It doesn't require importing a directive.
2723
2699
  *
2724
- * <some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
2700
+ * ```html
2701
+ * <some-element [class]="'first second'">...</some-element>
2725
2702
  *
2726
- * <some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
2727
- * ```
2703
+ * <some-element [class.expanded]="isExpanded">...</some-element>
2728
2704
  *
2705
+ * <some-element [class]="['first', 'second']">...</some-element>
2706
+ *
2707
+ * <some-element [class]="{'first': true, 'second': true, 'third': false}">...</some-element>
2708
+ * ```
2729
2709
  * @description
2730
2710
  *
2731
2711
  * Adds and removes CSS classes on an HTML element.
@@ -2736,6 +2716,9 @@ const EMPTY_ARRAY = [];
2736
2716
  * - `Object` - keys are CSS classes that get added when the expression given in the value
2737
2717
  * evaluates to a truthy value, otherwise they are removed.
2738
2718
  *
2719
+ *
2720
+ * @see [Class bindings](/guide/templates/binding#css-class-and-style-property-bindings)
2721
+ *
2739
2722
  * @publicApi
2740
2723
  */
2741
2724
  class NgClass {
@@ -2848,10 +2831,10 @@ class NgClass {
2848
2831
  });
2849
2832
  }
2850
2833
  }
2851
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2852
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2834
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2835
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2853
2836
  }
2854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgClass, decorators: [{
2837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgClass, decorators: [{
2855
2838
  type: Directive,
2856
2839
  args: [{
2857
2840
  selector: '[ngClass]',
@@ -3028,10 +3011,10 @@ class NgComponentOutlet {
3028
3011
  }
3029
3012
  }
3030
3013
  }
3031
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3032
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInputs: "ngComponentOutletInputs", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, usesOnChanges: true, ngImport: i0 });
3014
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3015
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInputs: "ngComponentOutletInputs", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, usesOnChanges: true, ngImport: i0 });
3033
3016
  }
3034
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgComponentOutlet, decorators: [{
3017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgComponentOutlet, decorators: [{
3035
3018
  type: Directive,
3036
3019
  args: [{
3037
3020
  selector: '[ngComponentOutlet]',
@@ -3338,10 +3321,10 @@ class NgForOf {
3338
3321
  static ngTemplateContextGuard(dir, ctx) {
3339
3322
  return true;
3340
3323
  }
3341
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3342
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3324
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3325
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3343
3326
  }
3344
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgForOf, decorators: [{
3327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgForOf, decorators: [{
3345
3328
  type: Directive,
3346
3329
  args: [{
3347
3330
  selector: '[ngFor][ngForOf]',
@@ -3575,10 +3558,10 @@ class NgIf {
3575
3558
  static ngTemplateContextGuard(dir, ctx) {
3576
3559
  return true;
3577
3560
  }
3578
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3579
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3561
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3562
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3580
3563
  }
3581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgIf, decorators: [{
3564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgIf, decorators: [{
3582
3565
  type: Directive,
3583
3566
  args: [{
3584
3567
  selector: '[ngIf]',
@@ -3736,10 +3719,10 @@ class NgSwitch {
3736
3719
  }
3737
3720
  }
3738
3721
  }
3739
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3740
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3722
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3723
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3741
3724
  }
3742
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgSwitch, decorators: [{
3725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgSwitch, decorators: [{
3743
3726
  type: Directive,
3744
3727
  args: [{
3745
3728
  selector: '[ngSwitch]',
@@ -3802,10 +3785,10 @@ class NgSwitchCase {
3802
3785
  ngDoCheck() {
3803
3786
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3804
3787
  }
3805
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3806
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3788
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3789
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3807
3790
  }
3808
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgSwitchCase, decorators: [{
3791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgSwitchCase, decorators: [{
3809
3792
  type: Directive,
3810
3793
  args: [{
3811
3794
  selector: '[ngSwitchCase]',
@@ -3838,10 +3821,10 @@ class NgSwitchDefault {
3838
3821
  }
3839
3822
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3840
3823
  }
3841
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3842
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3824
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3825
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3843
3826
  }
3844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgSwitchDefault, decorators: [{
3827
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgSwitchDefault, decorators: [{
3845
3828
  type: Directive,
3846
3829
  args: [{
3847
3830
  selector: '[ngSwitchDefault]',
@@ -3920,10 +3903,10 @@ class NgPlural {
3920
3903
  this._activeView.create();
3921
3904
  }
3922
3905
  }
3923
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3924
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3906
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3907
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3925
3908
  }
3926
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgPlural, decorators: [{
3909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgPlural, decorators: [{
3927
3910
  type: Directive,
3928
3911
  args: [{
3929
3912
  selector: '[ngPlural]',
@@ -3958,10 +3941,10 @@ class NgPluralCase {
3958
3941
  const isANumber = !isNaN(Number(value));
3959
3942
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3960
3943
  }
3961
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3962
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3944
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3945
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3963
3946
  }
3964
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgPluralCase, decorators: [{
3947
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgPluralCase, decorators: [{
3965
3948
  type: Directive,
3966
3949
  args: [{
3967
3950
  selector: '[ngPluralCase]',
@@ -3978,12 +3961,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
3978
3961
  *
3979
3962
  * @usageNotes
3980
3963
  *
3981
- * Set the font of the containing element to the result of an expression.
3982
- *
3983
- * ```html
3984
- * <some-element [ngStyle]="{'font-style': styleExp}">...</some-element>
3985
- * ```
3986
- *
3987
3964
  * Set the width of the containing element to a pixel value returned by an expression.
3988
3965
  *
3989
3966
  * ```html
@@ -3996,6 +3973,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
3996
3973
  * <some-element [ngStyle]="objExp">...</some-element>
3997
3974
  * ```
3998
3975
  *
3976
+ * For more simple use cases you can use the [style bindings](/guide/templates/binding#css-class-and-style-property-bindings) directly.
3977
+ * It doesn't require importing a directive.
3978
+ *
3979
+ * Set the font of the containing element to the result of an expression.
3980
+ *
3981
+ * ```html
3982
+ * <some-element [style]="{'font-style': styleExp}">...</some-element>
3983
+ * ```
3984
+ *
3999
3985
  * @description
4000
3986
  *
4001
3987
  * An attribute directive that updates styles for the containing HTML element.
@@ -4007,6 +3993,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
4007
3993
  * is assigned to the given style property.
4008
3994
  * If the result of evaluation is null, the corresponding style is removed.
4009
3995
  *
3996
+ * @see [Style bindings](/guide/templates/binding#css-class-and-style-property-bindings)
3997
+ *
4010
3998
  * @publicApi
4011
3999
  */
4012
4000
  class NgStyle {
@@ -4049,10 +4037,10 @@ class NgStyle {
4049
4037
  changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));
4050
4038
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
4051
4039
  }
4052
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4053
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
4040
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4041
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
4054
4042
  }
4055
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgStyle, decorators: [{
4043
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgStyle, decorators: [{
4056
4044
  type: Directive,
4057
4045
  args: [{
4058
4046
  selector: '[ngStyle]',
@@ -4153,10 +4141,10 @@ class NgTemplateOutlet {
4153
4141
  },
4154
4142
  });
4155
4143
  }
4156
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
4157
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
4144
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
4145
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.7", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
4158
4146
  }
4159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4160
4148
  type: Directive,
4161
4149
  args: [{
4162
4150
  selector: '[ngTemplateOutlet]',
@@ -4324,10 +4312,10 @@ class AsyncPipe {
4324
4312
  }
4325
4313
  }
4326
4314
  }
4327
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4328
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4315
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4316
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4329
4317
  }
4330
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: AsyncPipe, decorators: [{
4318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: AsyncPipe, decorators: [{
4331
4319
  type: Pipe,
4332
4320
  args: [{
4333
4321
  name: 'async',
@@ -4359,10 +4347,10 @@ class LowerCasePipe {
4359
4347
  }
4360
4348
  return value.toLowerCase();
4361
4349
  }
4362
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4363
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4350
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4351
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4364
4352
  }
4365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LowerCasePipe, decorators: [{
4353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LowerCasePipe, decorators: [{
4366
4354
  type: Pipe,
4367
4355
  args: [{
4368
4356
  name: 'lowercase',
@@ -4403,10 +4391,10 @@ class TitleCasePipe {
4403
4391
  }
4404
4392
  return value.replace(unicodeWordMatch, (txt) => txt[0].toUpperCase() + txt.slice(1).toLowerCase());
4405
4393
  }
4406
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4407
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4394
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4395
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4408
4396
  }
4409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TitleCasePipe, decorators: [{
4397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: TitleCasePipe, decorators: [{
4410
4398
  type: Pipe,
4411
4399
  args: [{
4412
4400
  name: 'titlecase',
@@ -4429,10 +4417,10 @@ class UpperCasePipe {
4429
4417
  }
4430
4418
  return value.toUpperCase();
4431
4419
  }
4432
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4433
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4420
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4421
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4434
4422
  }
4435
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: UpperCasePipe, decorators: [{
4423
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: UpperCasePipe, decorators: [{
4436
4424
  type: Pipe,
4437
4425
  args: [{
4438
4426
  name: 'uppercase',
@@ -4663,10 +4651,10 @@ class DatePipe {
4663
4651
  throw invalidPipeArgumentError(DatePipe, error.message);
4664
4652
  }
4665
4653
  }
4666
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", 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 });
4667
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4654
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", 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 });
4655
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4668
4656
  }
4669
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DatePipe, decorators: [{
4657
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DatePipe, decorators: [{
4670
4658
  type: Pipe,
4671
4659
  args: [{
4672
4660
  name: 'date',
@@ -4722,10 +4710,10 @@ class I18nPluralPipe {
4722
4710
  const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);
4723
4711
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4724
4712
  }
4725
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4726
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4713
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4714
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4727
4715
  }
4728
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: I18nPluralPipe, decorators: [{
4716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: I18nPluralPipe, decorators: [{
4729
4717
  type: Pipe,
4730
4718
  args: [{
4731
4719
  name: 'i18nPlural',
@@ -4769,10 +4757,10 @@ class I18nSelectPipe {
4769
4757
  }
4770
4758
  return '';
4771
4759
  }
4772
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4773
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4760
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4761
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4774
4762
  }
4775
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: I18nSelectPipe, decorators: [{
4763
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: I18nSelectPipe, decorators: [{
4776
4764
  type: Pipe,
4777
4765
  args: [{
4778
4766
  name: 'i18nSelect',
@@ -4801,10 +4789,10 @@ class JsonPipe {
4801
4789
  transform(value) {
4802
4790
  return JSON.stringify(value, null, 2);
4803
4791
  }
4804
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4805
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4792
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4793
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4806
4794
  }
4807
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: JsonPipe, decorators: [{
4795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: JsonPipe, decorators: [{
4808
4796
  type: Pipe,
4809
4797
  args: [{
4810
4798
  name: 'json',
@@ -4866,10 +4854,10 @@ class KeyValuePipe {
4866
4854
  }
4867
4855
  return this.keyValues;
4868
4856
  }
4869
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4870
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4857
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4858
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4871
4859
  }
4872
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: KeyValuePipe, decorators: [{
4860
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: KeyValuePipe, decorators: [{
4873
4861
  type: Pipe,
4874
4862
  args: [{
4875
4863
  name: 'keyvalue',
@@ -4987,10 +4975,10 @@ class DecimalPipe {
4987
4975
  throw invalidPipeArgumentError(DecimalPipe, error.message);
4988
4976
  }
4989
4977
  }
4990
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4991
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4978
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4979
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4992
4980
  }
4993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DecimalPipe, decorators: [{
4981
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: DecimalPipe, decorators: [{
4994
4982
  type: Pipe,
4995
4983
  args: [{
4996
4984
  name: 'number',
@@ -5052,10 +5040,10 @@ class PercentPipe {
5052
5040
  throw invalidPipeArgumentError(PercentPipe, error.message);
5053
5041
  }
5054
5042
  }
5055
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5056
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
5043
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5044
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
5057
5045
  }
5058
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PercentPipe, decorators: [{
5046
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PercentPipe, decorators: [{
5059
5047
  type: Pipe,
5060
5048
  args: [{
5061
5049
  name: 'percent',
@@ -5119,10 +5107,10 @@ class CurrencyPipe {
5119
5107
  throw invalidPipeArgumentError(CurrencyPipe, error.message);
5120
5108
  }
5121
5109
  }
5122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
5123
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
5110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
5111
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
5124
5112
  }
5125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CurrencyPipe, decorators: [{
5113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CurrencyPipe, decorators: [{
5126
5114
  type: Pipe,
5127
5115
  args: [{
5128
5116
  name: 'currency',
@@ -5198,10 +5186,10 @@ class SlicePipe {
5198
5186
  supports(obj) {
5199
5187
  return typeof obj === 'string' || Array.isArray(obj);
5200
5188
  }
5201
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5202
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5190
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.7", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5203
5191
  }
5204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: SlicePipe, decorators: [{
5192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: SlicePipe, decorators: [{
5205
5193
  type: Pipe,
5206
5194
  args: [{
5207
5195
  name: 'slice',
@@ -5244,11 +5232,11 @@ const COMMON_PIPES = [
5244
5232
  * @publicApi
5245
5233
  */
5246
5234
  class CommonModule {
5247
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5248
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", 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] });
5249
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CommonModule });
5235
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5236
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.7", 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] });
5237
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CommonModule });
5250
5238
  }
5251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CommonModule, decorators: [{
5239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: CommonModule, decorators: [{
5252
5240
  type: NgModule,
5253
5241
  args: [{
5254
5242
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5281,7 +5269,7 @@ function isPlatformServer(platformId) {
5281
5269
  /**
5282
5270
  * @publicApi
5283
5271
  */
5284
- const VERSION = new Version('19.0.5');
5272
+ const VERSION = new Version('19.0.7');
5285
5273
 
5286
5274
  /**
5287
5275
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5295,9 +5283,9 @@ class ViewportScroller {
5295
5283
  static ɵprov = /** @pureOrBreakMyCode */ /* @__PURE__ */ ɵɵdefineInjectable({
5296
5284
  token: ViewportScroller,
5297
5285
  providedIn: 'root',
5298
- factory: () => isPlatformBrowser(inject(PLATFORM_ID))
5299
- ? new BrowserViewportScroller(inject(DOCUMENT), window)
5300
- : new NullViewportScroller(),
5286
+ factory: () => typeof ngServerMode !== 'undefined' && ngServerMode
5287
+ ? new NullViewportScroller()
5288
+ : new BrowserViewportScroller(inject(DOCUMENT), window),
5301
5289
  });
5302
5290
  }
5303
5291
  /**
@@ -5899,10 +5887,10 @@ class LCPImageObserver {
5899
5887
  this.observer.disconnect();
5900
5888
  this.images.clear();
5901
5889
  }
5902
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5903
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5890
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5891
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5904
5892
  }
5905
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: LCPImageObserver, decorators: [{
5893
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: LCPImageObserver, decorators: [{
5906
5894
  type: Injectable,
5907
5895
  args: [{ providedIn: 'root' }]
5908
5896
  }], ctorParameters: () => [] });
@@ -6026,10 +6014,10 @@ class PreconnectLinkChecker {
6026
6014
  this.preconnectLinks?.clear();
6027
6015
  this.alreadySeen.clear();
6028
6016
  }
6029
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6030
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
6017
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6018
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
6031
6019
  }
6032
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6020
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6033
6021
  type: Injectable,
6034
6022
  args: [{ providedIn: 'root' }]
6035
6023
  }], ctorParameters: () => [] });
@@ -6057,7 +6045,7 @@ const DEFAULT_PRELOADED_IMAGES_LIMIT = 5;
6057
6045
  * This Set tracks the original src passed into the `ngSrc` input not the src after it has been
6058
6046
  * run through the specified `IMAGE_LOADER`.
6059
6047
  */
6060
- const PRELOADED_IMAGES = new InjectionToken('NG_OPTIMIZED_PRELOADED_IMAGES', {
6048
+ const PRELOADED_IMAGES = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'NG_OPTIMIZED_PRELOADED_IMAGES' : '', {
6061
6049
  providedIn: 'root',
6062
6050
  factory: () => new Set(),
6063
6051
  });
@@ -6116,10 +6104,10 @@ class PreloadLinkCreator {
6116
6104
  }
6117
6105
  renderer.appendChild(this.document.head, preload);
6118
6106
  }
6119
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6120
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
6107
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6108
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
6121
6109
  }
6122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6123
6111
  type: Injectable,
6124
6112
  args: [{ providedIn: 'root' }]
6125
6113
  }] });
@@ -6325,8 +6313,9 @@ class NgOptimizedImage {
6325
6313
  injector = inject(Injector);
6326
6314
  isServer = isPlatformServer(inject(PLATFORM_ID));
6327
6315
  preloadLinkCreator = inject(PreloadLinkCreator);
6328
- // a LCP image observer - should be injected only in the dev mode
6329
- lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;
6316
+ // An LCP image observer should be injected only in development mode.
6317
+ // Do not assign it to `null` to avoid having a redundant property in the production bundle.
6318
+ lcpObserver;
6330
6319
  /**
6331
6320
  * Calculate the rewritten `src` once and store it.
6332
6321
  * This is needed to avoid repetitive calculations and make sure the directive cleanup in the
@@ -6346,7 +6335,7 @@ class NgOptimizedImage {
6346
6335
  * descriptors to generate the final `srcset` property of the image.
6347
6336
  *
6348
6337
  * Example:
6349
- * ```
6338
+ * ```html
6350
6339
  * <img ngSrc="hello.jpg" ngSrcset="100w, 200w" /> =>
6351
6340
  * <img src="path/hello.jpg" srcset="path/hello.jpg?w=100 100w, path/hello.jpg?w=200 200w" />
6352
6341
  * ```
@@ -6416,6 +6405,19 @@ class NgOptimizedImage {
6416
6405
  * @internal
6417
6406
  */
6418
6407
  srcset;
6408
+ constructor() {
6409
+ if (ngDevMode) {
6410
+ this.lcpObserver = this.injector.get(LCPImageObserver);
6411
+ // Using `DestroyRef` to avoid having an empty `ngOnDestroy` method since this
6412
+ // is only run in development mode.
6413
+ const destroyRef = inject(DestroyRef);
6414
+ destroyRef.onDestroy(() => {
6415
+ if (!this.priority && this._renderedSrc !== null) {
6416
+ this.lcpObserver.unregisterImage(this._renderedSrc);
6417
+ }
6418
+ });
6419
+ }
6420
+ }
6419
6421
  /** @nodoc */
6420
6422
  ngOnInit() {
6421
6423
  ɵperformanceMarkFeature('NgOptimizedImage');
@@ -6455,12 +6457,9 @@ class NgOptimizedImage {
6455
6457
  assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);
6456
6458
  assertNoNgSrcsetWithoutLoader(this, this.imageLoader);
6457
6459
  assertNoLoaderParamsWithoutLoader(this, this.imageLoader);
6458
- if (this.lcpObserver !== null) {
6459
- const ngZone = this.injector.get(NgZone);
6460
- ngZone.runOutsideAngular(() => {
6461
- this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);
6462
- });
6463
- }
6460
+ ngZone.runOutsideAngular(() => {
6461
+ this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);
6462
+ });
6464
6463
  if (this.priority) {
6465
6464
  const checker = this.injector.get(PreconnectLinkChecker);
6466
6465
  checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);
@@ -6530,12 +6529,14 @@ class NgOptimizedImage {
6530
6529
  if (changes['ngSrc'] && !changes['ngSrc'].isFirstChange()) {
6531
6530
  const oldSrc = this._renderedSrc;
6532
6531
  this.updateSrcAndSrcset(true);
6533
- const newSrc = this._renderedSrc;
6534
- if (this.lcpObserver !== null && oldSrc && newSrc && oldSrc !== newSrc) {
6535
- const ngZone = this.injector.get(NgZone);
6536
- ngZone.runOutsideAngular(() => {
6537
- this.lcpObserver?.updateImage(oldSrc, newSrc);
6538
- });
6532
+ if (ngDevMode) {
6533
+ const newSrc = this._renderedSrc;
6534
+ if (oldSrc && newSrc && oldSrc !== newSrc) {
6535
+ const ngZone = this.injector.get(NgZone);
6536
+ ngZone.runOutsideAngular(() => {
6537
+ this.lcpObserver.updateImage(oldSrc, newSrc);
6538
+ });
6539
+ }
6539
6540
  }
6540
6541
  }
6541
6542
  if (ngDevMode && changes['placeholder']?.currentValue && !this.isServer) {
@@ -6679,21 +6680,13 @@ class NgOptimizedImage {
6679
6680
  const removeErrorListenerFn = this.renderer.listen(img, 'error', callback);
6680
6681
  callOnLoadIfImageIsLoaded(img, callback);
6681
6682
  }
6682
- /** @nodoc */
6683
- ngOnDestroy() {
6684
- if (ngDevMode) {
6685
- if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {
6686
- this.lcpObserver.unregisterImage(this._renderedSrc);
6687
- }
6688
- }
6689
- }
6690
6683
  setHostAttribute(name, value) {
6691
6684
  this.renderer.setAttribute(this.imgElement, name, value);
6692
6685
  }
6693
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6694
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.5", 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 });
6686
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6687
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.7", 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 });
6695
6688
  }
6696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NgOptimizedImage, decorators: [{
6689
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.7", ngImport: i0, type: NgOptimizedImage, decorators: [{
6697
6690
  type: Directive,
6698
6691
  args: [{
6699
6692
  selector: 'img[ngSrc]',
@@ -6709,7 +6702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
6709
6702
  '[style.filter]': `placeholder && shouldBlurPlaceholder(placeholderConfig) ? "blur(${PLACEHOLDER_BLUR_AMOUNT}px)" : null`,
6710
6703
  },
6711
6704
  }]
6712
- }], propDecorators: { ngSrc: [{
6705
+ }], ctorParameters: () => [], propDecorators: { ngSrc: [{
6713
6706
  type: Input,
6714
6707
  args: [{ required: true, transform: unwrapSafeUrl }]
6715
6708
  }], ngSrcset: [{