@angular/common 19.1.0-rc.0 → 19.1.0

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.1.0-rc.0
2
+ * @license Angular v19.1.0
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
 
@@ -30,10 +30,10 @@ class DomAdapter {
30
30
  * implementations.
31
31
  */
32
32
  class PlatformNavigation {
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation });
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
34
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PlatformNavigation, providedIn: 'platform', useFactory: () => window.navigation });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PlatformNavigation, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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 ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
77
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) });
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
77
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) });
78
78
  }
79
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PlatformLocation, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PlatformLocation, decorators: [{
80
80
  type: Injectable,
81
81
  args: [{ providedIn: 'platform', useFactory: () => inject(BrowserPlatformLocation) }]
82
82
  }] });
@@ -158,10 +158,10 @@ class BrowserPlatformLocation extends PlatformLocation {
158
158
  getState() {
159
159
  return this._history.state;
160
160
  }
161
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
162
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() });
161
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
162
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: () => new BrowserPlatformLocation() });
163
163
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
165
165
  type: Injectable,
166
166
  args: [{
167
167
  providedIn: 'platform',
@@ -247,10 +247,10 @@ class LocationStrategy {
247
247
  historyGo(relativePosition) {
248
248
  throw new Error(ngDevMode ? 'Not implemented' : '');
249
249
  }
250
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
251
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
250
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
251
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });
252
252
  }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LocationStrategy, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LocationStrategy, decorators: [{
254
254
  type: Injectable,
255
255
  args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]
256
256
  }] });
@@ -362,10 +362,10 @@ class PathLocationStrategy extends LocationStrategy {
362
362
  historyGo(relativePosition = 0) {
363
363
  this._platformLocation.historyGo?.(relativePosition);
364
364
  }
365
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", 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.1.0-rc.0", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
365
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", 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.1.0", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });
367
367
  }
368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PathLocationStrategy, decorators: [{
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PathLocationStrategy, decorators: [{
369
369
  type: Injectable,
370
370
  args: [{ providedIn: 'root' }]
371
371
  }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{
@@ -452,10 +452,10 @@ class HashLocationStrategy extends LocationStrategy {
452
452
  historyGo(relativePosition = 0) {
453
453
  this._platformLocation.historyGo?.(relativePosition);
454
454
  }
455
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", 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.1.0-rc.0", ngImport: i0, type: HashLocationStrategy });
455
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", 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.1.0", ngImport: i0, type: HashLocationStrategy });
457
457
  }
