@angular/core 12.0.0-rc.3 → 12.0.3
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 +29 -21
- package/bundles/core.umd.js.map +1 -1
- package/core.d.ts +194 -15
- 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/metadata/di.js +1 -1
- package/esm2015/src/metadata/do_boostrap.js +1 -1
- package/esm2015/src/render3/instructions/listener.js +6 -3
- package/esm2015/src/render3/util/discovery_utils.js +18 -12
- package/esm2015/src/render3/view_ref.js +3 -3
- package/esm2015/src/version.js +5 -6
- 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 +29 -21
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +46 -76
- package/fesm2015/testing.js.map +1 -1
- package/package.json +2 -5
- 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 +1 -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.3
|
|
3
3
|
* (c) 2010-2021 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -11875,17 +11875,19 @@ function staticError(text, obj) {
|
|
|
11875
11875
|
*
|
|
11876
11876
|
* @usageNotes
|
|
11877
11877
|
* Given the following DOM structure:
|
|
11878
|
+
*
|
|
11878
11879
|
* ```html
|
|
11879
|
-
* <
|
|
11880
|
+
* <app-root>
|
|
11880
11881
|
* <div>
|
|
11881
11882
|
* <child-comp></child-comp>
|
|
11882
11883
|
* </div>
|
|
11883
|
-
* </
|
|
11884
|
+
* </app-root>
|
|
11884
11885
|
* ```
|
|
11886
|
+
*
|
|
11885
11887
|
* Calling `getComponent` on `<child-comp>` will return the instance of `ChildComponent`
|
|
11886
11888
|
* associated with this DOM element.
|
|
11887
11889
|
*
|
|
11888
|
-
* Calling the function on `<
|
|
11890
|
+
* Calling the function on `<app-root>` will return the `MyApp` instance.
|
|
11889
11891
|
*
|
|
11890
11892
|
*
|
|
11891
11893
|
* @param element DOM element from which the component should be retrieved.
|
|
@@ -12014,12 +12016,14 @@ function getInjectionTokens(element) {
|
|
|
12014
12016
|
*
|
|
12015
12017
|
* @usageNotes
|
|
12016
12018
|
* Given the following DOM structure:
|
|
12017
|
-
*
|
|
12018
|
-
*
|
|
12019
|
+
*
|
|
12020
|
+
* ```html
|
|
12021
|
+
* <app-root>
|
|
12019
12022
|
* <button my-button></button>
|
|
12020
12023
|
* <my-comp></my-comp>
|
|
12021
|
-
* </
|
|
12024
|
+
* </app-root>
|
|
12022
12025
|
* ```
|
|
12026
|
+
*
|
|
12023
12027
|
* Calling `getDirectives` on `<button>` will return an array with an instance of the `MyButton`
|
|
12024
12028
|
* directive that is associated with the DOM node.
|
|
12025
12029
|
*
|
|
@@ -12139,14 +12143,16 @@ function getRenderedText(component) {
|
|
|
12139
12143
|
*
|
|
12140
12144
|
* @usageNotes
|
|
12141
12145
|
* Given the following DOM structure:
|
|
12142
|
-
* ```
|
|
12143
|
-
* <my-app>
|
|
12144
|
-
* <div (click)="doSomething()"></div>
|
|
12145
|
-
* </my-app>
|
|
12146
12146
|
*
|
|
12147
|
+
* ```html
|
|
12148
|
+
* <app-root>
|
|
12149
|
+
* <div (click)="doSomething()"></div>
|
|
12150
|
+
* </app-root>
|
|
12147
12151
|
* ```
|
|
12152
|
+
*
|
|
12148
12153
|
* Calling `getListeners` on `<div>` will return an object that looks as follows:
|
|
12149
|
-
*
|
|
12154
|
+
*
|
|
12155
|
+
* ```ts
|
|
12150
12156
|
* {
|
|
12151
12157
|
* name: 'click',
|
|
12152
12158
|
* element: <div>,
|
|
@@ -15180,8 +15186,11 @@ function listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn,
|
|
|
15180
15186
|
const lCleanup = getOrCreateLViewCleanup(lView);
|
|
15181
15187
|
ngDevMode && assertTNodeType(tNode, 3 /* AnyRNode */ | 12 /* AnyContainer */);
|
|
15182
15188
|
let processOutputs = true;
|
|
15183
|
-
//
|
|
15184
|
-
|
|
15189
|
+
// Adding a native event listener is applicable when:
|
|
15190
|
+
// - The corresponding TNode represents a DOM element.
|
|
15191
|
+
// - The event target has a resolver (usually resulting in a global object,
|
|
15192
|
+
// such as `window` or `document`).
|
|
15193
|
+
if ((tNode.type & 3 /* AnyRNode */) || eventTargetResolver) {
|
|
15185
15194
|
const native = getNativeByTNode(tNode, lView);
|
|
15186
15195
|
const target = eventTargetResolver ? eventTargetResolver(native) : native;
|
|
15187
15196
|
const lCleanupIndex = lCleanup.length;
|
|
@@ -21445,16 +21454,15 @@ Sanitizer.ɵprov = ɵɵdefineInjectable({
|
|
|
21445
21454
|
class Version {
|
|
21446
21455
|
constructor(full) {
|
|
21447
21456
|
this.full = full;
|
|
21448
|
-
|
|
21449
|
-
this.
|
|
21450
|
-
this.
|
|
21451
|
-
this.patch = rest.join('.');
|
|
21457
|
+
this.major = full.split('.')[0];
|
|
21458
|
+
this.minor = full.split('.')[1];
|
|
21459
|
+
this.patch = full.split('.').slice(2).join('.');
|
|
21452
21460
|
}
|
|
21453
21461
|
}
|
|
21454
21462
|
/**
|
|
21455
21463
|
* @publicApi
|
|
21456
21464
|
*/
|
|
21457
|
-
const VERSION = new Version('12.0.
|
|
21465
|
+
const VERSION = new Version('12.0.3');
|
|
21458
21466
|
|
|
21459
21467
|
/**
|
|
21460
21468
|
* @license
|
|
@@ -22655,7 +22663,7 @@ class ViewRef {
|
|
|
22655
22663
|
*
|
|
22656
22664
|
* ```typescript
|
|
22657
22665
|
* @Component({
|
|
22658
|
-
* selector: '
|
|
22666
|
+
* selector: 'app-root',
|
|
22659
22667
|
* template: `Number of ticks: {{numberOfTicks}}`
|
|
22660
22668
|
* changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22661
22669
|
* })
|
|
@@ -22775,7 +22783,7 @@ class ViewRef {
|
|
|
22775
22783
|
* }
|
|
22776
22784
|
*
|
|
22777
22785
|
* @Component({
|
|
22778
|
-
* selector: '
|
|
22786
|
+
* selector: 'app-root',
|
|
22779
22787
|
* providers: [DataProvider],
|
|
22780
22788
|
* template: `
|
|
22781
22789
|
* Live Update: <input type="checkbox" [(ngModel)]="live">
|