@angular/platform-browser 14.1.0-rc.0 → 14.2.0-next.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.
- package/animations/index.d.ts +1 -1
- package/esm2020/animations/src/animation_builder.mjs +3 -3
- package/esm2020/animations/src/animation_renderer.mjs +3 -3
- package/esm2020/animations/src/module.mjs +8 -8
- package/esm2020/animations/src/providers.mjs +3 -3
- package/esm2020/src/browser/meta.mjs +3 -3
- package/esm2020/src/browser/title.mjs +3 -3
- package/esm2020/src/browser/transfer_state.mjs +41 -23
- package/esm2020/src/browser/xhr.mjs +3 -3
- package/esm2020/src/browser.mjs +28 -10
- package/esm2020/src/dom/dom_renderer.mjs +3 -3
- package/esm2020/src/dom/events/dom_events.mjs +3 -3
- package/esm2020/src/dom/events/event_manager.mjs +3 -3
- package/esm2020/src/dom/events/hammer_gestures.mjs +10 -10
- package/esm2020/src/dom/events/key_events.mjs +51 -65
- package/esm2020/src/dom/shared_styles_host.mjs +6 -6
- package/esm2020/src/platform-browser.mjs +2 -2
- package/esm2020/src/security/dom_sanitization_service.mjs +6 -6
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/browser.mjs +4 -4
- package/fesm2015/animations.mjs +18 -18
- package/fesm2015/platform-browser.mjs +159 -137
- package/fesm2015/platform-browser.mjs.map +1 -1
- package/fesm2015/testing.mjs +5 -5
- package/fesm2020/animations.mjs +18 -18
- package/fesm2020/platform-browser.mjs +159 -137
- package/fesm2020/platform-browser.mjs.map +1 -1
- package/fesm2020/testing.mjs +5 -5
- package/index.d.ts +48 -6
- package/package.json +4 -4
- package/testing/index.d.ts +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license Angular v14.
|
2
|
+
* @license Angular v14.2.0-next.0
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -7,7 +7,7 @@
|
|
7
7
|
import { ɵDomAdapter, ɵsetRootDomAdapter, ɵparseCookieValue, ɵgetDOM, DOCUMENT, ɵPLATFORM_BROWSER_ID, XhrFactory, CommonModule } from '@angular/common';
|
8
8
|
export { ɵgetDOM } from '@angular/common';
|
9
9
|
import * as i0 from '@angular/core';
|
10
|
-
import { InjectionToken, ApplicationInitStatus, APP_INITIALIZER, Injector, ɵglobal, Injectable, Inject, ViewEncapsulation, APP_ID, RendererStyleFlags2,
|
10
|
+
import { InjectionToken, ApplicationInitStatus, APP_INITIALIZER, Injector, ɵglobal, Injectable, Inject, ViewEncapsulation, APP_ID, RendererStyleFlags2, ɵinternalCreateApplication, ErrorHandler, ɵsetDocument, PLATFORM_ID, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵTESTABILITY_GETTER, ɵTESTABILITY, Testability, NgZone, TestabilityRegistry, ɵINJECTOR_SCOPE, RendererFactory2, ApplicationModule, NgModule, Optional, SkipSelf, ɵɵinject, ApplicationRef, inject, ɵConsole, forwardRef, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, Version } from '@angular/core';
|
11
11
|
|
12
12
|
/**
|
13
13
|
* @license
|
@@ -218,9 +218,9 @@ class BrowserXhr {
|
|
218
218
|
return new XMLHttpRequest();
|
219
219
|
}
|
220
220
|
}
|
221
|
-
BrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
222
|
-
BrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
223
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
221
|
+
BrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
222
|
+
BrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserXhr });
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserXhr, decorators: [{
|
224
224
|
type: Injectable
|
225
225
|
}] });
|
226
226
|
|
@@ -303,9 +303,9 @@ class EventManager {
|
|
303
303
|
throw new Error(`No event manager plugin found for event ${eventName}`);
|
304
304
|
}
|
305
305
|
}
|
306
|
-
EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
307
|
-
EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
308
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
306
|
+
EventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
307
|
+
EventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: EventManager });
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: EventManager, decorators: [{
|
309
309
|
type: Injectable
|
310
310
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
311
311
|
type: Inject,
|
@@ -351,9 +351,9 @@ class SharedStylesHost {
|
|
351
351
|
return Array.from(this._stylesSet);
|
352
352
|
}
|
353
353
|
}
|
354
|
-
SharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
355
|
-
SharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
356
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
354
|
+
SharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: SharedStylesHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
355
|
+
SharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: SharedStylesHost });
|
356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: SharedStylesHost, decorators: [{
|
357
357
|
type: Injectable
|
358
358
|
}] });
|
359
359
|
class DomSharedStylesHost extends SharedStylesHost {
|
@@ -392,9 +392,9 @@ class DomSharedStylesHost extends SharedStylesHost {
|
|
392
392
|
this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));
|
393
393
|
}
|
394
394
|
}
|
395
|
-
DomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
396
|
-
DomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
397
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
395
|
+
DomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSharedStylesHost, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
396
|
+
DomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSharedStylesHost });
|
397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSharedStylesHost, decorators: [{
|
398
398
|
type: Injectable
|
399
399
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
400
400
|
type: Inject,
|
@@ -515,9 +515,9 @@ class DomRendererFactory2 {
|
|
515
515
|
begin() { }
|
516
516
|
end() { }
|
517
517
|
}
|
518
|
-
DomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
519
|
-
DomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
520
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
518
|
+
DomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: DomSharedStylesHost }, { token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
519
|
+
DomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomRendererFactory2 });
|
520
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomRendererFactory2, decorators: [{
|
521
521
|
type: Injectable
|
522
522
|
}], ctorParameters: function () { return [{ type: EventManager }, { type: DomSharedStylesHost }, { type: undefined, decorators: [{
|
523
523
|
type: Inject,
|
@@ -738,9 +738,9 @@ class DomEventsPlugin extends EventManagerPlugin {
|
|
738
738
|
return target.removeEventListener(eventName, callback);
|
739
739
|
}
|
740
740
|
}
|
741
|
-
DomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
742
|
-
DomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
741
|
+
DomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
742
|
+
DomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomEventsPlugin });
|
743
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomEventsPlugin, decorators: [{
|
744
744
|
type: Injectable
|
745
745
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
746
746
|
type: Inject,
|
@@ -758,11 +758,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0-rc.0", ng
|
|
758
758
|
* Defines supported modifiers for key events.
|
759
759
|
*/
|
760
760
|
const MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];
|
761
|
-
|
762
|
-
//
|
761
|
+
// The following values are here for cross-browser compatibility and to match the W3C standard
|
762
|
+
// cf https://www.w3.org/TR/DOM-Level-3-Events-key/
|
763
763
|
const _keyMap = {
|
764
|
-
// The following values are here for cross-browser compatibility and to match the W3C standard
|
765
|
-
// cf https://www.w3.org/TR/DOM-Level-3-Events-key/
|
766
764
|
'\b': 'Backspace',
|
767
765
|
'\t': 'Tab',
|
768
766
|
'\x7F': 'Delete',
|
@@ -777,27 +775,6 @@ const _keyMap = {
|
|
777
775
|
'Scroll': 'ScrollLock',
|
778
776
|
'Win': 'OS'
|
779
777
|
};
|
780
|
-
// There is a bug in Chrome for numeric keypad keys:
|
781
|
-
// https://code.google.com/p/chromium/issues/detail?id=155654
|
782
|
-
// 1, 2, 3 ... are reported as A, B, C ...
|
783
|
-
const _chromeNumKeyPadMap = {
|
784
|
-
'A': '1',
|
785
|
-
'B': '2',
|
786
|
-
'C': '3',
|
787
|
-
'D': '4',
|
788
|
-
'E': '5',
|
789
|
-
'F': '6',
|
790
|
-
'G': '7',
|
791
|
-
'H': '8',
|
792
|
-
'I': '9',
|
793
|
-
'J': '*',
|
794
|
-
'K': '+',
|
795
|
-
'M': '-',
|
796
|
-
'N': '.',
|
797
|
-
'O': '/',
|
798
|
-
'\x60': '0',
|
799
|
-
'\x90': 'NumLock'
|
800
|
-
};
|
801
778
|
/**
|
802
779
|
* Retrieves modifiers from key-event objects.
|
803
780
|
*/
|
@@ -842,6 +819,15 @@ class KeyEventsPlugin extends EventManagerPlugin {
|
|
842
819
|
return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);
|
843
820
|
});
|
844
821
|
}
|
822
|
+
/**
|
823
|
+
* Parses the user provided full keyboard event definition and normalizes it for
|
824
|
+
* later internal use. It ensures the string is all lowercase, converts special
|
825
|
+
* characters to a standard spelling, and orders all the values consistently.
|
826
|
+
*
|
827
|
+
* @param eventName The name of the key event to listen for.
|
828
|
+
* @returns an object with the full, normalized string, and the dom event name
|
829
|
+
* or null in the case when the event doesn't match a keyboard event.
|
830
|
+
*/
|
845
831
|
static parseEventName(eventName) {
|
846
832
|
const parts = eventName.toLowerCase().split('.');
|
847
833
|
const domEventName = parts.shift();
|
@@ -850,6 +836,11 @@ class KeyEventsPlugin extends EventManagerPlugin {
|
|
850
836
|
}
|
851
837
|
const key = KeyEventsPlugin._normalizeKey(parts.pop());
|
852
838
|
let fullKey = '';
|
839
|
+
let codeIX = parts.indexOf('code');
|
840
|
+
if (codeIX > -1) {
|
841
|
+
parts.splice(codeIX, 1);
|
842
|
+
fullKey = 'code.';
|
843
|
+
}
|
853
844
|
MODIFIER_KEYS.forEach(modifierName => {
|
854
845
|
const index = parts.indexOf(modifierName);
|
855
846
|
if (index > -1) {
|
@@ -870,26 +861,43 @@ class KeyEventsPlugin extends EventManagerPlugin {
|
|
870
861
|
result['fullKey'] = fullKey;
|
871
862
|
return result;
|
872
863
|
}
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
864
|
+
/**
|
865
|
+
* Determines whether the actual keys pressed match the configured key code string.
|
866
|
+
* The `fullKeyCode` event is normalized in the `parseEventName` method when the
|
867
|
+
* event is attached to the DOM during the `addEventListener` call. This is unseen
|
868
|
+
* by the end user and is normalized for internal consistency and parsing.
|
869
|
+
*
|
870
|
+
* @param event The keyboard event.
|
871
|
+
* @param fullKeyCode The normalized user defined expected key event string
|
872
|
+
* @returns boolean.
|
873
|
+
*/
|
874
|
+
static matchEventFullKeyCode(event, fullKeyCode) {
|
875
|
+
let keycode = _keyMap[event.key] || event.key;
|
876
|
+
let key = '';
|
877
|
+
if (fullKeyCode.indexOf('code.') > -1) {
|
878
|
+
keycode = event.code;
|
879
|
+
key = 'code.';
|
879
880
|
}
|
880
|
-
|
881
|
-
|
881
|
+
// the keycode could be unidentified so we have to check here
|
882
|
+
if (keycode == null || !keycode)
|
883
|
+
return false;
|
884
|
+
keycode = keycode.toLowerCase();
|
885
|
+
if (keycode === ' ') {
|
886
|
+
keycode = 'space'; // for readability
|
887
|
+
}
|
888
|
+
else if (keycode === '.') {
|
889
|
+
keycode = 'dot'; // because '.' is used as a separator in event names
|
882
890
|
}
|
883
891
|
MODIFIER_KEYS.forEach(modifierName => {
|
884
|
-
if (modifierName
|
892
|
+
if (modifierName !== keycode) {
|
885
893
|
const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];
|
886
894
|
if (modifierGetter(event)) {
|
887
|
-
|
895
|
+
key += modifierName + '.';
|
888
896
|
}
|
889
897
|
}
|
890
898
|
});
|
891
|
-
|
892
|
-
return
|
899
|
+
key += keycode;
|
900
|
+
return key === fullKeyCode;
|
893
901
|
}
|
894
902
|
/**
|
895
903
|
* Configures a handler callback for a key event.
|
@@ -899,8 +907,8 @@ class KeyEventsPlugin extends EventManagerPlugin {
|
|
899
907
|
* @returns A callback function.
|
900
908
|
*/
|
901
909
|
static eventCallback(fullKey, handler, zone) {
|
902
|
-
return (event
|
903
|
-
if (KeyEventsPlugin.
|
910
|
+
return (event) => {
|
911
|
+
if (KeyEventsPlugin.matchEventFullKeyCode(event, fullKey)) {
|
904
912
|
zone.runGuarded(() => handler(event));
|
905
913
|
}
|
906
914
|
};
|
@@ -916,36 +924,14 @@ class KeyEventsPlugin extends EventManagerPlugin {
|
|
916
924
|
}
|
917
925
|
}
|
918
926
|
}
|
919
|
-
KeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
920
|
-
KeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
921
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
927
|
+
KeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
928
|
+
KeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: KeyEventsPlugin });
|
929
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: KeyEventsPlugin, decorators: [{
|
922
930
|
type: Injectable
|
923
931
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
924
932
|
type: Inject,
|
925
933
|
args: [DOCUMENT]
|
926
934
|
}] }]; } });
|
927
|
-
function getEventKey(event) {
|
928
|
-
let key = event.key;
|
929
|
-
if (key == null) {
|
930
|
-
key = event.keyIdentifier;
|
931
|
-
// keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and
|
932
|
-
// Safari cf
|
933
|
-
// https://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces
|
934
|
-
if (key == null) {
|
935
|
-
return 'Unidentified';
|
936
|
-
}
|
937
|
-
if (key.startsWith('U+')) {
|
938
|
-
key = String.fromCharCode(parseInt(key.substring(2), 16));
|
939
|
-
if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {
|
940
|
-
// There is a bug in Chrome for numeric keypad keys:
|
941
|
-
// https://code.google.com/p/chromium/issues/detail?id=155654
|
942
|
-
// 1, 2, 3 ... are reported as A, B, C ...
|
943
|
-
key = _chromeNumKeyPadMap[key];
|
944
|
-
}
|
945
|
-
}
|
946
|
-
}
|
947
|
-
return _keyMap[key] || key;
|
948
|
-
}
|
949
935
|
|
950
936
|
/**
|
951
937
|
* @license
|
@@ -1016,14 +1002,32 @@ const NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;
|
|
1016
1002
|
* @developerPreview
|
1017
1003
|
*/
|
1018
1004
|
function bootstrapApplication(rootComponent, options) {
|
1019
|
-
return
|
1020
|
-
|
1005
|
+
return ɵinternalCreateApplication({ rootComponent, ...createProvidersConfig(options) });
|
1006
|
+
}
|
1007
|
+
/**
|
1008
|
+
* Create an instance of an Angular application without bootstrapping any components. This is useful
|
1009
|
+
* for the situation where one wants to decouple application environment creation (a platform and
|
1010
|
+
* associated injectors) from rendering components on a screen. Components can be subsequently
|
1011
|
+
* bootstrapped on the returned `ApplicationRef`.
|
1012
|
+
*
|
1013
|
+
* @param options Extra configuration for the application environment, see `ApplicationConfig` for
|
1014
|
+
* additional info.
|
1015
|
+
* @returns A promise that returns an `ApplicationRef` instance once resolved.
|
1016
|
+
*
|
1017
|
+
* @publicApi
|
1018
|
+
* @developerPreview
|
1019
|
+
*/
|
1020
|
+
function createApplication(options) {
|
1021
|
+
return ɵinternalCreateApplication(createProvidersConfig(options));
|
1022
|
+
}
|
1023
|
+
function createProvidersConfig(options) {
|
1024
|
+
return {
|
1021
1025
|
appProviders: [
|
1022
1026
|
...BROWSER_MODULE_PROVIDERS,
|
1023
1027
|
...(options?.providers ?? []),
|
1024
1028
|
],
|
1025
|
-
platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS
|
1026
|
-
}
|
1029
|
+
platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS
|
1030
|
+
};
|
1027
1031
|
}
|
1028
1032
|
/**
|
1029
1033
|
* Returns a set of providers required to setup [Testability](api/core/Testability) for an
|
@@ -1144,13 +1148,13 @@ class BrowserModule {
|
|
1144
1148
|
};
|
1145
1149
|
}
|
1146
1150
|
}
|
1147
|
-
BrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1148
|
-
BrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
1149
|
-
BrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
1151
|
+
BrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
1152
|
+
BrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });
|
1153
|
+
BrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserModule, providers: [
|
1150
1154
|
...BROWSER_MODULE_PROVIDERS,
|
1151
1155
|
...TESTABILITY_PROVIDERS
|
1152
1156
|
], imports: [CommonModule, ApplicationModule] });
|
1153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
1157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserModule, decorators: [{
|
1154
1158
|
type: NgModule,
|
1155
1159
|
args: [{
|
1156
1160
|
providers: [
|
@@ -1331,9 +1335,9 @@ class Meta {
|
|
1331
1335
|
return META_KEYS_MAP[prop] || prop;
|
1332
1336
|
}
|
1333
1337
|
}
|
1334
|
-
Meta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1335
|
-
Meta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
1336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
1338
|
+
Meta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
1339
|
+
Meta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] });
|
1340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: Meta, decorators: [{
|
1337
1341
|
type: Injectable,
|
1338
1342
|
args: [{ providedIn: 'root', useFactory: createMeta, deps: [] }]
|
1339
1343
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
@@ -1388,9 +1392,9 @@ class Title {
|
|
1388
1392
|
this._doc.title = newTitle || '';
|
1389
1393
|
}
|
1390
1394
|
}
|
1391
|
-
Title.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1392
|
-
Title.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
1393
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
1395
|
+
Title.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
1396
|
+
Title.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] });
|
1397
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: Title, decorators: [{
|
1394
1398
|
type: Injectable,
|
1395
1399
|
args: [{ providedIn: 'root', useFactory: createTitle, deps: [] }]
|
1396
1400
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
@@ -1589,8 +1593,10 @@ function makeStateKey(key) {
|
|
1589
1593
|
* A key value store that is transferred from the application on the server side to the application
|
1590
1594
|
* on the client side.
|
1591
1595
|
*
|
1592
|
-
* `TransferState`
|
1593
|
-
*
|
1596
|
+
* The `TransferState` is available as an injectable token.
|
1597
|
+
* On the client, just inject this token using DI and use it, it will be lazily initialized.
|
1598
|
+
* On the server it's already included if `renderApplication` function is used. Otherwise, import
|
1599
|
+
* the `ServerTransferStateModule` module to make the `TransferState` available.
|
1594
1600
|
*
|
1595
1601
|
* The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only
|
1596
1602
|
* boolean, number, string, null and non-class objects will be serialized and deserialized in a
|
@@ -1603,12 +1609,6 @@ class TransferState {
|
|
1603
1609
|
this.store = {};
|
1604
1610
|
this.onSerializeCallbacks = {};
|
1605
1611
|
}
|
1606
|
-
/** @internal */
|
1607
|
-
static init(initState) {
|
1608
|
-
const transferState = new TransferState();
|
1609
|
-
transferState.store = initState;
|
1610
|
-
return transferState;
|
1611
|
-
}
|
1612
1612
|
/**
|
1613
1613
|
* Get the value corresponding to a key. Return `defaultValue` if key is not found.
|
1614
1614
|
*/
|
@@ -1633,6 +1633,12 @@ class TransferState {
|
|
1633
1633
|
hasKey(key) {
|
1634
1634
|
return this.store.hasOwnProperty(key);
|
1635
1635
|
}
|
1636
|
+
/**
|
1637
|
+
* Indicates whether the state is empty.
|
1638
|
+
*/
|
1639
|
+
get isEmpty() {
|
1640
|
+
return Object.keys(this.store).length === 0;
|
1641
|
+
}
|
1636
1642
|
/**
|
1637
1643
|
* Register a callback to provide the value for a key when `toJson` is called.
|
1638
1644
|
*/
|
@@ -1657,12 +1663,28 @@ class TransferState {
|
|
1657
1663
|
return JSON.stringify(this.store);
|
1658
1664
|
}
|
1659
1665
|
}
|
1660
|
-
TransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1661
|
-
TransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
1662
|
-
|
1663
|
-
|
1666
|
+
TransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: TransferState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
1667
|
+
TransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: TransferState, providedIn: 'root', useFactory: () => {
|
1668
|
+
const doc = inject(DOCUMENT);
|
1669
|
+
const appId = inject(APP_ID);
|
1670
|
+
const state = new TransferState();
|
1671
|
+
state.store = retrieveTransferredState(doc, appId);
|
1672
|
+
return state;
|
1673
|
+
} });
|
1674
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: TransferState, decorators: [{
|
1675
|
+
type: Injectable,
|
1676
|
+
args: [{
|
1677
|
+
providedIn: 'root',
|
1678
|
+
useFactory: () => {
|
1679
|
+
const doc = inject(DOCUMENT);
|
1680
|
+
const appId = inject(APP_ID);
|
1681
|
+
const state = new TransferState();
|
1682
|
+
state.store = retrieveTransferredState(doc, appId);
|
1683
|
+
return state;
|
1684
|
+
}
|
1685
|
+
}]
|
1664
1686
|
}] });
|
1665
|
-
function
|
1687
|
+
function retrieveTransferredState(doc, appId) {
|
1666
1688
|
// Locate the script tag with the JSON data transferred from the server.
|
1667
1689
|
// The id of the script tag is set to the Angular appId + 'state'.
|
1668
1690
|
const script = doc.getElementById(appId + '-state');
|
@@ -1676,24 +1698,24 @@ function initTransferState(doc, appId) {
|
|
1676
1698
|
console.warn('Exception while restoring TransferState for app ' + appId, e);
|
1677
1699
|
}
|
1678
1700
|
}
|
1679
|
-
return
|
1701
|
+
return initialState;
|
1680
1702
|
}
|
1681
1703
|
/**
|
1682
1704
|
* NgModule to install on the client side while using the `TransferState` to transfer state from
|
1683
1705
|
* server to client.
|
1684
1706
|
*
|
1685
1707
|
* @publicApi
|
1708
|
+
* @deprecated no longer needed, you can inject the `TransferState` in an app without providing
|
1709
|
+
* this module.
|
1686
1710
|
*/
|
1687
1711
|
class BrowserTransferStateModule {
|
1688
1712
|
}
|
1689
|
-
BrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1690
|
-
BrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
1691
|
-
BrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
1692
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
1713
|
+
BrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1714
|
+
BrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserTransferStateModule });
|
1715
|
+
BrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserTransferStateModule });
|
1716
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: BrowserTransferStateModule, decorators: [{
|
1693
1717
|
type: NgModule,
|
1694
|
-
args: [{
|
1695
|
-
providers: [{ provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID] }],
|
1696
|
-
}]
|
1718
|
+
args: [{}]
|
1697
1719
|
}] });
|
1698
1720
|
|
1699
1721
|
/**
|
@@ -1865,9 +1887,9 @@ class HammerGestureConfig {
|
|
1865
1887
|
return mc;
|
1866
1888
|
}
|
1867
1889
|
}
|
1868
|
-
HammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1869
|
-
HammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
1870
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
1890
|
+
HammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
1891
|
+
HammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerGestureConfig });
|
1892
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerGestureConfig, decorators: [{
|
1871
1893
|
type: Injectable
|
1872
1894
|
}] });
|
1873
1895
|
/**
|
@@ -1963,9 +1985,9 @@ class HammerGesturesPlugin extends EventManagerPlugin {
|
|
1963
1985
|
return this._config.events.indexOf(eventName) > -1;
|
1964
1986
|
}
|
1965
1987
|
}
|
1966
|
-
HammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1967
|
-
HammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
1968
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
1988
|
+
HammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
1989
|
+
HammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerGesturesPlugin });
|
1990
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerGesturesPlugin, decorators: [{
|
1969
1991
|
type: Injectable
|
1970
1992
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
1971
1993
|
type: Inject,
|
@@ -1992,9 +2014,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0-rc.0", ng
|
|
1992
2014
|
*/
|
1993
2015
|
class HammerModule {
|
1994
2016
|
}
|
1995
|
-
HammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
1996
|
-
HammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.
|
1997
|
-
HammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.
|
2017
|
+
HammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
2018
|
+
HammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerModule });
|
2019
|
+
HammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerModule, providers: [
|
1998
2020
|
{
|
1999
2021
|
provide: EVENT_MANAGER_PLUGINS,
|
2000
2022
|
useClass: HammerGesturesPlugin,
|
@@ -2003,7 +2025,7 @@ HammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2003
2025
|
},
|
2004
2026
|
{ provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },
|
2005
2027
|
] });
|
2006
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
2028
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: HammerModule, decorators: [{
|
2007
2029
|
type: NgModule,
|
2008
2030
|
args: [{
|
2009
2031
|
providers: [
|
@@ -2058,9 +2080,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0-rc.0", ng
|
|
2058
2080
|
*/
|
2059
2081
|
class DomSanitizer {
|
2060
2082
|
}
|
2061
|
-
DomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
2062
|
-
DomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
2063
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
2083
|
+
DomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
2084
|
+
DomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) });
|
2085
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSanitizer, decorators: [{
|
2064
2086
|
type: Injectable,
|
2065
2087
|
args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]
|
2066
2088
|
}] });
|
@@ -2123,9 +2145,9 @@ class DomSanitizerImpl extends DomSanitizer {
|
|
2123
2145
|
return ɵbypassSanitizationTrustResourceUrl(value);
|
2124
2146
|
}
|
2125
2147
|
}
|
2126
|
-
DomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
2127
|
-
DomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
2128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
2148
|
+
DomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
|
2149
|
+
DomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] });
|
2150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0-next.0", ngImport: i0, type: DomSanitizerImpl, decorators: [{
|
2129
2151
|
type: Injectable,
|
2130
2152
|
args: [{ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector] }]
|
2131
2153
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
@@ -2151,7 +2173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0-rc.0", ng
|
|
2151
2173
|
/**
|
2152
2174
|
* @publicApi
|
2153
2175
|
*/
|
2154
|
-
const VERSION = new Version('14.
|
2176
|
+
const VERSION = new Version('14.2.0-next.0');
|
2155
2177
|
|
2156
2178
|
/**
|
2157
2179
|
* @license
|
@@ -2182,5 +2204,5 @@ const VERSION = new Version('14.1.0-rc.0');
|
|
2182
2204
|
* Generated bundle index. Do not edit.
|
2183
2205
|
*/
|
2184
2206
|
|
2185
|
-
export { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, Title, TransferState, VERSION, bootstrapApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };
|
2207
|
+
export { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, Title, TransferState, VERSION, bootstrapApplication, createApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };
|
2186
2208
|
//# sourceMappingURL=platform-browser.mjs.map
|