458
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: HashLocationStrategy, decorators: [{
458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: HashLocationStrategy, decorators: [{
459
459
  type: Injectable
460
460
  }], ctorParameters: () => [{ type: PlatformLocation }, { type: undefined, decorators: [{
461
461
  type: Optional
@@ -709,10 +709,10 @@ class Location {
709
709
  * @returns The URL string, modified if needed.
710
710
  */
711
711
  static stripTrailingSlash = stripTrailingSlash;
712
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
713
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
713
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });
714
714
  }
715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: Location, decorators: [{
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: Location, decorators: [{
716
716
  type: Injectable,
717
717
  args: [{
718
718
  providedIn: 'root',
@@ -1470,31 +1470,6 @@ const ISO8601_DATE_REGEX = /^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(
1470
1470
  // 1 2 3 4 5 6 7 8 9 10 11
1471
1471
  const NAMED_FORMATS = {};
1472
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]*)/;
1473
- var ZoneWidth;
1474
- (function (ZoneWidth) {
1475
- ZoneWidth[ZoneWidth["Short"] = 0] = "Short";
1476
- ZoneWidth[ZoneWidth["ShortGMT"] = 1] = "ShortGMT";
1477
- ZoneWidth[ZoneWidth["Long"] = 2] = "Long";
1478
- ZoneWidth[ZoneWidth["Extended"] = 3] = "Extended";
1479
- })(ZoneWidth || (ZoneWidth = {}));
1480
- var DateType;
1481
- (function (DateType) {
1482
- DateType[DateType["FullYear"] = 0] = "FullYear";
1483
- DateType[DateType["Month"] = 1] = "Month";
1484
- DateType[DateType["Date"] = 2] = "Date";
1485
- DateType[DateType["Hours"] = 3] = "Hours";
1486
- DateType[DateType["Minutes"] = 4] = "Minutes";
1487
- DateType[DateType["Seconds"] = 5] = "Seconds";
1488
- DateType[DateType["FractionalSeconds"] = 6] = "FractionalSeconds";
1489
- DateType[DateType["Day"] = 7] = "Day";
1490
- })(DateType || (DateType = {}));
1491
- var TranslationType;
1492
- (function (TranslationType) {
1493
- TranslationType[TranslationType["DayPeriods"] = 0] = "DayPeriods";
1494
- TranslationType[TranslationType["Days"] = 1] = "Days";
1495
- TranslationType[TranslationType["Months"] = 2] = "Months";
1496
- TranslationType[TranslationType["Eras"] = 3] = "Eras";
1497
- })(TranslationType || (TranslationType = {}));
1498
1473
  /**
1499
1474
  * @ngModule CommonModule
1500
1475
  * @description
@@ -1691,12 +1666,12 @@ function dateGetter(name, size, offset = 0, trim = false, negWrap = false) {
1691
1666
  if (offset > 0 || part > -offset) {
1692
1667
  part += offset;
1693
1668
  }
1694
- if (name === DateType.Hours) {
1669
+ if (name === 3 /* DateType.Hours */) {
1695
1670
  if (part === 0 && offset === -12) {
1696
1671
  part = 12;
1697
1672
  }
1698
1673
  }
1699
- else if (name === DateType.FractionalSeconds) {
1674
+ else if (name === 6 /* DateType.FractionalSeconds */) {
1700
1675
  return formatFractionalSeconds(part, size);
1701
1676
  }
1702
1677
  const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);
@@ -1705,21 +1680,21 @@ function dateGetter(name, size, offset = 0, trim = false, negWrap = false) {
1705
1680
  }
1706
1681
  function getDatePart(part, date) {
1707
1682
  switch (part) {
1708
- case DateType.FullYear:
1683
+ case 0 /* DateType.FullYear */:
1709
1684
  return date.getFullYear();
1710
- case DateType.Month:
1685
+ case 1 /* DateType.Month */:
1711
1686
  return date.getMonth();
1712
- case DateType.Date:
1687
+ case 2 /* DateType.Date */:
1713
1688
  return date.getDate();
1714
- case DateType.Hours:
1689
+ case 3 /* DateType.Hours */:
1715
1690
  return date.getHours();
1716
- case DateType.Minutes:
1691
+ case 4 /* DateType.Minutes */:
1717
1692
  return date.getMinutes();
1718
- case DateType.Seconds:
1693
+ case 5 /* DateType.Seconds */:
1719
1694
  return date.getSeconds();
1720
- case DateType.FractionalSeconds:
1695
+ case 6 /* DateType.FractionalSeconds */:
1721
1696
  return date.getMilliseconds();
1722
- case DateType.Day:
1697
+ case 7 /* DateType.Day */:
1723
1698
  return date.getDay();
1724
1699
  default:
1725
1700
  throw new Error(`Unknown DateType value "${part}".`);
@@ -1738,11 +1713,11 @@ function dateStrGetter(name, width, form = FormStyle.Format, extended = false) {
1738
1713
  */
1739
1714
  function getDateTranslation(date, locale, name, width, form, extended) {
1740
1715
  switch (name) {
1741
- case TranslationType.Months:
1716
+ case 2 /* TranslationType.Months */:
1742
1717
  return getLocaleMonthNames(locale, form, width)[date.getMonth()];
1743
- case TranslationType.Days:
1718
+ case 1 /* TranslationType.Days */:
1744
1719
  return getLocaleDayNames(locale, form, width)[date.getDay()];
1745
- case TranslationType.DayPeriods:
1720
+ case 0 /* TranslationType.DayPeriods */:
1746
1721
  const currentHours = date.getHours();
1747
1722
  const currentMinutes = date.getMinutes();
1748
1723
  if (extended) {
@@ -1787,7 +1762,7 @@ function getDateTranslation(date, locale, name, width, form, extended) {
1787
1762
  }
1788
1763
  // if no rules for the day periods, we use am/pm by default
1789
1764
  return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];
1790
- case TranslationType.Eras:
1765
+ case 3 /* TranslationType.Eras */:
1791
1766
  return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];
1792
1767
  default:
1793
1768
  // This default case is not needed by TypeScript compiler, as the switch is exhaustive.
@@ -1809,19 +1784,19 @@ function timeZoneGetter(width) {
1809
1784
  const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);
1810
1785
  const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);
1811
1786
  switch (width) {
1812
- case ZoneWidth.Short:
1787
+ case 0 /* ZoneWidth.Short */:
1813
1788
  return ((zone >= 0 ? '+' : '') +
1814
1789
  padNumber(hours, 2, minusSign) +
1815
1790
  padNumber(Math.abs(zone % 60), 2, minusSign));
1816
- case ZoneWidth.ShortGMT:
1791
+ case 1 /* ZoneWidth.ShortGMT */:
1817
1792
  return 'GMT' + (zone >= 0 ? '+' : '') + padNumber(hours, 1, minusSign);
1818
- case ZoneWidth.Long:
1793
+ case 2 /* ZoneWidth.Long */:
1819
1794
  return ('GMT' +
1820
1795
  (zone >= 0 ? '+' : '') +
1821
1796
  padNumber(hours, 2, minusSign) +
1822
1797
  ':' +
1823
1798
  padNumber(Math.abs(zone % 60), 2, minusSign));
1824
- case ZoneWidth.Extended:
1799
+ case 3 /* ZoneWidth.Extended */:
1825
1800
  if (offset === 0) {
1826
1801
  return 'Z';
1827
1802
  }
@@ -1896,29 +1871,29 @@ function getDateFormatter(format) {
1896
1871
  case 'G':
1897
1872
  case 'GG':
1898
1873
  case 'GGG':
1899
- formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);
1874
+ formatter = dateStrGetter(3 /* TranslationType.Eras */, TranslationWidth.Abbreviated);
1900
1875
  break;
1901
1876
  case 'GGGG':
1902
- formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);
1877
+ formatter = dateStrGetter(3 /* TranslationType.Eras */, TranslationWidth.Wide);
1903
1878
  break;
1904
1879
  case 'GGGGG':
1905
- formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);
1880
+ formatter = dateStrGetter(3 /* TranslationType.Eras */, TranslationWidth.Narrow);
1906
1881
  break;
1907
1882
  // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)
1908
1883
  case 'y':
1909
- formatter = dateGetter(DateType.FullYear, 1, 0, false, true);
1884
+ formatter = dateGetter(0 /* DateType.FullYear */, 1, 0, false, true);
1910
1885
  break;
1911
1886
  // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)
1912
1887
  case 'yy':
1913
- formatter = dateGetter(DateType.FullYear, 2, 0, true, true);
1888
+ formatter = dateGetter(0 /* DateType.FullYear */, 2, 0, true, true);
1914
1889
  break;
1915
1890
  // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)
1916
1891
  case 'yyy':
1917
- formatter = dateGetter(DateType.FullYear, 3, 0, false, true);
1892
+ formatter = dateGetter(0 /* DateType.FullYear */, 3, 0, false, true);
1918
1893
  break;
1919
1894
  // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)
1920
1895
  case 'yyyy':
1921
- formatter = dateGetter(DateType.FullYear, 4, 0, false, true);
1896
+ formatter = dateGetter(0 /* DateType.FullYear */, 4, 0, false, true);
1922
1897
  break;
1923
1898
  // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)
1924
1899
  case 'Y':
@@ -1941,31 +1916,31 @@ function getDateFormatter(format) {
1941
1916
  // Month of the year (1-12), numeric
1942
1917
  case 'M':
1943
1918
  case 'L':
1944
- formatter = dateGetter(DateType.Month, 1, 1);
1919
+ formatter = dateGetter(1 /* DateType.Month */, 1, 1);
1945
1920
  break;
1946
1921
  case 'MM':
1947
1922
  case 'LL':
1948
- formatter = dateGetter(DateType.Month, 2, 1);
1923
+ formatter = dateGetter(1 /* DateType.Month */, 2, 1);
1949
1924
  break;
1950
1925
  // Month of the year (January, ...), string, format
1951
1926
  case 'MMM':
1952
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);
1927
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Abbreviated);
1953
1928
  break;
1954
1929
  case 'MMMM':
1955
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);
1930
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Wide);
1956
1931
  break;
1957
1932
  case 'MMMMM':
1958
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);
1933
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Narrow);
1959
1934
  break;
1960
1935
  // Month of the year (January, ...), string, standalone
1961
1936
  case 'LLL':
1962
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);
1937
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Abbreviated, FormStyle.Standalone);
1963
1938
  break;
1964
1939
  case 'LLLL':
1965
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);
1940
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Wide, FormStyle.Standalone);
1966
1941
  break;
1967
1942
  case 'LLLLL':
1968
- formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);
1943
+ formatter = dateStrGetter(2 /* TranslationType.Months */, TranslationWidth.Narrow, FormStyle.Standalone);
1969
1944
  break;
1970
1945
  // Week of the year (1, ... 52)
1971
1946
  case 'w':
@@ -1980,127 +1955,127 @@ function getDateFormatter(format) {
1980
1955
  break;
1981
1956
  // Day of the month (1-31)
1982
1957
  case 'd':
1983
- formatter = dateGetter(DateType.Date, 1);
1958
+ formatter = dateGetter(2 /* DateType.Date */, 1);
1984
1959
  break;
1985
1960
  case 'dd':
1986
- formatter = dateGetter(DateType.Date, 2);
1961
+ formatter = dateGetter(2 /* DateType.Date */, 2);
1987
1962
  break;
1988
1963
  // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)
1989
1964
  case 'c':
1990
1965
  case 'cc':
1991
- formatter = dateGetter(DateType.Day, 1);
1966
+ formatter = dateGetter(7 /* DateType.Day */, 1);
1992
1967
  break;
1993
1968
  case 'ccc':
1994
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);
1969
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Abbreviated, FormStyle.Standalone);
1995
1970
  break;
1996
1971
  case 'cccc':
1997
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);
1972
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Wide, FormStyle.Standalone);
1998
1973
  break;
1999
1974
  case 'ccccc':
2000
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);
1975
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Narrow, FormStyle.Standalone);
2001
1976
  break;
2002
1977
  case 'cccccc':
2003
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);
1978
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Short, FormStyle.Standalone);
2004
1979
  break;
2005
1980
  // Day of the Week
2006
1981
  case 'E':
2007
1982
  case 'EE':
2008
1983
  case 'EEE':
2009
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);
1984
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Abbreviated);
2010
1985
  break;
2011
1986
  case 'EEEE':
2012
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);
1987
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Wide);
2013
1988
  break;
2014
1989
  case 'EEEEE':
2015
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);
1990
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Narrow);
2016
1991
  break;
2017
1992
  case 'EEEEEE':
2018
- formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);
1993
+ formatter = dateStrGetter(1 /* TranslationType.Days */, TranslationWidth.Short);
2019
1994
  break;
2020
1995
  // Generic period of the day (am-pm)
2021
1996
  case 'a':
2022
1997
  case 'aa':
2023
1998
  case 'aaa':
2024
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);
1999
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Abbreviated);
2025
2000
  break;
2026
2001
  case 'aaaa':
2027
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);
2002
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Wide);
2028
2003
  break;
2029
2004
  case 'aaaaa':
2030
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);
2005
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Narrow);
2031
2006
  break;
2032
2007
  // Extended period of the day (midnight, at night, ...), standalone
2033
2008
  case 'b':
2034
2009
  case 'bb':
2035
2010
  case 'bbb':
2036
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);
2011
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Abbreviated, FormStyle.Standalone, true);
2037
2012
  break;
2038
2013
  case 'bbbb':
2039
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);
2014
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Wide, FormStyle.Standalone, true);
2040
2015
  break;
2041
2016
  case 'bbbbb':
2042
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);
2017
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Narrow, FormStyle.Standalone, true);
2043
2018
  break;
2044
2019
  // Extended period of the day (midnight, night, ...), standalone
2045
2020
  case 'B':
2046
2021
  case 'BB':
2047
2022
  case 'BBB':
2048
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);
2023
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Abbreviated, FormStyle.Format, true);
2049
2024
  break;
2050
2025
  case 'BBBB':
2051
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);
2026
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Wide, FormStyle.Format, true);
2052
2027
  break;
2053
2028
  case 'BBBBB':
2054
- formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);
2029
+ formatter = dateStrGetter(0 /* TranslationType.DayPeriods */, TranslationWidth.Narrow, FormStyle.Format, true);
2055
2030
  break;
2056
2031
  // Hour in AM/PM, (1-12)
2057
2032
  case 'h':
2058
- formatter = dateGetter(DateType.Hours, 1, -12);
2033
+ formatter = dateGetter(3 /* DateType.Hours */, 1, -12);
2059
2034
  break;
2060
2035
  case 'hh':
2061
- formatter = dateGetter(DateType.Hours, 2, -12);
2036
+ formatter = dateGetter(3 /* DateType.Hours */, 2, -12);
2062
2037
  break;
2063
2038
  // Hour of the day (0-23)
2064
2039
  case 'H':
2065
- formatter = dateGetter(DateType.Hours, 1);
2040
+ formatter = dateGetter(3 /* DateType.Hours */, 1);
2066
2041
  break;
2067
2042
  // Hour in day, padded (00-23)
2068
2043
  case 'HH':
2069
- formatter = dateGetter(DateType.Hours, 2);
2044
+ formatter = dateGetter(3 /* DateType.Hours */, 2);
2070
2045
  break;
2071
2046
  // Minute of the hour (0-59)
2072
2047
  case 'm':
2073
- formatter = dateGetter(DateType.Minutes, 1);
2048
+ formatter = dateGetter(4 /* DateType.Minutes */, 1);
2074
2049
  break;
2075
2050
  case 'mm':
2076
- formatter = dateGetter(DateType.Minutes, 2);
2051
+ formatter = dateGetter(4 /* DateType.Minutes */, 2);
2077
2052
  break;
2078
2053
  // Second of the minute (0-59)
2079
2054
  case 's':
2080
- formatter = dateGetter(DateType.Seconds, 1);
2055
+ formatter = dateGetter(5 /* DateType.Seconds */, 1);
2081
2056
  break;
2082
2057
  case 'ss':
2083
- formatter = dateGetter(DateType.Seconds, 2);
2058
+ formatter = dateGetter(5 /* DateType.Seconds */, 2);
2084
2059
  break;
2085
2060
  // Fractional second
2086
2061
  case 'S':
2087
- formatter = dateGetter(DateType.FractionalSeconds, 1);
2062
+ formatter = dateGetter(6 /* DateType.FractionalSeconds */, 1);
2088
2063
  break;
2089
2064
  case 'SS':
2090
- formatter = dateGetter(DateType.FractionalSeconds, 2);
2065
+ formatter = dateGetter(6 /* DateType.FractionalSeconds */, 2);
2091
2066
  break;
2092
2067
  case 'SSS':
2093
- formatter = dateGetter(DateType.FractionalSeconds, 3);
2068
+ formatter = dateGetter(6 /* DateType.FractionalSeconds */, 3);
2094
2069
  break;
2095
2070
  // Timezone ISO8601 short format (-0430)
2096
2071
  case 'Z':
2097
2072
  case 'ZZ':
2098
2073
  case 'ZZZ':
2099
- formatter = timeZoneGetter(ZoneWidth.Short);
2074
+ formatter = timeZoneGetter(0 /* ZoneWidth.Short */);
2100
2075
  break;
2101
2076
  // Timezone ISO8601 extended format (-04:30)
2102
2077
  case 'ZZZZZ':
2103
- formatter = timeZoneGetter(ZoneWidth.Extended);
2078
+ formatter = timeZoneGetter(3 /* ZoneWidth.Extended */);
2104
2079
  break;
2105
2080
  // Timezone GMT short format (GMT+4)
2106
2081
  case 'O':
@@ -2110,14 +2085,14 @@ function getDateFormatter(format) {
2110
2085
  case 'z':
2111
2086
  case 'zz':
2112
2087
  case 'zzz':
2113
- formatter = timeZoneGetter(ZoneWidth.ShortGMT);
2088
+ formatter = timeZoneGetter(1 /* ZoneWidth.ShortGMT */);
2114
2089
  break;
2115
2090
  // Timezone GMT long format (GMT+0430)
2116
2091
  case 'OOOO':
2117
2092
  case 'ZZZZ':
2118
2093
  // Should be location, but fallback to format O instead because we don't have the data yet
2119
2094
  case 'zzzz':
2120
- formatter = timeZoneGetter(ZoneWidth.Long);
2095
+ formatter = timeZoneGetter(2 /* ZoneWidth.Long */);
2121
2096
  break;
2122
2097
  default:
2123
2098
  return null;
@@ -2614,10 +2589,10 @@ function parseIntAutoRadix(text) {
2614
2589
  * @publicApi
2615
2590
  */
2616
2591
  class NgLocalization {
2617
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2618
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", 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.1.0", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2593
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });
2619
2594
  }
2620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgLocalization, decorators: [{
2595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgLocalization, decorators: [{
2621
2596
  type: Injectable,
2622
2597
  args: [{
2623
2598
  providedIn: 'root',
@@ -2672,10 +2647,10 @@ class NgLocaleLocalization extends NgLocalization {
2672
2647
  return 'other';
2673
2648
  }
2674
2649
  }
2675
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2676
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization });
2650
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2651
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgLocaleLocalization });
2677
2652
  }
2678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2679
2654
  type: Injectable
2680
2655
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2681
2656
  type: Inject,
@@ -2714,17 +2689,23 @@ const EMPTY_ARRAY = [];
2714
2689
  *
2715
2690
  * @usageNotes
2716
2691
  * ```html
2717
- * <some-element [ngClass]="'first second'">...</some-element>
2692
+ * <some-element [ngClass]="stringExp|arrayExp|objExp|Set">...</some-element>
2718
2693
  *
2719
- * <some-element [ngClass]="['first', 'second']">...</some-element>
2694
+ * <some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
2695
+ * ```
2720
2696
  *
2721
- * <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.
2722
2699
  *
2723
- * <some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
2700
+ * ```html
2701
+ * <some-element [class]="'first second'">...</some-element>
2724
2702
  *
2725
- * <some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
2726
- * ```
2703
+ * <some-element [class.expanded]="isExpanded">...</some-element>
2727
2704
  *
