@angular/common 14.1.3 → 14.2.0-rc.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.
Files changed (68) hide show
  1. package/esm2020/http/src/client.mjs +3 -3
  2. package/esm2020/http/src/interceptor.mjs +3 -3
  3. package/esm2020/http/src/jsonp.mjs +6 -6
  4. package/esm2020/http/src/module.mjs +15 -15
  5. package/esm2020/http/src/xhr.mjs +3 -3
  6. package/esm2020/http/src/xsrf.mjs +6 -6
  7. package/esm2020/http/testing/src/backend.mjs +3 -3
  8. package/esm2020/http/testing/src/module.mjs +4 -4
  9. package/esm2020/src/common.mjs +2 -1
  10. package/esm2020/src/common_module.mjs +4 -4
  11. package/esm2020/src/directives/ng_class.mjs +4 -4
  12. package/esm2020/src/directives/ng_component_outlet.mjs +3 -3
  13. package/esm2020/src/directives/ng_for_of.mjs +3 -3
  14. package/esm2020/src/directives/ng_if.mjs +3 -3
  15. package/esm2020/src/directives/ng_optimized_image/asserts.mjs +20 -0
  16. package/esm2020/src/directives/ng_optimized_image/error_helper.mjs +13 -0
  17. package/esm2020/src/directives/ng_optimized_image/image_loaders/cloudflare_loader.mjs +35 -0
  18. package/esm2020/src/directives/ng_optimized_image/image_loaders/cloudinary_loader.mjs +43 -0
  19. package/esm2020/src/directives/ng_optimized_image/image_loaders/image_loader.mjs +78 -0
  20. package/esm2020/src/directives/ng_optimized_image/image_loaders/imagekit_loader.mjs +35 -0
  21. package/esm2020/src/directives/ng_optimized_image/image_loaders/imgix_loader.mjs +33 -0
  22. package/esm2020/src/directives/ng_optimized_image/index.mjs +16 -0
  23. package/esm2020/src/directives/ng_optimized_image/lcp_image_observer.mjs +99 -0
  24. package/esm2020/src/directives/ng_optimized_image/ng_optimized_image.mjs +569 -0
  25. package/esm2020/src/directives/ng_optimized_image/preconnect_link_checker.mjs +137 -0
  26. package/esm2020/src/directives/ng_optimized_image/url.mjs +52 -0
  27. package/esm2020/src/directives/ng_plural.mjs +6 -6
  28. package/esm2020/src/directives/ng_style.mjs +4 -4
  29. package/esm2020/src/directives/ng_switch.mjs +9 -9
  30. package/esm2020/src/directives/ng_template_outlet.mjs +3 -3
  31. package/esm2020/src/errors.mjs +1 -1
  32. package/esm2020/src/i18n/localization.mjs +6 -6
  33. package/esm2020/src/location/hash_location_strategy.mjs +3 -3
  34. package/esm2020/src/location/location.mjs +4 -4
  35. package/esm2020/src/location/location_strategy.mjs +6 -6
  36. package/esm2020/src/location/platform_location.mjs +6 -6
  37. package/esm2020/src/pipes/async_pipe.mjs +3 -3
  38. package/esm2020/src/pipes/case_conversion_pipes.mjs +9 -9
  39. package/esm2020/src/pipes/date_pipe.mjs +3 -3
  40. package/esm2020/src/pipes/i18n_plural_pipe.mjs +3 -3
  41. package/esm2020/src/pipes/i18n_select_pipe.mjs +3 -3
  42. package/esm2020/src/pipes/json_pipe.mjs +3 -3
  43. package/esm2020/src/pipes/keyvalue_pipe.mjs +3 -3
  44. package/esm2020/src/pipes/number_pipe.mjs +9 -9
  45. package/esm2020/src/pipes/slice_pipe.mjs +3 -3
  46. package/esm2020/src/version.mjs +1 -1
  47. package/esm2020/testing/src/location_mock.mjs +3 -3
  48. package/esm2020/testing/src/mock_location_strategy.mjs +3 -3
  49. package/esm2020/testing/src/mock_platform_location.mjs +3 -3
  50. package/esm2020/upgrade/src/location_upgrade_module.mjs +4 -4
  51. package/fesm2015/common.mjs +1202 -104
  52. package/fesm2015/common.mjs.map +1 -1
  53. package/fesm2015/http/testing.mjs +8 -8
  54. package/fesm2015/http.mjs +37 -37
  55. package/fesm2015/testing.mjs +10 -10
  56. package/fesm2015/upgrade.mjs +5 -5
  57. package/fesm2020/common.mjs +1200 -104
  58. package/fesm2020/common.mjs.map +1 -1
  59. package/fesm2020/http/testing.mjs +8 -8
  60. package/fesm2020/http.mjs +37 -37
  61. package/fesm2020/testing.mjs +10 -10
  62. package/fesm2020/upgrade.mjs +5 -5
  63. package/http/index.d.ts +1 -1
  64. package/http/testing/index.d.ts +1 -1
  65. package/index.d.ts +309 -3
  66. package/package.json +2 -2
  67. package/testing/index.d.ts +1 -1
  68. package/upgrade/index.d.ts +1 -1
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v14.1.3
2
+ * @license Angular v14.2.0-rc.0
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -18,7 +18,9 @@ import { NgModuleFactory } from '@angular/core';
18
18
  import { Observable } from 'rxjs';
