@angular/core 15.0.0 → 15.0.2
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/core_private_export.mjs +2 -1
- package/esm2020/src/error_details_base_url.mjs +6 -2
- package/esm2020/src/render/api.mjs +1 -3
- package/esm2020/src/render3/assert.mjs +1 -5
- package/esm2020/src/render3/component_ref.mjs +1 -12
- package/esm2020/src/render3/i18n/i18n_parse.mjs +3 -2
- package/esm2020/src/render3/index.mjs +2 -2
- package/esm2020/src/render3/instructions/listener.mjs +6 -5
- package/esm2020/src/render3/instructions/shared.mjs +87 -162
- package/esm2020/src/render3/interfaces/view.mjs +1 -10
- package/esm2020/src/render3/node_manipulation.mjs +11 -20
- package/esm2020/src/render3/util/discovery_utils.mjs +3 -32
- package/esm2020/src/sanitization/bypass.mjs +4 -3
- package/esm2020/src/sanitization/html_sanitizer.mjs +3 -2
- package/esm2020/src/sanitization/sanitization.mjs +3 -3
- package/esm2020/src/sanitization/url_sanitizer.mjs +3 -2
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/logger.mjs +3 -3
- package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
- package/fesm2015/core.mjs +210 -1050
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/testing.mjs +211 -1051
- package/fesm2015/testing.mjs.map +1 -1
- package/fesm2020/core.mjs +210 -1050
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/testing.mjs +211 -1051
- package/fesm2020/testing.mjs.map +1 -1
- package/index.d.ts +8 -223
- package/package.json +1 -1
- package/testing/index.d.ts +1 -1
- package/esm2020/src/render3/instructions/lview_debug.mjs +0 -684
- package/esm2020/src/util/named_array_type.mjs +0 -40
package/fesm2015/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v15.0.
|
|
2
|
+
* @license Angular v15.0.2
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -150,11 +150,15 @@ function isEnvironmentProviders(value) {
|
|
|
150
150
|
/**
|
|
151
151
|
* Base URL for the error details page.
|
|
152
152
|
*
|
|
153
|
-
* Keep
|
|
153
|
+
* Keep this constant in sync across:
|
|
154
154
|
* - packages/compiler-cli/src/ngtsc/diagnostics/src/error_details_base_url.ts
|
|
155
155
|
* - packages/core/src/error_details_base_url.ts
|
|
156
156
|
*/
|
|
157
157
|
const ERROR_DETAILS_PAGE_BASE_URL = 'https://angular.io/errors';
|
|
158
|
+
/**
|
|
159
|
+
* URL for the XSS security documentation.
|
|
160
|
+
*/
|
|
161
|
+
const XSS_SECURITY_URL = 'https://g.co/ng/security#xss';
|
|
158
162
|
|
|
159
163
|
/**
|
|
160
164
|
* @license
|
|
@@ -1478,15 +1482,6 @@ const EMBEDDED_VIEW_INJECTOR = 21;
|
|
|
1478
1482
|
* there should be no need to refer to `HEADER_OFFSET` anywhere else.
|
|
1479
1483
|
*/
|
|
1480
1484
|
const HEADER_OFFSET = 22;
|
|
1481
|
-
/**
|
|
1482
|
-
* Converts `TViewType` into human readable text.
|
|
1483
|
-
* Make sure this matches with `TViewType`
|
|
1484
|
-
*/
|
|
1485
|
-
const TViewTypeAsString = [
|
|
1486
|
-
'Root',
|
|
1487
|
-
'Component',
|
|
1488
|
-
'Embedded', // 2
|
|
1489
|
-
];
|
|
1490
1485
|
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
|
1491
1486
|
// failure based on types.
|
|
1492
1487
|
const unusedValueExportToPlacateAjd$7 = 1;
|
|
@@ -1609,10 +1604,6 @@ function assertIndexInDeclRange(lView, index) {
|
|
|
1609
1604
|
const tView = lView[1];
|
|
1610
1605
|
assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);
|
|
1611
1606
|
}
|
|
1612
|
-
function assertIndexInVarsRange(lView, index) {
|
|
1613
|
-
const tView = lView[1];
|
|
1614
|
-
assertBetween(tView.bindingStartIndex, tView.expandoStartIndex, index);
|
|
1615
|
-
}
|
|
1616
1607
|
function assertIndexInExpandoRange(lView, index) {
|
|
1617
1608
|
const tView = lView[1];
|
|
1618
1609
|
assertBetween(tView.expandoStartIndex, lView.length, index);
|
|
@@ -6500,26 +6491,17 @@ function processCleanups(tView, lView) {
|
|
|
6500
6491
|
if (tCleanup !== null) {
|
|
6501
6492
|
for (let i = 0; i < tCleanup.length - 1; i += 2) {
|
|
6502
6493
|
if (typeof tCleanup[i] === 'string') {
|
|
6503
|
-
// This is a native DOM listener
|
|
6504
|
-
|
|
6505
|
-
const
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
if (typeof useCaptureOrSubIdx === 'boolean') {
|
|
6511
|
-
// native DOM listener registered with Renderer3
|
|
6512
|
-
target.removeEventListener(tCleanup[i], listener, useCaptureOrSubIdx);
|
|
6494
|
+
// This is a native DOM listener. It will occupy 4 entries in the TCleanup array (hence i +=
|
|
6495
|
+
// 2 at the end of this block).
|
|
6496
|
+
const targetIdx = tCleanup[i + 3];
|
|
6497
|
+
ngDevMode && assertNumber(targetIdx, 'cleanup target must be a number');
|
|
6498
|
+
if (targetIdx >= 0) {
|
|
6499
|
+
// unregister
|
|
6500
|
+
lCleanup[lastLCleanupIndex = targetIdx]();
|
|
6513
6501
|
}
|
|
6514
6502
|
else {
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
lCleanup[lastLCleanupIndex = useCaptureOrSubIdx]();
|
|
6518
|
-
}
|
|
6519
|
-
else {
|
|
6520
|
-
// Subscription
|
|
6521
|
-
lCleanup[lastLCleanupIndex = -useCaptureOrSubIdx].unsubscribe();
|
|
6522
|
-
}
|
|
6503
|
+
// Subscription
|
|
6504
|
+
lCleanup[lastLCleanupIndex = -targetIdx].unsubscribe();
|
|
6523
6505
|
}
|
|
6524
6506
|
i += 2;
|
|
6525
6507
|
}
|
|
@@ -7381,7 +7363,7 @@ class SafeValueImpl {
|
|
|
7381
7363
|
}
|
|
7382
7364
|
toString() {
|
|
7383
7365
|
return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +
|
|
7384
|
-
` (see
|
|
7366
|
+
` (see ${XSS_SECURITY_URL})`;
|
|
7385
7367
|
}
|
|
7386
7368
|
}
|
|
7387
7369
|
class SafeHtmlImpl extends SafeValueImpl {
|
|
@@ -7419,7 +7401,7 @@ function allowSanitizationBypassAndThrow(value, type) {
|
|
|
7419
7401
|
// Allow ResourceURLs in URL contexts, they are strictly more trusted.
|
|
7420
7402
|
if (actualType === "ResourceURL" /* BypassType.ResourceUrl */ && type === "URL" /* BypassType.Url */)
|
|
7421
7403
|
return true;
|
|
7422
|
-
throw new Error(`Required a safe ${type}, got a ${actualType} (see
|
|
7404
|
+
throw new Error(`Required a safe ${type}, got a ${actualType} (see ${XSS_SECURITY_URL})`);
|
|
7423
7405
|
}
|
|
7424
7406
|
return actualType === type;
|
|
7425
7407
|
}
|
|
@@ -7659,7 +7641,7 @@ function _sanitizeUrl(url) {
|
|
|
7659
7641
|
if (url.match(SAFE_URL_PATTERN))
|
|
7660
7642
|
return url;
|
|
7661
7643
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
7662
|
-
console.warn(`WARNING: sanitizing unsafe URL value ${url} (see
|
|
7644
|
+
console.warn(`WARNING: sanitizing unsafe URL value ${url} (see ${XSS_SECURITY_URL})`);
|
|
7663
7645
|
}
|
|
7664
7646
|
return 'unsafe:' + url;
|
|
7665
7647
|
}
|
|
@@ -7887,7 +7869,7 @@ function _sanitizeHtml(defaultDoc, unsafeHtmlInput) {
|
|
|
7887
7869
|
const sanitizer = new SanitizingHtmlSerializer();
|
|
7888
7870
|
const safeHtml = sanitizer.sanitizeChildren(getTemplateContent(inertBodyElement) || inertBodyElement);
|
|
7889
7871
|
if ((typeof ngDevMode === 'undefined' || ngDevMode) && sanitizer.sanitizedSomething) {
|
|
7890
|
-
console.warn(
|
|
7872
|
+
console.warn(`WARNING: sanitizing HTML stripped some content, see ${XSS_SECURITY_URL}`);
|
|
7891
7873
|
}
|
|
7892
7874
|
return trustedHTMLFromString(safeHtml);
|
|
7893
7875
|
}
|
|
@@ -8034,8 +8016,7 @@ function ɵɵsanitizeResourceUrl(unsafeResourceUrl) {
|
|
|
8034
8016
|
if (allowSanitizationBypassAndThrow(unsafeResourceUrl, "ResourceURL" /* BypassType.ResourceUrl */)) {
|
|
8035
8017
|
return trustedScriptURLFromStringBypass(unwrapSafeValue(unsafeResourceUrl));
|
|
8036
8018
|
}
|
|
8037
|
-
throw new RuntimeError(904 /* RuntimeErrorCode.UNSAFE_VALUE_IN_RESOURCE_URL */, ngDevMode &&
|
|
8038
|
-
'unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');
|
|
8019
|
+
throw new RuntimeError(904 /* RuntimeErrorCode.UNSAFE_VALUE_IN_RESOURCE_URL */, ngDevMode && `unsafe value used in a resource URL context (see ${XSS_SECURITY_URL})`);
|
|
8039
8020
|
}
|
|
8040
8021
|
/**
|
|
8041
8022
|
* A `script` sanitizer which only lets trusted javascript through.
|
|
@@ -9047,7 +9028,6 @@ function unwrapElementRef(value) {
|
|
|
9047
9028
|
* Use of this source code is governed by an MIT-style license that can be
|
|
9048
9029
|
* found in the LICENSE file at https://angular.io/license
|
|
9049
9030
|
*/
|
|
9050
|
-
const Renderer2Interceptor = new InjectionToken('Renderer2Interceptor');
|
|
9051
9031
|
/**
|
|
9052
9032
|
* Creates and initializes a custom renderer that implements the `Renderer2` base class.
|
|
9053
9033
|
*
|
|
@@ -9131,7 +9111,7 @@ class Version {
|
|
|
9131
9111
|
/**
|
|
9132
9112
|
* @publicApi
|
|
9133
9113
|
*/
|
|
9134
|
-
const VERSION = new Version('15.0.
|
|
9114
|
+
const VERSION = new Version('15.0.2');
|
|
9135
9115
|
|
|
9136
9116
|
/**
|
|
9137
9117
|
* @license
|
|
@@ -10980,812 +10960,6 @@ function ɵɵinvalidFactory() {
|
|
|
10980
10960
|
throw new Error(msg);
|
|
10981
10961
|
}
|
|
10982
10962
|
|
|
10983
|
-
/**
|
|
10984
|
-
* @license
|
|
10985
|
-
* Copyright Google LLC All Rights Reserved.
|
|
10986
|
-
*
|
|
10987
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
10988
|
-
* found in the LICENSE file at https://angular.io/license
|
|
10989
|
-
*/
|
|
10990
|
-
/**
|
|
10991
|
-
* THIS FILE CONTAINS CODE WHICH SHOULD BE TREE SHAKEN AND NEVER CALLED FROM PRODUCTION CODE!!!
|
|
10992
|
-
*/
|
|
10993
|
-
/**
|
|
10994
|
-
* Creates an `Array` construction with a given name. This is useful when
|
|
10995
|
-
* looking for memory consumption to see what time of array it is.
|
|
10996
|
-
*
|
|
10997
|
-
*
|
|
10998
|
-
* @param name Name to give to the constructor
|
|
10999
|
-
* @returns A subclass of `Array` if possible. This can only be done in
|
|
11000
|
-
* environments which support `class` construct.
|
|
11001
|
-
*/
|
|
11002
|
-
function createNamedArrayType(name) {
|
|
11003
|
-
// This should never be called in prod mode, so let's verify that is the case.
|
|
11004
|
-
if (ngDevMode) {
|
|
11005
|
-
try {
|
|
11006
|
-
// If this function were compromised the following could lead to arbitrary
|
|
11007
|
-
// script execution. We bless it with Trusted Types anyway since this
|
|
11008
|
-
// function is stripped out of production binaries.
|
|
11009
|
-
return (newTrustedFunctionForDev('Array', `return class ${name} extends Array{}`))(Array);
|
|
11010
|
-
}
|
|
11011
|
-
catch (e) {
|
|
11012
|
-
// If it does not work just give up and fall back to regular Array.
|
|
11013
|
-
return Array;
|
|
11014
|
-
}
|
|
11015
|
-
}
|
|
11016
|
-
else {
|
|
11017
|
-
throw new Error('Looks like we are in \'prod mode\', but we are creating a named Array type, which is wrong! Check your code');
|
|
11018
|
-
}
|
|
11019
|
-
}
|
|
11020
|
-
|
|
11021
|
-
/**
|
|
11022
|
-
* @license
|
|
11023
|
-
* Copyright Google LLC All Rights Reserved.
|
|
11024
|
-
*
|
|
11025
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
11026
|
-
* found in the LICENSE file at https://angular.io/license
|
|
11027
|
-
*/
|
|
11028
|
-
function toTStylingRange(prev, next) {
|
|
11029
|
-
ngDevMode && assertNumberInRange(prev, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
11030
|
-
ngDevMode && assertNumberInRange(next, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
11031
|
-
return (prev << 17 /* StylingRange.PREV_SHIFT */ | next << 2 /* StylingRange.NEXT_SHIFT */);
|
|
11032
|
-
}
|
|
11033
|
-
function getTStylingRangePrev(tStylingRange) {
|
|
11034
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11035
|
-
return (tStylingRange >> 17 /* StylingRange.PREV_SHIFT */) & 32767 /* StylingRange.UNSIGNED_MASK */;
|
|
11036
|
-
}
|
|
11037
|
-
function getTStylingRangePrevDuplicate(tStylingRange) {
|
|
11038
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11039
|
-
return (tStylingRange & 2 /* StylingRange.PREV_DUPLICATE */) ==
|
|
11040
|
-
2 /* StylingRange.PREV_DUPLICATE */;
|
|
11041
|
-
}
|
|
11042
|
-
function setTStylingRangePrev(tStylingRange, previous) {
|
|
11043
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11044
|
-
ngDevMode && assertNumberInRange(previous, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
11045
|
-
return ((tStylingRange & ~4294836224 /* StylingRange.PREV_MASK */) |
|
|
11046
|
-
(previous << 17 /* StylingRange.PREV_SHIFT */));
|
|
11047
|
-
}
|
|
11048
|
-
function setTStylingRangePrevDuplicate(tStylingRange) {
|
|
11049
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11050
|
-
return (tStylingRange | 2 /* StylingRange.PREV_DUPLICATE */);
|
|
11051
|
-
}
|
|
11052
|
-
function getTStylingRangeNext(tStylingRange) {
|
|
11053
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11054
|
-
return (tStylingRange & 131068 /* StylingRange.NEXT_MASK */) >> 2 /* StylingRange.NEXT_SHIFT */;
|
|
11055
|
-
}
|
|
11056
|
-
function setTStylingRangeNext(tStylingRange, next) {
|
|
11057
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11058
|
-
ngDevMode && assertNumberInRange(next, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
11059
|
-
return ((tStylingRange & ~131068 /* StylingRange.NEXT_MASK */) | //
|
|
11060
|
-
next << 2 /* StylingRange.NEXT_SHIFT */);
|
|
11061
|
-
}
|
|
11062
|
-
function getTStylingRangeNextDuplicate(tStylingRange) {
|
|
11063
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11064
|
-
return (tStylingRange & 1 /* StylingRange.NEXT_DUPLICATE */) ===
|
|
11065
|
-
1 /* StylingRange.NEXT_DUPLICATE */;
|
|
11066
|
-
}
|
|
11067
|
-
function setTStylingRangeNextDuplicate(tStylingRange) {
|
|
11068
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11069
|
-
return (tStylingRange | 1 /* StylingRange.NEXT_DUPLICATE */);
|
|
11070
|
-
}
|
|
11071
|
-
function getTStylingRangeTail(tStylingRange) {
|
|
11072
|
-
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
11073
|
-
const next = getTStylingRangeNext(tStylingRange);
|
|
11074
|
-
return next === 0 ? getTStylingRangePrev(tStylingRange) : next;
|
|
11075
|
-
}
|
|
11076
|
-
|
|
11077
|
-
/**
|
|
11078
|
-
* @license
|
|
11079
|
-
* Copyright Google LLC All Rights Reserved.
|
|
11080
|
-
*
|
|
11081
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
11082
|
-
* found in the LICENSE file at https://angular.io/license
|
|
11083
|
-
*/
|
|
11084
|
-
/**
|
|
11085
|
-
* Patch a `debug` property on top of the existing object.
|
|
11086
|
-
*
|
|
11087
|
-
* NOTE: always call this method with `ngDevMode && attachDebugObject(...)`
|
|
11088
|
-
*
|
|
11089
|
-
* @param obj Object to patch
|
|
11090
|
-
* @param debug Value to patch
|
|
11091
|
-
*/
|
|
11092
|
-
function attachDebugObject(obj, debug) {
|
|
11093
|
-
if (ngDevMode) {
|
|
11094
|
-
Object.defineProperty(obj, 'debug', { value: debug, enumerable: false });
|
|
11095
|
-
}
|
|
11096
|
-
else {
|
|
11097
|
-
throw new Error('This method should be guarded with `ngDevMode` so that it can be tree shaken in production!');
|
|
11098
|
-
}
|
|
11099
|
-
}
|
|
11100
|
-
/**
|
|
11101
|
-
* Patch a `debug` property getter on top of the existing object.
|
|
11102
|
-
*
|
|
11103
|
-
* NOTE: always call this method with `ngDevMode && attachDebugObject(...)`
|
|
11104
|
-
*
|
|
11105
|
-
* @param obj Object to patch
|
|
11106
|
-
* @param debugGetter Getter returning a value to patch
|
|
11107
|
-
*/
|
|
11108
|
-
function attachDebugGetter(obj, debugGetter) {
|
|
11109
|
-
if (ngDevMode) {
|
|
11110
|
-
Object.defineProperty(obj, 'debug', { get: debugGetter, enumerable: false });
|
|
11111
|
-
}
|
|
11112
|
-
else {
|
|
11113
|
-
throw new Error('This method should be guarded with `ngDevMode` so that it can be tree shaken in production!');
|
|
11114
|
-
}
|
|
11115
|
-
}
|
|
11116
|
-
|
|
11117
|
-
/**
|
|
11118
|
-
* @license
|
|
11119
|
-
* Copyright Google LLC All Rights Reserved.
|
|
11120
|
-
*
|
|
11121
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
11122
|
-
* found in the LICENSE file at https://angular.io/license
|
|
11123
|
-
*/
|
|
11124
|
-
/*
|
|
11125
|
-
* This file contains conditionally attached classes which provide human readable (debug) level
|
|
11126
|
-
* information for `LView`, `LContainer` and other internal data structures. These data structures
|
|
11127
|
-
* are stored internally as array which makes it very difficult during debugging to reason about the
|
|
11128
|
-
* current state of the system.
|
|
11129
|
-
*
|
|
11130
|
-
* Patching the array with extra property does change the array's hidden class' but it does not
|
|
11131
|
-
* change the cost of access, therefore this patching should not have significant if any impact in
|
|
11132
|
-
* `ngDevMode` mode. (see: https://jsperf.com/array-vs-monkey-patch-array)
|
|
11133
|
-
*
|
|
11134
|
-
* So instead of seeing:
|
|
11135
|
-
* ```
|
|
11136
|
-
* Array(30) [Object, 659, null, …]
|
|
11137
|
-
* ```
|
|
11138
|
-
*
|
|
11139
|
-
* You get to see:
|
|
11140
|
-
* ```
|
|
11141
|
-
* LViewDebug {
|
|
11142
|
-
* views: [...],
|
|
11143
|
-
* flags: {attached: true, ...}
|
|
11144
|
-
* nodes: [
|
|
11145
|
-
* {html: '<div id="123">', ..., nodes: [
|
|
11146
|
-
* {html: '<span>', ..., nodes: null}
|
|
11147
|
-
* ]}
|
|
11148
|
-
* ]
|
|
11149
|
-
* }
|
|
11150
|
-
* ```
|
|
11151
|
-
*/
|
|
11152
|
-
let LVIEW_COMPONENT_CACHE;
|
|
11153
|
-
let LVIEW_EMBEDDED_CACHE;
|
|
11154
|
-
let LVIEW_ROOT;
|
|
11155
|
-
let LVIEW_COMPONENT;
|
|
11156
|
-
let LVIEW_EMBEDDED;
|
|
11157
|
-
/**
|
|
11158
|
-
* This function clones a blueprint and creates LView.
|
|
11159
|
-
*
|
|
11160
|
-
* Simple slice will keep the same type, and we need it to be LView
|
|
11161
|
-
*/
|
|
11162
|
-
function cloneToLViewFromTViewBlueprint(tView) {
|
|
11163
|
-
const debugTView = tView;
|
|
11164
|
-
const lView = getLViewToClone(debugTView.type, tView.template && tView.template.name);
|
|
11165
|
-
return lView.concat(tView.blueprint);
|
|
11166
|
-
}
|
|
11167
|
-
class LRootView extends Array {
|
|
11168
|
-
}
|
|
11169
|
-
class LComponentView extends Array {
|
|
11170
|
-
}
|
|
11171
|
-
class LEmbeddedView extends Array {
|
|
11172
|
-
}
|
|
11173
|
-
function getLViewToClone(type, name) {
|
|
11174
|
-
switch (type) {
|
|
11175
|
-
case 0 /* TViewType.Root */:
|
|
11176
|
-
if (LVIEW_ROOT === undefined)
|
|
11177
|
-
LVIEW_ROOT = new LRootView();
|
|
11178
|
-
return LVIEW_ROOT;
|
|
11179
|
-
case 1 /* TViewType.Component */:
|
|
11180
|
-
if (!ngDevMode || !ngDevMode.namedConstructors) {
|
|
11181
|
-
if (LVIEW_COMPONENT === undefined)
|
|
11182
|
-
LVIEW_COMPONENT = new LComponentView();
|
|
11183
|
-
return LVIEW_COMPONENT;
|
|
11184
|
-
}
|
|
11185
|
-
if (LVIEW_COMPONENT_CACHE === undefined)
|
|
11186
|
-
LVIEW_COMPONENT_CACHE = new Map();
|
|
11187
|
-
let componentArray = LVIEW_COMPONENT_CACHE.get(name);
|
|
11188
|
-
if (componentArray === undefined) {
|
|
11189
|
-
componentArray = new (createNamedArrayType('LComponentView' + nameSuffix(name)))();
|
|
11190
|
-
LVIEW_COMPONENT_CACHE.set(name, componentArray);
|
|
11191
|
-
}
|
|
11192
|
-
return componentArray;
|
|
11193
|
-
case 2 /* TViewType.Embedded */:
|
|
11194
|
-
if (!ngDevMode || !ngDevMode.namedConstructors) {
|
|
11195
|
-
if (LVIEW_EMBEDDED === undefined)
|
|
11196
|
-
LVIEW_EMBEDDED = new LEmbeddedView();
|
|
11197
|
-
return LVIEW_EMBEDDED;
|
|
11198
|
-
}
|
|
11199
|
-
if (LVIEW_EMBEDDED_CACHE === undefined)
|
|
11200
|
-
LVIEW_EMBEDDED_CACHE = new Map();
|
|
11201
|
-
let embeddedArray = LVIEW_EMBEDDED_CACHE.get(name);
|
|
11202
|
-
if (embeddedArray === undefined) {
|
|
11203
|
-
embeddedArray = new (createNamedArrayType('LEmbeddedView' + nameSuffix(name)))();
|
|
11204
|
-
LVIEW_EMBEDDED_CACHE.set(name, embeddedArray);
|
|
11205
|
-
}
|
|
11206
|
-
return embeddedArray;
|
|
11207
|
-
}
|
|
11208
|
-
}
|
|
11209
|
-
function nameSuffix(text) {
|
|
11210
|
-
if (text == null)
|
|
11211
|
-
return '';
|
|
11212
|
-
const index = text.lastIndexOf('_Template');
|
|
11213
|
-
return '_' + (index === -1 ? text : text.slice(0, index));
|
|
11214
|
-
}
|
|
11215
|
-
/**
|
|
11216
|
-
* This class is a debug version of Object literal so that we can have constructor name show up
|
|
11217
|
-
* in
|
|
11218
|
-
* debug tools in ngDevMode.
|
|
11219
|
-
*/
|
|
11220
|
-
const TViewConstructor = class TView {
|
|
11221
|
-
constructor(type, blueprint, template, queries, viewQuery, declTNode, data, bindingStartIndex, expandoStartIndex, hostBindingOpCodes, firstCreatePass, firstUpdatePass, staticViewQueries, staticContentQueries, preOrderHooks, preOrderCheckHooks, contentHooks, contentCheckHooks, viewHooks, viewCheckHooks, destroyHooks, cleanup, contentQueries, components, directiveRegistry, pipeRegistry, firstChild, schemas, consts, incompleteFirstPass, _decls, _vars) {
|
|
11222
|
-
this.type = type;
|
|
11223
|
-
this.blueprint = blueprint;
|
|
11224
|
-
this.template = template;
|
|
11225
|
-
this.queries = queries;
|
|
11226
|
-
this.viewQuery = viewQuery;
|
|
11227
|
-
this.declTNode = declTNode;
|
|
11228
|
-
this.data = data;
|
|
11229
|
-
this.bindingStartIndex = bindingStartIndex;
|
|
11230
|
-
this.expandoStartIndex = expandoStartIndex;
|
|
11231
|
-
this.hostBindingOpCodes = hostBindingOpCodes;
|
|
11232
|
-
this.firstCreatePass = firstCreatePass;
|
|
11233
|
-
this.firstUpdatePass = firstUpdatePass;
|
|
11234
|
-
this.staticViewQueries = staticViewQueries;
|
|
11235
|
-
this.staticContentQueries = staticContentQueries;
|
|
11236
|
-
this.preOrderHooks = preOrderHooks;
|
|
11237
|
-
this.preOrderCheckHooks = preOrderCheckHooks;
|
|
11238
|
-
this.contentHooks = contentHooks;
|
|
11239
|
-
this.contentCheckHooks = contentCheckHooks;
|
|
11240
|
-
this.viewHooks = viewHooks;
|
|
11241
|
-
this.viewCheckHooks = viewCheckHooks;
|
|
11242
|
-
this.destroyHooks = destroyHooks;
|
|
11243
|
-
this.cleanup = cleanup;
|
|
11244
|
-
this.contentQueries = contentQueries;
|
|
11245
|
-
this.components = components;
|
|
11246
|
-
this.directiveRegistry = directiveRegistry;
|
|
11247
|
-
this.pipeRegistry = pipeRegistry;
|
|
11248
|
-
this.firstChild = firstChild;
|
|
11249
|
-
this.schemas = schemas;
|
|
11250
|
-
this.consts = consts;
|
|
11251
|
-
this.incompleteFirstPass = incompleteFirstPass;
|
|
11252
|
-
this._decls = _decls;
|
|
11253
|
-
this._vars = _vars;
|
|
11254
|
-
}
|
|
11255
|
-
get template_() {
|
|
11256
|
-
const buf = [];
|
|
11257
|
-
processTNodeChildren(this.firstChild, buf);
|
|
11258
|
-
return buf.join('');
|
|
11259
|
-
}
|
|
11260
|
-
get type_() {
|
|
11261
|
-
return TViewTypeAsString[this.type] || `TViewType.?${this.type}?`;
|
|
11262
|
-
}
|
|
11263
|
-
};
|
|
11264
|
-
class TNode {
|
|
11265
|
-
constructor(tView_, //
|
|
11266
|
-
type, //
|
|
11267
|
-
index, //
|
|
11268
|
-
insertBeforeIndex, //
|
|
11269
|
-
injectorIndex, //
|
|
11270
|
-
componentOffset, //
|
|
11271
|
-
directiveStart, //
|
|
11272
|
-
directiveEnd, //
|
|
11273
|
-
directiveStylingLast, //
|
|
11274
|
-
propertyBindings, //
|
|
11275
|
-
flags, //
|
|
11276
|
-
providerIndexes, //
|
|
11277
|
-
value, //
|
|
11278
|
-
attrs, //
|
|
11279
|
-
mergedAttrs, //
|
|
11280
|
-
localNames, //
|
|
11281
|
-
initialInputs, //
|
|
11282
|
-
inputs, //
|
|
11283
|
-
outputs, //
|
|
11284
|
-
tViews, //
|
|
11285
|
-
next, //
|
|
11286
|
-
projectionNext, //
|
|
11287
|
-
child, //
|
|
11288
|
-
parent, //
|
|
11289
|
-
projection, //
|
|
11290
|
-
styles, //
|
|
11291
|
-
stylesWithoutHost, //
|
|
11292
|
-
residualStyles, //
|
|
11293
|
-
classes, //
|
|
11294
|
-
classesWithoutHost, //
|
|
11295
|
-
residualClasses, //
|
|
11296
|
-
classBindings, //
|
|
11297
|
-
styleBindings) {
|
|
11298
|
-
this.tView_ = tView_;
|
|
11299
|
-
this.type = type;
|
|
11300
|
-
this.index = index;
|
|
11301
|
-
this.insertBeforeIndex = insertBeforeIndex;
|
|
11302
|
-
this.injectorIndex = injectorIndex;
|
|
11303
|
-
this.componentOffset = componentOffset;
|
|
11304
|
-
this.directiveStart = directiveStart;
|
|
11305
|
-
this.directiveEnd = directiveEnd;
|
|
11306
|
-
this.directiveStylingLast = directiveStylingLast;
|
|
11307
|
-
this.propertyBindings = propertyBindings;
|
|
11308
|
-
this.flags = flags;
|
|
11309
|
-
this.providerIndexes = providerIndexes;
|
|
11310
|
-
this.value = value;
|
|
11311
|
-
this.attrs = attrs;
|
|
11312
|
-
this.mergedAttrs = mergedAttrs;
|
|
11313
|
-
this.localNames = localNames;
|
|
11314
|
-
this.initialInputs = initialInputs;
|
|
11315
|
-
this.inputs = inputs;
|
|
11316
|
-
this.outputs = outputs;
|
|
11317
|
-
this.tViews = tViews;
|
|
11318
|
-
this.next = next;
|
|
11319
|
-
this.projectionNext = projectionNext;
|
|
11320
|
-
this.child = child;
|
|
11321
|
-
this.parent = parent;
|
|
11322
|
-
this.projection = projection;
|
|
11323
|
-
this.styles = styles;
|
|
11324
|
-
this.stylesWithoutHost = stylesWithoutHost;
|
|
11325
|
-
this.residualStyles = residualStyles;
|
|
11326
|
-
this.classes = classes;
|
|
11327
|
-
this.classesWithoutHost = classesWithoutHost;
|
|
11328
|
-
this.residualClasses = residualClasses;
|
|
11329
|
-
this.classBindings = classBindings;
|
|
11330
|
-
this.styleBindings = styleBindings;
|
|
11331
|
-
}
|
|
11332
|
-
/**
|
|
11333
|
-
* Return a human debug version of the set of `NodeInjector`s which will be consulted when
|
|
11334
|
-
* resolving tokens from this `TNode`.
|
|
11335
|
-
*
|
|
11336
|
-
* When debugging applications, it is often difficult to determine which `NodeInjector`s will be
|
|
11337
|
-
* consulted. This method shows a list of `DebugNode`s representing the `TNode`s which will be
|
|
11338
|
-
* consulted in order when resolving a token starting at this `TNode`.
|
|
11339
|
-
*
|
|
11340
|
-
* The original data is stored in `LView` and `TView` with a lot of offset indexes, and so it is
|
|
11341
|
-
* difficult to reason about.
|
|
11342
|
-
*
|
|
11343
|
-
* @param lView The `LView` instance for this `TNode`.
|
|
11344
|
-
*/
|
|
11345
|
-
debugNodeInjectorPath(lView) {
|
|
11346
|
-
const path = [];
|
|
11347
|
-
let injectorIndex = getInjectorIndex(this, lView);
|
|
11348
|
-
if (injectorIndex === -1) {
|
|
11349
|
-
// Looks like the current `TNode` does not have `NodeInjector` associated with it => look for
|
|
11350
|
-
// parent NodeInjector.
|
|
11351
|
-
const parentLocation = getParentInjectorLocation(this, lView);
|
|
11352
|
-
if (parentLocation !== NO_PARENT_INJECTOR) {
|
|
11353
|
-
// We found a parent, so start searching from the parent location.
|
|
11354
|
-
injectorIndex = getParentInjectorIndex(parentLocation);
|
|
11355
|
-
lView = getParentInjectorView(parentLocation, lView);
|
|
11356
|
-
}
|
|
11357
|
-
else {
|
|
11358
|
-
// No parents have been found, so there are no `NodeInjector`s to consult.
|
|
11359
|
-
}
|
|
11360
|
-
}
|
|
11361
|
-
while (injectorIndex !== -1) {
|
|
11362
|
-
ngDevMode && assertNodeInjector(lView, injectorIndex);
|
|
11363
|
-
const tNode = lView[TVIEW].data[injectorIndex + 8 /* NodeInjectorOffset.TNODE */];
|
|
11364
|
-
path.push(buildDebugNode(tNode, lView));
|
|
11365
|
-
const parentLocation = lView[injectorIndex + 8 /* NodeInjectorOffset.PARENT */];
|
|
11366
|
-
if (parentLocation === NO_PARENT_INJECTOR) {
|
|
11367
|
-
injectorIndex = -1;
|
|
11368
|
-
}
|
|
11369
|
-
else {
|
|
11370
|
-
injectorIndex = getParentInjectorIndex(parentLocation);
|
|
11371
|
-
lView = getParentInjectorView(parentLocation, lView);
|
|
11372
|
-
}
|
|
11373
|
-
}
|
|
11374
|
-
return path;
|
|
11375
|
-
}
|
|
11376
|
-
get type_() {
|
|
11377
|
-
return toTNodeTypeAsString(this.type) || `TNodeType.?${this.type}?`;
|
|
11378
|
-
}
|
|
11379
|
-
get flags_() {
|
|
11380
|
-
const flags = [];
|
|
11381
|
-
if (this.flags & 8 /* TNodeFlags.hasClassInput */)
|
|
11382
|
-
flags.push('TNodeFlags.hasClassInput');
|
|
11383
|
-
if (this.flags & 4 /* TNodeFlags.hasContentQuery */)
|
|
11384
|
-
flags.push('TNodeFlags.hasContentQuery');
|
|
11385
|
-
if (this.flags & 16 /* TNodeFlags.hasStyleInput */)
|
|
11386
|
-
flags.push('TNodeFlags.hasStyleInput');
|
|
11387
|
-
if (this.flags & 64 /* TNodeFlags.hasHostBindings */)
|
|
11388
|
-
flags.push('TNodeFlags.hasHostBindings');
|
|
11389
|
-
if (this.flags & 1 /* TNodeFlags.isDirectiveHost */)
|
|
11390
|
-
flags.push('TNodeFlags.isDirectiveHost');
|
|
11391
|
-
if (this.flags & 32 /* TNodeFlags.isDetached */)
|
|
11392
|
-
flags.push('TNodeFlags.isDetached');
|
|
11393
|
-
if (this.flags & 2 /* TNodeFlags.isProjected */)
|
|
11394
|
-
flags.push('TNodeFlags.isProjected');
|
|
11395
|
-
return flags.join('|');
|
|
11396
|
-
}
|
|
11397
|
-
get template_() {
|
|
11398
|
-
if (this.type & 1 /* TNodeType.Text */)
|
|
11399
|
-
return this.value;
|
|
11400
|
-
const buf = [];
|
|
11401
|
-
const tagName = typeof this.value === 'string' && this.value || this.type_;
|
|
11402
|
-
buf.push('<', tagName);
|
|
11403
|
-
if (this.flags) {
|
|
11404
|
-
buf.push(' ', this.flags_);
|
|
11405
|
-
}
|
|
11406
|
-
if (this.attrs) {
|
|
11407
|
-
for (let i = 0; i < this.attrs.length;) {
|
|
11408
|
-
const attrName = this.attrs[i++];
|
|
11409
|
-
if (typeof attrName == 'number') {
|
|
11410
|
-
break;
|
|
11411
|
-
}
|
|
11412
|
-
const attrValue = this.attrs[i++];
|
|
11413
|
-
buf.push(' ', attrName, '="', attrValue, '"');
|
|
11414
|
-
}
|
|
11415
|
-
}
|
|
11416
|
-
buf.push('>');
|
|
11417
|
-
processTNodeChildren(this.child, buf);
|
|
11418
|
-
buf.push('</', tagName, '>');
|
|
11419
|
-
return buf.join('');
|
|
11420
|
-
}
|
|
11421
|
-
get styleBindings_() {
|
|
11422
|
-
return toDebugStyleBinding(this, false);
|
|
11423
|
-
}
|
|
11424
|
-
get classBindings_() {
|
|
11425
|
-
return toDebugStyleBinding(this, true);
|
|
11426
|
-
}
|
|
11427
|
-
get providerIndexStart_() {
|
|
11428
|
-
return this.providerIndexes & 1048575 /* TNodeProviderIndexes.ProvidersStartIndexMask */;
|
|
11429
|
-
}
|
|
11430
|
-
get providerIndexEnd_() {
|
|
11431
|
-
return this.providerIndexStart_ +
|
|
11432
|
-
(this.providerIndexes >>> 20 /* TNodeProviderIndexes.CptViewProvidersCountShift */);
|
|
11433
|
-
}
|
|
11434
|
-
}
|
|
11435
|
-
const TNodeDebug = TNode;
|
|
11436
|
-
function toDebugStyleBinding(tNode, isClassBased) {
|
|
11437
|
-
const tData = tNode.tView_.data;
|
|
11438
|
-
const bindings = [];
|
|
11439
|
-
const range = isClassBased ? tNode.classBindings : tNode.styleBindings;
|
|
11440
|
-
const prev = getTStylingRangePrev(range);
|
|
11441
|
-
const next = getTStylingRangeNext(range);
|
|
11442
|
-
let isTemplate = next !== 0;
|
|
11443
|
-
let cursor = isTemplate ? next : prev;
|
|
11444
|
-
while (cursor !== 0) {
|
|
11445
|
-
const itemKey = tData[cursor];
|
|
11446
|
-
const itemRange = tData[cursor + 1];
|
|
11447
|
-
bindings.unshift({
|
|
11448
|
-
key: itemKey,
|
|
11449
|
-
index: cursor,
|
|
11450
|
-
isTemplate: isTemplate,
|
|
11451
|
-
prevDuplicate: getTStylingRangePrevDuplicate(itemRange),
|
|
11452
|
-
nextDuplicate: getTStylingRangeNextDuplicate(itemRange),
|
|
11453
|
-
nextIndex: getTStylingRangeNext(itemRange),
|
|
11454
|
-
prevIndex: getTStylingRangePrev(itemRange),
|
|
11455
|
-
});
|
|
11456
|
-
if (cursor === prev)
|
|
11457
|
-
isTemplate = false;
|
|
11458
|
-
cursor = getTStylingRangePrev(itemRange);
|
|
11459
|
-
}
|
|
11460
|
-
bindings.push((isClassBased ? tNode.residualClasses : tNode.residualStyles) || null);
|
|
11461
|
-
return bindings;
|
|
11462
|
-
}
|
|
11463
|
-
function processTNodeChildren(tNode, buf) {
|
|
11464
|
-
while (tNode) {
|
|
11465
|
-
buf.push(tNode.template_);
|
|
11466
|
-
tNode = tNode.next;
|
|
11467
|
-
}
|
|
11468
|
-
}
|
|
11469
|
-
class TViewData extends Array {
|
|
11470
|
-
}
|
|
11471
|
-
let TVIEWDATA_EMPTY; // can't initialize here or it will not be tree shaken, because
|
|
11472
|
-
// `LView` constructor could have side-effects.
|
|
11473
|
-
/**
|
|
11474
|
-
* This function clones a blueprint and creates TData.
|
|
11475
|
-
*
|
|
11476
|
-
* Simple slice will keep the same type, and we need it to be TData
|
|
11477
|
-
*/
|
|
11478
|
-
function cloneToTViewData(list) {
|
|
11479
|
-
if (TVIEWDATA_EMPTY === undefined)
|
|
11480
|
-
TVIEWDATA_EMPTY = new TViewData();
|
|
11481
|
-
return TVIEWDATA_EMPTY.concat(list);
|
|
11482
|
-
}
|
|
11483
|
-
class LViewBlueprint extends Array {
|
|
11484
|
-
}
|
|
11485
|
-
class MatchesArray extends Array {
|
|
11486
|
-
}
|
|
11487
|
-
class TViewComponents extends Array {
|
|
11488
|
-
}
|
|
11489
|
-
class TNodeLocalNames extends Array {
|
|
11490
|
-
}
|
|
11491
|
-
class TNodeInitialInputs extends Array {
|
|
11492
|
-
}
|
|
11493
|
-
class LCleanup extends Array {
|
|
11494
|
-
}
|
|
11495
|
-
class TCleanup extends Array {
|
|
11496
|
-
}
|
|
11497
|
-
function attachLViewDebug(lView) {
|
|
11498
|
-
attachDebugObject(lView, new LViewDebug(lView));
|
|
11499
|
-
}
|
|
11500
|
-
function attachLContainerDebug(lContainer) {
|
|
11501
|
-
attachDebugObject(lContainer, new LContainerDebug(lContainer));
|
|
11502
|
-
}
|
|
11503
|
-
function toDebug(obj) {
|
|
11504
|
-
if (obj) {
|
|
11505
|
-
const debug = obj.debug;
|
|
11506
|
-
assertDefined(debug, 'Object does not have a debug representation.');
|
|
11507
|
-
return debug;
|
|
11508
|
-
}
|
|
11509
|
-
else {
|
|
11510
|
-
return obj;
|
|
11511
|
-
}
|
|
11512
|
-
}
|
|
11513
|
-
/**
|
|
11514
|
-
* Use this method to unwrap a native element in `LView` and convert it into HTML for easier
|
|
11515
|
-
* reading.
|
|
11516
|
-
*
|
|
11517
|
-
* @param value possibly wrapped native DOM node.
|
|
11518
|
-
* @param includeChildren If `true` then the serialized HTML form will include child elements
|
|
11519
|
-
* (same
|
|
11520
|
-
* as `outerHTML`). If `false` then the serialized HTML form will only contain the element
|
|
11521
|
-
* itself
|
|
11522
|
-
* (will not serialize child elements).
|
|
11523
|
-
*/
|
|
11524
|
-
function toHtml(value, includeChildren = false) {
|
|
11525
|
-
const node = unwrapRNode(value);
|
|
11526
|
-
if (node) {
|
|
11527
|
-
switch (node.nodeType) {
|
|
11528
|
-
case Node.TEXT_NODE:
|
|
11529
|
-
return node.textContent;
|
|
11530
|
-
case Node.COMMENT_NODE:
|
|
11531
|
-
return `<!--${node.textContent}-->`;
|
|
11532
|
-
case Node.ELEMENT_NODE:
|
|
11533
|
-
const outerHTML = node.outerHTML;
|
|
11534
|
-
if (includeChildren) {
|
|
11535
|
-
return outerHTML;
|
|
11536
|
-
}
|
|
11537
|
-
else {
|
|
11538
|
-
const innerHTML = '>' + node.innerHTML + '<';
|
|
11539
|
-
return (outerHTML.split(innerHTML)[0]) + '>';
|
|
11540
|
-
}
|
|
11541
|
-
}
|
|
11542
|
-
}
|
|
11543
|
-
return null;
|
|
11544
|
-
}
|
|
11545
|
-
class LViewDebug {
|
|
11546
|
-
constructor(_raw_lView) {
|
|
11547
|
-
this._raw_lView = _raw_lView;
|
|
11548
|
-
}
|
|
11549
|
-
/**
|
|
11550
|
-
* Flags associated with the `LView` unpacked into a more readable state.
|
|
11551
|
-
*/
|
|
11552
|
-
get flags() {
|
|
11553
|
-
const flags = this._raw_lView[FLAGS];
|
|
11554
|
-
return {
|
|
11555
|
-
__raw__flags__: flags,
|
|
11556
|
-
initPhaseState: flags & 3 /* LViewFlags.InitPhaseStateMask */,
|
|
11557
|
-
creationMode: !!(flags & 4 /* LViewFlags.CreationMode */),
|
|
11558
|
-
firstViewPass: !!(flags & 8 /* LViewFlags.FirstLViewPass */),
|
|
11559
|
-
checkAlways: !!(flags & 16 /* LViewFlags.CheckAlways */),
|
|
11560
|
-
dirty: !!(flags & 32 /* LViewFlags.Dirty */),
|
|
11561
|
-
attached: !!(flags & 64 /* LViewFlags.Attached */),
|
|
11562
|
-
destroyed: !!(flags & 128 /* LViewFlags.Destroyed */),
|
|
11563
|
-
isRoot: !!(flags & 256 /* LViewFlags.IsRoot */),
|
|
11564
|
-
indexWithinInitPhase: flags >> 11 /* LViewFlags.IndexWithinInitPhaseShift */,
|
|
11565
|
-
};
|
|
11566
|
-
}
|
|
11567
|
-
get parent() {
|
|
11568
|
-
return toDebug(this._raw_lView[PARENT]);
|
|
11569
|
-
}
|
|
11570
|
-
get hostHTML() {
|
|
11571
|
-
return toHtml(this._raw_lView[HOST], true);
|
|
11572
|
-
}
|
|
11573
|
-
get html() {
|
|
11574
|
-
return (this.nodes || []).map(mapToHTML).join('');
|
|
11575
|
-
}
|
|
11576
|
-
get context() {
|
|
11577
|
-
return this._raw_lView[CONTEXT];
|
|
11578
|
-
}
|
|
11579
|
-
/**
|
|
11580
|
-
* The tree of nodes associated with the current `LView`. The nodes have been normalized into
|
|
11581
|
-
* a tree structure with relevant details pulled out for readability.
|
|
11582
|
-
*/
|
|
11583
|
-
get nodes() {
|
|
11584
|
-
const lView = this._raw_lView;
|
|
11585
|
-
const tNode = lView[TVIEW].firstChild;
|
|
11586
|
-
return toDebugNodes(tNode, lView);
|
|
11587
|
-
}
|
|
11588
|
-
get template() {
|
|
11589
|
-
return this.tView.template_;
|
|
11590
|
-
}
|
|
11591
|
-
get tView() {
|
|
11592
|
-
return this._raw_lView[TVIEW];
|
|
11593
|
-
}
|
|
11594
|
-
get cleanup() {
|
|
11595
|
-
return this._raw_lView[CLEANUP];
|
|
11596
|
-
}
|
|
11597
|
-
get injector() {
|
|
11598
|
-
return this._raw_lView[INJECTOR$1];
|
|
11599
|
-
}
|
|
11600
|
-
get rendererFactory() {
|
|
11601
|
-
return this._raw_lView[RENDERER_FACTORY];
|
|
11602
|
-
}
|
|
11603
|
-
get renderer() {
|
|
11604
|
-
return this._raw_lView[RENDERER];
|
|
11605
|
-
}
|
|
11606
|
-
get sanitizer() {
|
|
11607
|
-
return this._raw_lView[SANITIZER];
|
|
11608
|
-
}
|
|
11609
|
-
get childHead() {
|
|
11610
|
-
return toDebug(this._raw_lView[CHILD_HEAD]);
|
|
11611
|
-
}
|
|
11612
|
-
get next() {
|
|
11613
|
-
return toDebug(this._raw_lView[NEXT]);
|
|
11614
|
-
}
|
|
11615
|
-
get childTail() {
|
|
11616
|
-
return toDebug(this._raw_lView[CHILD_TAIL]);
|
|
11617
|
-
}
|
|
11618
|
-
get declarationView() {
|
|
11619
|
-
return toDebug(this._raw_lView[DECLARATION_VIEW]);
|
|
11620
|
-
}
|
|
11621
|
-
get queries() {
|
|
11622
|
-
return this._raw_lView[QUERIES];
|
|
11623
|
-
}
|
|
11624
|
-
get tHost() {
|
|
11625
|
-
return this._raw_lView[T_HOST];
|
|
11626
|
-
}
|
|
11627
|
-
get id() {
|
|
11628
|
-
return this._raw_lView[ID];
|
|
11629
|
-
}
|
|
11630
|
-
get decls() {
|
|
11631
|
-
return toLViewRange(this.tView, this._raw_lView, HEADER_OFFSET, this.tView.bindingStartIndex);
|
|
11632
|
-
}
|
|
11633
|
-
get vars() {
|
|
11634
|
-
return toLViewRange(this.tView, this._raw_lView, this.tView.bindingStartIndex, this.tView.expandoStartIndex);
|
|
11635
|
-
}
|
|
11636
|
-
get expando() {
|
|
11637
|
-
return toLViewRange(this.tView, this._raw_lView, this.tView.expandoStartIndex, this._raw_lView.length);
|
|
11638
|
-
}
|
|
11639
|
-
/**
|
|
11640
|
-
* Normalized view of child views (and containers) attached at this location.
|
|
11641
|
-
*/
|
|
11642
|
-
get childViews() {
|
|
11643
|
-
const childViews = [];
|
|
11644
|
-
let child = this.childHead;
|
|
11645
|
-
while (child) {
|
|
11646
|
-
childViews.push(child);
|
|
11647
|
-
child = child.next;
|
|
11648
|
-
}
|
|
11649
|
-
return childViews;
|
|
11650
|
-
}
|
|
11651
|
-
}
|
|
11652
|
-
function mapToHTML(node) {
|
|
11653
|
-
if (node.type === 'ElementContainer') {
|
|
11654
|
-
return (node.children || []).map(mapToHTML).join('');
|
|
11655
|
-
}
|
|
11656
|
-
else if (node.type === 'IcuContainer') {
|
|
11657
|
-
throw new Error('Not implemented');
|
|
11658
|
-
}
|
|
11659
|
-
else {
|
|
11660
|
-
return toHtml(node.native, true) || '';
|
|
11661
|
-
}
|
|
11662
|
-
}
|
|
11663
|
-
function toLViewRange(tView, lView, start, end) {
|
|
11664
|
-
let content = [];
|
|
11665
|
-
for (let index = start; index < end; index++) {
|
|
11666
|
-
content.push({ index: index, t: tView.data[index], l: lView[index] });
|
|
11667
|
-
}
|
|
11668
|
-
return { start: start, end: end, length: end - start, content: content };
|
|
11669
|
-
}
|
|
11670
|
-
/**
|
|
11671
|
-
* Turns a flat list of nodes into a tree by walking the associated `TNode` tree.
|
|
11672
|
-
*
|
|
11673
|
-
* @param tNode
|
|
11674
|
-
* @param lView
|
|
11675
|
-
*/
|
|
11676
|
-
function toDebugNodes(tNode, lView) {
|
|
11677
|
-
if (tNode) {
|
|
11678
|
-
const debugNodes = [];
|
|
11679
|
-
let tNodeCursor = tNode;
|
|
11680
|
-
while (tNodeCursor) {
|
|
11681
|
-
debugNodes.push(buildDebugNode(tNodeCursor, lView));
|
|
11682
|
-
tNodeCursor = tNodeCursor.next;
|
|
11683
|
-
}
|
|
11684
|
-
return debugNodes;
|
|
11685
|
-
}
|
|
11686
|
-
else {
|
|
11687
|
-
return [];
|
|
11688
|
-
}
|
|
11689
|
-
}
|
|
11690
|
-
function buildDebugNode(tNode, lView) {
|
|
11691
|
-
const rawValue = lView[tNode.index];
|
|
11692
|
-
const native = unwrapRNode(rawValue);
|
|
11693
|
-
const factories = [];
|
|
11694
|
-
const instances = [];
|
|
11695
|
-
const tView = lView[TVIEW];
|
|
11696
|
-
for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
|
|
11697
|
-
const def = tView.data[i];
|
|
11698
|
-
factories.push(def.type);
|
|
11699
|
-
instances.push(lView[i]);
|
|
11700
|
-
}
|
|
11701
|
-
return {
|
|
11702
|
-
html: toHtml(native),
|
|
11703
|
-
type: toTNodeTypeAsString(tNode.type),
|
|
11704
|
-
tNode,
|
|
11705
|
-
native: native,
|
|
11706
|
-
children: toDebugNodes(tNode.child, lView),
|
|
11707
|
-
factories,
|
|
11708
|
-
instances,
|
|
11709
|
-
injector: buildNodeInjectorDebug(tNode, tView, lView),
|
|
11710
|
-
get injectorResolutionPath() {
|
|
11711
|
-
return tNode.debugNodeInjectorPath(lView);
|
|
11712
|
-
},
|
|
11713
|
-
};
|
|
11714
|
-
}
|
|
11715
|
-
function buildNodeInjectorDebug(tNode, tView, lView) {
|
|
11716
|
-
const viewProviders = [];
|
|
11717
|
-
for (let i = tNode.providerIndexStart_; i < tNode.providerIndexEnd_; i++) {
|
|
11718
|
-
viewProviders.push(tView.data[i]);
|
|
11719
|
-
}
|
|
11720
|
-
const providers = [];
|
|
11721
|
-
for (let i = tNode.providerIndexEnd_; i < tNode.directiveEnd; i++) {
|
|
11722
|
-
providers.push(tView.data[i]);
|
|
11723
|
-
}
|
|
11724
|
-
const nodeInjectorDebug = {
|
|
11725
|
-
bloom: toBloom(lView, tNode.injectorIndex),
|
|
11726
|
-
cumulativeBloom: toBloom(tView.data, tNode.injectorIndex),
|
|
11727
|
-
providers,
|
|
11728
|
-
viewProviders,
|
|
11729
|
-
parentInjectorIndex: lView[tNode.providerIndexStart_ - 1],
|
|
11730
|
-
};
|
|
11731
|
-
return nodeInjectorDebug;
|
|
11732
|
-
}
|
|
11733
|
-
/**
|
|
11734
|
-
* Convert a number at `idx` location in `array` into binary representation.
|
|
11735
|
-
*
|
|
11736
|
-
* @param array
|
|
11737
|
-
* @param idx
|
|
11738
|
-
*/
|
|
11739
|
-
function binary(array, idx) {
|
|
11740
|
-
const value = array[idx];
|
|
11741
|
-
// If not a number we print 8 `?` to retain alignment but let user know that it was called on
|
|
11742
|
-
// wrong type.
|
|
11743
|
-
if (typeof value !== 'number')
|
|
11744
|
-
return '????????';
|
|
11745
|
-
// We prefix 0s so that we have constant length number
|
|
11746
|
-
const text = '00000000' + value.toString(2);
|
|
11747
|
-
return text.substring(text.length - 8);
|
|
11748
|
-
}
|
|
11749
|
-
/**
|
|
11750
|
-
* Convert a bloom filter at location `idx` in `array` into binary representation.
|
|
11751
|
-
*
|
|
11752
|
-
* @param array
|
|
11753
|
-
* @param idx
|
|
11754
|
-
*/
|
|
11755
|
-
function toBloom(array, idx) {
|
|
11756
|
-
if (idx < 0) {
|
|
11757
|
-
return 'NO_NODE_INJECTOR';
|
|
11758
|
-
}
|
|
11759
|
-
return `${binary(array, idx + 7)}_${binary(array, idx + 6)}_${binary(array, idx + 5)}_${binary(array, idx + 4)}_${binary(array, idx + 3)}_${binary(array, idx + 2)}_${binary(array, idx + 1)}_${binary(array, idx + 0)}`;
|
|
11760
|
-
}
|
|
11761
|
-
class LContainerDebug {
|
|
11762
|
-
constructor(_raw_lContainer) {
|
|
11763
|
-
this._raw_lContainer = _raw_lContainer;
|
|
11764
|
-
}
|
|
11765
|
-
get hasTransplantedViews() {
|
|
11766
|
-
return this._raw_lContainer[HAS_TRANSPLANTED_VIEWS];
|
|
11767
|
-
}
|
|
11768
|
-
get views() {
|
|
11769
|
-
return this._raw_lContainer.slice(CONTAINER_HEADER_OFFSET)
|
|
11770
|
-
.map(toDebug);
|
|
11771
|
-
}
|
|
11772
|
-
get parent() {
|
|
11773
|
-
return toDebug(this._raw_lContainer[PARENT]);
|
|
11774
|
-
}
|
|
11775
|
-
get movedViews() {
|
|
11776
|
-
return this._raw_lContainer[MOVED_VIEWS];
|
|
11777
|
-
}
|
|
11778
|
-
get host() {
|
|
11779
|
-
return this._raw_lContainer[HOST];
|
|
11780
|
-
}
|
|
11781
|
-
get native() {
|
|
11782
|
-
return this._raw_lContainer[NATIVE];
|
|
11783
|
-
}
|
|
11784
|
-
get next() {
|
|
11785
|
-
return toDebug(this._raw_lContainer[NEXT]);
|
|
11786
|
-
}
|
|
11787
|
-
}
|
|
11788
|
-
|
|
11789
10963
|
/**
|
|
11790
10964
|
* @license
|
|
11791
10965
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -11859,7 +11033,7 @@ function renderChildComponents(hostLView, components) {
|
|
|
11859
11033
|
}
|
|
11860
11034
|
}
|
|
11861
11035
|
function createLView(parentLView, tView, context, flags, host, tHostNode, rendererFactory, renderer, sanitizer, injector, embeddedViewInjector) {
|
|
11862
|
-
const lView =
|
|
11036
|
+
const lView = tView.blueprint.slice();
|
|
11863
11037
|
lView[HOST] = host;
|
|
11864
11038
|
lView[FLAGS] = flags | 4 /* LViewFlags.CreationMode */ | 64 /* LViewFlags.Attached */ | 8 /* LViewFlags.FirstLViewPass */;
|
|
11865
11039
|
if (embeddedViewInjector !== null ||
|
|
@@ -11883,7 +11057,6 @@ function createLView(parentLView, tView, context, flags, host, tHostNode, render
|
|
|
11883
11057
|
assertEqual(tView.type == 2 /* TViewType.Embedded */ ? parentLView !== null : true, true, 'Embedded views must have parentLView');
|
|
11884
11058
|
lView[DECLARATION_COMPONENT_VIEW] =
|
|
11885
11059
|
tView.type == 2 /* TViewType.Embedded */ ? parentLView[DECLARATION_COMPONENT_VIEW] : lView;
|
|
11886
|
-
ngDevMode && attachLViewDebug(lView);
|
|
11887
11060
|
return lView;
|
|
11888
11061
|
}
|
|
11889
11062
|
function getOrCreateTNode(tView, index, type, name, attrs) {
|
|
@@ -12266,73 +11439,38 @@ function createTView(type, declTNode, templateFn, decls, vars, directives, pipes
|
|
|
12266
11439
|
const initialViewLength = bindingStartIndex + vars;
|
|
12267
11440
|
const blueprint = createViewBlueprint(bindingStartIndex, initialViewLength);
|
|
12268
11441
|
const consts = typeof constsOrFactory === 'function' ? constsOrFactory() : constsOrFactory;
|
|
12269
|
-
const tView = blueprint[TVIEW] =
|
|
12270
|
-
|
|
12271
|
-
blueprint
|
|
12272
|
-
|
|
12273
|
-
|
|
12274
|
-
viewQuery
|
|
12275
|
-
declTNode
|
|
12276
|
-
|
|
12277
|
-
bindingStartIndex
|
|
12278
|
-
|
|
12279
|
-
|
|
12280
|
-
|
|
12281
|
-
|
|
12282
|
-
|
|
12283
|
-
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
12290
|
-
|
|
12291
|
-
|
|
12292
|
-
|
|
12293
|
-
|
|
12294
|
-
typeof directives === 'function' ?
|
|
12295
|
-
|
|
12296
|
-
|
|
12297
|
-
|
|
12298
|
-
|
|
12299
|
-
|
|
12300
|
-
|
|
12301
|
-
false, // incompleteFirstPass: boolean
|
|
12302
|
-
decls, // ngDevMode only: decls
|
|
12303
|
-
vars) :
|
|
12304
|
-
{
|
|
12305
|
-
type: type,
|
|
12306
|
-
blueprint: blueprint,
|
|
12307
|
-
template: templateFn,
|
|
12308
|
-
queries: null,
|
|
12309
|
-
viewQuery: viewQuery,
|
|
12310
|
-
declTNode: declTNode,
|
|
12311
|
-
data: blueprint.slice().fill(null, bindingStartIndex),
|
|
12312
|
-
bindingStartIndex: bindingStartIndex,
|
|
12313
|
-
expandoStartIndex: initialViewLength,
|
|
12314
|
-
hostBindingOpCodes: null,
|
|
12315
|
-
firstCreatePass: true,
|
|
12316
|
-
firstUpdatePass: true,
|
|
12317
|
-
staticViewQueries: false,
|
|
12318
|
-
staticContentQueries: false,
|
|
12319
|
-
preOrderHooks: null,
|
|
12320
|
-
preOrderCheckHooks: null,
|
|
12321
|
-
contentHooks: null,
|
|
12322
|
-
contentCheckHooks: null,
|
|
12323
|
-
viewHooks: null,
|
|
12324
|
-
viewCheckHooks: null,
|
|
12325
|
-
destroyHooks: null,
|
|
12326
|
-
cleanup: null,
|
|
12327
|
-
contentQueries: null,
|
|
12328
|
-
components: null,
|
|
12329
|
-
directiveRegistry: typeof directives === 'function' ? directives() : directives,
|
|
12330
|
-
pipeRegistry: typeof pipes === 'function' ? pipes() : pipes,
|
|
12331
|
-
firstChild: null,
|
|
12332
|
-
schemas: schemas,
|
|
12333
|
-
consts: consts,
|
|
12334
|
-
incompleteFirstPass: false
|
|
12335
|
-
};
|
|
11442
|
+
const tView = blueprint[TVIEW] = {
|
|
11443
|
+
type: type,
|
|
11444
|
+
blueprint: blueprint,
|
|
11445
|
+
template: templateFn,
|
|
11446
|
+
queries: null,
|
|
11447
|
+
viewQuery: viewQuery,
|
|
11448
|
+
declTNode: declTNode,
|
|
11449
|
+
data: blueprint.slice().fill(null, bindingStartIndex),
|
|
11450
|
+
bindingStartIndex: bindingStartIndex,
|
|
11451
|
+
expandoStartIndex: initialViewLength,
|
|
11452
|
+
hostBindingOpCodes: null,
|
|
11453
|
+
firstCreatePass: true,
|
|
11454
|
+
firstUpdatePass: true,
|
|
11455
|
+
staticViewQueries: false,
|
|
11456
|
+
staticContentQueries: false,
|
|
11457
|
+
preOrderHooks: null,
|
|
11458
|
+
preOrderCheckHooks: null,
|
|
11459
|
+
contentHooks: null,
|
|
11460
|
+
contentCheckHooks: null,
|
|
11461
|
+
viewHooks: null,
|
|
11462
|
+
viewCheckHooks: null,
|
|
11463
|
+
destroyHooks: null,
|
|
11464
|
+
cleanup: null,
|
|
11465
|
+
contentQueries: null,
|
|
11466
|
+
components: null,
|
|
11467
|
+
directiveRegistry: typeof directives === 'function' ? directives() : directives,
|
|
11468
|
+
pipeRegistry: typeof pipes === 'function' ? pipes() : pipes,
|
|
11469
|
+
firstChild: null,
|
|
11470
|
+
schemas: schemas,
|
|
11471
|
+
consts: consts,
|
|
11472
|
+
incompleteFirstPass: false
|
|
11473
|
+
};
|
|
12336
11474
|
if (ngDevMode) {
|
|
12337
11475
|
// For performance reasons it is important that the tView retains the same shape during runtime.
|
|
12338
11476
|
// (To make sure that all of the code is monomorphic.) For this reason we seal the object to
|
|
@@ -12342,7 +11480,7 @@ function createTView(type, declTNode, templateFn, decls, vars, directives, pipes
|
|
|
12342
11480
|
return tView;
|
|
12343
11481
|
}
|
|
12344
11482
|
function createViewBlueprint(bindingStartIndex, initialViewLength) {
|
|
12345
|
-
const blueprint =
|
|
11483
|
+
const blueprint = [];
|
|
12346
11484
|
for (let i = 0; i < initialViewLength; i++) {
|
|
12347
11485
|
blueprint.push(i < bindingStartIndex ? null : NO_CHANGE);
|
|
12348
11486
|
}
|
|
@@ -12395,74 +11533,40 @@ function createTNode(tView, tParent, type, index, value, attrs) {
|
|
|
12395
11533
|
ngDevMode && ngDevMode.tNode++;
|
|
12396
11534
|
ngDevMode && tParent && assertTNodeForTView(tParent, tView);
|
|
12397
11535
|
let injectorIndex = tParent ? tParent.injectorIndex : -1;
|
|
12398
|
-
const tNode =
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
|
|
12402
|
-
|
|
12403
|
-
|
|
12404
|
-
-1,
|
|
12405
|
-
-1,
|
|
12406
|
-
-1,
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
0,
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
null,
|
|
12414
|
-
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
0,
|
|
12431
|
-
|
|
12432
|
-
{
|
|
12433
|
-
type,
|
|
12434
|
-
index,
|
|
12435
|
-
insertBeforeIndex: null,
|
|
12436
|
-
injectorIndex,
|
|
12437
|
-
directiveStart: -1,
|
|
12438
|
-
directiveEnd: -1,
|
|
12439
|
-
directiveStylingLast: -1,
|
|
12440
|
-
componentOffset: -1,
|
|
12441
|
-
propertyBindings: null,
|
|
12442
|
-
flags: 0,
|
|
12443
|
-
providerIndexes: 0,
|
|
12444
|
-
value: value,
|
|
12445
|
-
attrs: attrs,
|
|
12446
|
-
mergedAttrs: null,
|
|
12447
|
-
localNames: null,
|
|
12448
|
-
initialInputs: undefined,
|
|
12449
|
-
inputs: null,
|
|
12450
|
-
outputs: null,
|
|
12451
|
-
tViews: null,
|
|
12452
|
-
next: null,
|
|
12453
|
-
projectionNext: null,
|
|
12454
|
-
child: null,
|
|
12455
|
-
parent: tParent,
|
|
12456
|
-
projection: null,
|
|
12457
|
-
styles: null,
|
|
12458
|
-
stylesWithoutHost: null,
|
|
12459
|
-
residualStyles: undefined,
|
|
12460
|
-
classes: null,
|
|
12461
|
-
classesWithoutHost: null,
|
|
12462
|
-
residualClasses: undefined,
|
|
12463
|
-
classBindings: 0,
|
|
12464
|
-
styleBindings: 0,
|
|
12465
|
-
};
|
|
11536
|
+
const tNode = {
|
|
11537
|
+
type,
|
|
11538
|
+
index,
|
|
11539
|
+
insertBeforeIndex: null,
|
|
11540
|
+
injectorIndex,
|
|
11541
|
+
directiveStart: -1,
|
|
11542
|
+
directiveEnd: -1,
|
|
11543
|
+
directiveStylingLast: -1,
|
|
11544
|
+
componentOffset: -1,
|
|
11545
|
+
propertyBindings: null,
|
|
11546
|
+
flags: 0,
|
|
11547
|
+
providerIndexes: 0,
|
|
11548
|
+
value: value,
|
|
11549
|
+
attrs: attrs,
|
|
11550
|
+
mergedAttrs: null,
|
|
11551
|
+
localNames: null,
|
|
11552
|
+
initialInputs: undefined,
|
|
11553
|
+
inputs: null,
|
|
11554
|
+
outputs: null,
|
|
11555
|
+
tViews: null,
|
|
11556
|
+
next: null,
|
|
11557
|
+
projectionNext: null,
|
|
11558
|
+
child: null,
|
|
11559
|
+
parent: tParent,
|
|
11560
|
+
projection: null,
|
|
11561
|
+
styles: null,
|
|
11562
|
+
stylesWithoutHost: null,
|
|
11563
|
+
residualStyles: undefined,
|
|
11564
|
+
classes: null,
|
|
11565
|
+
classesWithoutHost: null,
|
|
11566
|
+
residualClasses: undefined,
|
|
11567
|
+
classBindings: 0,
|
|
11568
|
+
styleBindings: 0,
|
|
11569
|
+
};
|
|
12466
11570
|
if (ngDevMode) {
|
|
12467
11571
|
// For performance reasons it is important that the tNode retains the same shape during runtime.
|
|
12468
11572
|
// (To make sure that all of the code is monomorphic.) For this reason we seal the object to
|
|
@@ -12519,7 +11623,7 @@ function initializeInputAndOutputAliases(tView, tNode, hostDirectiveDefinitionMa
|
|
|
12519
11623
|
const end = tNode.directiveEnd;
|
|
12520
11624
|
const tViewData = tView.data;
|
|
12521
11625
|
const tNodeAttrs = tNode.attrs;
|
|
12522
|
-
const inputsFromAttrs =
|
|
11626
|
+
const inputsFromAttrs = [];
|
|
12523
11627
|
let inputsStore = null;
|
|
12524
11628
|
let outputsStore = null;
|
|
12525
11629
|
for (let directiveIndex = start; directiveIndex < end; directiveIndex++) {
|
|
@@ -12858,7 +11962,7 @@ function findDirectiveDefMatches(tView, tNode) {
|
|
|
12858
11962
|
for (let i = 0; i < registry.length; i++) {
|
|
12859
11963
|
const def = registry[i];
|
|
12860
11964
|
if (isNodeMatchingSelectorList(tNode, def.selectors, /* isProjectionMode */ false)) {
|
|
12861
|
-
matches || (matches =
|
|
11965
|
+
matches || (matches = []);
|
|
12862
11966
|
if (isComponentDef(def)) {
|
|
12863
11967
|
if (ngDevMode) {
|
|
12864
11968
|
assertTNodeType(tNode, 2 /* TNodeType.Element */, `"${tNode.value}" tags cannot be used as component hosts. ` +
|
|
@@ -12916,13 +12020,12 @@ function markAsComponentHost(tView, hostTNode, componentOffset) {
|
|
|
12916
12020
|
ngDevMode && assertFirstCreatePass(tView);
|
|
12917
12021
|
ngDevMode && assertGreaterThan(componentOffset, -1, 'componentOffset must be great than -1');
|
|
12918
12022
|
hostTNode.componentOffset = componentOffset;
|
|
12919
|
-
(tView.components || (tView.components =
|
|
12920
|
-
.push(hostTNode.index);
|
|
12023
|
+
(tView.components || (tView.components = [])).push(hostTNode.index);
|
|
12921
12024
|
}
|
|
12922
12025
|
/** Caches local names and their matching directive indices for query and template lookups. */
|
|
12923
12026
|
function cacheMatchingLocalNames(tNode, localRefs, exportsMap) {
|
|
12924
12027
|
if (localRefs) {
|
|
12925
|
-
const localNames = tNode.localNames =
|
|
12028
|
+
const localNames = tNode.localNames = [];
|
|
12926
12029
|
// Local names must be stored in tNode in the same order that localRefs are defined
|
|
12927
12030
|
// in the template to ensure the data is loaded in the same slots as their refs
|
|
12928
12031
|
// in the template (for template queries).
|
|
@@ -13105,9 +12208,6 @@ function generateInitialInputs(inputs, directiveIndex, attrs) {
|
|
|
13105
12208
|
//////////////////////////
|
|
13106
12209
|
//// ViewContainer & View
|
|
13107
12210
|
//////////////////////////
|
|
13108
|
-
// Not sure why I need to do `any` here but TS complains later.
|
|
13109
|
-
const LContainerArray = class LContainer extends Array {
|
|
13110
|
-
};
|
|
13111
12211
|
/**
|
|
13112
12212
|
* Creates a LContainer, either from a container instruction, or for a ViewContainerRef.
|
|
13113
12213
|
*
|
|
@@ -13120,20 +12220,20 @@ const LContainerArray = class LContainer extends Array {
|
|
|
13120
12220
|
*/
|
|
13121
12221
|
function createLContainer(hostNative, currentView, native, tNode) {
|
|
13122
12222
|
ngDevMode && assertLView(currentView);
|
|
13123
|
-
|
|
13124
|
-
|
|
13125
|
-
|
|
13126
|
-
|
|
13127
|
-
|
|
13128
|
-
|
|
13129
|
-
|
|
13130
|
-
|
|
13131
|
-
|
|
13132
|
-
|
|
13133
|
-
|
|
12223
|
+
const lContainer = [
|
|
12224
|
+
hostNative,
|
|
12225
|
+
true,
|
|
12226
|
+
false,
|
|
12227
|
+
currentView,
|
|
12228
|
+
null,
|
|
12229
|
+
0,
|
|
12230
|
+
tNode,
|
|
12231
|
+
native,
|
|
12232
|
+
null,
|
|
12233
|
+
null, // moved views
|
|
12234
|
+
];
|
|
13134
12235
|
ngDevMode &&
|
|
13135
12236
|
assertEqual(lContainer.length, CONTAINER_HEADER_OFFSET, 'Should allocate correct number of slots for LContainer header.');
|
|
13136
|
-
ngDevMode && attachLContainerDebug(lContainer);
|
|
13137
12237
|
return lContainer;
|
|
13138
12238
|
}
|
|
13139
12239
|
/**
|
|
@@ -13407,10 +12507,10 @@ function storePropertyBindingMetadata(tData, tNode, propertyName, bindingIndex,
|
|
|
13407
12507
|
}
|
|
13408
12508
|
function getOrCreateLViewCleanup(view) {
|
|
13409
12509
|
// top level variables should not be exported for performance reasons (PERF_NOTES.md)
|
|
13410
|
-
return view[CLEANUP] || (view[CLEANUP] =
|
|
12510
|
+
return view[CLEANUP] || (view[CLEANUP] = []);
|
|
13411
12511
|
}
|
|
13412
12512
|
function getOrCreateTViewCleanup(tView) {
|
|
13413
|
-
return tView.cleanup || (tView.cleanup =
|
|
12513
|
+
return tView.cleanup || (tView.cleanup = []);
|
|
13414
12514
|
}
|
|
13415
12515
|
/**
|
|
13416
12516
|
* There are cases where the sub component's renderer needs to be included
|
|
@@ -14022,17 +13122,6 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
14022
13122
|
return new ComponentRef(this.componentType, component, createElementRef(tElementNode, rootLView), rootLView, tElementNode);
|
|
14023
13123
|
}
|
|
14024
13124
|
}
|
|
14025
|
-
const componentFactoryResolver = new ComponentFactoryResolver();
|
|
14026
|
-
/**
|
|
14027
|
-
* Creates a ComponentFactoryResolver and stores it on the injector. Or, if the
|
|
14028
|
-
* ComponentFactoryResolver
|
|
14029
|
-
* already exists, retrieves the existing ComponentFactoryResolver.
|
|
14030
|
-
*
|
|
14031
|
-
* @returns The ComponentFactoryResolver instance to use
|
|
14032
|
-
*/
|
|
14033
|
-
function injectComponentFactoryResolver() {
|
|
14034
|
-
return componentFactoryResolver;
|
|
14035
|
-
}
|
|
14036
13125
|
/**
|
|
14037
13126
|
* Represents an instance of a Component created via a {@link ComponentFactory}.
|
|
14038
13127
|
*
|
|
@@ -15793,7 +14882,8 @@ const isObservable = isSubscribable;
|
|
|
15793
14882
|
*
|
|
15794
14883
|
* @param eventName Name of the event
|
|
15795
14884
|
* @param listenerFn The function to be called when event emits
|
|
15796
|
-
* @param useCapture Whether or not to use capture in event listener
|
|
14885
|
+
* @param useCapture Whether or not to use capture in event listener - this argument is a reminder
|
|
14886
|
+
* from the Renderer3 infrastructure and should be removed from the instruction arguments
|
|
15797
14887
|
* @param eventTargetResolver Function that returns global target information in case this listener
|
|
15798
14888
|
* should be attached to a global object like window, document or body
|
|
15799
14889
|
*
|
|
@@ -15803,7 +14893,7 @@ function ɵɵlistener(eventName, listenerFn, useCapture, eventTargetResolver) {
|
|
|
15803
14893
|
const lView = getLView();
|
|
15804
14894
|
const tView = getTView();
|
|
15805
14895
|
const tNode = getCurrentTNode();
|
|
15806
|
-
listenerInternal(tView, lView, lView[RENDERER], tNode, eventName, listenerFn,
|
|
14896
|
+
listenerInternal(tView, lView, lView[RENDERER], tNode, eventName, listenerFn, eventTargetResolver);
|
|
15807
14897
|
return ɵɵlistener;
|
|
15808
14898
|
}
|
|
15809
14899
|
/**
|
|
@@ -15833,7 +14923,7 @@ function ɵɵsyntheticHostListener(eventName, listenerFn) {
|
|
|
15833
14923
|
const tView = getTView();
|
|
15834
14924
|
const currentDef = getCurrentDirectiveDef(tView.data);
|
|
15835
14925
|
const renderer = loadComponentRenderer(currentDef, tNode, lView);
|
|
15836
|
-
listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn
|
|
14926
|
+
listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn);
|
|
15837
14927
|
return ɵɵsyntheticHostListener;
|
|
15838
14928
|
}
|
|
15839
14929
|
/**
|
|
@@ -15866,7 +14956,7 @@ function findExistingListener(tView, lView, eventName, tNodeIdx) {
|
|
|
15866
14956
|
}
|
|
15867
14957
|
return null;
|
|
15868
14958
|
}
|
|
15869
|
-
function listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn,
|
|
14959
|
+
function listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn, eventTargetResolver) {
|
|
15870
14960
|
const isTNodeDirectiveHost = isDirectiveHost(tNode);
|
|
15871
14961
|
const firstCreatePass = tView.firstCreatePass;
|
|
15872
14962
|
const tCleanup = firstCreatePass && getOrCreateTViewCleanup(tView);
|
|
@@ -16617,6 +15707,62 @@ function ɵɵpropertyInterpolateV(propName, values, sanitizer) {
|
|
|
16617
15707
|
return ɵɵpropertyInterpolateV;
|
|
16618
15708
|
}
|
|
16619
15709
|
|
|
15710
|
+
/**
|
|
15711
|
+
* @license
|
|
15712
|
+
* Copyright Google LLC All Rights Reserved.
|
|
15713
|
+
*
|
|
15714
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
15715
|
+
* found in the LICENSE file at https://angular.io/license
|
|
15716
|
+
*/
|
|
15717
|
+
function toTStylingRange(prev, next) {
|
|
15718
|
+
ngDevMode && assertNumberInRange(prev, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
15719
|
+
ngDevMode && assertNumberInRange(next, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
15720
|
+
return (prev << 17 /* StylingRange.PREV_SHIFT */ | next << 2 /* StylingRange.NEXT_SHIFT */);
|
|
15721
|
+
}
|
|
15722
|
+
function getTStylingRangePrev(tStylingRange) {
|
|
15723
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15724
|
+
return (tStylingRange >> 17 /* StylingRange.PREV_SHIFT */) & 32767 /* StylingRange.UNSIGNED_MASK */;
|
|
15725
|
+
}
|
|
15726
|
+
function getTStylingRangePrevDuplicate(tStylingRange) {
|
|
15727
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15728
|
+
return (tStylingRange & 2 /* StylingRange.PREV_DUPLICATE */) ==
|
|
15729
|
+
2 /* StylingRange.PREV_DUPLICATE */;
|
|
15730
|
+
}
|
|
15731
|
+
function setTStylingRangePrev(tStylingRange, previous) {
|
|
15732
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15733
|
+
ngDevMode && assertNumberInRange(previous, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
15734
|
+
return ((tStylingRange & ~4294836224 /* StylingRange.PREV_MASK */) |
|
|
15735
|
+
(previous << 17 /* StylingRange.PREV_SHIFT */));
|
|
15736
|
+
}
|
|
15737
|
+
function setTStylingRangePrevDuplicate(tStylingRange) {
|
|
15738
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15739
|
+
return (tStylingRange | 2 /* StylingRange.PREV_DUPLICATE */);
|
|
15740
|
+
}
|
|
15741
|
+
function getTStylingRangeNext(tStylingRange) {
|
|
15742
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15743
|
+
return (tStylingRange & 131068 /* StylingRange.NEXT_MASK */) >> 2 /* StylingRange.NEXT_SHIFT */;
|
|
15744
|
+
}
|
|
15745
|
+
function setTStylingRangeNext(tStylingRange, next) {
|
|
15746
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15747
|
+
ngDevMode && assertNumberInRange(next, 0, 32767 /* StylingRange.UNSIGNED_MASK */);
|
|
15748
|
+
return ((tStylingRange & ~131068 /* StylingRange.NEXT_MASK */) | //
|
|
15749
|
+
next << 2 /* StylingRange.NEXT_SHIFT */);
|
|
15750
|
+
}
|
|
15751
|
+
function getTStylingRangeNextDuplicate(tStylingRange) {
|
|
15752
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15753
|
+
return (tStylingRange & 1 /* StylingRange.NEXT_DUPLICATE */) ===
|
|
15754
|
+
1 /* StylingRange.NEXT_DUPLICATE */;
|
|
15755
|
+
}
|
|
15756
|
+
function setTStylingRangeNextDuplicate(tStylingRange) {
|
|
15757
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15758
|
+
return (tStylingRange | 1 /* StylingRange.NEXT_DUPLICATE */);
|
|
15759
|
+
}
|
|
15760
|
+
function getTStylingRangeTail(tStylingRange) {
|
|
15761
|
+
ngDevMode && assertNumber(tStylingRange, 'expected number');
|
|
15762
|
+
const next = getTStylingRangeNext(tStylingRange);
|
|
15763
|
+
return next === 0 ? getTStylingRangePrev(tStylingRange) : next;
|
|
15764
|
+
}
|
|
15765
|
+
|
|
16620
15766
|
/**
|
|
16621
15767
|
* @license
|
|
16622
15768
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -20438,6 +19584,46 @@ function loadIcuContainerVisitor() {
|
|
|
20438
19584
|
return icuContainerIteratorStart;
|
|
20439
19585
|
}
|
|
20440
19586
|
|
|
19587
|
+
/**
|
|
19588
|
+
* @license
|
|
19589
|
+
* Copyright Google LLC All Rights Reserved.
|
|
19590
|
+
*
|
|
19591
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
19592
|
+
* found in the LICENSE file at https://angular.io/license
|
|
19593
|
+
*/
|
|
19594
|
+
/**
|
|
19595
|
+
* Patch a `debug` property on top of the existing object.
|
|
19596
|
+
*
|
|
19597
|
+
* NOTE: always call this method with `ngDevMode && attachDebugObject(...)`
|
|
19598
|
+
*
|
|
19599
|
+
* @param obj Object to patch
|
|
19600
|
+
* @param debug Value to patch
|
|
19601
|
+
*/
|
|
19602
|
+
function attachDebugObject(obj, debug) {
|
|
19603
|
+
if (ngDevMode) {
|
|
19604
|
+
Object.defineProperty(obj, 'debug', { value: debug, enumerable: false });
|
|
19605
|
+
}
|
|
19606
|
+
else {
|
|
19607
|
+
throw new Error('This method should be guarded with `ngDevMode` so that it can be tree shaken in production!');
|
|
19608
|
+
}
|
|
19609
|
+
}
|
|
19610
|
+
/**
|
|
19611
|
+
* Patch a `debug` property getter on top of the existing object.
|
|
19612
|
+
*
|
|
19613
|
+
* NOTE: always call this method with `ngDevMode && attachDebugObject(...)`
|
|
19614
|
+
*
|
|
19615
|
+
* @param obj Object to patch
|
|
19616
|
+
* @param debugGetter Getter returning a value to patch
|
|
19617
|
+
*/
|
|
19618
|
+
function attachDebugGetter(obj, debugGetter) {
|
|
19619
|
+
if (ngDevMode) {
|
|
19620
|
+
Object.defineProperty(obj, 'debug', { get: debugGetter, enumerable: false });
|
|
19621
|
+
}
|
|
19622
|
+
else {
|
|
19623
|
+
throw new Error('This method should be guarded with `ngDevMode` so that it can be tree shaken in production!');
|
|
19624
|
+
}
|
|
19625
|
+
}
|
|
19626
|
+
|
|
20441
19627
|
/**
|
|
20442
19628
|
* @license
|
|
20443
19629
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -21193,7 +20379,7 @@ function walkIcuTree(tView, tIcu, lView, sharedUpdateOpCodes, create, remove, up
|
|
|
21193
20379
|
ngDevMode &&
|
|
21194
20380
|
console.warn(`WARNING: ignoring unsafe attribute value ` +
|
|
21195
20381
|
`${lowerAttrName} on element ${tagName} ` +
|
|
21196
|
-
`(see
|
|
20382
|
+
`(see ${XSS_SECURITY_URL})`);
|
|
21197
20383
|
}
|
|
21198
20384
|
}
|
|
21199
20385
|
else {
|
|
@@ -22407,32 +21593,6 @@ function sortListeners(a, b) {
|
|
|
22407
21593
|
function isDirectiveDefHack(obj) {
|
|
22408
21594
|
return obj.type !== undefined && obj.template !== undefined && obj.declaredInputs !== undefined;
|
|
22409
21595
|
}
|
|
22410
|
-
/**
|
|
22411
|
-
* Returns the attached `DebugNode` instance for an element in the DOM.
|
|
22412
|
-
*
|
|
22413
|
-
* @param element DOM element which is owned by an existing component's view.
|
|
22414
|
-
*/
|
|
22415
|
-
function getDebugNode$1(element) {
|
|
22416
|
-
if (ngDevMode && !(element instanceof Node)) {
|
|
22417
|
-
throw new Error('Expecting instance of DOM Element');
|
|
22418
|
-
}
|
|
22419
|
-
const lContext = getLContext(element);
|
|
22420
|
-
const lView = lContext ? lContext.lView : null;
|
|
22421
|
-
if (lView === null) {
|
|
22422
|
-
return null;
|
|
22423
|
-
}
|
|
22424
|
-
const nodeIndex = lContext.nodeIndex;
|
|
22425
|
-
if (nodeIndex !== -1) {
|
|
22426
|
-
const valueInLView = lView[nodeIndex];
|
|
22427
|
-
// this means that value in the lView is a component with its own
|
|
22428
|
-
// data. In this situation the TNode is not accessed at the same spot.
|
|
22429
|
-
const tNode = isLView(valueInLView) ? valueInLView[T_HOST] : getTNode(lView[TVIEW], nodeIndex);
|
|
22430
|
-
ngDevMode &&
|
|
22431
|
-
assertEqual(tNode.index, nodeIndex, 'Expecting that TNode at index is same as index');
|
|
22432
|
-
return buildDebugNode(tNode, lView);
|
|
22433
|
-
}
|
|
22434
|
-
return null;
|
|
22435
|
-
}
|
|
22436
21596
|
/**
|
|
22437
21597
|
* Retrieve the component `LView` from component/element.
|
|
22438
21598
|
*
|
|
@@ -30106,5 +29266,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
30106
29266
|
* Generated bundle index. Do not edit.
|
|
30107
29267
|
*/
|
|
30108
29268
|
|
|
30109
|
-
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, 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, _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, isObservable as ɵisObservable, isPromise as ɵisPromise, isStandalone as ɵisStandalone, 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 };
|
|
29269
|
+
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, 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, isObservable as ɵisObservable, isPromise as ɵisPromise, isStandalone as ɵisStandalone, 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 };
|
|
30110
29270
|
//# sourceMappingURL=core.mjs.map
|