2705
+ * <some-element [class]="['first', 'second']">...</some-element>
2706
+ *
2707
+ * <some-element [class]="{'first': true, 'second': true, 'third': false}">...</some-element>
2708
+ * ```
2728
2709
  * @description
2729
2710
  *
2730
2711
  * Adds and removes CSS classes on an HTML element.
@@ -2735,6 +2716,9 @@ const EMPTY_ARRAY = [];
2735
2716
  * - `Object` - keys are CSS classes that get added when the expression given in the value
2736
2717
  * evaluates to a truthy value, otherwise they are removed.
2737
2718
  *
2719
+ *
2720
+ * @see [Class bindings](/guide/templates/binding#css-class-and-style-property-bindings)
2721
+ *
2738
2722
  * @publicApi
2739
2723
  */
2740
2724
  class NgClass {
@@ -2847,10 +2831,10 @@ class NgClass {
2847
2831
  });
2848
2832
  }
2849
2833
  }
2850
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgClass, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2851
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", 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.1.0", 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.1.0", type: NgClass, isStandalone: true, selector: "[ngClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass" }, ngImport: i0 });
2852
2836
  }
2853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgClass, decorators: [{
2837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgClass, decorators: [{
2854
2838
  type: Directive,
2855
2839
  args: [{
2856
2840
  selector: '[ngClass]',
@@ -3037,10 +3021,10 @@ class NgComponentOutlet {
3037
3021
  }
3038
3022
  }
3039
3023
  }
3040
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3041
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInputs: "ngComponentOutletInputs", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, exportAs: ["ngComponentOutlet"], usesOnChanges: true, ngImport: i0 });
3024
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3025
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgComponentOutlet, isStandalone: true, selector: "[ngComponentOutlet]", inputs: { ngComponentOutlet: "ngComponentOutlet", ngComponentOutletInputs: "ngComponentOutletInputs", ngComponentOutletInjector: "ngComponentOutletInjector", ngComponentOutletContent: "ngComponentOutletContent", ngComponentOutletNgModule: "ngComponentOutletNgModule", ngComponentOutletNgModuleFactory: "ngComponentOutletNgModuleFactory" }, exportAs: ["ngComponentOutlet"], usesOnChanges: true, ngImport: i0 });
3042
3026
  }
3043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgComponentOutlet, decorators: [{
3027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgComponentOutlet, decorators: [{
3044
3028
  type: Directive,
3045
3029
  args: [{
3046
3030
  selector: '[ngComponentOutlet]',
@@ -3347,10 +3331,10 @@ class NgForOf {
3347
3331
  static ngTemplateContextGuard(dir, ctx) {
3348
3332
  return true;
3349
3333
  }
3350
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3351
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3334
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3335
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgForOf, isStandalone: true, selector: "[ngFor][ngForOf]", inputs: { ngForOf: "ngForOf", ngForTrackBy: "ngForTrackBy", ngForTemplate: "ngForTemplate" }, ngImport: i0 });
3352
3336
  }
3353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgForOf, decorators: [{
3337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgForOf, decorators: [{
3354
3338
  type: Directive,
3355
3339
  args: [{
3356
3340
  selector: '[ngFor][ngForOf]',
@@ -3584,10 +3568,10 @@ class NgIf {
3584
3568
  static ngTemplateContextGuard(dir, ctx) {
3585
3569
  return true;
3586
3570
  }
3587
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3588
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3571
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3572
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgIf, isStandalone: true, selector: "[ngIf]", inputs: { ngIf: "ngIf", ngIfThen: "ngIfThen", ngIfElse: "ngIfElse" }, ngImport: i0 });
3589
3573
  }
3590
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgIf, decorators: [{
3574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgIf, decorators: [{
3591
3575
  type: Directive,
3592
3576
  args: [{
3593
3577
  selector: '[ngIf]',
@@ -3745,10 +3729,10 @@ class NgSwitch {
3745
3729
  }
3746
3730
  }
3747
3731
  }
3748
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3749
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3732
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3733
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgSwitch, isStandalone: true, selector: "[ngSwitch]", inputs: { ngSwitch: "ngSwitch" }, ngImport: i0 });
3750
3734
  }
3751
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgSwitch, decorators: [{
3735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitch, decorators: [{
3752
3736
  type: Directive,
3753
3737
  args: [{
3754
3738
  selector: '[ngSwitch]',
@@ -3811,10 +3795,10 @@ class NgSwitchCase {
3811
3795
  ngDoCheck() {
3812
3796
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3813
3797
  }
3814
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3815
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3798
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3799
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgSwitchCase, isStandalone: true, selector: "[ngSwitchCase]", inputs: { ngSwitchCase: "ngSwitchCase" }, ngImport: i0 });
3816
3800
  }
3817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgSwitchCase, decorators: [{
3801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitchCase, decorators: [{
3818
3802
  type: Directive,
3819
3803
  args: [{
3820
3804
  selector: '[ngSwitchCase]',
@@ -3847,10 +3831,10 @@ class NgSwitchDefault {
3847
3831
  }
3848
3832
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3849
3833
  }
3850
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3851
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3834
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3835
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgSwitchDefault, isStandalone: true, selector: "[ngSwitchDefault]", ngImport: i0 });
3852
3836
  }
3853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgSwitchDefault, decorators: [{
3837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitchDefault, decorators: [{
3854
3838
  type: Directive,
3855
3839
  args: [{
3856
3840
  selector: '[ngSwitchDefault]',
@@ -3929,10 +3913,10 @@ class NgPlural {
3929
3913
  this._activeView.create();
3930
3914
  }
3931
3915
  }
3932
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3933
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3916
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3917
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgPlural, isStandalone: true, selector: "[ngPlural]", inputs: { ngPlural: "ngPlural" }, ngImport: i0 });
3934
3918
  }
3935
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgPlural, decorators: [{
3919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgPlural, decorators: [{
3936
3920
  type: Directive,
3937
3921
  args: [{
3938
3922
  selector: '[ngPlural]',
@@ -3967,10 +3951,10 @@ class NgPluralCase {
3967
3951
  const isANumber = !isNaN(Number(value));
3968
3952
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3969
3953
  }
3970
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3971
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3954
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3955
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgPluralCase, isStandalone: true, selector: "[ngPluralCase]", ngImport: i0 });
3972
3956
  }
3973
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgPluralCase, decorators: [{
3957
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgPluralCase, decorators: [{
3974
3958
  type: Directive,
3975
3959
  args: [{
3976
3960
  selector: '[ngPluralCase]',
@@ -3987,12 +3971,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ng
3987
3971
  *
3988
3972
  * @usageNotes
3989
3973
  *
3990
- * Set the font of the containing element to the result of an expression.
3991
- *
3992
- * ```html
3993
- * <some-element [ngStyle]="{'font-style': styleExp}">...</some-element>
3994
- * ```
3995
- *
3996
3974
  * Set the width of the containing element to a pixel value returned by an expression.
3997
3975
  *
3998
3976
  * ```html
@@ -4005,6 +3983,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ng
4005
3983
  * <some-element [ngStyle]="objExp">...</some-element>
4006
3984
  * ```
4007
3985
  *
3986
+ * For more simple use cases you can use the [style bindings](/guide/templates/binding#css-class-and-style-property-bindings) directly.
3987
+ * It doesn't require importing a directive.
3988
+ *
3989
+ * Set the font of the containing element to the result of an expression.
3990
+ *
3991
+ * ```html
3992
+ * <some-element [style]="{'font-style': styleExp}">...</some-element>
3993
+ * ```
3994
+ *
4008
3995
  * @description
4009
3996
  *
4010
3997
  * An attribute directive that updates styles for the containing HTML element.
@@ -4016,6 +4003,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ng
4016
4003
  * is assigned to the given style property.
4017
4004
  * If the result of evaluation is null, the corresponding style is removed.
4018
4005
  *
4006
+ * @see [Style bindings](/guide/templates/binding#css-class-and-style-property-bindings)
4007
+ *
4019
4008
  * @publicApi
4020
4009
  */
4021
4010
  class NgStyle {
@@ -4058,10 +4047,10 @@ class NgStyle {
4058
4047
  changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));
4059
4048
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
4060
4049
  }
4061
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4062
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
4050
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4051
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgStyle, isStandalone: true, selector: "[ngStyle]", inputs: { ngStyle: "ngStyle" }, ngImport: i0 });
4063
4052
  }
4064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgStyle, decorators: [{
4053
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgStyle, decorators: [{
4065
4054
  type: Directive,
4066
4055
  args: [{
4067
4056
  selector: '[ngStyle]',
@@ -4162,10 +4151,10 @@ class NgTemplateOutlet {
4162
4151
  },
4163
4152
  });
4164
4153
  }
4165
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
4166
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-rc.0", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
4154
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
4155
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0", type: NgTemplateOutlet, isStandalone: true, selector: "[ngTemplateOutlet]", inputs: { ngTemplateOutletContext: "ngTemplateOutletContext", ngTemplateOutlet: "ngTemplateOutlet", ngTemplateOutletInjector: "ngTemplateOutletInjector" }, usesOnChanges: true, ngImport: i0 });
4167
4156
  }
4168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4169
4158
  type: Directive,
4170
4159
  args: [{
4171
4160
  selector: '[ngTemplateOutlet]',
@@ -4333,10 +4322,10 @@ class AsyncPipe {
4333
4322
  }
4334
4323
  }
4335
4324
  }
4336
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4337
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4325
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4326
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: AsyncPipe, isStandalone: true, name: "async", pure: false });
4338
4327
  }
4339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: AsyncPipe, decorators: [{
4328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: AsyncPipe, decorators: [{
4340
4329
  type: Pipe,
4341
4330
  args: [{
4342
4331
  name: 'async',
@@ -4368,10 +4357,10 @@ class LowerCasePipe {
4368
4357
  }
4369
4358
  return value.toLowerCase();
4370
4359
  }
4371
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4372
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4360
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4361
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: "lowercase" });
4373
4362
  }
4374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LowerCasePipe, decorators: [{
4363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LowerCasePipe, decorators: [{
4375
4364
  type: Pipe,
4376
4365
  args: [{
4377
4366
  name: 'lowercase',
@@ -4412,10 +4401,10 @@ class TitleCasePipe {
4412
4401
  }
4413
4402
  return value.replace(unicodeWordMatch, (txt) => txt[0].toUpperCase() + txt.slice(1).toLowerCase());
4414
4403
  }
4415
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4416
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4404
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4405
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: "titlecase" });
4417
4406
  }
4418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: TitleCasePipe, decorators: [{
4407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: TitleCasePipe, decorators: [{
4419
4408
  type: Pipe,
4420
4409
  args: [{
4421
4410
  name: 'titlecase',
@@ -4438,10 +4427,10 @@ class UpperCasePipe {
4438
4427
  }
4439
4428
  return value.toUpperCase();
4440
4429
  }
4441
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4442
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4430
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4431
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: "uppercase" });
4443
4432
  }
4444
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: UpperCasePipe, decorators: [{
4433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: UpperCasePipe, decorators: [{
4445
4434
  type: Pipe,
4446
4435
  args: [{
4447
4436
  name: 'uppercase',
@@ -4672,10 +4661,10 @@ class DatePipe {
4672
4661
  throw invalidPipeArgumentError(DatePipe, error.message);
4673
4662
  }
4674
4663
  }
4675
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
4676
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4664
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }, { token: DATE_PIPE_DEFAULT_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
4665
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: DatePipe, isStandalone: true, name: "date" });
4677
4666
  }
4678
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: DatePipe, decorators: [{
4667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DatePipe, decorators: [{
4679
4668
  type: Pipe,
4680
4669
  args: [{
4681
4670
  name: 'date',
@@ -4731,10 +4720,10 @@ class I18nPluralPipe {
4731
4720
  const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);
4732
4721
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4733
4722
  }
4734
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4735
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4723
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4724
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: "i18nPlural" });
4736
4725
  }
4737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: I18nPluralPipe, decorators: [{
4726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: I18nPluralPipe, decorators: [{
4738
4727
  type: Pipe,
4739
4728
  args: [{
4740
4729
  name: 'i18nPlural',
@@ -4778,10 +4767,10 @@ class I18nSelectPipe {
4778
4767
  }
4779
4768
  return '';
4780
4769
  }
4781
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4782
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4770
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4771
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: "i18nSelect" });
4783
4772
  }
4784
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: I18nSelectPipe, decorators: [{
4773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: I18nSelectPipe, decorators: [{
4785
4774
  type: Pipe,
4786
4775
  args: [{
4787
4776
  name: 'i18nSelect',
@@ -4810,10 +4799,10 @@ class JsonPipe {
4810
4799
  transform(value) {
4811
4800
  return JSON.stringify(value, null, 2);
4812
4801
  }
4813
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4814
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4802
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4803
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: JsonPipe, isStandalone: true, name: "json", pure: false });
4815
4804
  }
4816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: JsonPipe, decorators: [{
4805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: JsonPipe, decorators: [{
4817
4806
  type: Pipe,
4818
4807
  args: [{
4819
4808
  name: 'json',
@@ -4875,10 +4864,10 @@ class KeyValuePipe {
4875
4864
  }
4876
4865
  return this.keyValues;
4877
4866
  }
4878
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4879
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4867
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4868
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: "keyvalue", pure: false });
4880
4869
  }
4881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: KeyValuePipe, decorators: [{
4870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: KeyValuePipe, decorators: [{
4882
4871
  type: Pipe,
4883
4872
  args: [{
4884
4873
  name: 'keyvalue',
@@ -4996,10 +4985,10 @@ class DecimalPipe {
4996
4985
  throw invalidPipeArgumentError(DecimalPipe, error.message);
4997
4986
  }
4998
4987
  }
4999
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5000
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
4988
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
4989
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: DecimalPipe, isStandalone: true, name: "number" });
5001
4990
  }
5002
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: DecimalPipe, decorators: [{
4991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DecimalPipe, decorators: [{
5003
4992
  type: Pipe,
5004
4993
  args: [{
5005
4994
  name: 'number',
@@ -5061,10 +5050,10 @@ class PercentPipe {
5061
5050
  throw invalidPipeArgumentError(PercentPipe, error.message);
5062
5051
  }
5063
5052
  }
5064
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5065
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
5053
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5054
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: PercentPipe, isStandalone: true, name: "percent" });
5066
5055
  }
5067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PercentPipe, decorators: [{
5056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PercentPipe, decorators: [{
5068
5057
  type: Pipe,
5069
5058
  args: [{
5070
5059
  name: 'percent',
@@ -5128,10 +5117,10 @@ class CurrencyPipe {
5128
5117
  throw invalidPipeArgumentError(CurrencyPipe, error.message);
5129
5118
  }
5130
5119
  }
5131
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
5132
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
5120
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
5121
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: "currency" });
5133
5122
  }
5134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CurrencyPipe, decorators: [{
5123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CurrencyPipe, decorators: [{
5135
5124
  type: Pipe,
5136
5125
  args: [{
5137
5126
  name: 'currency',
@@ -5207,10 +5196,10 @@ class SlicePipe {
5207
5196
  supports(obj) {
5208
5197
  return typeof obj === 'string' || Array.isArray(obj);
5209
5198
  }
5210
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5211
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5199
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5200
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: SlicePipe, isStandalone: true, name: "slice", pure: false });
5212
5201
  }
5213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: SlicePipe, decorators: [{
5202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: SlicePipe, decorators: [{
5214
5203
  type: Pipe,
5215
5204
  args: [{
5216
5205
  name: 'slice',
@@ -5253,11 +5242,11 @@ const COMMON_PIPES = [
5253
5242
  * @publicApi
5254
5243
  */
5255
5244
  class CommonModule {
5256
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5257
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });
5258
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CommonModule });
5245
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5246
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });
5247
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CommonModule });
5259
5248
  }
5260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: CommonModule, decorators: [{
5249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CommonModule, decorators: [{
5261
5250
  type: NgModule,
5262
5251
  args: [{
5263
5252
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5290,7 +5279,7 @@ function isPlatformServer(platformId) {
5290
5279
  /**
5291
5280
  * @publicApi
5292
5281
  */
5293
- const VERSION = new Version('19.1.0-rc.0');
5282
+ const VERSION = new Version('19.1.0');
5294
5283
 
5295
5284
  /**
5296
5285
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5304,9 +5293,9 @@ class ViewportScroller {
5304
5293
  static ɵprov = /** @pureOrBreakMyCode */ /* @__PURE__ */ ɵɵdefineInjectable({
5305
5294
  token: ViewportScroller,
5306
5295
  providedIn: 'root',
5307
- factory: () => isPlatformBrowser(inject(PLATFORM_ID))
5308
- ? new BrowserViewportScroller(inject(DOCUMENT), window)
5309
- : new NullViewportScroller(),
5296
+ factory: () => typeof ngServerMode !== 'undefined' && ngServerMode
5297
+ ? new NullViewportScroller()
5298
+ : new BrowserViewportScroller(inject(DOCUMENT), window),
5310
5299
  });
5311
5300
  }
5312
5301
  /**
@@ -5908,10 +5897,10 @@ class LCPImageObserver {
5908
5897
  this.observer.disconnect();
5909
5898
  this.images.clear();
5910
5899
  }
5911
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5912
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5900
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5901
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });
5913
5902
  }
5914
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: LCPImageObserver, decorators: [{
5903
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LCPImageObserver, decorators: [{
5915
5904
  type: Injectable,
5916
5905
  args: [{ providedIn: 'root' }]
5917
5906
  }], ctorParameters: () => [] });
@@ -6035,10 +6024,10 @@ class PreconnectLinkChecker {
6035
6024
  this.preconnectLinks?.clear();
6036
6025
  this.alreadySeen.clear();
6037
6026
  }
6038
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6039
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
6027
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6028
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });
6040
6029
  }
6041
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6042
6031
  type: Injectable,
6043
6032
  args: [{ providedIn: 'root' }]
6044
6033
  }], ctorParameters: () => [] });
@@ -6125,10 +6114,10 @@ class PreloadLinkCreator {
6125
6114
  }
6126
6115
  renderer.appendChild(this.document.head, preload);
6127
6116
  }
6128
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6129
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
6117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6118
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });
6130
6119
  }
6131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6132
6121
  type: Injectable,
6133
6122
  args: [{ providedIn: 'root' }]
6134
6123
  }] });
@@ -6334,8 +6323,9 @@ class NgOptimizedImage {
6334
6323
  injector = inject(Injector);
6335
6324
  isServer = isPlatformServer(inject(PLATFORM_ID));
6336
6325
  preloadLinkCreator = inject(PreloadLinkCreator);
6337
- // a LCP image observer - should be injected only in the dev mode
6338
- lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;
6326
+ // An LCP image observer should be injected only in development mode.
6327
+ // Do not assign it to `null` to avoid having a redundant property in the production bundle.
6328
+ lcpObserver;
6339
6329
  /**
6340
6330
  * Calculate the rewritten `src` once and store it.
6341
6331
  * This is needed to avoid repetitive calculations and make sure the directive cleanup in the
@@ -6355,7 +6345,7 @@ class NgOptimizedImage {
6355
6345
  * descriptors to generate the final `srcset` property of the image.
6356
6346
  *
6357
6347
  * Example:
6358
- * ```
6348
+ * ```html
6359
6349
  * <img ngSrc="hello.jpg" ngSrcset="100w, 200w" /> =>
6360
6350
  * <img src="path/hello.jpg" srcset="path/hello.jpg?w=100 100w, path/hello.jpg?w=200 200w" />
6361
6351
  * ```