19
19
  import { OnChanges } from '@angular/core';
20
20
  import { OnDestroy } from '@angular/core';
21
+ import { OnInit } from '@angular/core';
21
22
  import { PipeTransform } from '@angular/core';
23
+ import { Provider } from '@angular/core';
22
24
  import { Renderer2 } from '@angular/core';
23
25
  import { SimpleChanges } from '@angular/core';
24
26
  import { Subscribable } from 'rxjs';
@@ -1092,6 +1094,44 @@ declare namespace i9 {
1092
1094
  }
1093
1095
  }
1094
1096
 
1097
+ /**
1098
+ * Injection token that configures the image loader function.
1099
+ *
1100
+ * @see `ImageLoader`
1101
+ * @see `NgOptimizedImage`
1102
+ * @publicApi
1103
+ * @developerPreview
1104
+ */
1105
+ export declare const IMAGE_LOADER: InjectionToken<ImageLoader>;
1106
+
1107
+ /**
1108
+ * Represents an image loader function. Image loader functions are used by the
1109
+ * NgOptimizedImage directive to produce full image URL based on the image name and its width.
1110
+ *
1111
+ * @publicApi
1112
+ * @developerPreview
1113
+ */
1114
+ export declare type ImageLoader = (config: ImageLoaderConfig) => string;
1115
+
1116
+ /**
1117
+ * Config options recognized by the image loader function.
1118
+ *
1119
+ * @see `ImageLoader`
1120
+ * @see `NgOptimizedImage`
1121
+ * @publicApi
1122
+ * @developerPreview
1123
+ */
1124
+ export declare interface ImageLoaderConfig {
1125
+ /**
1126
+ * Image file name to be added to the image request URL.
1127
+ */
1128
+ src: string;
1129
+ /**
1130
+ * Width of the requested image (to be used when generating srcset).
1131
+ */
1132
+ width?: number;
1133
+ }
1134
+
1095
1135
  /**
1096
1136
  * Returns whether a platform id represents a browser platform.
1097
1137
  * @publicApi
@@ -1482,7 +1522,7 @@ export declare class NgClass implements DoCheck {
1482
1522
  set klass(value: string);
1483
1523
  set ngClass(value: string | string[] | Set<string> | {
1484
1524
  [klass: string]: any;
1485
- });
1525
+ } | null | undefined);
1486
1526
  ngDoCheck(): void;
1487
1527
  private _applyKeyValueChanges;
1488
1528
  private _applyIterableChanges;
@@ -1964,6 +2004,172 @@ export declare abstract class NgLocalization {
1964
2004
  static ɵprov: i0.ɵɵInjectableDeclaration<NgLocalization>;
1965
2005
  }
1966
2006
 
2007
+ /**
2008
+ * Directive that improves image loading performance by enforcing best practices.
2009
+ *
2010
+ * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is
2011
+ * prioritized by:
2012
+ * - Automatically setting the `fetchpriority` attribute on the `<img>` tag
2013
+ * - Lazy loading non-priority images by default
2014
+ * - Asserting that there is a corresponding preconnect link tag in the document head
2015
+ *
2016
+ * In addition, the directive:
2017
+ * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided
2018
+ * - Requires that `width` and `height` are set
2019
+ * - Warns if `width` or `height` have been set incorrectly
2020
+ * - Warns if the image will be visually distorted when rendered
2021
+ *
2022
+ * @usageNotes
2023
+ * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can
2024
+ * be imported directly.
2025
+ *
2026
+ * Follow the steps below to enable and use the directive:
2027
+ * 1. Import it into the necessary NgModule or a standalone Component.
2028
+ * 2. Optionally provide an `ImageLoader` if you use an image hosting service.
2029
+ * 3. Update the necessary `<img>` tags in templates and replace `src` attributes with `rawSrc`.
2030
+ * Using a `rawSrc` allows the directive to control when the `src` gets set, which triggers an image
2031
+ * download.
2032
+ *
2033
+ * Step 1: import the `NgOptimizedImage` directive.
2034
+ *
2035
+ * ```typescript
2036
+ * import { NgOptimizedImage } from '@angular/common';
2037
+ *
2038
+ * // Include it into the necessary NgModule
2039
+ * @NgModule({
2040
+ * imports: [NgOptimizedImage],
2041
+ * })
2042
+ * class AppModule {}
2043
+ *
2044
+ * // ... or a standalone Component
2045
+ * @Component({
2046
+ * standalone: true
2047
+ * imports: [NgOptimizedImage],
2048
+ * })
2049
+ * class MyStandaloneComponent {}
2050
+ * ```
2051
+ *
2052
+ * Step 2: configure a loader.
2053
+ *
2054
+ * To use the **default loader**: no additional code changes are necessary. The URL returned by the
2055
+ * generic loader will always match the value of "src". In other words, this loader applies no
2056
+ * transformations to thr resource URL and the value of the `rawSrc` attribute will be used as is.
2057
+ *
2058
+ * To use an existing loader for a **third-party image service**: add the provider factory for your
2059
+ * chosen service to the `providers` array. In the example below, the Imgix loader is used:
2060
+ *
2061
+ * ```typescript
2062
+ * import {provideImgixLoader} from '@angular/common';
2063
+ *
2064
+ * // Call the function and add the result to the `providers` array:
2065
+ * providers: [
2066
+ * provideImgixLoader("https://my.base.url/"),
2067
+ * ],
2068
+ * ```
2069
+ *
2070
+ * The `NgOptimizedImage` directive provides the following functions:
2071
+ * - `provideCloudflareLoader`
2072
+ * - `provideCloudinaryLoader`
2073
+ * - `provideImageKitLoader`
2074
+ * - `provideImgixLoader`
2075
+ *
2076
+ * If you use a different image provider, you can create a custom loader function as described
2077
+ * below.
2078
+ *
2079
+ * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI
2080
+ * token.
2081
+ *
2082
+ * ```typescript
2083
+ * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';
2084
+ *
2085
+ * // Configure the loader using the `IMAGE_LOADER` token.
2086
+ * providers: [
2087
+ * {
2088
+ * provide: IMAGE_LOADER,
2089
+ * useValue: (config: ImageLoaderConfig) => {
2090
+ * return `https://example.com/${config.src}-${config.width}.jpg}`;
2091
+ * }
2092
+ * },
2093
+ * ],
2094
+ * ```
2095
+ *
2096
+ * Step 3: update `<img>` tags in templates to use `rawSrc` instead of `src`.
2097
+ *
2098
+ * ```
2099
+ * <img rawSrc="logo.png" width="200" height="100">
2100
+ * ```
2101
+ *
2102
+ * @publicApi
2103
+ * @developerPreview
2104
+ */
2105
+ export declare class NgOptimizedImage implements OnInit, OnChanges, OnDestroy {
2106
+ private imageLoader;
2107
+ private renderer;
2108
+ private imgElement;
2109
+ private injector;
2110
+ /**
2111
+ * Calculate the rewritten `src` once and store it.
2112
+ * This is needed to avoid repetitive calculations and make sure the directive cleanup in the
2113
+ * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other
2114
+ * instance that might be already destroyed).
2115
+ */
2116
+ private _renderedSrc;
2117
+ /**
2118
+ * Name of the source image.
2119
+ * Image name will be processed by the image loader and the final URL will be applied as the `src`
2120
+ * property of the image.
2121
+ */
2122
+ rawSrc: string;
2123
+ /**
2124
+ * A comma separated list of width or density descriptors.
2125
+ * The image name will be taken from `rawSrc` and combined with the list of width or density
2126
+ * descriptors to generate the final `srcset` property of the image.
2127
+ *
2128
+ * Example:
2129
+ * ```
2130
+ * <img rawSrc="hello.jpg" rawSrcset="100w, 200w" /> =>
2131
+ * <img src="path/hello.jpg" srcset="path/hello.jpg?w=100 100w, path/hello.jpg?w=200 200w" />
2132
+ * ```
2133
+ */
2134
+ rawSrcset: string;
2135
+ /**
2136
+ * The intrinsic width of the image in pixels.
2137
+ */
2138
+ set width(value: string | number | undefined);
2139
+ get width(): number | undefined;
2140
+ private _width?;
2141
+ /**
2142
+ * The intrinsic height of the image in pixels.
2143
+ */
2144
+ set height(value: string | number | undefined);
2145
+ get height(): number | undefined;
2146
+ private _height?;
2147
+ /**
2148
+ * The desired loading behavior (lazy, eager, or auto).
2149
+ *
2150
+ * Setting images as loading='eager' or loading='auto' marks them
2151
+ * as non-priority images. Avoid changing this input for priority images.
2152
+ */
2153
+ loading?: 'lazy' | 'eager' | 'auto';
2154
+ /**
2155
+ * Indicates whether this image should have a high priority.
2156
+ */
2157
+ set priority(value: string | boolean | undefined);
2158
+ get priority(): boolean;
2159
+ private _priority;
2160
+ ngOnInit(): void;
2161
+ private setHostAttributes;
2162
+ ngOnChanges(changes: SimpleChanges): void;
2163
+ private getLoadingBehavior;
2164
+ private getFetchPriority;
2165
+ private getRewrittenSrc;
2166
+ private getRewrittenSrcset;
2167
+ ngOnDestroy(): void;
2168
+ private setHostAttribute;
2169
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgOptimizedImage, never>;
2170
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgOptimizedImage, "img[rawSrc]", never, { "rawSrc": "rawSrc"; "rawSrcset": "rawSrcset"; "width": "width"; "height": "height"; "loading": "loading"; "priority": "priority"; "src": "src"; "srcset": "srcset"; }, {}, never, never, true>;
2171
+ }
2172
+
1967
2173
  /**
1968
2174
  * @ngModule CommonModule
1969
2175
  *
@@ -2082,7 +2288,7 @@ export declare class NgStyle implements DoCheck {
2082
2288
  constructor(_ngEl: ElementRef, _differs: KeyValueDiffers, _renderer: Renderer2);
2083
2289
  set ngStyle(values: {
2084
2290
  [klass: string]: any;
2085
- } | null);
2291
+ } | null | undefined);
2086
2292
  ngDoCheck(): void;
2087
2293
  private _setStyle;
2088
2294
  private _applyChanges;
@@ -2543,6 +2749,106 @@ declare interface PopStateEvent_2 {
2543
2749
  }
2544
2750
  export { PopStateEvent_2 as PopStateEvent }
2545
2751
 
2752
+ /**
2753
+ * Multi-provider injection token to configure which origins should be excluded
2754
+ * from the preconnect checks. It can either be a single string or an array of strings
2755
+ * to represent a group of origins, for example:
2756
+ *
2757
+ * ```typescript
2758
+ * {provide: PRECONNECT_CHECK_BLOCKLIST, multi: true, useValue: 'https://your-domain.com'}
2759
+ * ```
2760
+ *
2761
+ * or:
2762
+ *
2763
+ * ```typescript
2764
+ * {provide: PRECONNECT_CHECK_BLOCKLIST, multi: true,
2765
+ * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}
2766
+ * ```
2767
+ *
2768
+ * @publicApi
2769
+ * @developerPreview
2770
+ */
2771
+ export declare const PRECONNECT_CHECK_BLOCKLIST: InjectionToken<(string | string[])[]>;
2772
+
2773
+ /**
2774
+ * Function that generates an ImageLoader for [Cloudflare Image
2775
+ * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular
2776
+ * provider. Note: Cloudflare has multiple image products - this provider is specifically for
2777
+ * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.
2778
+ *
2779
+ * @param path Your domain name, e.g. https://mysite.com
2780
+ * @param options An object with extra configuration:
2781
+ * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive
2782
+ * should verify that there is a corresponding `<link rel="preconnect">`
2783
+ * present in the document's `<head>`.
2784
+ * @returns Provider that provides an ImageLoader function
2785
+ *
2786
+ * @publicApi
2787
+ * @developerPreview
2788
+ */
2789
+ export declare const provideCloudflareLoader: (path: string, options?: {
2790
+ ensurePreconnect?: boolean | undefined;
2791
+ }) => Provider[];
2792
+
2793
+ /**
2794
+ * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.
2795
+ *
2796
+ * @param path Base URL of your Cloudinary images
2797
+ * This URL should match one of the following formats:
2798
+ * https://res.cloudinary.com/mysite
2799
+ * https://mysite.cloudinary.com
2800
+ * https://subdomain.mysite.com
2801
+ * @param options An object with extra configuration:
2802
+ * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive
2803
+ * should verify that there is a corresponding `<link rel="preconnect">`
2804
+ * present in the document's `<head>`.
2805
+ * @returns Set of providers to configure the Cloudinary loader.
2806
+ *
2807
+ * @publicApi
2808
+ * @developerPreview
2809
+ */
2810
+ export declare const provideCloudinaryLoader: (path: string, options?: {
2811
+ ensurePreconnect?: boolean | undefined;
2812
+ }) => Provider[];
2813
+
2814
+ /**
2815
+ * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.
2816
+ *
2817
+ * @param path Base URL of your ImageKit images
2818
+ * This URL should match one of the following formats:
2819
+ * https://ik.imagekit.io/myaccount
2820
+ * https://subdomain.mysite.com
2821
+ * @param options An object with extra configuration:
2822
+ * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive
2823
+ * should verify that there is a corresponding `<link rel="preconnect">`
2824
+ * present in the document's `<head>`.
2825
+ * @returns Set of providers to configure the ImageKit loader.
2826
+ *
2827
+ * @publicApi
2828
+ * @developerPreview
2829
+ */
2830
+ export declare const provideImageKitLoader: (path: string, options?: {
2831
+ ensurePreconnect?: boolean | undefined;
2832
+ }) => Provider[];
2833
+
2834
+ /**
2835
+ * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.
2836
+ *
2837
+ * @param path path to the desired Imgix origin,
2838
+ * e.g. https://somepath.imgix.net or https://images.mysite.com
2839
+ * @param options An object with extra configuration:
2840
+ * - `ensurePreconnect`: boolean flag indicating whether the NgOptimizedImage directive
2841
+ * should verify that there is a corresponding `<link rel="preconnect">`
2842
+ * present in the document's `<head>`.
2843
+ * @returns Set of providers to configure the Imgix loader.
2844
+ *
2845
+ * @publicApi
2846
+ * @developerPreview
2847
+ */
2848
+ export declare const provideImgixLoader: (path: string, options?: {
2849
+ ensurePreconnect?: boolean | undefined;
2850
+ }) => Provider[];
2851
+
2546
2852
 
2547
2853
  /**
2548
2854
  * Register global data to be used internally by Angular. See the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/common",
3
- "version": "14.1.3",
3
+ "version": "14.2.0-rc.0",
4
4
  "description": "Angular - commonly needed directives and services",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -63,7 +63,7 @@
63
63
  }
64
64
  },
65
65
  "peerDependencies": {
66
- "@angular/core": "14.1.3",
66
+ "@angular/core": "14.2.0-rc.0",
67
67
  "rxjs": "^6.5.3 || ^7.4.0"
68
68
  },
69
69
  "repository": {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v14.1.3
2
+ * @license Angular v14.2.0-rc.0
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v14.1.3
2
+ * @license Angular v14.2.0-rc.0
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */