@angular/core 12.0.1 → 12.0.5
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/bundles/core-testing.umd.js +46 -83
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core.umd.js +43 -30
- package/bundles/core.umd.js.map +1 -1
- package/core.d.ts +245 -17
- package/core.metadata.json +1 -1
- package/esm2015/src/change_detection/differs/iterable_differs.js +1 -1
- package/esm2015/src/debug/debug_node.js +1 -1
- package/esm2015/src/di/injectable.js +1 -1
- package/esm2015/src/linker/component_factory_resolver.js +4 -1
- package/esm2015/src/metadata/di.js +1 -1
- package/esm2015/src/metadata/do_boostrap.js +1 -1
- package/esm2015/src/metadata/ng_module.js +1 -1
- package/esm2015/src/metadata/schema.js +5 -1
- package/esm2015/src/render3/definition.js +16 -16
- package/esm2015/src/render3/util/discovery_utils.js +18 -12
- package/esm2015/src/render3/view_ref.js +3 -3
- package/esm2015/src/version.js +1 -1
- package/esm2015/testing/src/fake_async.js +42 -25
- package/esm2015/testing/src/test_bed.js +5 -25
- package/esm2015/testing/src/testing_internal.js +1 -182
- package/fesm2015/core.js +43 -30
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +46 -76
- package/fesm2015/testing.js.map +1 -1
- package/package.json +2 -2
- package/schematics/migrations/deep-shadow-piercing-selector/index.d.ts +10 -0
- package/schematics/migrations/deep-shadow-piercing-selector/index.js +49 -0
- package/schematics/migrations.json +5 -0
- package/src/r3_symbols.d.ts +4 -1
- package/testing/testing.d.ts +42 -30
- package/testing/testing.metadata.json +1 -1
- package/testing.d.ts +1 -1
- package/esm2015/testing/src/async_test_completer.js +0 -28
|
@@ -5,188 +5,7 @@
|
|
|
5
5
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
|
-
import { ɵisPromise as isPromise } from '@angular/core';
|
|
9
|
-
import { global } from '@angular/core/src/util/global';
|
|
10
|
-
import { AsyncTestCompleter } from './async_test_completer';
|
|
11
|
-
import { getTestBed } from './test_bed';
|
|
12
|
-
export { AsyncTestCompleter } from './async_test_completer';
|
|
13
8
|
export { inject } from './test_bed';
|
|
14
9
|
export * from './logger';
|
|
15
10
|
export * from './ng_zone_mock';
|
|
16
|
-
|
|
17
|
-
const _global = (typeof window === 'undefined' ? global : window);
|
|
18
|
-
export const afterEach = _global.afterEach;
|
|
19
|
-
export const expect = _global.expect;
|
|
20
|
-
const jsmBeforeEach = _global.beforeEach;
|
|
21
|
-
const jsmDescribe = _global.describe;
|
|
22
|
-
const jsmDDescribe = _global.fdescribe;
|
|
23
|
-
const jsmXDescribe = _global.xdescribe;
|
|
24
|
-
const jsmIt = _global.it;
|
|
25
|
-
const jsmFIt = _global.fit;
|
|
26
|
-
const jsmXIt = _global.xit;
|
|
27
|
-
const runnerStack = [];
|
|
28
|
-
jasmine.DEFAULT_TIMEOUT_INTERVAL = 3000;
|
|
29
|
-
const globalTimeOut = jasmine.DEFAULT_TIMEOUT_INTERVAL;
|
|
30
|
-
const testBed = getTestBed();
|
|
31
|
-
/**
|
|
32
|
-
* Mechanism to run `beforeEach()` functions of Angular tests.
|
|
33
|
-
*
|
|
34
|
-
* Note: Jasmine own `beforeEach` is used by this library to handle DI providers.
|
|
35
|
-
*/
|
|
36
|
-
class BeforeEachRunner {
|
|
37
|
-
constructor(_parent) {
|
|
38
|
-
this._parent = _parent;
|
|
39
|
-
this._fns = [];
|
|
40
|
-
}
|
|
41
|
-
beforeEach(fn) {
|
|
42
|
-
this._fns.push(fn);
|
|
43
|
-
}
|
|
44
|
-
run() {
|
|
45
|
-
if (this._parent)
|
|
46
|
-
this._parent.run();
|
|
47
|
-
this._fns.forEach((fn) => {
|
|
48
|
-
fn();
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// Reset the test providers before each test
|
|
53
|
-
jsmBeforeEach(() => {
|
|
54
|
-
testBed.resetTestingModule();
|
|
55
|
-
});
|
|
56
|
-
function _describe(jsmFn, ...args) {
|
|
57
|
-
const parentRunner = runnerStack.length === 0 ? null : runnerStack[runnerStack.length - 1];
|
|
58
|
-
const runner = new BeforeEachRunner(parentRunner);
|
|
59
|
-
runnerStack.push(runner);
|
|
60
|
-
const suite = jsmFn(...args);
|
|
61
|
-
runnerStack.pop();
|
|
62
|
-
return suite;
|
|
63
|
-
}
|
|
64
|
-
export function describe(...args) {
|
|
65
|
-
return _describe(jsmDescribe, ...args);
|
|
66
|
-
}
|
|
67
|
-
export function ddescribe(...args) {
|
|
68
|
-
return _describe(jsmDDescribe, ...args);
|
|
69
|
-
}
|
|
70
|
-
export function xdescribe(...args) {
|
|
71
|
-
return _describe(jsmXDescribe, ...args);
|
|
72
|
-
}
|
|
73
|
-
export function beforeEach(fn) {
|
|
74
|
-
if (runnerStack.length > 0) {
|
|
75
|
-
// Inside a describe block, beforeEach() uses a BeforeEachRunner
|
|
76
|
-
runnerStack[runnerStack.length - 1].beforeEach(fn);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
// Top level beforeEach() are delegated to jasmine
|
|
80
|
-
jsmBeforeEach(fn);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Allows overriding default providers defined in test_injector.js.
|
|
85
|
-
*
|
|
86
|
-
* The given function must return a list of DI providers.
|
|
87
|
-
*
|
|
88
|
-
* Example:
|
|
89
|
-
*
|
|
90
|
-
* beforeEachProviders(() => [
|
|
91
|
-
* {provide: Compiler, useClass: MockCompiler},
|
|
92
|
-
* {provide: SomeToken, useValue: myValue},
|
|
93
|
-
* ]);
|
|
94
|
-
*/
|
|
95
|
-
export function beforeEachProviders(fn) {
|
|
96
|
-
jsmBeforeEach(() => {
|
|
97
|
-
const providers = fn();
|
|
98
|
-
if (!providers)
|
|
99
|
-
return;
|
|
100
|
-
testBed.configureTestingModule({ providers: providers });
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
function _it(jsmFn, testName, testFn, testTimeout = 0) {
|
|
104
|
-
if (runnerStack.length == 0) {
|
|
105
|
-
// This left here intentionally, as we should never get here, and it aids debugging.
|
|
106
|
-
// tslint:disable-next-line
|
|
107
|
-
debugger;
|
|
108
|
-
throw new Error('Empty Stack!');
|
|
109
|
-
}
|
|
110
|
-
const runner = runnerStack[runnerStack.length - 1];
|
|
111
|
-
const timeout = Math.max(globalTimeOut, testTimeout);
|
|
112
|
-
jsmFn(testName, (done) => {
|
|
113
|
-
const completerProvider = {
|
|
114
|
-
provide: AsyncTestCompleter,
|
|
115
|
-
useFactory: () => {
|
|
116
|
-
// Mark the test as async when an AsyncTestCompleter is injected in an it()
|
|
117
|
-
return new AsyncTestCompleter();
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
testBed.configureTestingModule({ providers: [completerProvider] });
|
|
121
|
-
runner.run();
|
|
122
|
-
if (testFn.length === 0) {
|
|
123
|
-
// TypeScript doesn't infer the TestFn type without parameters here, so we
|
|
124
|
-
// need to manually cast it.
|
|
125
|
-
const retVal = testFn();
|
|
126
|
-
if (isPromise(retVal)) {
|
|
127
|
-
// Asynchronous test function that returns a Promise - wait for completion.
|
|
128
|
-
retVal.then(done, done.fail);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
// Synchronous test function - complete immediately.
|
|
132
|
-
done();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
// Asynchronous test function that takes in 'done' parameter.
|
|
137
|
-
testFn(done);
|
|
138
|
-
}
|
|
139
|
-
}, timeout);
|
|
140
|
-
}
|
|
141
|
-
export function it(expectation, assertion, timeout) {
|
|
142
|
-
return _it(jsmIt, expectation, assertion, timeout);
|
|
143
|
-
}
|
|
144
|
-
export function fit(expectation, assertion, timeout) {
|
|
145
|
-
return _it(jsmFIt, expectation, assertion, timeout);
|
|
146
|
-
}
|
|
147
|
-
export function xit(expectation, assertion, timeout) {
|
|
148
|
-
return _it(jsmXIt, expectation, assertion, timeout);
|
|
149
|
-
}
|
|
150
|
-
export class SpyObject {
|
|
151
|
-
constructor(type) {
|
|
152
|
-
if (type) {
|
|
153
|
-
for (const prop in type.prototype) {
|
|
154
|
-
let m = null;
|
|
155
|
-
try {
|
|
156
|
-
m = type.prototype[prop];
|
|
157
|
-
}
|
|
158
|
-
catch (_a) {
|
|
159
|
-
// As we are creating spys for abstract classes,
|
|
160
|
-
// these classes might have getters that throw when they are accessed.
|
|
161
|
-
// As we are only auto creating spys for methods, this
|
|
162
|
-
// should not matter.
|
|
163
|
-
}
|
|
164
|
-
if (typeof m === 'function') {
|
|
165
|
-
this.spy(prop);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
spy(name) {
|
|
171
|
-
if (!this[name]) {
|
|
172
|
-
this[name] = jasmine.createSpy(name);
|
|
173
|
-
}
|
|
174
|
-
return this[name];
|
|
175
|
-
}
|
|
176
|
-
prop(name, value) {
|
|
177
|
-
this[name] = value;
|
|
178
|
-
}
|
|
179
|
-
static stub(object = null, config = null, overrides = null) {
|
|
180
|
-
if (!(object instanceof SpyObject)) {
|
|
181
|
-
overrides = config;
|
|
182
|
-
config = object;
|
|
183
|
-
object = new SpyObject();
|
|
184
|
-
}
|
|
185
|
-
const m = Object.assign(Object.assign({}, config), overrides);
|
|
186
|
-
Object.keys(m).forEach(key => {
|
|
187
|
-
object.spy(key).and.returnValue(m[key]);
|
|
188
|
-
});
|
|
189
|
-
return object;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZ19pbnRlcm5hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdGVzdGluZy9zcmMvdGVzdGluZ19pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxJQUFJLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFckQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBUyxNQUFNLFlBQVksQ0FBQztBQUU5QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRWxDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFtQixDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRW5ELE1BQU0sT0FBTyxHQUFRLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBYSxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQ3JELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBMEMsT0FBTyxDQUFDLE1BQU0sQ0FBQztBQUU1RSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ3pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7QUFDckMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUN2QyxNQUFNLFlBQVksR0FBRyxPQUFP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QUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDaEI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxDQUFFLElBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQztRQUNELE9BQVEsSUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBWSxFQUFFLEtBQVU7UUFDMUIsSUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFjLElBQUksRUFBRSxTQUFjLElBQUksRUFBRSxZQUFpQixJQUFJO1FBQ3ZFLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxTQUFTLENBQUMsRUFBRTtZQUNsQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDaEIsTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7U0FDMUI7UUFFRCxNQUFNLENBQUMsbUNBQU8sTUFBTSxHQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge8m1aXNQcm9taXNlIGFzIGlzUHJvbWlzZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2dsb2JhbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9zcmMvdXRpbC9nbG9iYWwnO1xuXG5pbXBvcnQge0FzeW5jVGVzdENvbXBsZXRlcn0gZnJvbSAnLi9hc3luY190ZXN0X2NvbXBsZXRlcic7XG5pbXBvcnQge2dldFRlc3RCZWQsIGluamVjdH0gZnJvbSAnLi90ZXN0X2JlZCc7XG5cbmV4cG9ydCB7QXN5bmNUZXN0Q29tcGxldGVyfSBmcm9tICcuL2FzeW5jX3Rlc3RfY29tcGxldGVyJztcbmV4cG9ydCB7aW5qZWN0fSBmcm9tICcuL3Rlc3RfYmVkJztcblxuZXhwb3J0ICogZnJvbSAnLi9sb2dnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9uZ196b25lX21vY2snO1xuXG5leHBvcnQgY29uc3QgcHJveHk6IENsYXNzRGVjb3JhdG9yID0gKHQ6IGFueSkgPT4gdDtcblxuY29uc3QgX2dsb2JhbCA9IDxhbnk+KHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93KTtcblxuZXhwb3J0IGNvbnN0IGFmdGVyRWFjaDogRnVuY3Rpb24gPSBfZ2xvYmFsLmFmdGVyRWFjaDtcbmV4cG9ydCBjb25zdCBleHBlY3Q6IDxUPihhY3R1YWw6IFQpID0+IGphc21pbmUuTWF0Y2hlcnM8VD4gPSBfZ2xvYmFsLmV4cGVjdDtcblxuY29uc3QganNtQmVmb3JlRWFjaCA9IF9nbG9iYWwuYmVmb3JlRWFjaDtcbmNvbnN0IGpzbURlc2NyaWJlID0gX2dsb2JhbC5kZXNjcmliZTtcbmNvbnN0IGpzbUREZXNjcmliZSA9IF9nbG9iYWwuZmRlc2NyaWJlO1xuY29uc3QganNtWERlc2NyaWJlID0gX2dsb2JhbC54ZGVzY3JpYmU7XG5jb25zdCBqc21JdCA9IF9nbG9iYWwuaXQ7XG5jb25zdCBqc21GSXQgPSBfZ2xvYmFsLmZpdDtcbmNvbnN0IGpzbVhJdCA9IF9nbG9iYWwueGl0O1xuXG5jb25zdCBydW5uZXJTdGFjazogQmVmb3JlRWFjaFJ1bm5lcltdID0gW107XG5qYXNtaW5lLkRFRkFVTFRfVElNRU9VVF9JTlRFUlZBTCA9IDMwMDA7XG5jb25zdCBnbG9iYWxUaW1lT3V0ID0gamFzbWluZS5ERUZBVUxUX1RJTUVPVVRfSU5URVJWQUw7XG5cbmNvbnN0IHRlc3RCZWQgPSBnZXRUZXN0QmVkKCk7XG5cbmV4cG9ydCB0eXBlIFRlc3RGbiA9ICgoZG9uZTogRG9uZUZuKSA9PiBhbnkpfCgoKSA9PiBhbnkpO1xuXG4vKipcbiAqIE1lY2hhbmlzbSB0byBydW4gYGJlZm9yZUVhY2goKWAgZnVuY3Rpb25zIG9mIEFuZ3VsYXIgdGVzdHMuXG4gKlxuICogTm90ZTogSmFzbWluZSBvd24gYGJlZm9yZUVhY2hgIGlzIHVzZWQgYnkgdGhpcyBsaWJyYXJ5IHRvIGhhbmRsZSBESSBwcm92aWRlcnMuXG4gKi9cbmNsYXNzIEJlZm9yZUVhY2hSdW5uZXIge1xuICBwcml2YXRlIF9mbnM6IEFycmF5PEZ1bmN0aW9uPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3BhcmVudDogQmVmb3JlRWFjaFJ1bm5lcikge31cblxuICBiZWZvcmVFYWNoKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2Zucy5wdXNoKGZuKTtcbiAgfVxuXG4gIHJ1bigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcGFyZW50KSB0aGlzLl9wYXJlbnQucnVuKCk7XG4gICAgdGhpcy5fZm5zLmZvckVhY2goKGZuKSA9PiB7XG4gICAgICBmbigpO1xuICAgIH0pO1xuICB9XG59XG5cbi8vIFJlc2V0IHRoZSB0ZXN0IHByb3ZpZGVycyBiZWZvcmUgZWFjaCB0ZXN0XG5qc21CZWZvcmVFYWNoKCgpID0+IHtcbiAgdGVzdEJlZC5yZXNldFRlc3RpbmdNb2R1bGUoKTtcbn0pO1xuXG5mdW5jdGlvbiBfZGVzY3JpYmUoanNtRm46IEZ1bmN0aW9uLCAuLi5hcmdzOiBhbnlbXSkge1xuICBjb25zdCBwYXJlbnRSdW5uZXIgPSBydW5uZXJTdGFjay5sZW5ndGggPT09IDAgPyBudWxsIDogcnVubmVyU3RhY2tbcnVubmVyU3RhY2subGVuZ3RoIC0gMV07XG4gIGNvbnN0IHJ1bm5lciA9IG5ldyBCZWZvcmVFYWNoUnVubmVyKHBhcmVudFJ1bm5lciEpO1xuICBydW5uZXJTdGFjay5wdXNoKHJ1bm5lcik7XG4gIGNvbnN0IHN1aXRlID0ganNtRm4oLi4uYXJncyk7XG4gIHJ1bm5lclN0YWNrLnBvcCgpO1xuICByZXR1cm4gc3VpdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZSguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICByZXR1cm4gX2Rlc2NyaWJlKGpzbURlc2NyaWJlLCAuLi5hcmdzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRkZXNjcmliZSguLi5hcmdzOiBhbnlbXSk6IHZvaWQge1xuICByZXR1cm4gX2Rlc2NyaWJlKGpzbUREZXNjcmliZSwgLi4uYXJncyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB4ZGVzY3JpYmUoLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgcmV0dXJuIF9kZXNjcmliZShqc21YRGVzY3JpYmUsIC4uLmFyZ3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmVmb3JlRWFjaChmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgaWYgKHJ1bm5lclN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICAvLyBJbnNpZGUgYSBkZXNjcmliZSBibG9jaywgYmVmb3JlRWFjaCgpIHVzZXMgYSBCZWZvcmVFYWNoUnVubmVyXG4gICAgcnVubmVyU3RhY2tbcnVubmVyU3RhY2subGVuZ3RoIC0gMV0uYmVmb3JlRWFjaChmbik7XG4gIH0gZWxzZSB7XG4gICAgLy8gVG9wIGxldmVsIGJlZm9yZUVhY2goKSBhcmUgZGVsZWdhdGVkIHRvIGphc21pbmVcbiAgICBqc21CZWZvcmVFYWNoKGZuKTtcbiAgfVxufVxuXG4vKipcbiAqIEFsbG93cyBvdmVycmlkaW5nIGRlZmF1bHQgcHJvdmlkZXJzIGRlZmluZWQgaW4gdGVzdF9pbmplY3Rvci5qcy5cbiAqXG4gKiBUaGUgZ2l2ZW4gZnVuY3Rpb24gbXVzdCByZXR1cm4gYSBsaXN0IG9mIERJIHByb3ZpZGVycy5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgYmVmb3JlRWFjaFByb3ZpZGVycygoKSA9PiBbXG4gKiAgICAge3Byb3ZpZGU6IENvbXBpbGVyLCB1c2VDbGFzczogTW9ja0NvbXBpbGVyfSxcbiAqICAgICB7cHJvdmlkZTogU29tZVRva2VuLCB1c2VWYWx1ZTogbXlWYWx1ZX0sXG4gKiAgIF0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gYmVmb3JlRWFjaFByb3ZpZGVycyhmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAganNtQmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29uc3QgcHJvdmlkZXJzID0gZm4oKTtcbiAgICBpZiAoIXByb3ZpZGVycykgcmV0dXJuO1xuICAgIHRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7cHJvdmlkZXJzOiBwcm92aWRlcnN9KTtcbiAgfSk7XG59XG5cblxuZnVuY3Rpb24gX2l0KGpzbUZuOiBGdW5jdGlvbiwgdGVzdE5hbWU6IHN0cmluZywgdGVzdEZuOiBUZXN0Rm4sIHRlc3RUaW1lb3V0ID0gMCk6IHZvaWQge1xuICBpZiAocnVubmVyU3RhY2subGVuZ3RoID09IDApIHtcbiAgICAvLyBUaGlzIGxlZnQgaGVyZSBpbnRlbnRpb25hbGx5LCBhcyB3ZSBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUsIGFuZCBpdCBhaWRzIGRlYnVnZ2luZy5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBkZWJ1Z2dlcjtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VtcHR5IFN0YWNrIScpO1xuICB9XG4gIGNvbnN0IHJ1bm5lciA9IHJ1bm5lclN0YWNrW3J1bm5lclN0YWNrLmxlbmd0aCAtIDFdO1xuICBjb25zdCB0aW1lb3V0ID0gTWF0aC5tYXgoZ2xvYmFsVGltZU91dCwgdGVzdFRpbWVvdXQpO1xuXG4gIGpzbUZuKHRlc3ROYW1lLCAoZG9uZTogRG9uZUZuKSA9PiB7XG4gICAgY29uc3QgY29tcGxldGVyUHJvdmlkZXIgPSB7XG4gICAgICBwcm92aWRlOiBBc3luY1Rlc3RDb21wbGV0ZXIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIC8vIE1hcmsgdGhlIHRlc3QgYXMgYXN5bmMgd2hlbiBhbiBBc3luY1Rlc3RDb21wbGV0ZXIgaXMgaW5qZWN0ZWQgaW4gYW4gaXQoKVxuICAgICAgICByZXR1cm4gbmV3IEFzeW5jVGVzdENvbXBsZXRlcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGVzdEJlZC5jb25maWd1cmVUZXN0aW5nTW9kdWxlKHtwcm92aWRlcnM6IFtjb21wbGV0ZXJQcm92aWRlcl19KTtcbiAgICBydW5uZXIucnVuKCk7XG5cbiAgICBpZiAodGVzdEZuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gVHlwZVNjcmlwdCBkb2Vzbid0IGluZmVyIHRoZSBUZXN0Rm4gdHlwZSB3aXRob3V0IHBhcmFtZXRlcnMgaGVyZSwgc28gd2VcbiAgICAgIC8vIG5lZWQgdG8gbWFudWFsbHkgY2FzdCBpdC5cbiAgICAgIGNvbnN0IHJldFZhbCA9ICh0ZXN0Rm4gYXMgKCkgPT4gYW55KSgpO1xuICAgICAgaWYgKGlzUHJvbWlzZShyZXRWYWwpKSB7XG4gICAgICAgIC8vIEFzeW5jaHJvbm91cyB0ZXN0IGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIFByb21pc2UgLSB3YWl0IGZvciBjb21wbGV0aW9uLlxuICAgICAgICByZXRWYWwudGhlbihkb25lLCBkb25lLmZhaWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU3luY2hyb25vdXMgdGVzdCBmdW5jdGlvbiAtIGNvbXBsZXRlIGltbWVkaWF0ZWx5LlxuICAgICAgICBkb25lKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFzeW5jaHJvbm91cyB0ZXN0IGZ1bmN0aW9uIHRoYXQgdGFrZXMgaW4gJ2RvbmUnIHBhcmFtZXRlci5cbiAgICAgIHRlc3RGbihkb25lKTtcbiAgICB9XG4gIH0sIHRpbWVvdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXQoZXhwZWN0YXRpb246IHN0cmluZywgYXNzZXJ0aW9uOiBUZXN0Rm4sIHRpbWVvdXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgcmV0dXJuIF9pdChqc21JdCwgZXhwZWN0YXRpb24sIGFzc2VydGlvbiwgdGltZW91dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXQoZXhwZWN0YXRpb246IHN0cmluZywgYXNzZXJ0aW9uOiBUZXN0Rm4sIHRpbWVvdXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgcmV0dXJuIF9pdChqc21GSXQsIGV4cGVjdGF0aW9uLCBhc3NlcnRpb24sIHRpbWVvdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24geGl0KGV4cGVjdGF0aW9uOiBzdHJpbmcsIGFzc2VydGlvbjogVGVzdEZuLCB0aW1lb3V0PzogbnVtYmVyKTogdm9pZCB7XG4gIHJldHVybiBfaXQoanNtWEl0LCBleHBlY3RhdGlvbiwgYXNzZXJ0aW9uLCB0aW1lb3V0KTtcbn1cblxuZXhwb3J0IGNsYXNzIFNweU9iamVjdCB7XG4gIGNvbnN0cnVjdG9yKHR5cGU/OiBhbnkpIHtcbiAgICBpZiAodHlwZSkge1xuICAgICAgZm9yIChjb25zdCBwcm9wIGluIHR5cGUucHJvdG90eXBlKSB7XG4gICAgICAgIGxldCBtOiBhbnkgPSBudWxsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIG0gPSB0eXBlLnByb3RvdHlwZVtwcm9wXTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gQXMgd2UgYXJlIGNyZWF0aW5nIHNweXMgZm9yIGFic3RyYWN0IGNsYXNzZXMsXG4gICAgICAgICAgLy8gdGhlc2UgY2xhc3NlcyBtaWdodCBoYXZlIGdldHRlcnMgdGhhdCB0aHJvdyB3aGVuIHRoZXkgYXJlIGFjY2Vzc2VkLlxuICAgICAgICAgIC8vIEFzIHdlIGFyZSBvbmx5IGF1dG8gY3JlYXRpbmcgc3B5cyBmb3IgbWV0aG9kcywgdGhpc1xuICAgICAgICAgIC8vIHNob3VsZCBub3QgbWF0dGVyLlxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXMuc3B5KHByb3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3B5KG5hbWU6IHN0cmluZykge1xuICAgIGlmICghKHRoaXMgYXMgYW55KVtuYW1lXSkge1xuICAgICAgKHRoaXMgYXMgYW55KVtuYW1lXSA9IGphc21pbmUuY3JlYXRlU3B5KG5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMgYXMgYW55KVtuYW1lXTtcbiAgfVxuXG4gIHByb3AobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgKHRoaXMgYXMgYW55KVtuYW1lXSA9IHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIHN0dWIob2JqZWN0OiBhbnkgPSBudWxsLCBjb25maWc6IGFueSA9IG51bGwsIG92ZXJyaWRlczogYW55ID0gbnVsbCkge1xuICAgIGlmICghKG9iamVjdCBpbnN0YW5jZW9mIFNweU9iamVjdCkpIHtcbiAgICAgIG92ZXJyaWRlcyA9IGNvbmZpZztcbiAgICAgIGNvbmZpZyA9IG9iamVjdDtcbiAgICAgIG9iamVjdCA9IG5ldyBTcHlPYmplY3QoKTtcbiAgICB9XG5cbiAgICBjb25zdCBtID0gey4uLmNvbmZpZywgLi4ub3ZlcnJpZGVzfTtcbiAgICBPYmplY3Qua2V5cyhtKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBvYmplY3Quc3B5KGtleSkuYW5kLnJldHVyblZhbHVlKG1ba2V5XSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxufVxuIl19
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZ19pbnRlcm5hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdGVzdGluZy9zcmMvdGVzdGluZ19pbnRlcm5hbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRWxDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtpbmplY3R9IGZyb20gJy4vdGVzdF9iZWQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xvZ2dlcic7XG5leHBvcnQgKiBmcm9tICcuL25nX3pvbmVfbW9jayc7XG4iXX0=
|
package/fesm2015/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v12.0.
|
|
2
|
+
* @license Angular v12.0.5
|
|
3
3
|
* (c) 2010-2021 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -947,22 +947,22 @@ const autoRegisterModuleById = {};
|
|
|
947
947
|
* @codeGenApi
|
|
948
948
|
*/
|
|
949
949
|
function ɵɵdefineNgModule(def) {
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
950
|
+
return noSideEffects(() => {
|
|
951
|
+
const res = {
|
|
952
|
+
type: def.type,
|
|
953
|
+
bootstrap: def.bootstrap || EMPTY_ARRAY,
|
|
954
|
+
declarations: def.declarations || EMPTY_ARRAY,
|
|
955
|
+
imports: def.imports || EMPTY_ARRAY,
|
|
956
|
+
exports: def.exports || EMPTY_ARRAY,
|
|
957
|
+
transitiveCompileScopes: null,
|
|
958
|
+
schemas: def.schemas || null,
|
|
959
|
+
id: def.id || null,
|
|
960
|
+
};
|
|
961
|
+
if (def.id != null) {
|
|
962
962
|
autoRegisterModuleById[def.id] = def.type;
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
|
|
963
|
+
}
|
|
964
|
+
return res;
|
|
965
|
+
});
|
|
966
966
|
}
|
|
967
967
|
/**
|
|
968
968
|
* Adds the module metadata that is necessary to compute the module's transitive scope to an
|
|
@@ -6548,6 +6548,10 @@ const CUSTOM_ELEMENTS_SCHEMA = {
|
|
|
6548
6548
|
/**
|
|
6549
6549
|
* Defines a schema that allows any property on any element.
|
|
6550
6550
|
*
|
|
6551
|
+
* This schema allows you to ignore the errors related to any unknown elements or properties in a
|
|
6552
|
+
* template. The usage of this schema is generally discouraged because it prevents useful validation
|
|
6553
|
+
* and may hide real errors in your template. Consider using the `CUSTOM_ELEMENTS_SCHEMA` instead.
|
|
6554
|
+
*
|
|
6551
6555
|
* @publicApi
|
|
6552
6556
|
*/
|
|
6553
6557
|
const NO_ERRORS_SCHEMA = {
|
|
@@ -11875,17 +11879,19 @@ function staticError(text, obj) {
|
|
|
11875
11879
|
*
|
|
11876
11880
|
* @usageNotes
|
|
11877
11881
|
* Given the following DOM structure:
|
|
11882
|
+
*
|
|
11878
11883
|
* ```html
|
|
11879
|
-
* <
|
|
11884
|
+
* <app-root>
|
|
11880
11885
|
* <div>
|
|
11881
11886
|
* <child-comp></child-comp>
|
|
11882
11887
|
* </div>
|
|
11883
|
-
* </
|
|
11888
|
+
* </app-root>
|
|
11884
11889
|
* ```
|
|
11890
|
+
*
|
|
11885
11891
|
* Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
|
|
11886
11892
|
* associated with this DOM element.
|
|
11887
11893
|
*
|
|
11888
|
-
* Calling the function on `<
|
|
11894
|
+
* Calling the function on `<app-root>` will return the `MyApp` instance.
|
|
11889
11895
|
*
|
|
11890
11896
|
*
|
|
11891
11897
|
* @param element DOM element from which the component should be retrieved.
|
|
@@ -12014,12 +12020,14 @@ function getInjectionTokens(element) {
|
|
|
12014
12020
|
*
|
|
12015
12021
|
* @usageNotes
|
|
12016
12022
|
* Given the following DOM structure:
|
|
12017
|
-
*
|
|
12018
|
-
*
|
|
12023
|
+
*
|
|
12024
|
+
* ```html
|
|
12025
|
+
* <app-root>
|
|
12019
12026
|
* <button my-button></button>
|
|
12020
12027
|
* <my-comp></my-comp>
|
|
12021
|
-
* </
|
|
12028
|
+
* </app-root>
|
|
12022
12029
|
* ```
|
|
12030
|
+
*
|
|
12023
12031
|
* Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`
|
|
12024
12032
|
* directive that is associated with the DOM node.
|
|
12025
12033
|
*
|
|
@@ -12139,14 +12147,16 @@ function getRenderedText(component) {
|
|
|
12139
12147
|
*
|
|
12140
12148
|
* @usageNotes
|
|
12141
12149
|
* Given the following DOM structure:
|
|
12142
|
-
* ```
|
|
12143
|
-
* <my-app>
|
|
12144
|
-
* <div (click)="doSomething()"></div>
|
|
12145
|
-
* </my-app>
|
|
12146
12150
|
*
|
|
12151
|
+
* ```html
|
|
12152
|
+
* <app-root>
|
|
12153
|
+
* <div (click)="doSomething()"></div>
|
|
12154
|
+
* </app-root>
|
|
12147
12155
|
* ```
|
|
12156
|
+
*
|
|
12148
12157
|
* Calling `getListeners` on `<div>` will return an object that looks as follows:
|
|
12149
|
-
*
|
|
12158
|
+
*
|
|
12159
|
+
* ```ts
|
|
12150
12160
|
* {
|
|
12151
12161
|
* name: 'click',
|
|
12152
12162
|
* element: <div>,
|
|
@@ -21238,6 +21248,9 @@ class _NullComponentFactoryResolver {
|
|
|
21238
21248
|
* then use the factory's `create()` method to create a component of that type.
|
|
21239
21249
|
*
|
|
21240
21250
|
* @see [Dynamic Components](guide/dynamic-component-loader)
|
|
21251
|
+
* @see [Usage Example](guide/dynamic-component-loader#resolving-components)
|
|
21252
|
+
* @see <live-example name="dynamic-component-loader" noDownload></live-example>
|
|
21253
|
+
of the code in this cookbook
|
|
21241
21254
|
* @publicApi
|
|
21242
21255
|
*/
|
|
21243
21256
|
class ComponentFactoryResolver {
|
|
@@ -21456,7 +21469,7 @@ class Version {
|
|
|
21456
21469
|
/**
|
|
21457
21470
|
* @publicApi
|
|
21458
21471
|
*/
|
|
21459
|
-
const VERSION = new Version('12.0.
|
|
21472
|
+
const VERSION = new Version('12.0.5');
|
|
21460
21473
|
|
|
21461
21474
|
/**
|
|
21462
21475
|
* @license
|
|
@@ -22657,7 +22670,7 @@ class ViewRef {
|
|
|
22657
22670
|
*
|
|
22658
22671
|
* ```typescript
|
|
22659
22672
|
* @Component({
|
|
22660
|
-
* selector: '
|
|
22673
|
+
* selector: 'app-root',
|
|
22661
22674
|
* template: `Number of ticks: {{numberOfTicks}}`
|
|
22662
22675
|
* changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22663
22676
|
* })
|
|
@@ -22777,7 +22790,7 @@ class ViewRef {
|
|
|
22777
22790
|
* }
|
|
22778
22791
|
*
|
|
22779
22792
|
* @Component({
|
|
22780
|
-
* selector: '
|
|
22793
|
+
* selector: 'app-root',
|
|
22781
22794
|
* providers: [DataProvider],
|
|
22782
22795
|
* template: `
|
|
22783
22796
|
* Live Update: <input type="checkbox" [(ngModel)]="live">
|