@@ -6425,6 +6415,19 @@ class NgOptimizedImage {
6425
6415
  * @internal
6426
6416
  */
6427
6417
  srcset;
6418
+ constructor() {
6419
+ if (ngDevMode) {
6420
+ this.lcpObserver = this.injector.get(LCPImageObserver);
6421
+ // Using `DestroyRef` to avoid having an empty `ngOnDestroy` method since this
6422
+ // is only run in development mode.
6423
+ const destroyRef = inject(DestroyRef);
6424
+ destroyRef.onDestroy(() => {
6425
+ if (!this.priority && this._renderedSrc !== null) {
6426
+ this.lcpObserver.unregisterImage(this._renderedSrc);
6427
+ }
6428
+ });
6429
+ }
6430
+ }
6428
6431
  /** @nodoc */
6429
6432
  ngOnInit() {
6430
6433
  ɵperformanceMarkFeature('NgOptimizedImage');
@@ -6464,12 +6467,9 @@ class NgOptimizedImage {
6464
6467
  assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);
6465
6468
  assertNoNgSrcsetWithoutLoader(this, this.imageLoader);
6466
6469
  assertNoLoaderParamsWithoutLoader(this, this.imageLoader);
6467
- if (this.lcpObserver !== null) {
6468
- const ngZone = this.injector.get(NgZone);
6469
- ngZone.runOutsideAngular(() => {
6470
- this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);
6471
- });
6472
- }
6470
+ ngZone.runOutsideAngular(() => {
6471
+ this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);
6472
+ });
6473
6473
  if (this.priority) {
6474
6474
  const checker = this.injector.get(PreconnectLinkChecker);
6475
6475
  checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);
