@angular/common 19.1.0-next.4 → 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-next.4
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
 
@@ -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.1.0-next.4", ngImport: i0, type: PlatformNavigation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 });
36
35
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PlatformNavigation, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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) });
79
78
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PlatformLocation, decorators: [{
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", ngImport: i0, type: BrowserPlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
163
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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() });
164
163
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: BrowserPlatformLocation, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
252
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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) });
253
252
  }
254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: LocationStrategy, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", 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.1.0-next.4", 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' });
368
367
  }
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PathLocationStrategy, decorators: [{
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", 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.1.0-next.4", 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 });
458
457
  }
459
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: HashLocationStrategy, decorators: [{
458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
714
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 });
715
714
  }
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: Location, decorators: [{
715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2619
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 }] });
2620
2594
  }
2621
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgLocalization, decorators: [{
2595
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
2677
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 });
2678
2652
  }
2679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgLocaleLocalization, decorators: [{
2653
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", 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.1.0-next.4", 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.1.0-next.4", 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 });
2853
2836
  }
2854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgClass, decorators: [{
2837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgClass, decorators: [{
2855
2838
  type: Directive,
2856
2839
  args: [{
2857
2840
  selector: '[ngClass]',
@@ -3038,10 +3021,10 @@ class NgComponentOutlet {
3038
3021
  }
3039
3022
  }
3040
3023
  }
3041
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
3042
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3043
3026
  }
3044
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgComponentOutlet, decorators: [{
3027
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgComponentOutlet, decorators: [{
3045
3028
  type: Directive,
3046
3029
  args: [{
3047
3030
  selector: '[ngComponentOutlet]',
@@ -3348,10 +3331,10 @@ class NgForOf {
3348
3331
  static ngTemplateContextGuard(dir, ctx) {
3349
3332
  return true;
3350
3333
  }
3351
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
3352
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3353
3336
  }
3354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgForOf, decorators: [{
3337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgForOf, decorators: [{
3355
3338
  type: Directive,
3356
3339
  args: [{
3357
3340
  selector: '[ngFor][ngForOf]',
@@ -3585,10 +3568,10 @@ class NgIf {
3585
3568
  static ngTemplateContextGuard(dir, ctx) {
3586
3569
  return true;
3587
3570
  }
3588
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
3589
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3590
3573
  }
3591
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgIf, decorators: [{
3574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgIf, decorators: [{
3592
3575
  type: Directive,
3593
3576
  args: [{
3594
3577
  selector: '[ngIf]',
@@ -3746,10 +3729,10 @@ class NgSwitch {
3746
3729
  }
3747
3730
  }
3748
3731
  }
3749
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3750
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3751
3734
  }
3752
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgSwitch, decorators: [{
3735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitch, decorators: [{
3753
3736
  type: Directive,
3754
3737
  args: [{
3755
3738
  selector: '[ngSwitch]',
@@ -3812,10 +3795,10 @@ class NgSwitchCase {
3812
3795
  ngDoCheck() {
3813
3796
  this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));
3814
3797
  }
3815
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3816
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3817
3800
  }
3818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgSwitchCase, decorators: [{
3801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitchCase, decorators: [{
3819
3802
  type: Directive,
3820
3803
  args: [{
3821
3804
  selector: '[ngSwitchCase]',
@@ -3848,10 +3831,10 @@ class NgSwitchDefault {
3848
3831
  }
3849
3832
  ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));
3850
3833
  }
3851
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3852
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3853
3836
  }
3854
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgSwitchDefault, decorators: [{
3837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgSwitchDefault, decorators: [{
3855
3838
  type: Directive,
3856
3839
  args: [{
3857
3840
  selector: '[ngSwitchDefault]',
@@ -3930,10 +3913,10 @@ class NgPlural {
3930
3913
  this._activeView.create();
3931
3914
  }
3932
3915
  }
3933
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });
3934
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3935
3918
  }
3936
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgPlural, decorators: [{
3919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgPlural, decorators: [{
3937
3920
  type: Directive,
3938
3921
  args: [{
3939
3922
  selector: '[ngPlural]',
@@ -3968,10 +3951,10 @@ class NgPluralCase {
3968
3951
  const isANumber = !isNaN(Number(value));
3969
3952
  ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));
3970
3953
  }
3971
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });
3972
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
3973
3956
  }
3974
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgPluralCase, decorators: [{
3957
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgPluralCase, decorators: [{
3975
3958
  type: Directive,
3976
3959
  args: [{
3977
3960
  selector: '[ngPluralCase]',
@@ -3988,12 +3971,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4",
3988
3971
  *
3989
3972
  * @usageNotes
3990
3973
  *
3991
- * Set the font of the containing element to the result of an expression.
3992
- *
3993
- * ```html
3994
- * <some-element [ngStyle]="{'font-style': styleExp}">...</some-element>
3995
- * ```
3996
- *
3997
3974
  * Set the width of the containing element to a pixel value returned by an expression.
3998
3975
  *
3999
3976
  * ```html
@@ -4006,6 +3983,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4",
4006
3983
  * <some-element [ngStyle]="objExp">...</some-element>
4007
3984
  * ```
4008
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
+ *
4009
3995
  * @description
4010
3996
  *
4011
3997
  * An attribute directive that updates styles for the containing HTML element.
@@ -4017,6 +4003,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4",
4017
4003
  * is assigned to the given style property.
4018
4004
  * If the result of evaluation is null, the corresponding style is removed.
4019
4005
  *
4006
+ * @see [Style bindings](/guide/templates/binding#css-class-and-style-property-bindings)
4007
+ *
4020
4008
  * @publicApi
4021
4009
  */
4022
4010
  class NgStyle {
@@ -4059,10 +4047,10 @@ class NgStyle {
4059
4047
  changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));
4060
4048
  changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));
4061
4049
  }
4062
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
4063
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
4064
4052
  }
4065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgStyle, decorators: [{
4053
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgStyle, decorators: [{
4066
4054
  type: Directive,
4067
4055
  args: [{
4068
4056
  selector: '[ngStyle]',
@@ -4163,10 +4151,10 @@ class NgTemplateOutlet {
4163
4151
  },
4164
4152
  });
4165
4153
  }
4166
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
4167
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
4168
4156
  }
4169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgTemplateOutlet, decorators: [{
4170
4158
  type: Directive,
4171
4159
  args: [{
4172
4160
  selector: '[ngTemplateOutlet]',
@@ -4334,10 +4322,10 @@ class AsyncPipe {
4334
4322
  }
4335
4323
  }
4336
4324
  }
4337
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });
4338
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
4339
4327
  }
4340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: AsyncPipe, decorators: [{
4328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: AsyncPipe, decorators: [{
4341
4329
  type: Pipe,
4342
4330
  args: [{
4343
4331
  name: 'async',
@@ -4369,10 +4357,10 @@ class LowerCasePipe {
4369
4357
  }
4370
4358
  return value.toLowerCase();
4371
4359
  }
4372
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4373
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
4374
4362
  }
4375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: LowerCasePipe, decorators: [{
4363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LowerCasePipe, decorators: [{
4376
4364
  type: Pipe,
4377
4365
  args: [{
4378
4366
  name: 'lowercase',
@@ -4413,10 +4401,10 @@ class TitleCasePipe {
4413
4401
  }
4414
4402
  return value.replace(unicodeWordMatch, (txt) => txt[0].toUpperCase() + txt.slice(1).toLowerCase());
4415
4403
  }
4416
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4417
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
4418
4406
  }
4419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: TitleCasePipe, decorators: [{
4407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: TitleCasePipe, decorators: [{
4420
4408
  type: Pipe,
4421
4409
  args: [{
4422
4410
  name: 'titlecase',
@@ -4439,10 +4427,10 @@ class UpperCasePipe {
4439
4427
  }
4440
4428
  return value.toUpperCase();
4441
4429
  }
4442
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4443
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
4444
4432
  }
4445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: UpperCasePipe, decorators: [{
4433
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: UpperCasePipe, decorators: [{
4446
4434
  type: Pipe,
4447
4435
  args: [{
4448
4436
  name: 'uppercase',
@@ -4673,10 +4661,10 @@ class DatePipe {
4673
4661
  throw invalidPipeArgumentError(DatePipe, error.message);
4674
4662
  }
4675
4663
  }
4676
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 });
4677
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
4678
4666
  }
4679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DatePipe, decorators: [{
4667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DatePipe, decorators: [{
4680
4668
  type: Pipe,
4681
4669
  args: [{
4682
4670
  name: 'date',
@@ -4732,10 +4720,10 @@ class I18nPluralPipe {
4732
4720
  const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);
4733
4721
  return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());
4734
4722
  }
4735
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });
4736
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
4737
4725
  }
4738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: I18nPluralPipe, decorators: [{
4726
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: I18nPluralPipe, decorators: [{
4739
4727
  type: Pipe,
4740
4728
  args: [{
4741
4729
  name: 'i18nPlural',
@@ -4779,10 +4767,10 @@ class I18nSelectPipe {
4779
4767
  }
4780
4768
  return '';
4781
4769
  }
4782
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4783
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
4784
4772
  }
4785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: I18nSelectPipe, decorators: [{
4773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: I18nSelectPipe, decorators: [{
4786
4774
  type: Pipe,
4787
4775
  args: [{
4788
4776
  name: 'i18nSelect',
@@ -4811,10 +4799,10 @@ class JsonPipe {
4811
4799
  transform(value) {
4812
4800
  return JSON.stringify(value, null, 2);
4813
4801
  }
4814
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
4815
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
4816
4804
  }
4817
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: JsonPipe, decorators: [{
4805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: JsonPipe, decorators: [{
4818
4806
  type: Pipe,
4819
4807
  args: [{
4820
4808
  name: 'json',
@@ -4876,10 +4864,10 @@ class KeyValuePipe {
4876
4864
  }
4877
4865
  return this.keyValues;
4878
4866
  }
4879
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });
4880
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
4881
4869
  }
4882
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: KeyValuePipe, decorators: [{
4870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: KeyValuePipe, decorators: [{
4883
4871
  type: Pipe,
4884
4872
  args: [{
4885
4873
  name: 'keyvalue',
@@ -4997,10 +4985,10 @@ class DecimalPipe {
4997
4985
  throw invalidPipeArgumentError(DecimalPipe, error.message);
4998
4986
  }
4999
4987
  }
5000
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5001
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
5002
4990
  }
5003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: DecimalPipe, decorators: [{
4991
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: DecimalPipe, decorators: [{
5004
4992
  type: Pipe,
5005
4993
  args: [{
5006
4994
  name: 'number',
@@ -5062,10 +5050,10 @@ class PercentPipe {
5062
5050
  throw invalidPipeArgumentError(PercentPipe, error.message);
5063
5051
  }
5064
5052
  }
5065
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
5066
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
5067
5055
  }
5068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PercentPipe, decorators: [{
5056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PercentPipe, decorators: [{
5069
5057
  type: Pipe,
5070
5058
  args: [{
5071
5059
  name: 'percent',
@@ -5129,10 +5117,10 @@ class CurrencyPipe {
5129
5117
  throw invalidPipeArgumentError(CurrencyPipe, error.message);
5130
5118
  }
5131
5119
  }
5132
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });
5133
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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" });
5134
5122
  }
5135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: CurrencyPipe, decorators: [{
5123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CurrencyPipe, decorators: [{
5136
5124
  type: Pipe,
5137
5125
  args: [{
5138
5126
  name: 'currency',
@@ -5208,10 +5196,10 @@ class SlicePipe {
5208
5196
  supports(obj) {
5209
5197
  return typeof obj === 'string' || Array.isArray(obj);
5210
5198
  }
5211
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
5212
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.0-next.4", 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 });
5213
5201
  }
5214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: SlicePipe, decorators: [{
5202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: SlicePipe, decorators: [{
5215
5203
  type: Pipe,
5216
5204
  args: [{
5217
5205
  name: 'slice',
@@ -5254,11 +5242,11 @@ const COMMON_PIPES = [
5254
5242
  * @publicApi
5255
5243
  */
5256
5244
  class CommonModule {
5257
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5258
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.0-next.4", 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] });
5259
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.0-next.4", 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 });
5260
5248
  }
5261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: CommonModule, decorators: [{
5249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: CommonModule, decorators: [{
5262
5250
  type: NgModule,
5263
5251
  args: [{
5264
5252
  imports: [COMMON_DIRECTIVES, COMMON_PIPES],
@@ -5291,7 +5279,7 @@ function isPlatformServer(platformId) {
5291
5279
  /**
5292
5280
  * @publicApi
5293
5281
  */
5294
- const VERSION = new Version('19.1.0-next.4');
5282
+ const VERSION = new Version('19.1.0');
5295
5283
 
5296
5284
  /**
5297
5285
  * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.
@@ -5305,9 +5293,9 @@ class ViewportScroller {
5305
5293
  static ɵprov = /** @pureOrBreakMyCode */ /* @__PURE__ */ ɵɵdefineInjectable({
5306
5294
  token: ViewportScroller,
5307
5295
  providedIn: 'root',
5308
- factory: () => isPlatformBrowser(inject(PLATFORM_ID))
5309
- ? new BrowserViewportScroller(inject(DOCUMENT), window)
5310
- : new NullViewportScroller(),
5296
+ factory: () => typeof ngServerMode !== 'undefined' && ngServerMode
5297
+ ? new NullViewportScroller()
5298
+ : new BrowserViewportScroller(inject(DOCUMENT), window),
5311
5299
  });
5312
5300
  }
5313
5301
  /**
@@ -5909,10 +5897,10 @@ class LCPImageObserver {
5909
5897
  this.observer.disconnect();
5910
5898
  this.images.clear();
5911
5899
  }
5912
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5913
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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' });
5914
5902
  }
5915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: LCPImageObserver, decorators: [{
5903
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: LCPImageObserver, decorators: [{
5916
5904
  type: Injectable,
5917
5905
  args: [{ providedIn: 'root' }]
5918
5906
  }], ctorParameters: () => [] });
@@ -6036,10 +6024,10 @@ class PreconnectLinkChecker {
6036
6024
  this.preconnectLinks?.clear();
6037
6025
  this.alreadySeen.clear();
6038
6026
  }
6039
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6040
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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' });
6041
6029
  }
6042
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreconnectLinkChecker, decorators: [{
6043
6031
  type: Injectable,
6044
6032
  args: [{ providedIn: 'root' }]
6045
6033
  }], ctorParameters: () => [] });
@@ -6067,7 +6055,7 @@ const DEFAULT_PRELOADED_IMAGES_LIMIT = 5;
6067
6055
  * This Set tracks the original src passed into the `ngSrc` input not the src after it has been
6068
6056
  * run through the specified `IMAGE_LOADER`.
6069
6057
  */
6070
- const PRELOADED_IMAGES = new InjectionToken('NG_OPTIMIZED_PRELOADED_IMAGES', {
6058
+ const PRELOADED_IMAGES = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'NG_OPTIMIZED_PRELOADED_IMAGES' : '', {
6071
6059
  providedIn: 'root',
6072
6060
  factory: () => new Set(),
6073
6061
  });
@@ -6126,10 +6114,10 @@ class PreloadLinkCreator {
6126
6114
  }
6127
6115
  renderer.appendChild(this.document.head, preload);
6128
6116
  }
6129
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6130
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.0-next.4", 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' });
6131
6119
  }
6132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: PreloadLinkCreator, decorators: [{
6133
6121
  type: Injectable,
6134
6122
  args: [{ providedIn: 'root' }]
6135
6123
  }] });
@@ -6335,8 +6323,9 @@ class NgOptimizedImage {
6335
6323
  injector = inject(Injector);
6336
6324
  isServer = isPlatformServer(inject(PLATFORM_ID));
6337
6325
  preloadLinkCreator = inject(PreloadLinkCreator);
6338
- // a LCP image observer - should be injected only in the dev mode
6339
- 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;
6340
6329
  /**
6341
6330
  * Calculate the rewritten `src` once and store it.
6342
6331
  * This is needed to avoid repetitive calculations and make sure the directive cleanup in the
@@ -6356,7 +6345,7 @@ class NgOptimizedImage {
6356
6345
  * descriptors to generate the final `srcset` property of the image.
6357
6346
  *
6358
6347
  * Example:
6359
- * ```
6348
+ * ```html
6360
6349
  * <img ngSrc="hello.jpg" ngSrcset="100w, 200w" /> =>
6361
6350
  * <img src="path/hello.jpg" srcset="path/hello.jpg?w=100 100w, path/hello.jpg?w=200 200w" />
6362
6351
  * ```
@@ -6426,6 +6415,19 @@ class NgOptimizedImage {
6426
6415
  * @internal
6427
6416
  */
6428
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
+ }
6429
6431
  /** @nodoc */
6430
6432
  ngOnInit() {
6431
6433
  ɵperformanceMarkFeature('NgOptimizedImage');
@@ -6465,12 +6467,9 @@ class NgOptimizedImage {
6465
6467
  assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);
6466
6468
  assertNoNgSrcsetWithoutLoader(this, this.imageLoader);
6467
6469
  assertNoLoaderParamsWithoutLoader(this, this.imageLoader);
6468
- if (this.lcpObserver !== null) {
6469
- const ngZone = this.injector.get(NgZone);
6470
- ngZone.runOutsideAngular(() => {
6471
- this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);
6472
- });
6473
- }
6470
+ ngZone.runOutsideAngular(() => {
6471
+ this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc, this.priority);
6472
+ });
6474
6473
  if (this.priority) {
6475
6474
  const checker = this.injector.get(PreconnectLinkChecker);
6476
6475
  checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);
@@ -6540,12 +6539,14 @@ class NgOptimizedImage {
6540
6539
  if (changes['ngSrc'] && !changes['ngSrc'].isFirstChange()) {
6541
6540
  const oldSrc = this._renderedSrc;
6542
6541
  this.updateSrcAndSrcset(true);
6543
- const newSrc = this._renderedSrc;
6544
- if (this.lcpObserver !== null && oldSrc && newSrc && oldSrc !== newSrc) {
6545
- const ngZone = this.injector.get(NgZone);
6546
- ngZone.runOutsideAngular(() => {
6547
- this.lcpObserver?.updateImage(oldSrc, newSrc);
6548
- });
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
+ }
6549
6550
  }
6550
6551
  }
6551
6552
  if (ngDevMode && changes['placeholder']?.currentValue && !this.isServer) {
@@ -6689,21 +6690,13 @@ class NgOptimizedImage {
6689
6690
  const removeErrorListenerFn = this.renderer.listen(img, 'error', callback);
6690
6691
  callOnLoadIfImageIsLoaded(img, callback);
6691
6692
  }
6692
- /** @nodoc */
6693
- ngOnDestroy() {
6694
- if (ngDevMode) {
6695
- if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {
6696
- this.lcpObserver.unregisterImage(this._renderedSrc);
6697
- }
6698
- }
6699
- }
6700
6693
  setHostAttribute(name, value) {
6701
6694
  this.renderer.setAttribute(this.imgElement, name, value);
6702
6695
  }
6703
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6704
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.1.0-next.4", 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 });
6705
6698
  }
6706
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4", ngImport: i0, type: NgOptimizedImage, decorators: [{
6699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0", ngImport: i0, type: NgOptimizedImage, decorators: [{
6707
6700
  type: Directive,
6708
6701
  args: [{
6709
6702
  selector: 'img[ngSrc]',
@@ -6719,7 +6712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.0-next.4",
6719
6712
  '[style.filter]': `placeholder && shouldBlurPlaceholder(placeholderConfig) ? "blur(${PLACEHOLDER_BLUR_AMOUNT}px)" : null`,
6720
6713
  },
6721
6714
  }]
6722
- }], propDecorators: { ngSrc: [{
6715
+ }], ctorParameters: () => [], propDecorators: { ngSrc: [{
6723
6716
  type: Input,
6724
6717
  args: [{ required: true, transform: unwrapSafeUrl }]
6725
6718
  }], ngSrcset: [{