@angular/core 15.2.1 → 16.0.0-next.1
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/esm2020/src/application_init.mjs +3 -2
- package/esm2020/src/application_module.mjs +3 -2
- package/esm2020/src/application_ref.mjs +5 -3
- package/esm2020/src/change_detection/change_detector_ref.mjs +3 -2
- package/esm2020/src/change_detection/differs/iterable_differs.mjs +3 -2
- package/esm2020/src/change_detection/differs/keyvalue_differs.mjs +3 -2
- package/esm2020/src/console.mjs +3 -2
- package/esm2020/src/core.mjs +2 -1
- package/esm2020/src/core_private_export.mjs +2 -1
- package/esm2020/src/core_reactivity_export.mjs +11 -0
- package/esm2020/src/core_reactivity_export_internal.mjs +9 -0
- package/esm2020/src/di/injector.mjs +3 -2
- package/esm2020/src/di/r3_injector.mjs +5 -1
- package/esm2020/src/di/reflective_injector.mjs +3 -2
- package/esm2020/src/linker/compiler.mjs +3 -2
- package/esm2020/src/linker/component_factory_resolver.mjs +3 -2
- package/esm2020/src/linker/destroy_ref.mjs +41 -0
- package/esm2020/src/linker/element_ref.mjs +3 -2
- package/esm2020/src/linker/template_ref.mjs +3 -2
- package/esm2020/src/linker/view_container_ref.mjs +3 -2
- package/esm2020/src/linker.mjs +2 -1
- package/esm2020/src/render/api.mjs +3 -2
- package/esm2020/src/render/api_flags.mjs +1 -1
- package/esm2020/src/render3/features/standalone_feature.mjs +1 -1
- package/esm2020/src/render3/fields.mjs +10 -1
- package/esm2020/src/render3/hooks.mjs +3 -2
- package/esm2020/src/render3/instructions/shared.mjs +14 -14
- package/esm2020/src/render3/interfaces/definition.mjs +1 -1
- package/esm2020/src/render3/interfaces/view.mjs +3 -2
- package/esm2020/src/render3/node_manipulation.mjs +14 -14
- package/esm2020/src/render3/util/view_utils.mjs +11 -2
- package/esm2020/src/render3/view_ref.mjs +4 -3
- package/esm2020/src/sanitization/sanitizer.mjs +3 -2
- package/esm2020/src/signals/index.mjs +15 -0
- package/esm2020/src/signals/src/api.mjs +46 -0
- package/esm2020/src/signals/src/computed.mjs +142 -0
- package/esm2020/src/signals/src/effect.mjs +69 -0
- package/esm2020/src/signals/src/graph.mjs +114 -0
- package/esm2020/src/signals/src/signal.mjs +78 -0
- package/esm2020/src/signals/src/untracked.mjs +26 -0
- package/esm2020/src/signals/src/watch.mjs +54 -0
- package/esm2020/src/signals/src/weak_ref.mjs +11 -0
- package/esm2020/src/testability/testability.mjs +5 -3
- package/esm2020/src/transfer_state.mjs +148 -0
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/logger.mjs +6 -5
- package/esm2020/testing/src/ng_zone_mock.mjs +6 -5
- package/esm2020/testing/src/test_bed.mjs +3 -2
- package/fesm2015/core.mjs +699 -31
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/testing.mjs +53 -30
- package/fesm2015/testing.mjs.map +1 -1
- package/fesm2020/core.mjs +695 -31
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/testing.mjs +53 -30
- package/fesm2020/testing.mjs.map +1 -1
- package/index.d.ts +398 -2
- package/package.json +2 -2
- package/schematics/migrations/router-link-with-href/bundle.js.map +2 -2
- package/schematics/ng-generate/standalone-migration/bundle.js +777 -1053
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
package/fesm2015/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular
|
|
2
|
+
* @license Angular v16.0.0-next.1
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -974,6 +974,15 @@ const NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty })
|
|
|
974
974
|
*/
|
|
975
975
|
// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.
|
|
976
976
|
const NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });
|
|
977
|
+
/**
|
|
978
|
+
* The `NG_ENV_ID` field on a DI token indicates special processing in the `EnvironmentInjector`:
|
|
979
|
+
* getting such tokens from the `EnvironmentInjector` will bypass the standard DI resolution
|
|
980
|
+
* strategy and instead will return implementation produced by the `NG_ENV_ID` factory function.
|
|
981
|
+
*
|
|
982
|
+
* This particular retrieval of DI tokens is mostly done to eliminate circular dependencies and
|
|
983
|
+
* improve tree-shaking.
|
|
984
|
+
*/
|
|
985
|
+
const NG_ENV_ID = getClosureSafeProperty({ __NG_ENV_ID__: getClosureSafeProperty });
|
|
977
986
|
|
|
978
987
|
/** Counter used to generate unique IDs for component definitions. */
|
|
979
988
|
let componentDefCount = 0;
|
|
@@ -1328,6 +1337,7 @@ const PREORDER_HOOK_FLAGS = 18;
|
|
|
1328
1337
|
const QUERIES = 19;
|
|
1329
1338
|
const ID = 20;
|
|
1330
1339
|
const EMBEDDED_VIEW_INJECTOR = 21;
|
|
1340
|
+
const ON_DESTROY_HOOKS = 22;
|
|
1331
1341
|
/**
|
|
1332
1342
|
* Size of LView's header. Necessary to adjust for it when setting slots.
|
|
1333
1343
|
*
|
|
@@ -1335,7 +1345,7 @@ const EMBEDDED_VIEW_INJECTOR = 21;
|
|
|
1335
1345
|
* instruction index into `LView` index. All other indexes should be in the `LView` index space and
|
|
1336
1346
|
* there should be no need to refer to `HEADER_OFFSET` anywhere else.
|
|
1337
1347
|
*/
|
|
1338
|
-
const HEADER_OFFSET =
|
|
1348
|
+
const HEADER_OFFSET = 23;
|
|
1339
1349
|
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
|
1340
1350
|
// failure based on types.
|
|
1341
1351
|
const unusedValueExportToPlacateAjd$3 = 1;
|
|
@@ -1773,6 +1783,15 @@ function updateTransplantedViewCount(lContainer, amount) {
|
|
|
1773
1783
|
parent = parent[PARENT];
|
|
1774
1784
|
}
|
|
1775
1785
|
}
|
|
1786
|
+
/**
|
|
1787
|
+
* Stores a LView-specific destroy callback.
|
|
1788
|
+
*/
|
|
1789
|
+
function storeLViewOnDestroy(lView, onDestroyCallback) {
|
|
1790
|
+
if (lView[ON_DESTROY_HOOKS] === null) {
|
|
1791
|
+
lView[ON_DESTROY_HOOKS] = [];
|
|
1792
|
+
}
|
|
1793
|
+
lView[ON_DESTROY_HOOKS].push(onDestroyCallback);
|
|
1794
|
+
}
|
|
1776
1795
|
|
|
1777
1796
|
const instructionState = {
|
|
1778
1797
|
lFrame: createLFrame(null),
|
|
@@ -2450,8 +2469,9 @@ function callHooks(currentView, arr, initPhase, currentNodeIndex) {
|
|
|
2450
2469
|
}
|
|
2451
2470
|
else {
|
|
2452
2471
|
const isInitHook = arr[i] < 0;
|
|
2453
|
-
if (isInitHook)
|
|
2472
|
+
if (isInitHook) {
|
|
2454
2473
|
currentView[PREORDER_HOOK_FLAGS] += 65536 /* PreOrderHookFlags.NumberOfInitHooksCalledIncrementer */;
|
|
2474
|
+
}
|
|
2455
2475
|
if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {
|
|
2456
2476
|
callHook(currentView, initPhase, arr, i);
|
|
2457
2477
|
currentView[PREORDER_HOOK_FLAGS] =
|
|
@@ -5952,10 +5972,6 @@ function cleanUpView(tView, lView) {
|
|
|
5952
5972
|
function processCleanups(tView, lView) {
|
|
5953
5973
|
const tCleanup = tView.cleanup;
|
|
5954
5974
|
const lCleanup = lView[CLEANUP];
|
|
5955
|
-
// `LCleanup` contains both share information with `TCleanup` as well as instance specific
|
|
5956
|
-
// information appended at the end. We need to know where the end of the `TCleanup` information
|
|
5957
|
-
// is, and we track this with `lastLCleanupIndex`.
|
|
5958
|
-
let lastLCleanupIndex = -1;
|
|
5959
5975
|
if (tCleanup !== null) {
|
|
5960
5976
|
for (let i = 0; i < tCleanup.length - 1; i += 2) {
|
|
5961
5977
|
if (typeof tCleanup[i] === 'string') {
|
|
@@ -5965,29 +5981,33 @@ function processCleanups(tView, lView) {
|
|
|
5965
5981
|
ngDevMode && assertNumber(targetIdx, 'cleanup target must be a number');
|
|
5966
5982
|
if (targetIdx >= 0) {
|
|
5967
5983
|
// unregister
|
|
5968
|
-
lCleanup[
|
|
5984
|
+
lCleanup[targetIdx]();
|
|
5969
5985
|
}
|
|
5970
5986
|
else {
|
|
5971
5987
|
// Subscription
|
|
5972
|
-
lCleanup[
|
|
5988
|
+
lCleanup[-targetIdx].unsubscribe();
|
|
5973
5989
|
}
|
|
5974
5990
|
i += 2;
|
|
5975
5991
|
}
|
|
5976
5992
|
else {
|
|
5977
5993
|
// This is a cleanup function that is grouped with the index of its context
|
|
5978
|
-
const context = lCleanup[
|
|
5994
|
+
const context = lCleanup[tCleanup[i + 1]];
|
|
5979
5995
|
tCleanup[i].call(context);
|
|
5980
5996
|
}
|
|
5981
5997
|
}
|
|
5982
5998
|
}
|
|
5983
5999
|
if (lCleanup !== null) {
|
|
5984
|
-
for (let i = lastLCleanupIndex + 1; i < lCleanup.length; i++) {
|
|
5985
|
-
const instanceCleanupFn = lCleanup[i];
|
|
5986
|
-
ngDevMode && assertFunction(instanceCleanupFn, 'Expecting instance cleanup function.');
|
|
5987
|
-
instanceCleanupFn();
|
|
5988
|
-
}
|
|
5989
6000
|
lView[CLEANUP] = null;
|
|
5990
6001
|
}
|
|
6002
|
+
const destroyHooks = lView[ON_DESTROY_HOOKS];
|
|
6003
|
+
if (destroyHooks !== null) {
|
|
6004
|
+
for (let i = 0; i < destroyHooks.length; i++) {
|
|
6005
|
+
const destroyHooksFn = destroyHooks[i];
|
|
6006
|
+
ngDevMode && assertFunction(destroyHooksFn, 'Expecting destroy hook to be a function.');
|
|
6007
|
+
destroyHooksFn();
|
|
6008
|
+
}
|
|
6009
|
+
lView[ON_DESTROY_HOOKS] = null;
|
|
6010
|
+
}
|
|
5991
6011
|
}
|
|
5992
6012
|
/** Calls onDestroy hooks for this view */
|
|
5993
6013
|
function executeOnDestroys(tView, lView) {
|
|
@@ -7921,6 +7941,9 @@ class R3Injector extends EnvironmentInjector {
|
|
|
7921
7941
|
}
|
|
7922
7942
|
get(token, notFoundValue = THROW_IF_NOT_FOUND, flags = InjectFlags.Default) {
|
|
7923
7943
|
this.assertNotDestroyed();
|
|
7944
|
+
if (token.hasOwnProperty(NG_ENV_ID)) {
|
|
7945
|
+
return token[NG_ENV_ID](this);
|
|
7946
|
+
}
|
|
7924
7947
|
flags = convertToBitFlags(flags);
|
|
7925
7948
|
// Set the injection context.
|
|
7926
7949
|
const previousInjector = setCurrentInjector(this);
|
|
@@ -8377,7 +8400,7 @@ class Version {
|
|
|
8377
8400
|
/**
|
|
8378
8401
|
* @publicApi
|
|
8379
8402
|
*/
|
|
8380
|
-
const VERSION = new Version('
|
|
8403
|
+
const VERSION = new Version('16.0.0-next.1');
|
|
8381
8404
|
|
|
8382
8405
|
// This default value is when checking the hierarchy for a token.
|
|
8383
8406
|
//
|
|
@@ -10630,24 +10653,24 @@ function locateHostElement(renderer, elementOrSelector, encapsulation) {
|
|
|
10630
10653
|
* On the first template pass, saves in TView:
|
|
10631
10654
|
* - Cleanup function
|
|
10632
10655
|
* - Index of context we just saved in LView.cleanupInstances
|
|
10633
|
-
*
|
|
10634
|
-
* This function can also be used to store instance specific cleanup fns. In that case the `context`
|
|
10635
|
-
* is `null` and the function is store in `LView` (rather than it `TView`).
|
|
10636
10656
|
*/
|
|
10637
10657
|
function storeCleanupWithContext(tView, lView, context, cleanupFn) {
|
|
10638
10658
|
const lCleanup = getOrCreateLViewCleanup(lView);
|
|
10639
|
-
|
|
10640
|
-
|
|
10641
|
-
|
|
10642
|
-
|
|
10643
|
-
|
|
10644
|
-
|
|
10645
|
-
|
|
10659
|
+
// Historically the `storeCleanupWithContext` was used to register both framework-level and
|
|
10660
|
+
// user-defined cleanup callbacks, but over time those two types of cleanups were separated. This
|
|
10661
|
+
// dev mode checks assures that user-level cleanup callbacks are _not_ stored in data structures
|
|
10662
|
+
// reserved for framework-specific hooks.
|
|
10663
|
+
ngDevMode &&
|
|
10664
|
+
assertDefined(context, 'Cleanup context is mandatory when registering framework-level destroy hooks');
|
|
10665
|
+
lCleanup.push(context);
|
|
10666
|
+
if (tView.firstCreatePass) {
|
|
10667
|
+
getOrCreateTViewCleanup(tView).push(cleanupFn, lCleanup.length - 1);
|
|
10646
10668
|
}
|
|
10647
10669
|
else {
|
|
10648
|
-
|
|
10649
|
-
|
|
10650
|
-
|
|
10670
|
+
// Make sure that no new framework-level cleanup functions are registered after the first
|
|
10671
|
+
// template pass is done (and TView data structures are meant to fully constructed).
|
|
10672
|
+
if (ngDevMode) {
|
|
10673
|
+
Object.freeze(getOrCreateTViewCleanup(tView));
|
|
10651
10674
|
}
|
|
10652
10675
|
}
|
|
10653
10676
|
}
|
|
@@ -11840,7 +11863,7 @@ class ViewRef$1 {
|
|
|
11840
11863
|
destroyLView(this._lView[TVIEW], this._lView);
|
|
11841
11864
|
}
|
|
11842
11865
|
onDestroy(callback) {
|
|
11843
|
-
|
|
11866
|
+
storeLViewOnDestroy(this._lView, callback);
|
|
11844
11867
|
}
|
|
11845
11868
|
/**
|
|
11846
11869
|
* Marks a view and all of its ancestors dirty.
|
|
@@ -25508,6 +25531,37 @@ function enableProdMode() {
|
|
|
25508
25531
|
|
|
25509
25532
|
// Public API for render
|
|
25510
25533
|
|
|
25534
|
+
/**
|
|
25535
|
+
* `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.
|
|
25536
|
+
* The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`
|
|
25537
|
+
* is injected in a component or directive, the callbacks run when that component or
|
|
25538
|
+
* directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.
|
|
25539
|
+
*/
|
|
25540
|
+
class DestroyRef {
|
|
25541
|
+
}
|
|
25542
|
+
/**
|
|
25543
|
+
* @internal
|
|
25544
|
+
* @nocollapse
|
|
25545
|
+
*/
|
|
25546
|
+
DestroyRef.__NG_ELEMENT_ID__ = injectDestroyRef;
|
|
25547
|
+
/**
|
|
25548
|
+
* @internal
|
|
25549
|
+
* @nocollapse
|
|
25550
|
+
*/
|
|
25551
|
+
DestroyRef.__NG_ENV_ID__ = (injector) => injector;
|
|
25552
|
+
class NodeInjectorDestroyRef extends DestroyRef {
|
|
25553
|
+
constructor(_lView) {
|
|
25554
|
+
super();
|
|
25555
|
+
this._lView = _lView;
|
|
25556
|
+
}
|
|
25557
|
+
onDestroy(callback) {
|
|
25558
|
+
storeLViewOnDestroy(this._lView, callback);
|
|
25559
|
+
}
|
|
25560
|
+
}
|
|
25561
|
+
function injectDestroyRef() {
|
|
25562
|
+
return new NodeInjectorDestroyRef(getLView());
|
|
25563
|
+
}
|
|
25564
|
+
|
|
25511
25565
|
/**
|
|
25512
25566
|
* Returns the NgModuleFactory with the given id (specified using [@NgModule.id
|
|
25513
25567
|
* field](api/core/NgModule#id)), if it exists and has been loaded. Factories for NgModules that do
|
|
@@ -27337,6 +27391,143 @@ ApplicationModule.ɵinj = /*@__PURE__*/ ɵɵdefineInjector({});
|
|
|
27337
27391
|
}], function () { return [{ type: ApplicationRef }]; }, null);
|
|
27338
27392
|
})();
|
|
27339
27393
|
|
|
27394
|
+
function escapeTransferStateContent(text) {
|
|
27395
|
+
const escapedText = {
|
|
27396
|
+
'&': '&a;',
|
|
27397
|
+
'"': '&q;',
|
|
27398
|
+
'\'': '&s;',
|
|
27399
|
+
'<': '&l;',
|
|
27400
|
+
'>': '&g;',
|
|
27401
|
+
};
|
|
27402
|
+
return text.replace(/[&"'<>]/g, s => escapedText[s]);
|
|
27403
|
+
}
|
|
27404
|
+
function unescapeTransferStateContent(text) {
|
|
27405
|
+
const unescapedText = {
|
|
27406
|
+
'&a;': '&',
|
|
27407
|
+
'&q;': '"',
|
|
27408
|
+
'&s;': '\'',
|
|
27409
|
+
'&l;': '<',
|
|
27410
|
+
'&g;': '>',
|
|
27411
|
+
};
|
|
27412
|
+
return text.replace(/&[^;]+;/g, s => unescapedText[s]);
|
|
27413
|
+
}
|
|
27414
|
+
/**
|
|
27415
|
+
* Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.
|
|
27416
|
+
*
|
|
27417
|
+
* Example:
|
|
27418
|
+
*
|
|
27419
|
+
* ```
|
|
27420
|
+
* const COUNTER_KEY = makeStateKey<number>('counter');
|
|
27421
|
+
* let value = 10;
|
|
27422
|
+
*
|
|
27423
|
+
* transferState.set(COUNTER_KEY, value);
|
|
27424
|
+
* ```
|
|
27425
|
+
*
|
|
27426
|
+
* @publicApi
|
|
27427
|
+
*/
|
|
27428
|
+
function makeStateKey(key) {
|
|
27429
|
+
return key;
|
|
27430
|
+
}
|
|
27431
|
+
/**
|
|
27432
|
+
* A key value store that is transferred from the application on the server side to the application
|
|
27433
|
+
* on the client side.
|
|
27434
|
+
*
|
|
27435
|
+
* The `TransferState` is available as an injectable token.
|
|
27436
|
+
* On the client, just inject this token using DI and use it, it will be lazily initialized.
|
|
27437
|
+
* On the server it's already included if `renderApplication` function is used. Otherwise, import
|
|
27438
|
+
* the `ServerTransferStateModule` module to make the `TransferState` available.
|
|
27439
|
+
*
|
|
27440
|
+
* The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only
|
|
27441
|
+
* boolean, number, string, null and non-class objects will be serialized and deserialized in a
|
|
27442
|
+
* non-lossy manner.
|
|
27443
|
+
*
|
|
27444
|
+
* @publicApi
|
|
27445
|
+
*/
|
|
27446
|
+
class TransferState {
|
|
27447
|
+
constructor() {
|
|
27448
|
+
this.store = {};
|
|
27449
|
+
this.onSerializeCallbacks = {};
|
|
27450
|
+
this.store = retrieveTransferredState(getDocument(), inject(APP_ID));
|
|
27451
|
+
}
|
|
27452
|
+
/**
|
|
27453
|
+
* Get the value corresponding to a key. Return `defaultValue` if key is not found.
|
|
27454
|
+
*/
|
|
27455
|
+
get(key, defaultValue) {
|
|
27456
|
+
return this.store[key] !== undefined ? this.store[key] : defaultValue;
|
|
27457
|
+
}
|
|
27458
|
+
/**
|
|
27459
|
+
* Set the value corresponding to a key.
|
|
27460
|
+
*/
|
|
27461
|
+
set(key, value) {
|
|
27462
|
+
this.store[key] = value;
|
|
27463
|
+
}
|
|
27464
|
+
/**
|
|
27465
|
+
* Remove a key from the store.
|
|
27466
|
+
*/
|
|
27467
|
+
remove(key) {
|
|
27468
|
+
delete this.store[key];
|
|
27469
|
+
}
|
|
27470
|
+
/**
|
|
27471
|
+
* Test whether a key exists in the store.
|
|
27472
|
+
*/
|
|
27473
|
+
hasKey(key) {
|
|
27474
|
+
return this.store.hasOwnProperty(key);
|
|
27475
|
+
}
|
|
27476
|
+
/**
|
|
27477
|
+
* Indicates whether the state is empty.
|
|
27478
|
+
*/
|
|
27479
|
+
get isEmpty() {
|
|
27480
|
+
return Object.keys(this.store).length === 0;
|
|
27481
|
+
}
|
|
27482
|
+
/**
|
|
27483
|
+
* Register a callback to provide the value for a key when `toJson` is called.
|
|
27484
|
+
*/
|
|
27485
|
+
onSerialize(key, callback) {
|
|
27486
|
+
this.onSerializeCallbacks[key] = callback;
|
|
27487
|
+
}
|
|
27488
|
+
/**
|
|
27489
|
+
* Serialize the current state of the store to JSON.
|
|
27490
|
+
*/
|
|
27491
|
+
toJson() {
|
|
27492
|
+
// Call the onSerialize callbacks and put those values into the store.
|
|
27493
|
+
for (const key in this.onSerializeCallbacks) {
|
|
27494
|
+
if (this.onSerializeCallbacks.hasOwnProperty(key)) {
|
|
27495
|
+
try {
|
|
27496
|
+
this.store[key] = this.onSerializeCallbacks[key]();
|
|
27497
|
+
}
|
|
27498
|
+
catch (e) {
|
|
27499
|
+
console.warn('Exception in onSerialize callback: ', e);
|
|
27500
|
+
}
|
|
27501
|
+
}
|
|
27502
|
+
}
|
|
27503
|
+
return JSON.stringify(this.store);
|
|
27504
|
+
}
|
|
27505
|
+
}
|
|
27506
|
+
TransferState.ɵfac = function TransferState_Factory(t) { return new (t || TransferState)(); };
|
|
27507
|
+
TransferState.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: TransferState, factory: TransferState.ɵfac, providedIn: 'root' });
|
|
27508
|
+
(function () {
|
|
27509
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(TransferState, [{
|
|
27510
|
+
type: Injectable,
|
|
27511
|
+
args: [{ providedIn: 'root' }]
|
|
27512
|
+
}], function () { return []; }, null);
|
|
27513
|
+
})();
|
|
27514
|
+
function retrieveTransferredState(doc, appId) {
|
|
27515
|
+
// Locate the script tag with the JSON data transferred from the server.
|
|
27516
|
+
// The id of the script tag is set to the Angular appId + 'state'.
|
|
27517
|
+
const script = doc.getElementById(appId + '-state');
|
|
27518
|
+
let initialState = {};
|
|
27519
|
+
if (script && script.textContent) {
|
|
27520
|
+
try {
|
|
27521
|
+
// Avoid using any here as it triggers lint errors in google3 (any is not allowed).
|
|
27522
|
+
initialState = JSON.parse(unescapeTransferStateContent(script.textContent));
|
|
27523
|
+
}
|
|
27524
|
+
catch (e) {
|
|
27525
|
+
console.warn('Exception while restoring TransferState for app ' + appId, e);
|
|
27526
|
+
}
|
|
27527
|
+
}
|
|
27528
|
+
return initialState;
|
|
27529
|
+
}
|
|
27530
|
+
|
|
27340
27531
|
/** Coerces a value (typically a string) to a boolean. */
|
|
27341
27532
|
function coerceToBoolean(value) {
|
|
27342
27533
|
return typeof value === 'boolean' ? value : (value != null && value !== 'false');
|
|
@@ -27439,6 +27630,483 @@ function ɵɵngDeclarePipe(decl) {
|
|
|
27439
27630
|
// clang-format off
|
|
27440
27631
|
// clang-format on
|
|
27441
27632
|
|
|
27633
|
+
/**
|
|
27634
|
+
* Symbol used to tell `Signal`s apart from other functions.
|
|
27635
|
+
*
|
|
27636
|
+
* This can be used to auto-unwrap signals in various cases, or to auto-wrap non-signal values.
|
|
27637
|
+
*/
|
|
27638
|
+
const SIGNAL = Symbol('SIGNAL');
|
|
27639
|
+
/**
|
|
27640
|
+
* Checks if the given `value` function is a reactive `Signal`.
|
|
27641
|
+
*/
|
|
27642
|
+
function isSignal(value) {
|
|
27643
|
+
var _a;
|
|
27644
|
+
return (_a = value[SIGNAL]) !== null && _a !== void 0 ? _a : false;
|
|
27645
|
+
}
|
|
27646
|
+
/**
|
|
27647
|
+
* Converts `fn` into a marked signal function (where `isSignal(fn)` will be `true`), and
|
|
27648
|
+
* potentially add some set of extra properties (passed as an object record `extraApi`).
|
|
27649
|
+
*/
|
|
27650
|
+
function createSignalFromFunction(fn, extraApi = {}) {
|
|
27651
|
+
fn[SIGNAL] = true;
|
|
27652
|
+
// Copy properties from `extraApi` to `fn` to complete the desired API of the `Signal`.
|
|
27653
|
+
return Object.assign(fn, extraApi);
|
|
27654
|
+
}
|
|
27655
|
+
/**
|
|
27656
|
+
* The default equality function used for `signal` and `computed`, which treats objects and arrays
|
|
27657
|
+
* as never equal, and all other primitive values using identity semantics.
|
|
27658
|
+
*
|
|
27659
|
+
* This allows signals to hold non-primitive values (arrays, objects, other collections) and still
|
|
27660
|
+
* propagate change notification upon explicit mutation without identity change.
|
|
27661
|
+
*
|
|
27662
|
+
* @developerPreview
|
|
27663
|
+
*/
|
|
27664
|
+
function defaultEquals(a, b) {
|
|
27665
|
+
// `Object.is` compares two values using identity semantics which is desired behavior for
|
|
27666
|
+
// primitive values. If `Object.is` determines two values to be equal we need to make sure that
|
|
27667
|
+
// those don't represent objects (we want to make sure that 2 objects are always considered
|
|
27668
|
+
// "unequal"). The null check is needed for the special case of JavaScript reporting null values
|
|
27669
|
+
// as objects (`typeof null === 'object'`).
|
|
27670
|
+
return (a === null || typeof a !== 'object') && Object.is(a, b);
|
|
27671
|
+
}
|
|
27672
|
+
|
|
27673
|
+
/**
|
|
27674
|
+
* Tracks the currently active reactive context (or `null` if there is no active
|
|
27675
|
+
* context).
|
|
27676
|
+
*/
|
|
27677
|
+
let activeConsumer = null;
|
|
27678
|
+
/**
|
|
27679
|
+
* Counter tracking the next `ProducerId` or `ConsumerId`.
|
|
27680
|
+
*/
|
|
27681
|
+
let _nextReactiveId = 0;
|
|
27682
|
+
/**
|
|
27683
|
+
* Get a new `ProducerId` or `ConsumerId`, allocated from the global sequence.
|
|
27684
|
+
*
|
|
27685
|
+
* The value returned is a type intersection of both branded types, and thus can be assigned to
|
|
27686
|
+
* either.
|
|
27687
|
+
*/
|
|
27688
|
+
function nextReactiveId() {
|
|
27689
|
+
return _nextReactiveId++;
|
|
27690
|
+
}
|
|
27691
|
+
/**
|
|
27692
|
+
* Set `consumer` as the active reactive context, and return the previous `Consumer`
|
|
27693
|
+
* (if any) for later restoration.
|
|
27694
|
+
*/
|
|
27695
|
+
function setActiveConsumer(consumer) {
|
|
27696
|
+
const prevConsumer = activeConsumer;
|
|
27697
|
+
activeConsumer = consumer;
|
|
27698
|
+
return prevConsumer;
|
|
27699
|
+
}
|
|
27700
|
+
/**
|
|
27701
|
+
* Notify all `Consumer`s of the given `Producer` that its value may have changed.
|
|
27702
|
+
*/
|
|
27703
|
+
function producerNotifyConsumers(producer) {
|
|
27704
|
+
for (const [consumerId, edge] of producer.consumers) {
|
|
27705
|
+
const consumer = edge.consumerRef.deref();
|
|
27706
|
+
if (consumer === undefined || consumer.trackingVersion !== edge.atTrackingVersion) {
|
|
27707
|
+
producer.consumers.delete(consumerId);
|
|
27708
|
+
consumer === null || consumer === void 0 ? void 0 : consumer.producers.delete(producer.id);
|
|
27709
|
+
continue;
|
|
27710
|
+
}
|
|
27711
|
+
consumer.notify();
|
|
27712
|
+
}
|
|
27713
|
+
}
|
|
27714
|
+
/**
|
|
27715
|
+
* Record a dependency on the given `Producer` by the current reactive `Consumer` if
|
|
27716
|
+
* one is present.
|
|
27717
|
+
*/
|
|
27718
|
+
function producerAccessed(producer) {
|
|
27719
|
+
if (activeConsumer === null) {
|
|
27720
|
+
return;
|
|
27721
|
+
}
|
|
27722
|
+
// Either create or update the dependency `Edge` in both directions.
|
|
27723
|
+
let edge = activeConsumer.producers.get(producer.id);
|
|
27724
|
+
if (edge === undefined) {
|
|
27725
|
+
edge = {
|
|
27726
|
+
consumerRef: activeConsumer.ref,
|
|
27727
|
+
producerRef: producer.ref,
|
|
27728
|
+
seenValueVersion: producer.valueVersion,
|
|
27729
|
+
atTrackingVersion: activeConsumer.trackingVersion,
|
|
27730
|
+
};
|
|
27731
|
+
activeConsumer.producers.set(producer.id, edge);
|
|
27732
|
+
producer.consumers.set(activeConsumer.id, edge);
|
|
27733
|
+
}
|
|
27734
|
+
else {
|
|
27735
|
+
edge.seenValueVersion = producer.valueVersion;
|
|
27736
|
+
edge.atTrackingVersion = activeConsumer.trackingVersion;
|
|
27737
|
+
}
|
|
27738
|
+
}
|
|
27739
|
+
/**
|
|
27740
|
+
* Checks if a `Producer` has a current value which is different than the value
|
|
27741
|
+
* last seen at a specific version by a `Consumer` which recorded a dependency on
|
|
27742
|
+
* this `Producer`.
|
|
27743
|
+
*/
|
|
27744
|
+
function producerPollStatus(producer, lastSeenValueVersion) {
|
|
27745
|
+
// `producer.valueVersion` may be stale, but a mismatch still means that the value
|
|
27746
|
+
// last seen by the `Consumer` is also stale.
|
|
27747
|
+
if (producer.valueVersion !== lastSeenValueVersion) {
|
|
27748
|
+
return true;
|
|
27749
|
+
}
|
|
27750
|
+
// Trigger the `Producer` to update its `valueVersion` if necessary.
|
|
27751
|
+
producer.checkForChangedValue();
|
|
27752
|
+
// At this point, we can trust `producer.valueVersion`.
|
|
27753
|
+
return producer.valueVersion !== lastSeenValueVersion;
|
|
27754
|
+
}
|
|
27755
|
+
/**
|
|
27756
|
+
* Function called to check the stale status of dependencies (producers) for a given consumer. This
|
|
27757
|
+
* is a verification step before refreshing a given consumer: if none of the the dependencies
|
|
27758
|
+
* reports a semantically new value, then the `Consumer` has not observed a real dependency change
|
|
27759
|
+
* (even though it may have been notified of one).
|
|
27760
|
+
*/
|
|
27761
|
+
function consumerPollValueStatus(consumer) {
|
|
27762
|
+
for (const [producerId, edge] of consumer.producers) {
|
|
27763
|
+
const producer = edge.producerRef.deref();
|
|
27764
|
+
if (producer === undefined || edge.atTrackingVersion !== consumer.trackingVersion) {
|
|
27765
|
+
// This dependency edge is stale, so remove it.
|
|
27766
|
+
consumer.producers.delete(producerId);
|
|
27767
|
+
producer === null || producer === void 0 ? void 0 : producer.consumers.delete(consumer.id);
|
|
27768
|
+
continue;
|
|
27769
|
+
}
|
|
27770
|
+
if (producerPollStatus(producer, edge.seenValueVersion)) {
|
|
27771
|
+
// One of the dependencies reports a real value change.
|
|
27772
|
+
return true;
|
|
27773
|
+
}
|
|
27774
|
+
}
|
|
27775
|
+
// No dependency reported a real value change, so the `Consumer` has also not been
|
|
27776
|
+
// impacted.
|
|
27777
|
+
return false;
|
|
27778
|
+
}
|
|
27779
|
+
|
|
27780
|
+
// tslint:disable-next-line: no-toplevel-property-access
|
|
27781
|
+
const WeakRef = _global['WeakRef'];
|
|
27782
|
+
|
|
27783
|
+
/**
|
|
27784
|
+
* Create a computed `Signal` which derives a reactive value from an expression.
|
|
27785
|
+
*
|
|
27786
|
+
* @developerPreview
|
|
27787
|
+
*/
|
|
27788
|
+
function computed(computation, equal = defaultEquals) {
|
|
27789
|
+
const node = new ComputedImpl(computation, equal);
|
|
27790
|
+
return createSignalFromFunction(node.signal.bind(node));
|
|
27791
|
+
}
|
|
27792
|
+
/**
|
|
27793
|
+
* A dedicated symbol used before a computed value has been calculated for the first time.
|
|
27794
|
+
* Explicitly typed as `any` so we can use it as signal's value.
|
|
27795
|
+
*/
|
|
27796
|
+
const UNSET = Symbol('UNSET');
|
|
27797
|
+
/**
|
|
27798
|
+
* A dedicated symbol used in place of a computed signal value to indicate that a given computation
|
|
27799
|
+
* is in progress. Used to detect cycles in computation chains.
|
|
27800
|
+
* Explicitly typed as `any` so we can use it as signal's value.
|
|
27801
|
+
*/
|
|
27802
|
+
const COMPUTING = Symbol('COMPUTING');
|
|
27803
|
+
/**
|
|
27804
|
+
* A dedicated symbol used in place of a computed signal value to indicate that a given computation
|
|
27805
|
+
* failed. The thrown error is cached until the computation gets dirty again.
|
|
27806
|
+
* Explicitly typed as `any` so we can use it as signal's value.
|
|
27807
|
+
*/
|
|
27808
|
+
const ERRORED = Symbol('ERRORED');
|
|
27809
|
+
/**
|
|
27810
|
+
* A computation, which derives a value from a declarative reactive expression.
|
|
27811
|
+
*
|
|
27812
|
+
* `Computed`s are both `Producer`s and `Consumer`s of reactivity.
|
|
27813
|
+
*/
|
|
27814
|
+
class ComputedImpl {
|
|
27815
|
+
constructor(computation, equal) {
|
|
27816
|
+
this.computation = computation;
|
|
27817
|
+
this.equal = equal;
|
|
27818
|
+
/**
|
|
27819
|
+
* Current value of the computation.
|
|
27820
|
+
*
|
|
27821
|
+
* This can also be one of the special values `UNSET`, `COMPUTING`, or `ERRORED`.
|
|
27822
|
+
*/
|
|
27823
|
+
this.value = UNSET;
|
|
27824
|
+
/**
|
|
27825
|
+
* If `value` is `ERRORED`, the error caught from the last computation attempt which will
|
|
27826
|
+
* be re-thrown.
|
|
27827
|
+
*/
|
|
27828
|
+
this.error = null;
|
|
27829
|
+
/**
|
|
27830
|
+
* Flag indicating that the computation is currently stale, meaning that one of the
|
|
27831
|
+
* dependencies has notified of a potential change.
|
|
27832
|
+
*
|
|
27833
|
+
* It's possible that no dependency has _actually_ changed, in which case the `stale`
|
|
27834
|
+
* state can be resolved without recomputing the value.
|
|
27835
|
+
*/
|
|
27836
|
+
this.stale = true;
|
|
27837
|
+
this.id = nextReactiveId();
|
|
27838
|
+
this.ref = new WeakRef(this);
|
|
27839
|
+
this.producers = new Map();
|
|
27840
|
+
this.consumers = new Map();
|
|
27841
|
+
this.trackingVersion = 0;
|
|
27842
|
+
this.valueVersion = 0;
|
|
27843
|
+
}
|
|
27844
|
+
checkForChangedValue() {
|
|
27845
|
+
if (!this.stale) {
|
|
27846
|
+
// The current value and its version are already up to date.
|
|
27847
|
+
return;
|
|
27848
|
+
}
|
|
27849
|
+
// The current value is stale. Check whether we need to produce a new one.
|
|
27850
|
+
if (this.value !== UNSET && this.value !== COMPUTING && !consumerPollValueStatus(this)) {
|
|
27851
|
+
// Even though we were previously notified of a potential dependency update, all of
|
|
27852
|
+
// our dependencies report that they have not actually changed in value, so we can
|
|
27853
|
+
// resolve the stale state without needing to recompute the current value.
|
|
27854
|
+
this.stale = false;
|
|
27855
|
+
return;
|
|
27856
|
+
}
|
|
27857
|
+
// The current value is stale, and needs to be recomputed. It still may not change -
|
|
27858
|
+
// that depends on whether the newly computed value is equal to the old.
|
|
27859
|
+
this.recomputeValue();
|
|
27860
|
+
}
|
|
27861
|
+
recomputeValue() {
|
|
27862
|
+
if (this.value === COMPUTING) {
|
|
27863
|
+
// Our computation somehow led to a cyclic read of itself.
|
|
27864
|
+
throw new Error('Detected cycle in computations.');
|
|
27865
|
+
}
|
|
27866
|
+
const oldValue = this.value;
|
|
27867
|
+
this.value = COMPUTING;
|
|
27868
|
+
// As we're re-running the computation, update our dependent tracking version number.
|
|
27869
|
+
this.trackingVersion++;
|
|
27870
|
+
const prevConsumer = setActiveConsumer(this);
|
|
27871
|
+
let newValue;
|
|
27872
|
+
try {
|
|
27873
|
+
newValue = this.computation();
|
|
27874
|
+
}
|
|
27875
|
+
catch (err) {
|
|
27876
|
+
newValue = ERRORED;
|
|
27877
|
+
this.error = err;
|
|
27878
|
+
}
|
|
27879
|
+
finally {
|
|
27880
|
+
setActiveConsumer(prevConsumer);
|
|
27881
|
+
}
|
|
27882
|
+
this.stale = false;
|
|
27883
|
+
if (oldValue !== UNSET && oldValue !== ERRORED && newValue !== ERRORED &&
|
|
27884
|
+
this.equal(oldValue, newValue)) {
|
|
27885
|
+
// No change to `valueVersion` - old and new values are
|
|
27886
|
+
// semantically equivalent.
|
|
27887
|
+
this.value = oldValue;
|
|
27888
|
+
return;
|
|
27889
|
+
}
|
|
27890
|
+
this.value = newValue;
|
|
27891
|
+
this.valueVersion++;
|
|
27892
|
+
}
|
|
27893
|
+
notify() {
|
|
27894
|
+
if (this.stale) {
|
|
27895
|
+
// We've already notified consumers that this value has potentially changed.
|
|
27896
|
+
return;
|
|
27897
|
+
}
|
|
27898
|
+
// Record that the currently cached value may be stale.
|
|
27899
|
+
this.stale = true;
|
|
27900
|
+
// Notify any consumers about the potential change.
|
|
27901
|
+
producerNotifyConsumers(this);
|
|
27902
|
+
}
|
|
27903
|
+
signal() {
|
|
27904
|
+
// Check if the value needs updating before returning it.
|
|
27905
|
+
this.checkForChangedValue();
|
|
27906
|
+
// Record that someone looked at this signal.
|
|
27907
|
+
producerAccessed(this);
|
|
27908
|
+
if (this.value === ERRORED) {
|
|
27909
|
+
throw this.error;
|
|
27910
|
+
}
|
|
27911
|
+
return this.value;
|
|
27912
|
+
}
|
|
27913
|
+
}
|
|
27914
|
+
|
|
27915
|
+
/**
|
|
27916
|
+
* Watches a reactive expression and allows it to be scheduled to re-run
|
|
27917
|
+
* when any dependencies notify of a change.
|
|
27918
|
+
*
|
|
27919
|
+
* `Watch` doesn't run reactive expressions itself, but relies on a consumer-
|
|
27920
|
+
* provided scheduling operation to coordinate calling `Watch.run()`.
|
|
27921
|
+
*/
|
|
27922
|
+
class Watch {
|
|
27923
|
+
constructor(watch, schedule) {
|
|
27924
|
+
this.watch = watch;
|
|
27925
|
+
this.schedule = schedule;
|
|
27926
|
+
this.id = nextReactiveId();
|
|
27927
|
+
this.ref = new WeakRef(this);
|
|
27928
|
+
this.producers = new Map();
|
|
27929
|
+
this.trackingVersion = 0;
|
|
27930
|
+
this.dirty = false;
|
|
27931
|
+
}
|
|
27932
|
+
notify() {
|
|
27933
|
+
if (!this.dirty) {
|
|
27934
|
+
this.schedule(this);
|
|
27935
|
+
}
|
|
27936
|
+
this.dirty = true;
|
|
27937
|
+
}
|
|
27938
|
+
/**
|
|
27939
|
+
* Execute the reactive expression in the context of this `Watch` consumer.
|
|
27940
|
+
*
|
|
27941
|
+
* Should be called by the user scheduling algorithm when the provided
|
|
27942
|
+
* `schedule` hook is called by `Watch`.
|
|
27943
|
+
*/
|
|
27944
|
+
run() {
|
|
27945
|
+
this.dirty = false;
|
|
27946
|
+
if (this.trackingVersion !== 0 && !consumerPollValueStatus(this)) {
|
|
27947
|
+
return;
|
|
27948
|
+
}
|
|
27949
|
+
const prevConsumer = setActiveConsumer(this);
|
|
27950
|
+
this.trackingVersion++;
|
|
27951
|
+
try {
|
|
27952
|
+
this.watch();
|
|
27953
|
+
}
|
|
27954
|
+
finally {
|
|
27955
|
+
setActiveConsumer(prevConsumer);
|
|
27956
|
+
}
|
|
27957
|
+
}
|
|
27958
|
+
}
|
|
27959
|
+
|
|
27960
|
+
/**
|
|
27961
|
+
* Create a global `Effect` for the given reactive function.
|
|
27962
|
+
*
|
|
27963
|
+
* @developerPreview
|
|
27964
|
+
*/
|
|
27965
|
+
function effect(effectFn) {
|
|
27966
|
+
const watch = new Watch(effectFn, queueWatch);
|
|
27967
|
+
globalWatches.add(watch);
|
|
27968
|
+
// Effects start dirty.
|
|
27969
|
+
watch.notify();
|
|
27970
|
+
return {
|
|
27971
|
+
consumer: watch,
|
|
27972
|
+
schedule: watch.notify.bind(watch),
|
|
27973
|
+
destroy: () => {
|
|
27974
|
+
queuedWatches.delete(watch);
|
|
27975
|
+
globalWatches.delete(watch);
|
|
27976
|
+
},
|
|
27977
|
+
};
|
|
27978
|
+
}
|
|
27979
|
+
/**
|
|
27980
|
+
* Get a `Promise` that resolves when any scheduled effects have resolved.
|
|
27981
|
+
*/
|
|
27982
|
+
function effectsDone() {
|
|
27983
|
+
var _a;
|
|
27984
|
+
return (_a = watchQueuePromise === null || watchQueuePromise === void 0 ? void 0 : watchQueuePromise.promise) !== null && _a !== void 0 ? _a : Promise.resolve();
|
|
27985
|
+
}
|
|
27986
|
+
/**
|
|
27987
|
+
* Shut down all active effects.
|
|
27988
|
+
*/
|
|
27989
|
+
function resetEffects() {
|
|
27990
|
+
queuedWatches.clear();
|
|
27991
|
+
globalWatches.clear();
|
|
27992
|
+
}
|
|
27993
|
+
const globalWatches = new Set();
|
|
27994
|
+
const queuedWatches = new Set();
|
|
27995
|
+
let watchQueuePromise = null;
|
|
27996
|
+
function queueWatch(watch) {
|
|
27997
|
+
if (queuedWatches.has(watch) || !globalWatches.has(watch)) {
|
|
27998
|
+
return;
|
|
27999
|
+
}
|
|
28000
|
+
queuedWatches.add(watch);
|
|
28001
|
+
if (watchQueuePromise === null) {
|
|
28002
|
+
Promise.resolve().then(runWatchQueue);
|
|
28003
|
+
let resolveFn;
|
|
28004
|
+
const promise = new Promise((resolve) => {
|
|
28005
|
+
resolveFn = resolve;
|
|
28006
|
+
});
|
|
28007
|
+
watchQueuePromise = {
|
|
28008
|
+
promise,
|
|
28009
|
+
resolveFn,
|
|
28010
|
+
};
|
|
28011
|
+
}
|
|
28012
|
+
}
|
|
28013
|
+
function runWatchQueue() {
|
|
28014
|
+
for (const watch of queuedWatches) {
|
|
28015
|
+
queuedWatches.delete(watch);
|
|
28016
|
+
watch.run();
|
|
28017
|
+
}
|
|
28018
|
+
watchQueuePromise.resolveFn();
|
|
28019
|
+
watchQueuePromise = null;
|
|
28020
|
+
}
|
|
28021
|
+
|
|
28022
|
+
/**
|
|
28023
|
+
* Backing type for a `SettableSignal`, a mutable reactive value.
|
|
28024
|
+
*/
|
|
28025
|
+
class SettableSignalImpl {
|
|
28026
|
+
constructor(value, equal) {
|
|
28027
|
+
this.value = value;
|
|
28028
|
+
this.equal = equal;
|
|
28029
|
+
this.id = nextReactiveId();
|
|
28030
|
+
this.ref = new WeakRef(this);
|
|
28031
|
+
this.consumers = new Map();
|
|
28032
|
+
this.valueVersion = 0;
|
|
28033
|
+
}
|
|
28034
|
+
checkForChangedValue() {
|
|
28035
|
+
// Settable signals can only change when set, so there's nothing to check here.
|
|
28036
|
+
}
|
|
28037
|
+
/**
|
|
28038
|
+
* Directly update the value of the signal to a new value, which may or may not be
|
|
28039
|
+
* equal to the previous.
|
|
28040
|
+
*
|
|
28041
|
+
* In the event that `newValue` is semantically equal to the current value, `set` is
|
|
28042
|
+
* a no-op.
|
|
28043
|
+
*/
|
|
28044
|
+
set(newValue) {
|
|
28045
|
+
if (!this.equal(this.value, newValue)) {
|
|
28046
|
+
this.value = newValue;
|
|
28047
|
+
this.valueVersion++;
|
|
28048
|
+
producerNotifyConsumers(this);
|
|
28049
|
+
}
|
|
28050
|
+
}
|
|
28051
|
+
/**
|
|
28052
|
+
* Derive a new value for the signal from its current value using the `updater` function.
|
|
28053
|
+
*
|
|
28054
|
+
* This is equivalent to calling `set` on the result of running `updater` on the current
|
|
28055
|
+
* value.
|
|
28056
|
+
*/
|
|
28057
|
+
update(updater) {
|
|
28058
|
+
this.set(updater(this.value));
|
|
28059
|
+
}
|
|
28060
|
+
/**
|
|
28061
|
+
* Calls `mutator` on the current value and assumes that it has been mutated.
|
|
28062
|
+
*/
|
|
28063
|
+
mutate(mutator) {
|
|
28064
|
+
// Mutate bypasses equality checks as it's by definition changing the value.
|
|
28065
|
+
mutator(this.value);
|
|
28066
|
+
this.valueVersion++;
|
|
28067
|
+
producerNotifyConsumers(this);
|
|
28068
|
+
}
|
|
28069
|
+
signal() {
|
|
28070
|
+
producerAccessed(this);
|
|
28071
|
+
return this.value;
|
|
28072
|
+
}
|
|
28073
|
+
}
|
|
28074
|
+
/**
|
|
28075
|
+
* Create a `Signal` that can be set or updated directly.
|
|
28076
|
+
*
|
|
28077
|
+
* @developerPreview
|
|
28078
|
+
*/
|
|
28079
|
+
function signal(initialValue, equal = defaultEquals) {
|
|
28080
|
+
const signalNode = new SettableSignalImpl(initialValue, equal);
|
|
28081
|
+
// Casting here is required for g3.
|
|
28082
|
+
const signalFn = createSignalFromFunction(signalNode.signal.bind(signalNode), {
|
|
28083
|
+
set: signalNode.set.bind(signalNode),
|
|
28084
|
+
update: signalNode.update.bind(signalNode),
|
|
28085
|
+
mutate: signalNode.mutate.bind(signalNode),
|
|
28086
|
+
});
|
|
28087
|
+
return signalFn;
|
|
28088
|
+
}
|
|
28089
|
+
|
|
28090
|
+
/**
|
|
28091
|
+
* Execute an arbitrary function in a non-reactive (non-tracking) context. The executed function
|
|
28092
|
+
* can, optionally, return a value.
|
|
28093
|
+
*
|
|
28094
|
+
* @developerPreview
|
|
28095
|
+
*/
|
|
28096
|
+
function untracked(nonReactiveReadsFn) {
|
|
28097
|
+
const prevConsumer = setActiveConsumer(null);
|
|
28098
|
+
// We are not trying to catch any particular errors here, just making sure that the consumers
|
|
28099
|
+
// stack is restored in case of errors.
|
|
28100
|
+
try {
|
|
28101
|
+
return nonReactiveReadsFn();
|
|
28102
|
+
}
|
|
28103
|
+
finally {
|
|
28104
|
+
setActiveConsumer(prevConsumer);
|
|
28105
|
+
}
|
|
28106
|
+
}
|
|
28107
|
+
|
|
28108
|
+
// This file exists to allow the set of reactivity exports to be modified in g3, as these APIs are
|
|
28109
|
+
|
|
27442
28110
|
/**
|
|
27443
28111
|
* Creates a `ComponentRef` instance based on provided component type and a set of options.
|
|
27444
28112
|
*
|
|
@@ -27606,5 +28274,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
27606
28274
|
* Generated bundle index. Do not edit.
|
|
27607
28275
|
*/
|
|
27608
28276
|
|
|
27609
|
-
export { ANALYZE_FOR_ENTRY_COMPONENTS, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertPlatform, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isStandalone, makeEnvironmentProviders, platformCore, reflectComponentType, resolveForwardRef, setTestabilityGetter, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, getDebugNode as ɵgetDebugNode, getDebugNodeR2 as ɵgetDebugNodeR2, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isListLikeIterable as ɵisListLikeIterable, isNgModule as ɵisNgModule, isObservable as ɵisObservable, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, ɵivyEnabled, makeDecorator as ɵmakeDecorator, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
|
|
28277
|
+
export { ANALYZE_FOR_ENTRY_COMPONENTS, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertPlatform, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, platformCore, reflectComponentType, resolveForwardRef, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, TransferState as ɵTransferState, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, escapeTransferStateContent as ɵescapeTransferStateContent, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, getDebugNode as ɵgetDebugNode, getDebugNodeR2 as ɵgetDebugNodeR2, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isListLikeIterable as ɵisListLikeIterable, isNgModule as ɵisNgModule, isObservable as ɵisObservable, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, ɵivyEnabled, makeDecorator as ɵmakeDecorator, makeStateKey as ɵmakeStateKey, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unescapeTransferStateContent as ɵunescapeTransferStateContent, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
|
|
27610
28278
|
//# sourceMappingURL=core.mjs.map
|