@@ -6539,12 +6539,14 @@ class NgOptimizedImage {
6539
6539
  if (changes['ngSrc'] && !changes['ngSrc'].isFirstChange()) {
6540
6540
  const oldSrc = this._renderedSrc;
6541
6541
  this.updateSrcAndSrcset(true);
6542
- const newSrc = this._renderedSrc;
6543
- if (this.lcpObserver !== null && oldSrc && newSrc && oldSrc !== newSrc) {
6544
- const ngZone = this.injector.get(NgZone);
6545
- ngZone.runOutsideAngular(() => {
6546
- this.lcpObserver?.updateImage(oldSrc, newSrc);
6547
- });
6542
+ if (ngDevMode) {
6543
+ const newSrc = this._renderedSrc;
6544
+ if (oldSrc && newSrc && oldSrc !== newSrc) {
6545
+ const ngZone = this.injector.get(NgZone);
6546
+ ngZone.runOutsideAngular(() => {
6547
+ this.lcpObserver.updateImage(oldSrc, newSrc);
6548
+ });
6549
+ }
6548
6550
  }
6549
6551
  }
6550
6552
  if (ngDevMode && changes['placeholder']?.currentValue && !this.isServer) {
@@ -6688,21 +6690,13 @@ class NgOptimizedImage {
6688
6690
  const removeErrorListenerFn = this.renderer.listen(img, 'error', callback);
6689
6691
  callOnLoadIfImageIsLoaded(img, callback);
6690
6692
  }
6691
- /** @nodoc */
6692
- ngOnDestroy() {
6693
- if (ngDevMode) {
6694
- if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {
6695
- this.lcpObserver.unregisterImage(this._renderedSrc);
6696
- }
6697
- }
6698
- }
6699
6693
  setHostAttribute(name, value) {
6700
6694
  this.renderer.setAttribute(this.imgElement, name, value);
6701
6695
  }
6702
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6703
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-rc.0", 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 });
6696
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6697
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0", 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 });
6704
6698
  }
6705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ngImport: i0, type: NgOptimizedImage, decorators: [{
6699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgOptimizedImage, decorators: [{
6706
6700
  type: Directive,
6707
6701
  args: [{
6708
6702
  selector: 'img[ngSrc]',
@@ -6718,7 +6712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-rc.0", ng
6718
6712
  '[style.filter]': `placeholder && shouldBlurPlaceholder(placeholderConfig) ? "blur(${PLACEHOLDER_BLUR_AMOUNT}px)" : null`,
6719
6713
  },
6720
6714
  }]
6721
- }], propDecorators: { ngSrc: [{
6715
+ }], ctorParameters: () => [], propDecorators: { ngSrc: [{
6722
6716
  type: Input,
6723
6717
  args: [{ required: true, transform: unwrapSafeUrl }]
6724
6718
  }], ngSrcset: [{