@angular/core 6.0.0-rc.3 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/core-testing.umd.js +95 -19
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core-testing.umd.min.js +10 -11
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +555 -389
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +77 -77
- package/bundles/core.umd.min.js.map +1 -1
- package/core.metadata.json +1 -1
- package/esm2015/index.js +2 -2
- package/esm2015/public_api.js +2 -2
- package/esm2015/src/application_ref.js +6 -6
- package/esm2015/src/change_detection/change_detection_util.js +3 -3
- package/esm2015/src/change_detection/change_detector_ref.js +2 -2
- package/esm2015/src/change_detection/constants.js +1 -1
- package/esm2015/src/change_detection/differs/default_iterable_differ.js +15 -15
- package/esm2015/src/change_detection/differs/default_keyvalue_differ.js +2 -2
- package/esm2015/src/change_detection/differs/iterable_differs.js +15 -7
- package/esm2015/src/change_detection/differs/keyvalue_differs.js +6 -6
- package/esm2015/src/change_detection/pipe_transform.js +2 -2
- package/esm2015/src/core.js +4 -4
- package/esm2015/src/core_private_export.js +2 -2
- package/esm2015/src/core_render3_private_export.js +2 -2
- package/esm2015/src/di/defs.js +36 -19
- package/esm2015/src/di/injectable.js +3 -3
- package/esm2015/src/di/injection_token.js +2 -2
- package/esm2015/src/di/injector.js +35 -14
- package/esm2015/src/di/metadata.js +11 -11
- package/esm2015/src/di/provider.js +9 -9
- package/esm2015/src/di/r3_injector.js +12 -12
- package/esm2015/src/di/reflective_errors.js +3 -3
- package/esm2015/src/di.js +1 -1
- package/esm2015/src/error_handler.js +2 -2
- package/esm2015/src/event_emitter.js +2 -2
- package/esm2015/src/linker/compiler.js +2 -2
- package/esm2015/src/linker/component_factory.js +3 -3
- package/esm2015/src/linker/component_factory_resolver.js +2 -2
- package/esm2015/src/linker/element_ref.js +3 -3
- package/esm2015/src/linker/ng_module_factory.js +2 -2
- package/esm2015/src/linker/ng_module_factory_loader.js +2 -2
- package/esm2015/src/linker/query_list.js +2 -2
- package/esm2015/src/linker/template_ref.js +2 -2
- package/esm2015/src/linker/view_container_ref.js +2 -2
- package/esm2015/src/linker/view_ref.js +2 -2
- package/esm2015/src/metadata/di.js +12 -12
- package/esm2015/src/metadata/directives.js +15 -15
- package/esm2015/src/metadata/lifecycle_hooks.js +10 -10
- package/esm2015/src/metadata/ng_module.js +5 -5
- package/esm2015/src/metadata/view.js +1 -1
- package/esm2015/src/render3/assert.js +13 -1
- package/esm2015/src/render3/component.js +2 -1
- package/esm2015/src/render3/definition.js +4 -4
- package/esm2015/src/render3/di.js +61 -89
- package/esm2015/src/render3/hooks.js +7 -7
- package/esm2015/src/render3/index.js +1 -1
- package/esm2015/src/render3/instructions.js +128 -79
- package/esm2015/src/render3/interfaces/definition.js +9 -1
- package/esm2015/src/render3/interfaces/injector.js +1 -3
- package/esm2015/src/render3/interfaces/node.js +7 -11
- package/esm2015/src/render3/interfaces/view.js +17 -3
- package/esm2015/src/render3/node_manipulation.js +23 -3
- package/esm2015/src/render3/query.js +9 -7
- package/esm2015/src/sanitization/security.js +2 -2
- package/esm2015/src/type.js +2 -2
- package/esm2015/src/util/decorators.js +2 -2
- package/esm2015/src/util/lang.js +2 -2
- package/esm2015/src/version.js +4 -4
- package/esm2015/src/view/ng_module.js +5 -2
- package/esm2015/src/view/refs.js +1 -1
- package/esm2015/testing/src/async.js +2 -2
- package/esm2015/testing/src/async_fallback.js +2 -2
- package/esm2015/testing/src/component_fixture.js +2 -2
- package/esm2015/testing/src/test_bed.js +3 -3
- package/esm5/src/application_ref.js +7 -7
- package/esm5/src/change_detection/change_detection_util.js +7 -7
- package/esm5/src/change_detection/change_detector_ref.js +4 -4
- package/esm5/src/change_detection/constants.js +4 -4
- package/esm5/src/change_detection/differs/default_iterable_differ.js +18 -18
- package/esm5/src/change_detection/differs/default_keyvalue_differ.js +3 -3
- package/esm5/src/change_detection/differs/iterable_differs.js +9 -11
- package/esm5/src/change_detection/differs/keyvalue_differs.js +4 -4
- package/esm5/src/change_detection/pipe_transform.js +1 -1
- package/esm5/src/core_private_export.js +2 -2
- package/esm5/src/core_render3_private_export.js +2 -2
- package/esm5/src/di/defs.js +3 -6
- package/esm5/src/di/injectable.js +2 -2
- package/esm5/src/di/injection_token.js +4 -4
- package/esm5/src/di/injector.js +26 -11
- package/esm5/src/di/metadata.js +6 -6
- package/esm5/src/di/provider.js +1 -1
- package/esm5/src/di/r3_injector.js +12 -12
- package/esm5/src/di/reflective_errors.js +3 -3
- package/esm5/src/di.js +2 -2
- package/esm5/src/error_handler.js +4 -4
- package/esm5/src/event_emitter.js +4 -4
- package/esm5/src/linker/compiler.js +2 -2
- package/esm5/src/linker/component_factory.js +7 -7
- package/esm5/src/linker/component_factory_resolver.js +2 -2
- package/esm5/src/linker/element_ref.js +4 -4
- package/esm5/src/linker/ng_module_factory.js +4 -4
- package/esm5/src/linker/ng_module_factory_loader.js +4 -4
- package/esm5/src/linker/query_list.js +4 -4
- package/esm5/src/linker/template_ref.js +4 -4
- package/esm5/src/linker/view_container_ref.js +4 -4
- package/esm5/src/linker/view_ref.js +4 -4
- package/esm5/src/metadata/di.js +9 -9
- package/esm5/src/metadata/directives.js +8 -8
- package/esm5/src/metadata/lifecycle_hooks.js +1 -1
- package/esm5/src/metadata/ng_module.js +3 -3
- package/esm5/src/metadata/view.js +4 -4
- package/esm5/src/render3/assert.js +6 -1
- package/esm5/src/render3/component.js +2 -1
- package/esm5/src/render3/definition.js +1 -1
- package/esm5/src/render3/di.js +51 -74
- package/esm5/src/render3/hooks.js +6 -6
- package/esm5/src/render3/index.js +1 -1
- package/esm5/src/render3/instructions.js +123 -76
- package/esm5/src/render3/interfaces/definition.js +1 -1
- package/esm5/src/render3/interfaces/injector.js +1 -1
- package/esm5/src/render3/interfaces/node.js +1 -1
- package/esm5/src/render3/interfaces/view.js +1 -1
- package/esm5/src/render3/node_manipulation.js +20 -2
- package/esm5/src/render3/query.js +9 -7
- package/esm5/src/sanitization/security.js +7 -7
- package/esm5/src/type.js +2 -2
- package/esm5/src/util/decorators.js +1 -1
- package/esm5/src/util/lang.js +2 -2
- package/esm5/src/version.js +6 -6
- package/esm5/src/view/ng_module.js +5 -2
- package/esm5/src/view/refs.js +1 -1
- package/esm5/testing/src/async.js +2 -2
- package/esm5/testing/src/async_fallback.js +2 -2
- package/esm5/testing/src/component_fixture.js +4 -4
- package/esm5/testing/src/test_bed.js +5 -5
- package/fesm2015/core.js +468 -372
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +6 -6
- package/fesm2015/testing.js.map +1 -1
- package/fesm5/core.js +403 -321
- package/fesm5/core.js.map +1 -1
- package/fesm5/testing.js +6 -6
- package/fesm5/testing.js.map +1 -1
- package/package.json +5 -4
- package/src/application_ref.d.ts +5 -5
- package/src/change_detection/change_detection_util.d.ts +2 -2
- package/src/change_detection/change_detector_ref.d.ts +1 -1
- package/src/change_detection/constants.d.ts +1 -1
- package/src/change_detection/differs/default_iterable_differ.d.ts +1 -1
- package/src/change_detection/differs/iterable_differs.d.ts +8 -7
- package/src/change_detection/differs/keyvalue_differs.d.ts +5 -5
- package/src/change_detection/pipe_transform.d.ts +1 -1
- package/src/core_private_export.d.ts +1 -1
- package/src/core_render3_private_export.d.ts +1 -1
- package/src/di/defs.d.ts +29 -10
- package/src/di/injectable.d.ts +3 -3
- package/src/di/injection_token.d.ts +3 -4
- package/src/di/injector.d.ts +14 -11
- package/src/di/metadata.d.ts +20 -20
- package/src/di/provider.d.ts +10 -10
- package/src/di/r3_injector.d.ts +3 -3
- package/src/di/reflective_errors.d.ts +2 -2
- package/src/di.d.ts +1 -1
- package/src/error_handler.d.ts +1 -1
- package/src/event_emitter.d.ts +1 -1
- package/src/linker/compiler.d.ts +1 -1
- package/src/linker/component_factory.d.ts +2 -2
- package/src/linker/component_factory_resolver.d.ts +1 -1
- package/src/linker/element_ref.d.ts +2 -2
- package/src/linker/ng_module_factory.d.ts +1 -1
- package/src/linker/ng_module_factory_loader.d.ts +1 -1
- package/src/linker/query_list.d.ts +1 -1
- package/src/linker/template_ref.d.ts +1 -1
- package/src/linker/view_container_ref.d.ts +1 -1
- package/src/linker/view_ref.d.ts +1 -1
- package/src/metadata/di.d.ts +21 -21
- package/src/metadata/directives.d.ts +28 -28
- package/src/metadata/lifecycle_hooks.d.ts +9 -9
- package/src/metadata/ng_module.d.ts +5 -5
- package/src/metadata/view.d.ts +1 -1
- package/src/render3/assert.d.ts +1 -0
- package/src/render3/definition.d.ts +3 -3
- package/src/render3/di.d.ts +4 -14
- package/src/render3/index.d.ts +2 -1
- package/src/render3/instructions.d.ts +3 -3
- package/src/render3/interfaces/definition.d.ts +23 -4
- package/src/render3/interfaces/injector.d.ts +0 -2
- package/src/render3/interfaces/node.d.ts +7 -13
- package/src/render3/interfaces/view.d.ts +16 -3
- package/src/render3/node_manipulation.d.ts +3 -2
- package/src/sanitization/security.d.ts +2 -2
- package/src/type.d.ts +1 -1
- package/src/util/decorators.d.ts +1 -1
- package/src/version.d.ts +2 -2
- package/testing/src/async.d.ts +1 -1
- package/testing/src/async_fallback.d.ts +1 -1
- package/testing/src/component_fixture.d.ts +1 -1
- package/testing/src/test_bed.d.ts +2 -2
- package/testing.d.ts +1 -1
package/fesm2015/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v6.0.0
|
|
2
|
+
* @license Angular v6.0.0
|
|
3
3
|
* (c) 2010-2018 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -28,9 +28,7 @@ import { share } from 'rxjs/operators';
|
|
|
28
28
|
* `InjectorDef`, `NgModule`, or a special scope (e.g. `'root'`). A value of `null` indicates
|
|
29
29
|
* that the injectable does not belong to any scope.
|
|
30
30
|
*
|
|
31
|
-
* This
|
|
32
|
-
*
|
|
33
|
-
* \@experimental
|
|
31
|
+
* NOTE: This is a private type and should not be exported
|
|
34
32
|
* @record
|
|
35
33
|
* @template T
|
|
36
34
|
*/
|
|
@@ -43,7 +41,7 @@ import { share } from 'rxjs/operators';
|
|
|
43
41
|
* structure of providers with a defined priority (identically to how `NgModule`s also have
|
|
44
42
|
* an import/dependency structure).
|
|
45
43
|
*
|
|
46
|
-
*
|
|
44
|
+
* NOTE: This is a private type and should not be exported
|
|
47
45
|
* @record
|
|
48
46
|
* @template T
|
|
49
47
|
*/
|
|
@@ -75,7 +73,7 @@ import { share } from 'rxjs/operators';
|
|
|
75
73
|
*
|
|
76
74
|
* Objects of this type can be listed in the imports section of an `InjectorDef`.
|
|
77
75
|
*
|
|
78
|
-
*
|
|
76
|
+
* NOTE: This is a private type and should not be exported
|
|
79
77
|
* @record
|
|
80
78
|
* @template T
|
|
81
79
|
*/
|
|
@@ -100,10 +98,9 @@ import { share } from 'rxjs/operators';
|
|
|
100
98
|
* @return {?}
|
|
101
99
|
*/
|
|
102
100
|
function defineInjectable(opts) {
|
|
103
|
-
return {
|
|
104
|
-
providedIn:
|
|
105
|
-
|
|
106
|
-
};
|
|
101
|
+
return /** @type {?} */ ((/** @type {?} */ ({
|
|
102
|
+
providedIn: /** @type {?} */ (opts.providedIn) || null, factory: opts.factory, value: undefined,
|
|
103
|
+
})));
|
|
107
104
|
}
|
|
108
105
|
/**
|
|
109
106
|
* Construct an `InjectorDef` which configures an injector.
|
|
@@ -128,11 +125,9 @@ function defineInjectable(opts) {
|
|
|
128
125
|
* @return {?}
|
|
129
126
|
*/
|
|
130
127
|
function defineInjector(options) {
|
|
131
|
-
return {
|
|
132
|
-
factory: options.factory,
|
|
133
|
-
|
|
134
|
-
imports: options.imports || [],
|
|
135
|
-
};
|
|
128
|
+
return /** @type {?} */ ((/** @type {?} */ ({
|
|
129
|
+
factory: options.factory, providers: options.providers || [], imports: options.imports || [],
|
|
130
|
+
})));
|
|
136
131
|
}
|
|
137
132
|
|
|
138
133
|
/**
|
|
@@ -182,7 +177,7 @@ function defineInjector(options) {
|
|
|
182
177
|
*
|
|
183
178
|
* {\@example core/di/ts/injector_spec.ts region='InjectionToken'}
|
|
184
179
|
*
|
|
185
|
-
*
|
|
180
|
+
*
|
|
186
181
|
* @template T
|
|
187
182
|
*/
|
|
188
183
|
class InjectionToken {
|
|
@@ -238,7 +233,7 @@ class InjectionToken {
|
|
|
238
233
|
* \@ng.Component({...})
|
|
239
234
|
* class MyClass {...}
|
|
240
235
|
* ```
|
|
241
|
-
*
|
|
236
|
+
*
|
|
242
237
|
* @record
|
|
243
238
|
*/
|
|
244
239
|
|
|
@@ -435,14 +430,14 @@ const ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponen
|
|
|
435
430
|
/**
|
|
436
431
|
* Type of the Attribute decorator / constructor function.
|
|
437
432
|
*
|
|
438
|
-
*
|
|
433
|
+
*
|
|
439
434
|
* @record
|
|
440
435
|
*/
|
|
441
436
|
|
|
442
437
|
/**
|
|
443
438
|
* Attribute decorator and metadata.
|
|
444
439
|
*
|
|
445
|
-
*
|
|
440
|
+
*
|
|
446
441
|
* \@Annotation
|
|
447
442
|
*/
|
|
448
443
|
const Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attributeName }));
|
|
@@ -452,7 +447,7 @@ const Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attribut
|
|
|
452
447
|
* See {\@link ContentChildren}, {\@link ContentChild}, {\@link ViewChildren}, {\@link ViewChild} for
|
|
453
448
|
* more information.
|
|
454
449
|
*
|
|
455
|
-
*
|
|
450
|
+
*
|
|
456
451
|
* @abstract
|
|
457
452
|
*/
|
|
458
453
|
class Query {
|
|
@@ -462,14 +457,14 @@ class Query {
|
|
|
462
457
|
*
|
|
463
458
|
* See {\@link ContentChildren}.
|
|
464
459
|
*
|
|
465
|
-
*
|
|
460
|
+
*
|
|
466
461
|
* @record
|
|
467
462
|
*/
|
|
468
463
|
|
|
469
464
|
/**
|
|
470
465
|
* ContentChildren decorator and metadata.
|
|
471
466
|
*
|
|
472
|
-
*
|
|
467
|
+
*
|
|
473
468
|
* \@Annotation
|
|
474
469
|
*/
|
|
475
470
|
const ContentChildren = makePropDecorator('ContentChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: false, descendants: false }, data)), Query);
|
|
@@ -477,14 +472,14 @@ const ContentChildren = makePropDecorator('ContentChildren', (selector, data = {
|
|
|
477
472
|
* Type of the ContentChild decorator / constructor function.
|
|
478
473
|
*
|
|
479
474
|
*
|
|
480
|
-
*
|
|
475
|
+
*
|
|
481
476
|
* @record
|
|
482
477
|
*/
|
|
483
478
|
|
|
484
479
|
/**
|
|
485
480
|
* ContentChild decorator and metadata.
|
|
486
481
|
*
|
|
487
|
-
*
|
|
482
|
+
*
|
|
488
483
|
* \@Annotation
|
|
489
484
|
*/
|
|
490
485
|
const ContentChild = makePropDecorator('ContentChild', (selector, data = {}) => (Object.assign({ selector, first: true, isViewQuery: false, descendants: true }, data)), Query);
|
|
@@ -493,14 +488,14 @@ const ContentChild = makePropDecorator('ContentChild', (selector, data = {}) =>
|
|
|
493
488
|
*
|
|
494
489
|
* See {\@link ViewChildren}.
|
|
495
490
|
*
|
|
496
|
-
*
|
|
491
|
+
*
|
|
497
492
|
* @record
|
|
498
493
|
*/
|
|
499
494
|
|
|
500
495
|
/**
|
|
501
496
|
* ViewChildren decorator and metadata.
|
|
502
497
|
*
|
|
503
|
-
*
|
|
498
|
+
*
|
|
504
499
|
* \@Annotation
|
|
505
500
|
*/
|
|
506
501
|
const ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: true, descendants: true }, data)), Query);
|
|
@@ -509,14 +504,14 @@ const ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) =>
|
|
|
509
504
|
*
|
|
510
505
|
* See {\@link ViewChild}
|
|
511
506
|
*
|
|
512
|
-
*
|
|
507
|
+
*
|
|
513
508
|
* @record
|
|
514
509
|
*/
|
|
515
510
|
|
|
516
511
|
/**
|
|
517
512
|
* ViewChild decorator and metadata.
|
|
518
513
|
*
|
|
519
|
-
*
|
|
514
|
+
*
|
|
520
515
|
* \@Annotation
|
|
521
516
|
*/
|
|
522
517
|
const ViewChild = makePropDecorator('ViewChild', (selector, data) => (Object.assign({ selector, first: true, isViewQuery: true, descendants: true }, data)), Query);
|
|
@@ -607,35 +602,35 @@ function isDefaultChangeDetectionStrategy(changeDetectionStrategy) {
|
|
|
607
602
|
/**
|
|
608
603
|
* Type of the Directive decorator / constructor function.
|
|
609
604
|
*
|
|
610
|
-
*
|
|
605
|
+
*
|
|
611
606
|
* @record
|
|
612
607
|
*/
|
|
613
608
|
|
|
614
609
|
/**
|
|
615
610
|
* Directive decorator and metadata.
|
|
616
611
|
*
|
|
617
|
-
*
|
|
612
|
+
*
|
|
618
613
|
* \@Annotation
|
|
619
614
|
*/
|
|
620
615
|
const Directive = makeDecorator('Directive', (dir = {}) => dir);
|
|
621
616
|
/**
|
|
622
617
|
* Type of the Component decorator / constructor function.
|
|
623
618
|
*
|
|
624
|
-
*
|
|
619
|
+
*
|
|
625
620
|
* @record
|
|
626
621
|
*/
|
|
627
622
|
|
|
628
623
|
/**
|
|
629
624
|
* Component decorator and metadata.
|
|
630
625
|
*
|
|
631
|
-
*
|
|
626
|
+
*
|
|
632
627
|
* \@Annotation
|
|
633
628
|
*/
|
|
634
629
|
const Component = makeDecorator('Component', (c = {}) => (Object.assign({ changeDetection: ChangeDetectionStrategy.Default }, c)), Directive);
|
|
635
630
|
/**
|
|
636
631
|
* Type of the Pipe decorator / constructor function.
|
|
637
632
|
*
|
|
638
|
-
*
|
|
633
|
+
*
|
|
639
634
|
* @record
|
|
640
635
|
*/
|
|
641
636
|
|
|
@@ -648,63 +643,63 @@ const Component = makeDecorator('Component', (c = {}) => (Object.assign({ change
|
|
|
648
643
|
* To use the pipe include a reference to the pipe class in
|
|
649
644
|
* {\@link NgModule#declarations}.
|
|
650
645
|
*
|
|
651
|
-
*
|
|
646
|
+
*
|
|
652
647
|
* \@Annotation
|
|
653
648
|
*/
|
|
654
649
|
const Pipe = makeDecorator('Pipe', (p) => (Object.assign({ pure: true }, p)));
|
|
655
650
|
/**
|
|
656
651
|
* Type of the Input decorator / constructor function.
|
|
657
652
|
*
|
|
658
|
-
*
|
|
653
|
+
*
|
|
659
654
|
* @record
|
|
660
655
|
*/
|
|
661
656
|
|
|
662
657
|
/**
|
|
663
658
|
* Input decorator and metadata.
|
|
664
659
|
*
|
|
665
|
-
*
|
|
660
|
+
*
|
|
666
661
|
* \@Annotation
|
|
667
662
|
*/
|
|
668
663
|
const Input = makePropDecorator('Input', (bindingPropertyName) => ({ bindingPropertyName }));
|
|
669
664
|
/**
|
|
670
665
|
* Type of the Output decorator / constructor function.
|
|
671
666
|
*
|
|
672
|
-
*
|
|
667
|
+
*
|
|
673
668
|
* @record
|
|
674
669
|
*/
|
|
675
670
|
|
|
676
671
|
/**
|
|
677
672
|
* Output decorator and metadata.
|
|
678
673
|
*
|
|
679
|
-
*
|
|
674
|
+
*
|
|
680
675
|
* \@Annotation
|
|
681
676
|
*/
|
|
682
677
|
const Output = makePropDecorator('Output', (bindingPropertyName) => ({ bindingPropertyName }));
|
|
683
678
|
/**
|
|
684
679
|
* Type of the HostBinding decorator / constructor function.
|
|
685
680
|
*
|
|
686
|
-
*
|
|
681
|
+
*
|
|
687
682
|
* @record
|
|
688
683
|
*/
|
|
689
684
|
|
|
690
685
|
/**
|
|
691
686
|
* HostBinding decorator and metadata.
|
|
692
687
|
*
|
|
693
|
-
*
|
|
688
|
+
*
|
|
694
689
|
* \@Annotation
|
|
695
690
|
*/
|
|
696
691
|
const HostBinding = makePropDecorator('HostBinding', (hostPropertyName) => ({ hostPropertyName }));
|
|
697
692
|
/**
|
|
698
693
|
* Type of the HostListener decorator / constructor function.
|
|
699
694
|
*
|
|
700
|
-
*
|
|
695
|
+
*
|
|
701
696
|
* @record
|
|
702
697
|
*/
|
|
703
698
|
|
|
704
699
|
/**
|
|
705
700
|
* HostListener decorator and metadata.
|
|
706
701
|
*
|
|
707
|
-
*
|
|
702
|
+
*
|
|
708
703
|
* \@Annotation
|
|
709
704
|
*/
|
|
710
705
|
const HostListener = makePropDecorator('HostListener', (eventName, args) => ({ eventName, args }));
|
|
@@ -728,7 +723,7 @@ const HostListener = makePropDecorator('HostListener', (eventName, args) => ({ e
|
|
|
728
723
|
* An example of a `Type` is `MyCustomComponent` class, which in JavaScript is be represented by
|
|
729
724
|
* the `MyCustomComponent` constructor function.
|
|
730
725
|
*
|
|
731
|
-
*
|
|
726
|
+
*
|
|
732
727
|
*/
|
|
733
728
|
const Type = Function;
|
|
734
729
|
/**
|
|
@@ -1252,70 +1247,70 @@ function resolveForwardRef(type) {
|
|
|
1252
1247
|
/**
|
|
1253
1248
|
* Type of the Inject decorator / constructor function.
|
|
1254
1249
|
*
|
|
1255
|
-
*
|
|
1250
|
+
*
|
|
1256
1251
|
* @record
|
|
1257
1252
|
*/
|
|
1258
1253
|
|
|
1259
1254
|
/**
|
|
1260
1255
|
* Inject decorator and metadata.
|
|
1261
1256
|
*
|
|
1262
|
-
*
|
|
1257
|
+
*
|
|
1263
1258
|
* \@Annotation
|
|
1264
1259
|
*/
|
|
1265
1260
|
const Inject = makeParamDecorator('Inject', (token) => ({ token }));
|
|
1266
1261
|
/**
|
|
1267
1262
|
* Type of the Optional decorator / constructor function.
|
|
1268
1263
|
*
|
|
1269
|
-
*
|
|
1264
|
+
*
|
|
1270
1265
|
* @record
|
|
1271
1266
|
*/
|
|
1272
1267
|
|
|
1273
1268
|
/**
|
|
1274
1269
|
* Optional decorator and metadata.
|
|
1275
1270
|
*
|
|
1276
|
-
*
|
|
1271
|
+
*
|
|
1277
1272
|
* \@Annotation
|
|
1278
1273
|
*/
|
|
1279
1274
|
const Optional = makeParamDecorator('Optional');
|
|
1280
1275
|
/**
|
|
1281
1276
|
* Type of the Self decorator / constructor function.
|
|
1282
1277
|
*
|
|
1283
|
-
*
|
|
1278
|
+
*
|
|
1284
1279
|
* @record
|
|
1285
1280
|
*/
|
|
1286
1281
|
|
|
1287
1282
|
/**
|
|
1288
1283
|
* Self decorator and metadata.
|
|
1289
1284
|
*
|
|
1290
|
-
*
|
|
1285
|
+
*
|
|
1291
1286
|
* \@Annotation
|
|
1292
1287
|
*/
|
|
1293
1288
|
const Self = makeParamDecorator('Self');
|
|
1294
1289
|
/**
|
|
1295
1290
|
* Type of the SkipSelf decorator / constructor function.
|
|
1296
1291
|
*
|
|
1297
|
-
*
|
|
1292
|
+
*
|
|
1298
1293
|
* @record
|
|
1299
1294
|
*/
|
|
1300
1295
|
|
|
1301
1296
|
/**
|
|
1302
1297
|
* SkipSelf decorator and metadata.
|
|
1303
1298
|
*
|
|
1304
|
-
*
|
|
1299
|
+
*
|
|
1305
1300
|
* \@Annotation
|
|
1306
1301
|
*/
|
|
1307
1302
|
const SkipSelf = makeParamDecorator('SkipSelf');
|
|
1308
1303
|
/**
|
|
1309
1304
|
* Type of the Host decorator / constructor function.
|
|
1310
1305
|
*
|
|
1311
|
-
*
|
|
1306
|
+
*
|
|
1312
1307
|
* @record
|
|
1313
1308
|
*/
|
|
1314
1309
|
|
|
1315
1310
|
/**
|
|
1316
1311
|
* Host decorator and metadata.
|
|
1317
1312
|
*
|
|
1318
|
-
*
|
|
1313
|
+
*
|
|
1319
1314
|
* \@Annotation
|
|
1320
1315
|
*/
|
|
1321
1316
|
const Host = makeParamDecorator('Host');
|
|
@@ -1376,7 +1371,7 @@ class NullInjector {
|
|
|
1376
1371
|
* `Injector` returns itself when given `Injector` as a token:
|
|
1377
1372
|
* {\@example core/di/ts/injector_spec.ts region='injectInjector'}
|
|
1378
1373
|
*
|
|
1379
|
-
*
|
|
1374
|
+
*
|
|
1380
1375
|
* @abstract
|
|
1381
1376
|
*/
|
|
1382
1377
|
class Injector {
|
|
@@ -1599,7 +1594,7 @@ function tryResolveToken(token, record, records, parent, notFoundValue, flags) {
|
|
|
1599
1594
|
*/
|
|
1600
1595
|
function resolveToken(token, record, records, parent, notFoundValue, flags) {
|
|
1601
1596
|
let /** @type {?} */ value;
|
|
1602
|
-
if (record && !(flags &
|
|
1597
|
+
if (record && !(flags & 4 /* SkipSelf */)) {
|
|
1603
1598
|
// If we don't have a record, this implies that we don't own the provider hence don't know how
|
|
1604
1599
|
// to resolve it.
|
|
1605
1600
|
value = record.value;
|
|
@@ -1725,7 +1720,13 @@ function getClosureSafeProperty$1(objWithPropertyToExtract) {
|
|
|
1725
1720
|
}
|
|
1726
1721
|
throw Error('!prop');
|
|
1727
1722
|
}
|
|
1728
|
-
|
|
1723
|
+
/**
|
|
1724
|
+
* Current injector value used by `inject`.
|
|
1725
|
+
* - `undefined`: it is an error to call `inject`
|
|
1726
|
+
* - `null`: `inject` can be called but there is no injector (limp-mode).
|
|
1727
|
+
* - Injector instance: Use the injector for resolution.
|
|
1728
|
+
*/
|
|
1729
|
+
let _currentInjector = undefined;
|
|
1729
1730
|
/**
|
|
1730
1731
|
* @param {?} injector
|
|
1731
1732
|
* @return {?}
|
|
@@ -1738,15 +1739,24 @@ function setCurrentInjector(injector) {
|
|
|
1738
1739
|
/**
|
|
1739
1740
|
* @template T
|
|
1740
1741
|
* @param {?} token
|
|
1741
|
-
* @param {?=} notFoundValue
|
|
1742
1742
|
* @param {?=} flags
|
|
1743
1743
|
* @return {?}
|
|
1744
1744
|
*/
|
|
1745
|
-
function inject(token,
|
|
1746
|
-
if (_currentInjector ===
|
|
1745
|
+
function inject(token, flags = 0 /* Default */) {
|
|
1746
|
+
if (_currentInjector === undefined) {
|
|
1747
1747
|
throw new Error(`inject() must be called from an injection context`);
|
|
1748
1748
|
}
|
|
1749
|
-
|
|
1749
|
+
else if (_currentInjector === null) {
|
|
1750
|
+
const /** @type {?} */ injectableDef = (/** @type {?} */ (token)).ngInjectableDef;
|
|
1751
|
+
if (injectableDef && injectableDef.providedIn == 'root') {
|
|
1752
|
+
return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :
|
|
1753
|
+
injectableDef.value;
|
|
1754
|
+
}
|
|
1755
|
+
throw new Error(`Injector: NOT_FOUND [${stringify(token)}]`);
|
|
1756
|
+
}
|
|
1757
|
+
else {
|
|
1758
|
+
return _currentInjector.get(token, flags & 8 /* Optional */ ? null : undefined, flags);
|
|
1759
|
+
}
|
|
1750
1760
|
}
|
|
1751
1761
|
/**
|
|
1752
1762
|
* @param {?} types
|
|
@@ -1761,17 +1771,17 @@ function injectArgs(types) {
|
|
|
1761
1771
|
throw new Error('Arguments array must have arguments.');
|
|
1762
1772
|
}
|
|
1763
1773
|
let /** @type {?} */ type = undefined;
|
|
1764
|
-
let /** @type {?} */
|
|
1774
|
+
let /** @type {?} */ flags = 0;
|
|
1765
1775
|
for (let /** @type {?} */ j = 0; j < arg.length; j++) {
|
|
1766
1776
|
const /** @type {?} */ meta = arg[j];
|
|
1767
1777
|
if (meta instanceof Optional || meta.__proto__.ngMetadataName === 'Optional') {
|
|
1768
|
-
|
|
1778
|
+
flags |= 8 /* Optional */;
|
|
1769
1779
|
}
|
|
1770
1780
|
else if (meta instanceof SkipSelf || meta.__proto__.ngMetadataName === 'SkipSelf') {
|
|
1771
|
-
|
|
1781
|
+
flags |= 4 /* SkipSelf */;
|
|
1772
1782
|
}
|
|
1773
1783
|
else if (meta instanceof Self || meta.__proto__.ngMetadataName === 'Self') {
|
|
1774
|
-
|
|
1784
|
+
flags |= 2 /* Self */;
|
|
1775
1785
|
}
|
|
1776
1786
|
else if (meta instanceof Inject) {
|
|
1777
1787
|
type = meta.token;
|
|
@@ -1780,7 +1790,7 @@ function injectArgs(types) {
|
|
|
1780
1790
|
type = meta;
|
|
1781
1791
|
}
|
|
1782
1792
|
}
|
|
1783
|
-
args.push(inject(/** @type {?} */ ((type)),
|
|
1793
|
+
args.push(inject(/** @type {?} */ ((type)), flags));
|
|
1784
1794
|
}
|
|
1785
1795
|
else {
|
|
1786
1796
|
args.push(inject(arg));
|
|
@@ -1806,7 +1816,7 @@ const USE_VALUE = getClosureSafeProperty({ provide: String, useValue: ɵ0 }, GET
|
|
|
1806
1816
|
/**
|
|
1807
1817
|
* Type of the Injectable decorator / constructor function.
|
|
1808
1818
|
*
|
|
1809
|
-
*
|
|
1819
|
+
*
|
|
1810
1820
|
* @record
|
|
1811
1821
|
*/
|
|
1812
1822
|
|
|
@@ -1856,7 +1866,7 @@ function convertInjectableProviderToFactory(type, provider) {
|
|
|
1856
1866
|
/**
|
|
1857
1867
|
* Injectable decorator and metadata.
|
|
1858
1868
|
*
|
|
1859
|
-
*
|
|
1869
|
+
*
|
|
1860
1870
|
* \@Annotation
|
|
1861
1871
|
*/
|
|
1862
1872
|
const Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (injectableType, options) => {
|
|
@@ -1890,7 +1900,7 @@ const Injectable = makeDecorator('Injectable', undefined, undefined, undefined,
|
|
|
1890
1900
|
/**
|
|
1891
1901
|
* A wrapper around a module that also includes the providers.
|
|
1892
1902
|
*
|
|
1893
|
-
*
|
|
1903
|
+
*
|
|
1894
1904
|
* @record
|
|
1895
1905
|
*/
|
|
1896
1906
|
|
|
@@ -1907,7 +1917,7 @@ const Injectable = makeDecorator('Injectable', undefined, undefined, undefined,
|
|
|
1907
1917
|
* - any properties on elements with a `-` in their name which is the common rule for custom
|
|
1908
1918
|
* elements.
|
|
1909
1919
|
*
|
|
1910
|
-
*
|
|
1920
|
+
*
|
|
1911
1921
|
*/
|
|
1912
1922
|
const CUSTOM_ELEMENTS_SCHEMA = {
|
|
1913
1923
|
name: 'custom-elements'
|
|
@@ -1923,14 +1933,14 @@ const NO_ERRORS_SCHEMA = {
|
|
|
1923
1933
|
/**
|
|
1924
1934
|
* Type of the NgModule decorator / constructor function.
|
|
1925
1935
|
*
|
|
1926
|
-
*
|
|
1936
|
+
*
|
|
1927
1937
|
* @record
|
|
1928
1938
|
*/
|
|
1929
1939
|
|
|
1930
1940
|
/**
|
|
1931
1941
|
* NgModule decorator and metadata.
|
|
1932
1942
|
*
|
|
1933
|
-
*
|
|
1943
|
+
*
|
|
1934
1944
|
* \@Annotation
|
|
1935
1945
|
*/
|
|
1936
1946
|
const NgModule = makeDecorator('NgModule', (ngModule) => ngModule, undefined, undefined, (moduleType, metadata) => {
|
|
@@ -2009,7 +2019,7 @@ ViewEncapsulation[ViewEncapsulation.None] = "None";
|
|
|
2009
2019
|
/**
|
|
2010
2020
|
* \@description Represents the version of Angular
|
|
2011
2021
|
*
|
|
2012
|
-
*
|
|
2022
|
+
*
|
|
2013
2023
|
*/
|
|
2014
2024
|
class Version {
|
|
2015
2025
|
/**
|
|
@@ -2023,9 +2033,9 @@ class Version {
|
|
|
2023
2033
|
}
|
|
2024
2034
|
}
|
|
2025
2035
|
/**
|
|
2026
|
-
*
|
|
2036
|
+
*
|
|
2027
2037
|
*/
|
|
2028
|
-
const VERSION = new Version('6.0.0
|
|
2038
|
+
const VERSION = new Version('6.0.0');
|
|
2029
2039
|
|
|
2030
2040
|
/**
|
|
2031
2041
|
* @fileoverview added by tsickle
|
|
@@ -2112,7 +2122,7 @@ function defaultErrorLogger(console, ...values) {
|
|
|
2112
2122
|
* class MyModule {}
|
|
2113
2123
|
* ```
|
|
2114
2124
|
*
|
|
2115
|
-
*
|
|
2125
|
+
*
|
|
2116
2126
|
*/
|
|
2117
2127
|
class ErrorHandler {
|
|
2118
2128
|
constructor() {
|
|
@@ -2373,7 +2383,7 @@ function invalidProviderError(provider) {
|
|
|
2373
2383
|
*
|
|
2374
2384
|
* expect(() => Injector.resolveAndCreate([A,B])).toThrowError();
|
|
2375
2385
|
* ```
|
|
2376
|
-
*
|
|
2386
|
+
*
|
|
2377
2387
|
* @param {?} typeOrFunc
|
|
2378
2388
|
* @param {?} params
|
|
2379
2389
|
* @return {?}
|
|
@@ -2406,7 +2416,7 @@ function noAnnotationError(typeOrFunc, params) {
|
|
|
2406
2416
|
*
|
|
2407
2417
|
* expect(() => injector.getAt(100)).toThrowError();
|
|
2408
2418
|
* ```
|
|
2409
|
-
*
|
|
2419
|
+
*
|
|
2410
2420
|
* @param {?} index
|
|
2411
2421
|
* @return {?}
|
|
2412
2422
|
*/
|
|
@@ -3362,7 +3372,7 @@ function getNullInjector() {
|
|
|
3362
3372
|
return NULL_INJECTOR$1;
|
|
3363
3373
|
}
|
|
3364
3374
|
/**
|
|
3365
|
-
* Create a new `Injector` which is configured using `
|
|
3375
|
+
* Create a new `Injector` which is configured using `InjectorType`s.
|
|
3366
3376
|
*
|
|
3367
3377
|
* \@experimental
|
|
3368
3378
|
* @param {?} defType
|
|
@@ -3385,7 +3395,7 @@ class R3Injector {
|
|
|
3385
3395
|
*/
|
|
3386
3396
|
this.records = new Map();
|
|
3387
3397
|
/**
|
|
3388
|
-
* The transitive set of `
|
|
3398
|
+
* The transitive set of `InjectorType`s which define this injector.
|
|
3389
3399
|
*/
|
|
3390
3400
|
this.injectorDefTypes = new Set();
|
|
3391
3401
|
/**
|
|
@@ -3396,7 +3406,7 @@ class R3Injector {
|
|
|
3396
3406
|
* Flag indicating that this injector was previously destroyed.
|
|
3397
3407
|
*/
|
|
3398
3408
|
this.destroyed = false;
|
|
3399
|
-
// Start off by creating Records for every provider declared in every
|
|
3409
|
+
// Start off by creating Records for every provider declared in every InjectorType
|
|
3400
3410
|
// included transitively in `def`.
|
|
3401
3411
|
deepForEach([def], injectorDef => this.processInjectorType(injectorDef, new Set()));
|
|
3402
3412
|
// Make sure the INJECTOR token provides this injector.
|
|
@@ -3404,7 +3414,7 @@ class R3Injector {
|
|
|
3404
3414
|
// Detect whether this injector has the APP_ROOT_SCOPE token and thus should provide
|
|
3405
3415
|
// any injectable scoped to APP_ROOT_SCOPE.
|
|
3406
3416
|
this.isRootInjector = this.records.has(APP_ROOT);
|
|
3407
|
-
// Eagerly instantiate the
|
|
3417
|
+
// Eagerly instantiate the InjectorType classes themselves.
|
|
3408
3418
|
this.injectorDefTypes.forEach(defType => this.get(defType));
|
|
3409
3419
|
}
|
|
3410
3420
|
/**
|
|
@@ -3442,7 +3452,7 @@ class R3Injector {
|
|
|
3442
3452
|
const /** @type {?} */ previousInjector = setCurrentInjector(this);
|
|
3443
3453
|
try {
|
|
3444
3454
|
// Check for the SkipSelf flag.
|
|
3445
|
-
if (!(flags &
|
|
3455
|
+
if (!(flags & 4 /* SkipSelf */)) {
|
|
3446
3456
|
// SkipSelf isn't set, check if the record belongs to this injector.
|
|
3447
3457
|
let /** @type {?} */ record = this.records.get(token);
|
|
3448
3458
|
if (record === undefined) {
|
|
@@ -3482,7 +3492,7 @@ class R3Injector {
|
|
|
3482
3492
|
}
|
|
3483
3493
|
}
|
|
3484
3494
|
/**
|
|
3485
|
-
* Add an `
|
|
3495
|
+
* Add an `InjectorType` or `InjectorDefTypeWithProviders` and all of its transitive providers
|
|
3486
3496
|
* to this injector.
|
|
3487
3497
|
* @param {?} defOrWrappedDef
|
|
3488
3498
|
* @param {?} parents
|
|
@@ -3490,14 +3500,14 @@ class R3Injector {
|
|
|
3490
3500
|
*/
|
|
3491
3501
|
processInjectorType(defOrWrappedDef, parents) {
|
|
3492
3502
|
defOrWrappedDef = resolveForwardRef(defOrWrappedDef);
|
|
3493
|
-
// Either the defOrWrappedDef is an
|
|
3503
|
+
// Either the defOrWrappedDef is an InjectorType (with ngInjectorDef) or an
|
|
3494
3504
|
// InjectorDefTypeWithProviders (aka ModuleWithProviders). Detecting either is a megamorphic
|
|
3495
3505
|
// read, so care is taken to only do the read once.
|
|
3496
3506
|
// First attempt to read the ngInjectorDef.
|
|
3497
3507
|
let /** @type {?} */ def = /** @type {?} */ ((/** @type {?} */ (defOrWrappedDef)).ngInjectorDef);
|
|
3498
3508
|
// If that's not present, then attempt to read ngModule from the InjectorDefTypeWithProviders.
|
|
3499
3509
|
const /** @type {?} */ ngModule = (def == null) && (/** @type {?} */ (defOrWrappedDef)).ngModule || undefined;
|
|
3500
|
-
// Determine the
|
|
3510
|
+
// Determine the InjectorType. In the case where `defOrWrappedDef` is an `InjectorType`,
|
|
3501
3511
|
// then this is easy. In the case of an InjectorDefTypeWithProviders, then the definition type
|
|
3502
3512
|
// is the `ngModule`.
|
|
3503
3513
|
const /** @type {?} */ defType = (ngModule === undefined) ? (/** @type {?} */ (defOrWrappedDef)) : ngModule;
|
|
@@ -3518,7 +3528,7 @@ class R3Injector {
|
|
|
3518
3528
|
if (parents.has(defType)) {
|
|
3519
3529
|
throw new Error(`Circular dependency: type ${stringify(defType)} ends up importing itself.`);
|
|
3520
3530
|
}
|
|
3521
|
-
// Track the
|
|
3531
|
+
// Track the InjectorType and add a provider for it.
|
|
3522
3532
|
this.injectorDefTypes.add(defType);
|
|
3523
3533
|
this.records.set(defType, makeRecord(def.factory));
|
|
3524
3534
|
// Add providers in the same way that @NgModule resolution did:
|
|
@@ -3619,7 +3629,7 @@ class R3Injector {
|
|
|
3619
3629
|
* @return {?}
|
|
3620
3630
|
*/
|
|
3621
3631
|
function injectableDefRecord(token) {
|
|
3622
|
-
const /** @type {?} */ def = (/** @type {?} */ (token)).ngInjectableDef;
|
|
3632
|
+
const /** @type {?} */ def = /** @type {?} */ ((/** @type {?} */ (token)).ngInjectableDef);
|
|
3623
3633
|
if (def === undefined) {
|
|
3624
3634
|
throw new Error(`Type ${stringify(token)} is missing an ngInjectableDef definition.`);
|
|
3625
3635
|
}
|
|
@@ -3778,7 +3788,7 @@ function isPromise(obj) {
|
|
|
3778
3788
|
* @return {?}
|
|
3779
3789
|
*/
|
|
3780
3790
|
function isObservable(obj) {
|
|
3781
|
-
// TODO use Symbol.observable when https://github.com/ReactiveX/rxjs/issues/2415 will be resolved
|
|
3791
|
+
// TODO: use Symbol.observable when https://github.com/ReactiveX/rxjs/issues/2415 will be resolved
|
|
3782
3792
|
return !!obj && typeof obj.subscribe === 'function';
|
|
3783
3793
|
}
|
|
3784
3794
|
|
|
@@ -3996,7 +4006,7 @@ function _throwError() {
|
|
|
3996
4006
|
* Each `\@NgModule` provides an own `Compiler` to its injector,
|
|
3997
4007
|
* that will use the directives/pipes of the ng module for compilation
|
|
3998
4008
|
* of components.
|
|
3999
|
-
*
|
|
4009
|
+
*
|
|
4000
4010
|
*/
|
|
4001
4011
|
class Compiler {
|
|
4002
4012
|
/**
|
|
@@ -4081,14 +4091,14 @@ class CompilerFactory {
|
|
|
4081
4091
|
* `ComponentRef` provides access to the Component Instance as well other objects related to this
|
|
4082
4092
|
* Component Instance and allows you to destroy the Component Instance via the {\@link #destroy}
|
|
4083
4093
|
* method.
|
|
4084
|
-
*
|
|
4094
|
+
*
|
|
4085
4095
|
* @abstract
|
|
4086
4096
|
* @template C
|
|
4087
4097
|
*/
|
|
4088
4098
|
class ComponentRef {
|
|
4089
4099
|
}
|
|
4090
4100
|
/**
|
|
4091
|
-
*
|
|
4101
|
+
*
|
|
4092
4102
|
* @abstract
|
|
4093
4103
|
* @template C
|
|
4094
4104
|
*/
|
|
@@ -4132,7 +4142,7 @@ class _NullComponentFactoryResolver {
|
|
|
4132
4142
|
}
|
|
4133
4143
|
}
|
|
4134
4144
|
/**
|
|
4135
|
-
*
|
|
4145
|
+
*
|
|
4136
4146
|
* @abstract
|
|
4137
4147
|
*/
|
|
4138
4148
|
class ComponentFactoryResolver {
|
|
@@ -4216,7 +4226,7 @@ class ComponentFactoryBoundToModule extends ComponentFactory {
|
|
|
4216
4226
|
* `NgModuleRef` provides access to the NgModule Instance as well other objects related to this
|
|
4217
4227
|
* NgModule Instance.
|
|
4218
4228
|
*
|
|
4219
|
-
*
|
|
4229
|
+
*
|
|
4220
4230
|
* @abstract
|
|
4221
4231
|
* @template T
|
|
4222
4232
|
*/
|
|
@@ -4453,7 +4463,7 @@ const wtfEndTimeRange = wtfEnabled ? endTimeRange : (r) => null;
|
|
|
4453
4463
|
* https://github.com/jhusain/observable-spec
|
|
4454
4464
|
*
|
|
4455
4465
|
* Once a reference implementation of the spec is available, switch to it.
|
|
4456
|
-
*
|
|
4466
|
+
*
|
|
4457
4467
|
* @template T
|
|
4458
4468
|
*/
|
|
4459
4469
|
class EventEmitter extends Subject {
|
|
@@ -5207,7 +5217,7 @@ const ALLOW_MULTIPLE_PLATFORMS = new InjectionToken('AllowMultipleToken');
|
|
|
5207
5217
|
* does not result in additional changes to any bindings (also known as
|
|
5208
5218
|
* unidirectional data flow).
|
|
5209
5219
|
*
|
|
5210
|
-
*
|
|
5220
|
+
*
|
|
5211
5221
|
* @return {?}
|
|
5212
5222
|
*/
|
|
5213
5223
|
function enableProdMode() {
|
|
@@ -5329,7 +5339,7 @@ function getPlatform() {
|
|
|
5329
5339
|
/**
|
|
5330
5340
|
* Provides additional options to the bootstraping process.
|
|
5331
5341
|
*
|
|
5332
|
-
*
|
|
5342
|
+
*
|
|
5333
5343
|
* @record
|
|
5334
5344
|
*/
|
|
5335
5345
|
|
|
@@ -5341,7 +5351,7 @@ function getPlatform() {
|
|
|
5341
5351
|
* A page's platform is initialized implicitly when a platform is created via a platform factory
|
|
5342
5352
|
* (e.g. {\@link platformBrowser}), or explicitly by calling the {\@link createPlatform} function.
|
|
5343
5353
|
*
|
|
5344
|
-
*
|
|
5354
|
+
*
|
|
5345
5355
|
*/
|
|
5346
5356
|
class PlatformRef {
|
|
5347
5357
|
/**
|
|
@@ -5423,7 +5433,7 @@ class PlatformRef {
|
|
|
5423
5433
|
*
|
|
5424
5434
|
* let moduleRef = platformBrowser().bootstrapModule(MyModule);
|
|
5425
5435
|
* ```
|
|
5426
|
-
*
|
|
5436
|
+
*
|
|
5427
5437
|
* @template M
|
|
5428
5438
|
* @param {?} moduleType
|
|
5429
5439
|
* @param {?=} compilerOptions
|
|
@@ -5547,7 +5557,7 @@ function optionsReducer(dst, objs) {
|
|
|
5547
5557
|
/**
|
|
5548
5558
|
* A reference to an Angular application running on a page.
|
|
5549
5559
|
*
|
|
5550
|
-
*
|
|
5560
|
+
*
|
|
5551
5561
|
*/
|
|
5552
5562
|
class ApplicationRef {
|
|
5553
5563
|
/**
|
|
@@ -5927,7 +5937,7 @@ class Renderer2 {
|
|
|
5927
5937
|
* XSS attacks. Carefully review any use of `ElementRef` in your code. For more detail, see the
|
|
5928
5938
|
* [Security Guide](http://g.co/ng/security).
|
|
5929
5939
|
*
|
|
5930
|
-
*
|
|
5940
|
+
*
|
|
5931
5941
|
* @template T
|
|
5932
5942
|
*/
|
|
5933
5943
|
class ElementRef {
|
|
@@ -5950,7 +5960,7 @@ class ElementRef {
|
|
|
5950
5960
|
*/
|
|
5951
5961
|
/**
|
|
5952
5962
|
* Used to load ng module factories.
|
|
5953
|
-
*
|
|
5963
|
+
*
|
|
5954
5964
|
* @abstract
|
|
5955
5965
|
*/
|
|
5956
5966
|
class NgModuleFactoryLoader {
|
|
@@ -6022,7 +6032,7 @@ function getModuleFactory(id) {
|
|
|
6022
6032
|
* \@ViewChildren(Item) items:QueryList<Item>;
|
|
6023
6033
|
* }
|
|
6024
6034
|
* ```
|
|
6025
|
-
*
|
|
6035
|
+
*
|
|
6026
6036
|
* @template T
|
|
6027
6037
|
*/
|
|
6028
6038
|
class QueryList {
|
|
@@ -6257,7 +6267,7 @@ function checkNotEmpty(value, modulePath, exportName) {
|
|
|
6257
6267
|
*
|
|
6258
6268
|
* To instantiate Embedded Views based on a Template, use {\@link ViewContainerRef#
|
|
6259
6269
|
* createEmbeddedView}, which will create the View and attach it to the View Container.
|
|
6260
|
-
*
|
|
6270
|
+
*
|
|
6261
6271
|
* @abstract
|
|
6262
6272
|
* @template C
|
|
6263
6273
|
*/
|
|
@@ -6291,7 +6301,7 @@ class TemplateRef {
|
|
|
6291
6301
|
*
|
|
6292
6302
|
* To access a `ViewContainerRef` of an Element, you can either place a {\@link Directive} injected
|
|
6293
6303
|
* with `ViewContainerRef` on the Element, or you obtain it via a {\@link ViewChild} query.
|
|
6294
|
-
*
|
|
6304
|
+
*
|
|
6295
6305
|
* @abstract
|
|
6296
6306
|
*/
|
|
6297
6307
|
class ViewContainerRef {
|
|
@@ -6309,7 +6319,7 @@ class ViewContainerRef {
|
|
|
6309
6319
|
* found in the LICENSE file at https://angular.io/license
|
|
6310
6320
|
*/
|
|
6311
6321
|
/**
|
|
6312
|
-
*
|
|
6322
|
+
*
|
|
6313
6323
|
* @abstract
|
|
6314
6324
|
*/
|
|
6315
6325
|
class ChangeDetectorRef {
|
|
@@ -6327,7 +6337,7 @@ class ChangeDetectorRef {
|
|
|
6327
6337
|
* found in the LICENSE file at https://angular.io/license
|
|
6328
6338
|
*/
|
|
6329
6339
|
/**
|
|
6330
|
-
*
|
|
6340
|
+
*
|
|
6331
6341
|
* @abstract
|
|
6332
6342
|
*/
|
|
6333
6343
|
class ViewRef extends ChangeDetectorRef {
|
|
@@ -6716,7 +6726,7 @@ function devModeEqual(a, b) {
|
|
|
6716
6726
|
* return WrappedValue.wrap(this._latestValue); // this will force update
|
|
6717
6727
|
* }
|
|
6718
6728
|
* ```
|
|
6719
|
-
*
|
|
6729
|
+
*
|
|
6720
6730
|
*/
|
|
6721
6731
|
class WrappedValue {
|
|
6722
6732
|
/**
|
|
@@ -6746,7 +6756,7 @@ class WrappedValue {
|
|
|
6746
6756
|
}
|
|
6747
6757
|
/**
|
|
6748
6758
|
* Represents a basic change from a previous to a new value.
|
|
6749
|
-
*
|
|
6759
|
+
*
|
|
6750
6760
|
*/
|
|
6751
6761
|
class SimpleChange {
|
|
6752
6762
|
/**
|
|
@@ -7100,7 +7110,7 @@ class DefaultIterableDiffer {
|
|
|
7100
7110
|
this._movesHead = this._movesTail = null;
|
|
7101
7111
|
this._removalsHead = this._removalsTail = null;
|
|
7102
7112
|
this._identityChangesHead = this._identityChangesTail = null;
|
|
7103
|
-
//
|
|
7113
|
+
// TODO(vicb): when assert gets supported
|
|
7104
7114
|
// assert(!this.isDirty);
|
|
7105
7115
|
}
|
|
7106
7116
|
}
|
|
@@ -7287,12 +7297,12 @@ class DefaultIterableDiffer {
|
|
|
7287
7297
|
_addAfter(record, prevRecord, index) {
|
|
7288
7298
|
this._insertAfter(record, prevRecord, index);
|
|
7289
7299
|
if (this._additionsTail === null) {
|
|
7290
|
-
//
|
|
7300
|
+
// TODO(vicb):
|
|
7291
7301
|
// assert(this._additionsHead === null);
|
|
7292
7302
|
this._additionsTail = this._additionsHead = record;
|
|
7293
7303
|
}
|
|
7294
7304
|
else {
|
|
7295
|
-
//
|
|
7305
|
+
// TODO(vicb):
|
|
7296
7306
|
// assert(_additionsTail._nextAdded === null);
|
|
7297
7307
|
// assert(record._nextAdded === null);
|
|
7298
7308
|
this._additionsTail = this._additionsTail._nextAdded = record;
|
|
@@ -7307,12 +7317,12 @@ class DefaultIterableDiffer {
|
|
|
7307
7317
|
* @return {?}
|
|
7308
7318
|
*/
|
|
7309
7319
|
_insertAfter(record, prevRecord, index) {
|
|
7310
|
-
//
|
|
7320
|
+
// TODO(vicb):
|
|
7311
7321
|
// assert(record != prevRecord);
|
|
7312
7322
|
// assert(record._next === null);
|
|
7313
7323
|
// assert(record._prev === null);
|
|
7314
7324
|
const /** @type {?} */ next = prevRecord === null ? this._itHead : prevRecord._next;
|
|
7315
|
-
//
|
|
7325
|
+
// TODO(vicb):
|
|
7316
7326
|
// assert(next != record);
|
|
7317
7327
|
// assert(prevRecord != record);
|
|
7318
7328
|
record._next = next;
|
|
@@ -7355,7 +7365,7 @@ class DefaultIterableDiffer {
|
|
|
7355
7365
|
}
|
|
7356
7366
|
const /** @type {?} */ prev = record._prev;
|
|
7357
7367
|
const /** @type {?} */ next = record._next;
|
|
7358
|
-
//
|
|
7368
|
+
// TODO(vicb):
|
|
7359
7369
|
// assert((record._prev = null) === null);
|
|
7360
7370
|
// assert((record._next = null) === null);
|
|
7361
7371
|
if (prev === null) {
|
|
@@ -7379,18 +7389,18 @@ class DefaultIterableDiffer {
|
|
|
7379
7389
|
* @return {?}
|
|
7380
7390
|
*/
|
|
7381
7391
|
_addToMoves(record, toIndex) {
|
|
7382
|
-
//
|
|
7392
|
+
// TODO(vicb):
|
|
7383
7393
|
// assert(record._nextMoved === null);
|
|
7384
7394
|
if (record.previousIndex === toIndex) {
|
|
7385
7395
|
return record;
|
|
7386
7396
|
}
|
|
7387
7397
|
if (this._movesTail === null) {
|
|
7388
|
-
//
|
|
7398
|
+
// TODO(vicb):
|
|
7389
7399
|
// assert(_movesHead === null);
|
|
7390
7400
|
this._movesTail = this._movesHead = record;
|
|
7391
7401
|
}
|
|
7392
7402
|
else {
|
|
7393
|
-
//
|
|
7403
|
+
// TODO(vicb):
|
|
7394
7404
|
// assert(_movesTail._nextMoved === null);
|
|
7395
7405
|
this._movesTail = this._movesTail._nextMoved = record;
|
|
7396
7406
|
}
|
|
@@ -7408,13 +7418,13 @@ class DefaultIterableDiffer {
|
|
|
7408
7418
|
record.currentIndex = null;
|
|
7409
7419
|
record._nextRemoved = null;
|
|
7410
7420
|
if (this._removalsTail === null) {
|
|
7411
|
-
//
|
|
7421
|
+
// TODO(vicb):
|
|
7412
7422
|
// assert(_removalsHead === null);
|
|
7413
7423
|
this._removalsTail = this._removalsHead = record;
|
|
7414
7424
|
record._prevRemoved = null;
|
|
7415
7425
|
}
|
|
7416
7426
|
else {
|
|
7417
|
-
//
|
|
7427
|
+
// TODO(vicb):
|
|
7418
7428
|
// assert(_removalsTail._nextRemoved === null);
|
|
7419
7429
|
// assert(record._nextRemoved === null);
|
|
7420
7430
|
record._prevRemoved = this._removalsTail;
|
|
@@ -7440,7 +7450,7 @@ class DefaultIterableDiffer {
|
|
|
7440
7450
|
}
|
|
7441
7451
|
}
|
|
7442
7452
|
/**
|
|
7443
|
-
*
|
|
7453
|
+
*
|
|
7444
7454
|
* @template V
|
|
7445
7455
|
*/
|
|
7446
7456
|
class IterableChangeRecord_ {
|
|
@@ -7524,7 +7534,7 @@ class _DuplicateItemRecordList {
|
|
|
7524
7534
|
}
|
|
7525
7535
|
else {
|
|
7526
7536
|
/** @type {?} */ ((
|
|
7527
|
-
//
|
|
7537
|
+
// TODO(vicb):
|
|
7528
7538
|
// assert(record.item == _head.item ||
|
|
7529
7539
|
// record.item is num && record.item.isNaN && _head.item is num && _head.item.isNaN);
|
|
7530
7540
|
this._tail))._nextDup = record;
|
|
@@ -7556,7 +7566,7 @@ class _DuplicateItemRecordList {
|
|
|
7556
7566
|
* @return {?}
|
|
7557
7567
|
*/
|
|
7558
7568
|
remove(record) {
|
|
7559
|
-
//
|
|
7569
|
+
// TODO(vicb):
|
|
7560
7570
|
// assert(() {
|
|
7561
7571
|
// // verify that the record being removed is in the list.
|
|
7562
7572
|
// for (IterableChangeRecord_ cursor = _head; cursor != null; cursor = cursor._nextDup) {
|
|
@@ -7964,7 +7974,7 @@ class DefaultKeyValueDiffer {
|
|
|
7964
7974
|
}
|
|
7965
7975
|
}
|
|
7966
7976
|
/**
|
|
7967
|
-
*
|
|
7977
|
+
*
|
|
7968
7978
|
* @template K, V
|
|
7969
7979
|
*/
|
|
7970
7980
|
class KeyValueChangeRecord_ {
|
|
@@ -8017,7 +8027,7 @@ class KeyValueChangeRecord_ {
|
|
|
8017
8027
|
* A strategy for tracking changes over time to an iterable. Used by {\@link NgForOf} to
|
|
8018
8028
|
* respond to changes in an iterable by effecting equivalent changes in the DOM.
|
|
8019
8029
|
*
|
|
8020
|
-
*
|
|
8030
|
+
*
|
|
8021
8031
|
* @record
|
|
8022
8032
|
* @template V
|
|
8023
8033
|
*/
|
|
@@ -8026,7 +8036,7 @@ class KeyValueChangeRecord_ {
|
|
|
8026
8036
|
* An object describing the changes in the `Iterable` collection since last time
|
|
8027
8037
|
* `IterableDiffer#diff()` was invoked.
|
|
8028
8038
|
*
|
|
8029
|
-
*
|
|
8039
|
+
*
|
|
8030
8040
|
* @record
|
|
8031
8041
|
* @template V
|
|
8032
8042
|
*/
|
|
@@ -8034,7 +8044,7 @@ class KeyValueChangeRecord_ {
|
|
|
8034
8044
|
/**
|
|
8035
8045
|
* Record representing the item change information.
|
|
8036
8046
|
*
|
|
8037
|
-
*
|
|
8047
|
+
*
|
|
8038
8048
|
* @record
|
|
8039
8049
|
* @template V
|
|
8040
8050
|
*/
|
|
@@ -8049,7 +8059,7 @@ class KeyValueChangeRecord_ {
|
|
|
8049
8059
|
* An optional function passed into {\@link NgForOf} that defines how to track
|
|
8050
8060
|
* items in an iterable (e.g. fby index or id)
|
|
8051
8061
|
*
|
|
8052
|
-
*
|
|
8062
|
+
*
|
|
8053
8063
|
* @record
|
|
8054
8064
|
* @template T
|
|
8055
8065
|
*/
|
|
@@ -8057,13 +8067,13 @@ class KeyValueChangeRecord_ {
|
|
|
8057
8067
|
/**
|
|
8058
8068
|
* Provides a factory for {\@link IterableDiffer}.
|
|
8059
8069
|
*
|
|
8060
|
-
*
|
|
8070
|
+
*
|
|
8061
8071
|
* @record
|
|
8062
8072
|
*/
|
|
8063
8073
|
|
|
8064
8074
|
/**
|
|
8065
8075
|
* A repository of different iterable diffing strategies used by NgFor, NgClass, and others.
|
|
8066
|
-
*
|
|
8076
|
+
*
|
|
8067
8077
|
*/
|
|
8068
8078
|
class IterableDiffers {
|
|
8069
8079
|
/**
|
|
@@ -8133,6 +8143,10 @@ class IterableDiffers {
|
|
|
8133
8143
|
}
|
|
8134
8144
|
}
|
|
8135
8145
|
}
|
|
8146
|
+
/** @nocollapse */ IterableDiffers.ngInjectableDef = defineInjectable({
|
|
8147
|
+
providedIn: 'root',
|
|
8148
|
+
factory: () => new IterableDiffers([new DefaultIterableDifferFactory()])
|
|
8149
|
+
});
|
|
8136
8150
|
/**
|
|
8137
8151
|
* @param {?} type
|
|
8138
8152
|
* @return {?}
|
|
@@ -8155,7 +8169,7 @@ function getTypeNameForDebugging(type) {
|
|
|
8155
8169
|
/**
|
|
8156
8170
|
* A differ that tracks changes made to an object over time.
|
|
8157
8171
|
*
|
|
8158
|
-
*
|
|
8172
|
+
*
|
|
8159
8173
|
* @record
|
|
8160
8174
|
* @template K, V
|
|
8161
8175
|
*/
|
|
@@ -8164,7 +8178,7 @@ function getTypeNameForDebugging(type) {
|
|
|
8164
8178
|
* An object describing the changes in the `Map` or `{[k:string]: string}` since last time
|
|
8165
8179
|
* `KeyValueDiffer#diff()` was invoked.
|
|
8166
8180
|
*
|
|
8167
|
-
*
|
|
8181
|
+
*
|
|
8168
8182
|
* @record
|
|
8169
8183
|
* @template K, V
|
|
8170
8184
|
*/
|
|
@@ -8172,7 +8186,7 @@ function getTypeNameForDebugging(type) {
|
|
|
8172
8186
|
/**
|
|
8173
8187
|
* Record representing the item change information.
|
|
8174
8188
|
*
|
|
8175
|
-
*
|
|
8189
|
+
*
|
|
8176
8190
|
* @record
|
|
8177
8191
|
* @template K, V
|
|
8178
8192
|
*/
|
|
@@ -8180,13 +8194,13 @@ function getTypeNameForDebugging(type) {
|
|
|
8180
8194
|
/**
|
|
8181
8195
|
* Provides a factory for {\@link KeyValueDiffer}.
|
|
8182
8196
|
*
|
|
8183
|
-
*
|
|
8197
|
+
*
|
|
8184
8198
|
* @record
|
|
8185
8199
|
*/
|
|
8186
8200
|
|
|
8187
8201
|
/**
|
|
8188
8202
|
* A repository of different Map diffing strategies used by NgClass, NgStyle, and others.
|
|
8189
|
-
*
|
|
8203
|
+
*
|
|
8190
8204
|
*/
|
|
8191
8205
|
class KeyValueDiffers {
|
|
8192
8206
|
/**
|
|
@@ -9100,7 +9114,7 @@ SecurityContext[SecurityContext.RESOURCE_URL] = "RESOURCE_URL";
|
|
|
9100
9114
|
/**
|
|
9101
9115
|
* Sanitizer is used by the views to sanitize potentially dangerous values.
|
|
9102
9116
|
*
|
|
9103
|
-
*
|
|
9117
|
+
*
|
|
9104
9118
|
* @abstract
|
|
9105
9119
|
*/
|
|
9106
9120
|
class Sanitizer {
|
|
@@ -10499,7 +10513,10 @@ function initNgModule(data) {
|
|
|
10499
10513
|
for (let /** @type {?} */ i = 0; i < def.providers.length; i++) {
|
|
10500
10514
|
const /** @type {?} */ provDef = def.providers[i];
|
|
10501
10515
|
if (!(provDef.flags & 4096 /* LazyProvider */)) {
|
|
10502
|
-
|
|
10516
|
+
// Make sure the provider has not been already initialized outside this loop.
|
|
10517
|
+
if (providers[i] === undefined) {
|
|
10518
|
+
providers[i] = _createProviderInstance$1(data, provDef);
|
|
10519
|
+
}
|
|
10503
10520
|
}
|
|
10504
10521
|
}
|
|
10505
10522
|
}
|
|
@@ -11569,7 +11586,7 @@ class NgModuleRef_ {
|
|
|
11569
11586
|
*/
|
|
11570
11587
|
get(token, notFoundValue = Injector.THROW_IF_NOT_FOUND, injectFlags = 0 /* Default */) {
|
|
11571
11588
|
let /** @type {?} */ flags = 0;
|
|
11572
|
-
if (injectFlags &
|
|
11589
|
+
if (injectFlags & 4 /* SkipSelf */) {
|
|
11573
11590
|
flags |= 1 /* SkipSelf */;
|
|
11574
11591
|
}
|
|
11575
11592
|
else if (injectFlags & 2 /* Self */) {
|
|
@@ -14965,6 +14982,18 @@ function assertLessThan(actual, expected, msg) {
|
|
|
14965
14982
|
throwError(msg);
|
|
14966
14983
|
}
|
|
14967
14984
|
}
|
|
14985
|
+
/**
|
|
14986
|
+
* @template T
|
|
14987
|
+
* @param {?} actual
|
|
14988
|
+
* @param {?} expected
|
|
14989
|
+
* @param {?} msg
|
|
14990
|
+
* @return {?}
|
|
14991
|
+
*/
|
|
14992
|
+
function assertGreaterThan(actual, expected, msg) {
|
|
14993
|
+
if (actual <= expected) {
|
|
14994
|
+
throwError(msg);
|
|
14995
|
+
}
|
|
14996
|
+
}
|
|
14968
14997
|
/**
|
|
14969
14998
|
* @template T
|
|
14970
14999
|
* @param {?} actual
|
|
@@ -15053,13 +15082,13 @@ function queueLifecycleHooks(flags, currentView) {
|
|
|
15053
15082
|
const /** @type {?} */ tView = currentView.tView;
|
|
15054
15083
|
if (tView.firstTemplatePass === true) {
|
|
15055
15084
|
const /** @type {?} */ start = flags >> 13;
|
|
15056
|
-
const /** @type {?} */
|
|
15057
|
-
const /** @type {?} */ end = start +
|
|
15085
|
+
const /** @type {?} */ count = flags & 4095;
|
|
15086
|
+
const /** @type {?} */ end = start + count;
|
|
15058
15087
|
// It's necessary to loop through the directives at elementEnd() (rather than processing in
|
|
15059
15088
|
// directiveCreate) so we can preserve the current hook order. Content, view, and destroy
|
|
15060
15089
|
// hooks for projected components and directives must be called *before* their hosts.
|
|
15061
15090
|
for (let /** @type {?} */ i = start; i < end; i++) {
|
|
15062
|
-
const /** @type {?} */ def =
|
|
15091
|
+
const /** @type {?} */ def = /** @type {?} */ ((tView.directives))[i];
|
|
15063
15092
|
queueContentHooks(def, tView, i);
|
|
15064
15093
|
queueViewHooks(def, tView, i);
|
|
15065
15094
|
queueDestroyHooks(def, tView, i);
|
|
@@ -15119,9 +15148,9 @@ function queueDestroyHooks(def, tView, i) {
|
|
|
15119
15148
|
* @return {?}
|
|
15120
15149
|
*/
|
|
15121
15150
|
function executeInitHooks(currentView, tView, creationMode) {
|
|
15122
|
-
if (currentView.lifecycleStage === 1 /*
|
|
15151
|
+
if (currentView.lifecycleStage === 1 /* Init */) {
|
|
15123
15152
|
executeHooks(/** @type {?} */ ((currentView.directives)), tView.initHooks, tView.checkHooks, creationMode);
|
|
15124
|
-
currentView.lifecycleStage = 2 /*
|
|
15153
|
+
currentView.lifecycleStage = 2 /* AfterInit */;
|
|
15125
15154
|
}
|
|
15126
15155
|
}
|
|
15127
15156
|
/**
|
|
@@ -15461,6 +15490,77 @@ const domRendererFactory3 = {
|
|
|
15461
15490
|
// Note: This hack is necessary so we don't erroneously get a circular dependency
|
|
15462
15491
|
// failure based on types.
|
|
15463
15492
|
|
|
15493
|
+
/**
|
|
15494
|
+
* @fileoverview added by tsickle
|
|
15495
|
+
* @suppress {checkTypes} checked by tsc
|
|
15496
|
+
*/
|
|
15497
|
+
/**
|
|
15498
|
+
* @license
|
|
15499
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
15500
|
+
*
|
|
15501
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
15502
|
+
* found in the LICENSE file at https://angular.io/license
|
|
15503
|
+
*/
|
|
15504
|
+
/**
|
|
15505
|
+
* Must use this method for CD (instead of === ) since NaN !== NaN
|
|
15506
|
+
* @param {?} a
|
|
15507
|
+
* @param {?} b
|
|
15508
|
+
* @return {?}
|
|
15509
|
+
*/
|
|
15510
|
+
function isDifferent(a, b) {
|
|
15511
|
+
// NaN is the only value that is not equal to itself so the first
|
|
15512
|
+
// test checks if both a and b are not NaN
|
|
15513
|
+
return !(a !== a && b !== b) && a !== b;
|
|
15514
|
+
}
|
|
15515
|
+
/**
|
|
15516
|
+
* @param {?} value
|
|
15517
|
+
* @return {?}
|
|
15518
|
+
*/
|
|
15519
|
+
function stringify$1(value) {
|
|
15520
|
+
if (typeof value == 'function')
|
|
15521
|
+
return value.name || value;
|
|
15522
|
+
if (typeof value == 'string')
|
|
15523
|
+
return value;
|
|
15524
|
+
if (value == null)
|
|
15525
|
+
return '';
|
|
15526
|
+
return '' + value;
|
|
15527
|
+
}
|
|
15528
|
+
/**
|
|
15529
|
+
* Function that throws a "not implemented" error so it's clear certain
|
|
15530
|
+
* behaviors/methods aren't yet ready.
|
|
15531
|
+
*
|
|
15532
|
+
* @return {?} Not implemented error
|
|
15533
|
+
*/
|
|
15534
|
+
function notImplemented() {
|
|
15535
|
+
return new Error('NotImplemented');
|
|
15536
|
+
}
|
|
15537
|
+
/**
|
|
15538
|
+
* Flattens an array in non-recursive way. Input arrays are not modified.
|
|
15539
|
+
* @param {?} list
|
|
15540
|
+
* @return {?}
|
|
15541
|
+
*/
|
|
15542
|
+
function flatten$1(list) {
|
|
15543
|
+
const /** @type {?} */ result = [];
|
|
15544
|
+
let /** @type {?} */ i = 0;
|
|
15545
|
+
while (i < list.length) {
|
|
15546
|
+
const /** @type {?} */ item = list[i];
|
|
15547
|
+
if (Array.isArray(item)) {
|
|
15548
|
+
if (item.length > 0) {
|
|
15549
|
+
list = item.concat(list.slice(i + 1));
|
|
15550
|
+
i = 0;
|
|
15551
|
+
}
|
|
15552
|
+
else {
|
|
15553
|
+
i++;
|
|
15554
|
+
}
|
|
15555
|
+
}
|
|
15556
|
+
else {
|
|
15557
|
+
result.push(item);
|
|
15558
|
+
i++;
|
|
15559
|
+
}
|
|
15560
|
+
}
|
|
15561
|
+
return result;
|
|
15562
|
+
}
|
|
15563
|
+
|
|
15464
15564
|
/**
|
|
15465
15565
|
* @fileoverview added by tsickle
|
|
15466
15566
|
* @suppress {checkTypes} checked by tsc
|
|
@@ -15595,6 +15695,15 @@ function findFirstRNode(rootNode) {
|
|
|
15595
15695
|
}
|
|
15596
15696
|
return null;
|
|
15597
15697
|
}
|
|
15698
|
+
/**
|
|
15699
|
+
* @param {?} value
|
|
15700
|
+
* @param {?} renderer
|
|
15701
|
+
* @return {?}
|
|
15702
|
+
*/
|
|
15703
|
+
function createTextNode(value, renderer) {
|
|
15704
|
+
return isProceduralRenderer(renderer) ? renderer.createText(stringify$1(value)) :
|
|
15705
|
+
renderer.createTextNode(stringify$1(value));
|
|
15706
|
+
}
|
|
15598
15707
|
/**
|
|
15599
15708
|
* @param {?} container
|
|
15600
15709
|
* @param {?} rootNode
|
|
@@ -15614,6 +15723,12 @@ function addRemoveViewFromContainer(container, rootNode, insertMode, beforeNode)
|
|
|
15614
15723
|
const /** @type {?} */ renderer = container.view.renderer;
|
|
15615
15724
|
if (node.type === 3 /* Element */) {
|
|
15616
15725
|
if (insertMode) {
|
|
15726
|
+
if (!node.native) {
|
|
15727
|
+
// If the native element doesn't exist, this is a bound text node that hasn't yet been
|
|
15728
|
+
// created because update mode has not run (occurs when a bound text node is a root
|
|
15729
|
+
// node of a dynamically created view). See textBinding() in instructions for ctx.
|
|
15730
|
+
(/** @type {?} */ (node)).native = createTextNode('', renderer);
|
|
15731
|
+
}
|
|
15617
15732
|
isProceduralRenderer(renderer) ?
|
|
15618
15733
|
renderer.insertBefore(parent, /** @type {?} */ ((node.native)), /** @type {?} */ (beforeNode)) :
|
|
15619
15734
|
parent.insertBefore(/** @type {?} */ ((node.native)), /** @type {?} */ (beforeNode), true);
|
|
@@ -15749,6 +15864,7 @@ function removeView(container, removeIndex) {
|
|
|
15749
15864
|
setViewNext(views[removeIndex - 1], viewNode.next);
|
|
15750
15865
|
}
|
|
15751
15866
|
views.splice(removeIndex, 1);
|
|
15867
|
+
viewNode.next = null;
|
|
15752
15868
|
destroyViewTree(viewNode.data);
|
|
15753
15869
|
addRemoveViewFromContainer(container, viewNode, false);
|
|
15754
15870
|
// Notify query that view has been removed
|
|
@@ -15918,19 +16034,22 @@ function appendProjectedNode(node, currentParent, currentView) {
|
|
|
15918
16034
|
if (node.type !== 0 /* Container */) {
|
|
15919
16035
|
appendChild(currentParent, (/** @type {?} */ (node)).native, currentView);
|
|
15920
16036
|
}
|
|
15921
|
-
else
|
|
16037
|
+
else {
|
|
15922
16038
|
// The node we are adding is a Container and we are adding it to Element which
|
|
15923
16039
|
// is not a component (no more re-projection).
|
|
15924
16040
|
// Alternatively a container is projected at the root of a component's template
|
|
15925
16041
|
// and can't be re-projected (as not content of any component).
|
|
15926
16042
|
// Assignee the final projection location in those cases.
|
|
15927
16043
|
const /** @type {?} */ lContainer = (/** @type {?} */ (node)).data;
|
|
15928
|
-
lContainer.renderParent =
|
|
16044
|
+
lContainer.renderParent = currentParent;
|
|
15929
16045
|
const /** @type {?} */ views = lContainer.views;
|
|
15930
16046
|
for (let /** @type {?} */ i = 0; i < views.length; i++) {
|
|
15931
16047
|
addRemoveViewFromContainer(/** @type {?} */ (node), views[i], true, null);
|
|
15932
16048
|
}
|
|
15933
16049
|
}
|
|
16050
|
+
if (node.dynamicLContainerNode) {
|
|
16051
|
+
node.dynamicLContainerNode.data.renderParent = currentParent;
|
|
16052
|
+
}
|
|
15934
16053
|
}
|
|
15935
16054
|
|
|
15936
16055
|
/**
|
|
@@ -16098,77 +16217,6 @@ function matchingSelectorIndex(tNode, selectors, textSelectors) {
|
|
|
16098
16217
|
return 0;
|
|
16099
16218
|
}
|
|
16100
16219
|
|
|
16101
|
-
/**
|
|
16102
|
-
* @fileoverview added by tsickle
|
|
16103
|
-
* @suppress {checkTypes} checked by tsc
|
|
16104
|
-
*/
|
|
16105
|
-
/**
|
|
16106
|
-
* @license
|
|
16107
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
16108
|
-
*
|
|
16109
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
16110
|
-
* found in the LICENSE file at https://angular.io/license
|
|
16111
|
-
*/
|
|
16112
|
-
/**
|
|
16113
|
-
* Must use this method for CD (instead of === ) since NaN !== NaN
|
|
16114
|
-
* @param {?} a
|
|
16115
|
-
* @param {?} b
|
|
16116
|
-
* @return {?}
|
|
16117
|
-
*/
|
|
16118
|
-
function isDifferent(a, b) {
|
|
16119
|
-
// NaN is the only value that is not equal to itself so the first
|
|
16120
|
-
// test checks if both a and b are not NaN
|
|
16121
|
-
return !(a !== a && b !== b) && a !== b;
|
|
16122
|
-
}
|
|
16123
|
-
/**
|
|
16124
|
-
* @param {?} value
|
|
16125
|
-
* @return {?}
|
|
16126
|
-
*/
|
|
16127
|
-
function stringify$1(value) {
|
|
16128
|
-
if (typeof value == 'function')
|
|
16129
|
-
return value.name || value;
|
|
16130
|
-
if (typeof value == 'string')
|
|
16131
|
-
return value;
|
|
16132
|
-
if (value == null)
|
|
16133
|
-
return '';
|
|
16134
|
-
return '' + value;
|
|
16135
|
-
}
|
|
16136
|
-
/**
|
|
16137
|
-
* Function that throws a "not implemented" error so it's clear certain
|
|
16138
|
-
* behaviors/methods aren't yet ready.
|
|
16139
|
-
*
|
|
16140
|
-
* @return {?} Not implemented error
|
|
16141
|
-
*/
|
|
16142
|
-
function notImplemented() {
|
|
16143
|
-
return new Error('NotImplemented');
|
|
16144
|
-
}
|
|
16145
|
-
/**
|
|
16146
|
-
* Flattens an array in non-recursive way. Input arrays are not modified.
|
|
16147
|
-
* @param {?} list
|
|
16148
|
-
* @return {?}
|
|
16149
|
-
*/
|
|
16150
|
-
function flatten$1(list) {
|
|
16151
|
-
const /** @type {?} */ result = [];
|
|
16152
|
-
let /** @type {?} */ i = 0;
|
|
16153
|
-
while (i < list.length) {
|
|
16154
|
-
const /** @type {?} */ item = list[i];
|
|
16155
|
-
if (Array.isArray(item)) {
|
|
16156
|
-
if (item.length > 0) {
|
|
16157
|
-
list = item.concat(list.slice(i + 1));
|
|
16158
|
-
i = 0;
|
|
16159
|
-
}
|
|
16160
|
-
else {
|
|
16161
|
-
i++;
|
|
16162
|
-
}
|
|
16163
|
-
}
|
|
16164
|
-
else {
|
|
16165
|
-
result.push(item);
|
|
16166
|
-
i++;
|
|
16167
|
-
}
|
|
16168
|
-
}
|
|
16169
|
-
return result;
|
|
16170
|
-
}
|
|
16171
|
-
|
|
16172
16220
|
/**
|
|
16173
16221
|
* @fileoverview added by tsickle
|
|
16174
16222
|
* @suppress {checkTypes} checked by tsc
|
|
@@ -16337,10 +16385,6 @@ let data;
|
|
|
16337
16385
|
* unknown at compile-time and thus space cannot be reserved in data[].
|
|
16338
16386
|
*/
|
|
16339
16387
|
let directives;
|
|
16340
|
-
/**
|
|
16341
|
-
* Points to the next binding index to read or write to.
|
|
16342
|
-
*/
|
|
16343
|
-
let bindingIndex;
|
|
16344
16388
|
/**
|
|
16345
16389
|
* When a view is destroyed, listeners need to be released and outputs need to be
|
|
16346
16390
|
* unsubscribed. This cleanup array stores both listener data (in chunks of 4)
|
|
@@ -16385,12 +16429,14 @@ function enterView(newView, host) {
|
|
|
16385
16429
|
const /** @type {?} */ oldView = currentView;
|
|
16386
16430
|
data = newView && newView.data;
|
|
16387
16431
|
directives = newView && newView.directives;
|
|
16388
|
-
bindingIndex = newView && newView.bindingStartIndex || 0;
|
|
16389
16432
|
tData = newView && newView.tView.data;
|
|
16390
16433
|
creationMode = newView && (newView.flags & 1 /* CreationMode */) === 1 /* CreationMode */;
|
|
16391
16434
|
firstTemplatePass = newView && newView.tView.firstTemplatePass;
|
|
16392
16435
|
cleanup = newView && newView.cleanup;
|
|
16393
16436
|
renderer = newView && newView.renderer;
|
|
16437
|
+
if (newView && newView.bindingIndex < 0) {
|
|
16438
|
+
newView.bindingIndex = newView.bindingStartIndex;
|
|
16439
|
+
}
|
|
16394
16440
|
if (host != null) {
|
|
16395
16441
|
previousOrParentNode = host;
|
|
16396
16442
|
isParent = true;
|
|
@@ -16411,7 +16457,8 @@ function leaveView(newView) {
|
|
|
16411
16457
|
}
|
|
16412
16458
|
// Views should be clean and in update mode after being checked, so these bits are cleared
|
|
16413
16459
|
currentView.flags &= ~(1 /* CreationMode */ | 4 /* Dirty */);
|
|
16414
|
-
currentView.lifecycleStage = 1 /*
|
|
16460
|
+
currentView.lifecycleStage = 1 /* Init */;
|
|
16461
|
+
currentView.bindingIndex = -1;
|
|
16415
16462
|
enterView(newView, null);
|
|
16416
16463
|
}
|
|
16417
16464
|
/**
|
|
@@ -16489,12 +16536,14 @@ function createLView(viewId, renderer, tView, template, context, flags) {
|
|
|
16489
16536
|
child: null,
|
|
16490
16537
|
tail: null,
|
|
16491
16538
|
next: null,
|
|
16492
|
-
bindingStartIndex:
|
|
16539
|
+
bindingStartIndex: -1,
|
|
16540
|
+
bindingIndex: -1,
|
|
16493
16541
|
template: template,
|
|
16494
16542
|
context: context,
|
|
16495
16543
|
dynamicViewCount: 0,
|
|
16496
|
-
lifecycleStage: 1 /*
|
|
16544
|
+
lifecycleStage: 1 /* Init */,
|
|
16497
16545
|
queries: null,
|
|
16546
|
+
injector: currentView && currentView.injector,
|
|
16498
16547
|
};
|
|
16499
16548
|
return newView;
|
|
16500
16549
|
}
|
|
@@ -16609,27 +16658,26 @@ function resetApplicationState() {
|
|
|
16609
16658
|
* @param {?} template
|
|
16610
16659
|
* @param {?} context
|
|
16611
16660
|
* @param {?} renderer
|
|
16661
|
+
* @param {?=} directives
|
|
16662
|
+
* @param {?=} pipes
|
|
16612
16663
|
* @return {?}
|
|
16613
16664
|
*/
|
|
16614
|
-
function renderEmbeddedTemplate(viewNode, template, context, renderer) {
|
|
16665
|
+
function renderEmbeddedTemplate(viewNode, template, context, renderer, directives, pipes) {
|
|
16615
16666
|
const /** @type {?} */ _isParent = isParent;
|
|
16616
16667
|
const /** @type {?} */ _previousOrParentNode = previousOrParentNode;
|
|
16617
16668
|
let /** @type {?} */ oldView;
|
|
16618
16669
|
try {
|
|
16619
16670
|
isParent = true;
|
|
16620
16671
|
previousOrParentNode = /** @type {?} */ ((null));
|
|
16621
|
-
let /** @type {?} */
|
|
16672
|
+
let /** @type {?} */ rf = 2;
|
|
16622
16673
|
if (viewNode == null) {
|
|
16623
|
-
|
|
16624
|
-
const /** @type {?} */ directives = currentView && currentView.tView.directiveRegistry;
|
|
16625
|
-
const /** @type {?} */ pipes = currentView && currentView.tView.pipeRegistry;
|
|
16626
|
-
const /** @type {?} */ tView = getOrCreateTView(template, directives, pipes);
|
|
16674
|
+
const /** @type {?} */ tView = getOrCreateTView(template, directives || null, pipes || null);
|
|
16627
16675
|
const /** @type {?} */ lView = createLView(-1, renderer, tView, template, context, 2 /* CheckAlways */);
|
|
16628
16676
|
viewNode = createLNode(null, 2 /* View */, null, lView);
|
|
16629
|
-
|
|
16677
|
+
rf = 1 /* Create */;
|
|
16630
16678
|
}
|
|
16631
16679
|
oldView = enterView(viewNode.data, viewNode);
|
|
16632
|
-
template(
|
|
16680
|
+
template(rf, context);
|
|
16633
16681
|
refreshDirectives();
|
|
16634
16682
|
refreshDynamicChildren();
|
|
16635
16683
|
}
|
|
@@ -16655,7 +16703,8 @@ function renderComponentOrTemplate(node, hostView, componentOrContext, template)
|
|
|
16655
16703
|
rendererFactory.begin();
|
|
16656
16704
|
}
|
|
16657
16705
|
if (template) {
|
|
16658
|
-
template(/** @type {?} */ ((componentOrContext))
|
|
16706
|
+
template(getRenderFlags(hostView), /** @type {?} */ ((componentOrContext)));
|
|
16707
|
+
refreshDynamicChildren();
|
|
16659
16708
|
refreshDirectives();
|
|
16660
16709
|
}
|
|
16661
16710
|
else {
|
|
@@ -16673,6 +16722,21 @@ function renderComponentOrTemplate(node, hostView, componentOrContext, template)
|
|
|
16673
16722
|
leaveView(oldView);
|
|
16674
16723
|
}
|
|
16675
16724
|
}
|
|
16725
|
+
/**
|
|
16726
|
+
* This function returns the default configuration of rendering flags depending on when the
|
|
16727
|
+
* template is in creation mode or update mode. By default, the update block is run with the
|
|
16728
|
+
* creation block when the view is in creation mode. Otherwise, the update block is run
|
|
16729
|
+
* alone.
|
|
16730
|
+
*
|
|
16731
|
+
* Dynamically created views do NOT use this configuration (update block and create block are
|
|
16732
|
+
* always run separately).
|
|
16733
|
+
* @param {?} view
|
|
16734
|
+
* @return {?}
|
|
16735
|
+
*/
|
|
16736
|
+
function getRenderFlags(view) {
|
|
16737
|
+
return view.flags & 1 /* CreationMode */ ? 1 /* Create */ | 2 /* Update */ :
|
|
16738
|
+
2 /* Update */;
|
|
16739
|
+
}
|
|
16676
16740
|
/**
|
|
16677
16741
|
* Create DOM element. The instruction must later be followed by `elementEnd()` call.
|
|
16678
16742
|
*
|
|
@@ -16688,7 +16752,7 @@ function renderComponentOrTemplate(node, hostView, componentOrContext, template)
|
|
|
16688
16752
|
*/
|
|
16689
16753
|
function elementStart(index, name, attrs, localRefs) {
|
|
16690
16754
|
ngDevMode &&
|
|
16691
|
-
|
|
16755
|
+
assertEqual(currentView.bindingStartIndex, -1, 'elements should be created before any bindings');
|
|
16692
16756
|
const /** @type {?} */ native = renderer.createElement(name);
|
|
16693
16757
|
const /** @type {?} */ node = createLNode(index, 3 /* Element */, /** @type {?} */ ((native)), null);
|
|
16694
16758
|
if (attrs)
|
|
@@ -16727,6 +16791,7 @@ function createDirectivesAndLocals(index, name, attrs, localRefs, containerData)
|
|
|
16727
16791
|
* @return {?}
|
|
16728
16792
|
*/
|
|
16729
16793
|
function cacheMatchingDirectivesForNode(tNode, tView, localRefs) {
|
|
16794
|
+
// Please make sure to have explicit type for `exportsMap`. Inferred type triggers bug in tsickle.
|
|
16730
16795
|
const /** @type {?} */ exportsMap = localRefs ? { '': -1 } : null;
|
|
16731
16796
|
const /** @type {?} */ matches = tView.currentMatches = findDirectiveMatches(tNode);
|
|
16732
16797
|
if (matches) {
|
|
@@ -16753,9 +16818,9 @@ function findDirectiveMatches(tNode) {
|
|
|
16753
16818
|
const /** @type {?} */ def = registry[i];
|
|
16754
16819
|
if (isNodeMatchingSelectorList(tNode, /** @type {?} */ ((def.selectors)))) {
|
|
16755
16820
|
if ((/** @type {?} */ (def)).template) {
|
|
16756
|
-
if (tNode.flags &
|
|
16821
|
+
if (tNode.flags & 4096 /* isComponent */)
|
|
16757
16822
|
throwMultipleComponentError(tNode);
|
|
16758
|
-
tNode.flags =
|
|
16823
|
+
tNode.flags = 4096 /* isComponent */;
|
|
16759
16824
|
}
|
|
16760
16825
|
if (def.diPublic)
|
|
16761
16826
|
def.diPublic(def);
|
|
@@ -16822,7 +16887,7 @@ function initChangeDetectorIfExisting(injector, instance, view) {
|
|
|
16822
16887
|
* @return {?}
|
|
16823
16888
|
*/
|
|
16824
16889
|
function isComponent(tNode) {
|
|
16825
|
-
return (tNode.flags &
|
|
16890
|
+
return (tNode.flags & 4096 /* isComponent */) === 4096 /* isComponent */;
|
|
16826
16891
|
}
|
|
16827
16892
|
/**
|
|
16828
16893
|
* This function instantiates the given directives.
|
|
@@ -16830,12 +16895,13 @@ function isComponent(tNode) {
|
|
|
16830
16895
|
*/
|
|
16831
16896
|
function instantiateDirectivesDirectly() {
|
|
16832
16897
|
const /** @type {?} */ tNode = /** @type {?} */ ((previousOrParentNode.tNode));
|
|
16833
|
-
const /** @type {?} */
|
|
16834
|
-
if (
|
|
16835
|
-
const /** @type {?} */
|
|
16898
|
+
const /** @type {?} */ count = tNode.flags & 4095;
|
|
16899
|
+
if (count > 0) {
|
|
16900
|
+
const /** @type {?} */ start = tNode.flags >> 13;
|
|
16901
|
+
const /** @type {?} */ end = start + count;
|
|
16836
16902
|
const /** @type {?} */ tDirectives = /** @type {?} */ ((currentView.tView.directives));
|
|
16837
|
-
for (let /** @type {?} */ i =
|
|
16838
|
-
const /** @type {?} */ def =
|
|
16903
|
+
for (let /** @type {?} */ i = start; i < end; i++) {
|
|
16904
|
+
const /** @type {?} */ def = tDirectives[i];
|
|
16839
16905
|
directiveCreate(i, def.factory(), def);
|
|
16840
16906
|
}
|
|
16841
16907
|
}
|
|
@@ -16996,7 +17062,7 @@ function hostElement(tag, rNode, def) {
|
|
|
16996
17062
|
const /** @type {?} */ node = createLNode(0, 3 /* Element */, rNode, createLView(-1, renderer, getOrCreateTView(def.template, def.directiveDefs, def.pipeDefs), null, null, def.onPush ? 4 /* Dirty */ : 2 /* CheckAlways */));
|
|
16997
17063
|
if (firstTemplatePass) {
|
|
16998
17064
|
node.tNode = createTNode(/** @type {?} */ (tag), null, null);
|
|
16999
|
-
node.tNode.flags =
|
|
17065
|
+
node.tNode.flags = 4096 /* isComponent */;
|
|
17000
17066
|
if (def.diPublic)
|
|
17001
17067
|
def.diPublic(def);
|
|
17002
17068
|
currentView.tView.directives = [def];
|
|
@@ -17181,13 +17247,14 @@ function setInputsForProperty(inputs, value) {
|
|
|
17181
17247
|
* @return {?} PropertyAliases|null aggregate of all properties if any, `null` otherwise
|
|
17182
17248
|
*/
|
|
17183
17249
|
function generatePropertyAliases(tNodeFlags, direction) {
|
|
17184
|
-
const /** @type {?} */
|
|
17250
|
+
const /** @type {?} */ count = tNodeFlags & 4095;
|
|
17185
17251
|
let /** @type {?} */ propStore = null;
|
|
17186
|
-
if (
|
|
17252
|
+
if (count > 0) {
|
|
17187
17253
|
const /** @type {?} */ start = tNodeFlags >> 13;
|
|
17254
|
+
const /** @type {?} */ end = start + count;
|
|
17188
17255
|
const /** @type {?} */ isInput = direction === 0;
|
|
17189
17256
|
const /** @type {?} */ defs = /** @type {?} */ ((currentView.tView.directives));
|
|
17190
|
-
for (let /** @type {?} */ i = start
|
|
17257
|
+
for (let /** @type {?} */ i = start; i < end; i++) {
|
|
17191
17258
|
const /** @type {?} */ directiveDef = /** @type {?} */ (defs[i]);
|
|
17192
17259
|
const /** @type {?} */ propertyAliasMap = isInput ? directiveDef.inputs : directiveDef.outputs;
|
|
17193
17260
|
for (let /** @type {?} */ publicName in propertyAliasMap) {
|
|
@@ -17322,11 +17389,8 @@ function elementStyle(index, value) {
|
|
|
17322
17389
|
*/
|
|
17323
17390
|
function text(index, value) {
|
|
17324
17391
|
ngDevMode &&
|
|
17325
|
-
|
|
17326
|
-
const /** @type {?} */ textNode = value != null ?
|
|
17327
|
-
(isProceduralRenderer(renderer) ? renderer.createText(stringify$1(value)) :
|
|
17328
|
-
renderer.createTextNode(stringify$1(value))) :
|
|
17329
|
-
null;
|
|
17392
|
+
assertEqual(currentView.bindingStartIndex, -1, 'text nodes should be created before bindings');
|
|
17393
|
+
const /** @type {?} */ textNode = value != null ? createTextNode(value, renderer) : null;
|
|
17330
17394
|
const /** @type {?} */ node = createLNode(index, 3 /* Element */, textNode);
|
|
17331
17395
|
// Text nodes are self closing.
|
|
17332
17396
|
isParent = false;
|
|
@@ -17353,9 +17417,7 @@ function textBinding(index, value) {
|
|
|
17353
17417
|
}
|
|
17354
17418
|
else {
|
|
17355
17419
|
// Node was created but DOM node creation was delayed. Create and append now.
|
|
17356
|
-
existingNode.native =
|
|
17357
|
-
renderer.createText(stringify$1(value)) :
|
|
17358
|
-
renderer.createTextNode(stringify$1(value));
|
|
17420
|
+
existingNode.native = createTextNode(value, renderer);
|
|
17359
17421
|
insertChild(existingNode, currentView);
|
|
17360
17422
|
}
|
|
17361
17423
|
}
|
|
@@ -17374,7 +17436,7 @@ function textBinding(index, value) {
|
|
|
17374
17436
|
function directiveCreate(index, directive, directiveDef) {
|
|
17375
17437
|
const /** @type {?} */ instance = baseDirectiveCreate(index, directive, directiveDef);
|
|
17376
17438
|
ngDevMode && assertNotNull(previousOrParentNode.tNode, 'previousOrParentNode.tNode');
|
|
17377
|
-
const /** @type {?} */ tNode =
|
|
17439
|
+
const /** @type {?} */ tNode = previousOrParentNode.tNode;
|
|
17378
17440
|
const /** @type {?} */ isComponent = (/** @type {?} */ (directiveDef)).template;
|
|
17379
17441
|
if (isComponent) {
|
|
17380
17442
|
addComponentLogic(index, directive, /** @type {?} */ (directiveDef));
|
|
@@ -17422,7 +17484,7 @@ function addComponentLogic(index, instance, def) {
|
|
|
17422
17484
|
*/
|
|
17423
17485
|
function baseDirectiveCreate(index, directive, directiveDef) {
|
|
17424
17486
|
ngDevMode &&
|
|
17425
|
-
|
|
17487
|
+
assertEqual(currentView.bindingStartIndex, -1, 'directives should be created before any bindings');
|
|
17426
17488
|
ngDevMode && assertPreviousIsParent();
|
|
17427
17489
|
Object.defineProperty(directive, NG_HOST_SYMBOL, { enumerable: false, value: previousOrParentNode });
|
|
17428
17490
|
if (directives == null)
|
|
@@ -17430,10 +17492,19 @@ function baseDirectiveCreate(index, directive, directiveDef) {
|
|
|
17430
17492
|
ngDevMode && assertDataNext(index, directives);
|
|
17431
17493
|
directives[index] = directive;
|
|
17432
17494
|
if (firstTemplatePass) {
|
|
17433
|
-
const /** @type {?} */ flags = /** @type {?} */ ((previousOrParentNode.tNode)).flags;
|
|
17434
|
-
((
|
|
17435
|
-
|
|
17436
|
-
|
|
17495
|
+
const /** @type {?} */ flags = /** @type {?} */ ((previousOrParentNode.tNode)).flags;
|
|
17496
|
+
if ((flags & 4095 /* DirectiveCountMask */) === 0) {
|
|
17497
|
+
/** @type {?} */ ((
|
|
17498
|
+
// When the first directive is created:
|
|
17499
|
+
// - save the index,
|
|
17500
|
+
// - set the number of directives to 1
|
|
17501
|
+
previousOrParentNode.tNode)).flags = index << 13 /* DirectiveStartingIndexShift */ | flags & 4096 /* isComponent */ | 1;
|
|
17502
|
+
}
|
|
17503
|
+
else {
|
|
17504
|
+
// Only need to bump the size when subsequent directives are created
|
|
17505
|
+
ngDevMode && assertNotEqual(flags & 4095 /* DirectiveCountMask */, 4095 /* DirectiveCountMask */, 'Reached the max number of directives'); /** @type {?} */
|
|
17506
|
+
((previousOrParentNode.tNode)).flags++;
|
|
17507
|
+
}
|
|
17437
17508
|
}
|
|
17438
17509
|
else {
|
|
17439
17510
|
const /** @type {?} */ diPublic = /** @type {?} */ ((directiveDef)).diPublic;
|
|
@@ -17531,8 +17602,7 @@ function createLContainer(parentLNode, currentView, template) {
|
|
|
17531
17602
|
* @return {?}
|
|
17532
17603
|
*/
|
|
17533
17604
|
function container(index, template, tagName, attrs, localRefs) {
|
|
17534
|
-
ngDevMode &&
|
|
17535
|
-
assertNull(currentView.bindingStartIndex, 'container nodes should be created before any bindings');
|
|
17605
|
+
ngDevMode && assertEqual(currentView.bindingStartIndex, -1, 'container nodes should be created before any bindings');
|
|
17536
17606
|
const /** @type {?} */ currentParent = isParent ? previousOrParentNode : /** @type {?} */ ((previousOrParentNode.parent));
|
|
17537
17607
|
const /** @type {?} */ lContainer = createLContainer(currentParent, currentView, template);
|
|
17538
17608
|
const /** @type {?} */ node = createLNode(index, 0 /* Container */, undefined, lContainer);
|
|
@@ -17603,6 +17673,7 @@ function refreshDynamicChildren() {
|
|
|
17603
17673
|
const /** @type {?} */ container = /** @type {?} */ (current);
|
|
17604
17674
|
for (let /** @type {?} */ i = 0; i < container.views.length; i++) {
|
|
17605
17675
|
const /** @type {?} */ view = container.views[i];
|
|
17676
|
+
// The directives and pipes are not needed here as an existing view is only being refreshed.
|
|
17606
17677
|
renderEmbeddedTemplate(view, /** @type {?} */ ((view.data.template)), /** @type {?} */ ((view.data.context)), renderer);
|
|
17607
17678
|
}
|
|
17608
17679
|
}
|
|
@@ -17647,12 +17718,12 @@ function embeddedViewStart(viewBlockId) {
|
|
|
17647
17718
|
const /** @type {?} */ container = /** @type {?} */ ((isParent ? previousOrParentNode : /** @type {?} */ ((previousOrParentNode.parent))));
|
|
17648
17719
|
ngDevMode && assertNodeType(container, 0 /* Container */);
|
|
17649
17720
|
const /** @type {?} */ lContainer = container.data;
|
|
17650
|
-
|
|
17651
|
-
if (
|
|
17652
|
-
previousOrParentNode =
|
|
17721
|
+
let /** @type {?} */ viewNode = scanForView(container, lContainer.nextIndex, viewBlockId);
|
|
17722
|
+
if (viewNode) {
|
|
17723
|
+
previousOrParentNode = viewNode;
|
|
17653
17724
|
ngDevMode && assertNodeType(previousOrParentNode, 2 /* View */);
|
|
17654
17725
|
isParent = true;
|
|
17655
|
-
enterView(
|
|
17726
|
+
enterView(viewNode.data, viewNode);
|
|
17656
17727
|
}
|
|
17657
17728
|
else {
|
|
17658
17729
|
// When we create a new LView, we always reset the state of the instructions.
|
|
@@ -17660,9 +17731,9 @@ function embeddedViewStart(viewBlockId) {
|
|
|
17660
17731
|
if (lContainer.queries) {
|
|
17661
17732
|
newView.queries = lContainer.queries.enterView(lContainer.nextIndex);
|
|
17662
17733
|
}
|
|
17663
|
-
enterView(newView, createLNode(null, 2 /* View */, null, newView));
|
|
17734
|
+
enterView(newView, viewNode = createLNode(null, 2 /* View */, null, newView));
|
|
17664
17735
|
}
|
|
17665
|
-
return
|
|
17736
|
+
return getRenderFlags(viewNode.data);
|
|
17666
17737
|
}
|
|
17667
17738
|
/**
|
|
17668
17739
|
* Initialize the TView (e.g. static data) for the active embedded view.
|
|
@@ -17699,6 +17770,9 @@ function embeddedViewEnd() {
|
|
|
17699
17770
|
ngDevMode && assertNodeType(containerNode, 0 /* Container */);
|
|
17700
17771
|
const /** @type {?} */ lContainer = containerNode.data;
|
|
17701
17772
|
if (creationMode) {
|
|
17773
|
+
// When projected nodes are going to be inserted, the renderParent of the dynamic container
|
|
17774
|
+
// used by the ViewContainerRef must be set.
|
|
17775
|
+
setRenderParentInProjectedNodes(lContainer.renderParent, viewNode);
|
|
17702
17776
|
// it is a new view, insert it into collection of views for a given container
|
|
17703
17777
|
insertView(containerNode, viewNode, lContainer.nextIndex);
|
|
17704
17778
|
}
|
|
@@ -17708,6 +17782,31 @@ function embeddedViewEnd() {
|
|
|
17708
17782
|
ngDevMode && assertEqual(isParent, false, 'isParent');
|
|
17709
17783
|
ngDevMode && assertNodeType(previousOrParentNode, 2 /* View */);
|
|
17710
17784
|
}
|
|
17785
|
+
/**
|
|
17786
|
+
* For nodes which are projected inside an embedded view, this function sets the renderParent
|
|
17787
|
+
* of their dynamic LContainerNode.
|
|
17788
|
+
* @param {?} renderParent the renderParent of the LContainer which contains the embedded view.
|
|
17789
|
+
* @param {?} viewNode the embedded view.
|
|
17790
|
+
* @return {?}
|
|
17791
|
+
*/
|
|
17792
|
+
function setRenderParentInProjectedNodes(renderParent, viewNode) {
|
|
17793
|
+
if (renderParent != null) {
|
|
17794
|
+
let /** @type {?} */ node = viewNode.child;
|
|
17795
|
+
while (node) {
|
|
17796
|
+
if (node.type === 1 /* Projection */) {
|
|
17797
|
+
let /** @type {?} */ nodeToProject = (/** @type {?} */ (node)).data.head;
|
|
17798
|
+
const /** @type {?} */ lastNodeToProject = (/** @type {?} */ (node)).data.tail;
|
|
17799
|
+
while (nodeToProject) {
|
|
17800
|
+
if (nodeToProject.dynamicLContainerNode) {
|
|
17801
|
+
nodeToProject.dynamicLContainerNode.data.renderParent = renderParent;
|
|
17802
|
+
}
|
|
17803
|
+
nodeToProject = nodeToProject === lastNodeToProject ? null : nodeToProject.pNextOrParent;
|
|
17804
|
+
}
|
|
17805
|
+
}
|
|
17806
|
+
node = node.next;
|
|
17807
|
+
}
|
|
17808
|
+
}
|
|
17809
|
+
}
|
|
17711
17810
|
/**
|
|
17712
17811
|
* Refreshes components by entering the component view and processing its bindings, queries, etc.
|
|
17713
17812
|
*
|
|
@@ -17841,11 +17940,12 @@ function projection(nodeIndex, localIndex, selectorIndex = 0, attrs) {
|
|
|
17841
17940
|
}
|
|
17842
17941
|
}
|
|
17843
17942
|
if (canInsertNativeNode(currentParent, currentView)) {
|
|
17943
|
+
ngDevMode && assertNodeType(currentParent, 3 /* Element */);
|
|
17844
17944
|
// process each node in the list of projected nodes:
|
|
17845
17945
|
let /** @type {?} */ nodeToProject = node.data.head;
|
|
17846
17946
|
const /** @type {?} */ lastNodeToProject = node.data.tail;
|
|
17847
17947
|
while (nodeToProject) {
|
|
17848
|
-
appendProjectedNode(/** @type {?} */ (nodeToProject), currentParent, currentView);
|
|
17948
|
+
appendProjectedNode(/** @type {?} */ (nodeToProject), /** @type {?} */ (currentParent), currentView);
|
|
17849
17949
|
nodeToProject = nodeToProject === lastNodeToProject ? null : nodeToProject.pNextOrParent;
|
|
17850
17950
|
}
|
|
17851
17951
|
}
|
|
@@ -17915,7 +18015,7 @@ function wrapListenerWithDirtyLogic(view, listenerFn) {
|
|
|
17915
18015
|
* @return {?}
|
|
17916
18016
|
*/
|
|
17917
18017
|
function wrapListenerWithDirtyAndDefault(view, listenerFn) {
|
|
17918
|
-
return function (e) {
|
|
18018
|
+
return function wrapListenerIn_markViewDirty(e) {
|
|
17919
18019
|
markViewDirty(view);
|
|
17920
18020
|
if (listenerFn(e) === false) {
|
|
17921
18021
|
e.preventDefault();
|
|
@@ -18055,7 +18155,7 @@ function detectChangesInternal(hostView, hostNode, def, component) {
|
|
|
18055
18155
|
const /** @type {?} */ oldView = enterView(hostView, hostNode);
|
|
18056
18156
|
const /** @type {?} */ template = def.template;
|
|
18057
18157
|
try {
|
|
18058
|
-
template(
|
|
18158
|
+
template(getRenderFlags(hostView), component);
|
|
18059
18159
|
refreshDirectives();
|
|
18060
18160
|
refreshDynamicChildren();
|
|
18061
18161
|
}
|
|
@@ -18096,12 +18196,9 @@ const NO_CHANGE = /** @type {?} */ ({});
|
|
|
18096
18196
|
* @return {?}
|
|
18097
18197
|
*/
|
|
18098
18198
|
function initBindings() {
|
|
18099
|
-
|
|
18100
|
-
ngDevMode &&
|
|
18101
|
-
|
|
18102
|
-
if (currentView.bindingStartIndex == null) {
|
|
18103
|
-
bindingIndex = currentView.bindingStartIndex = data.length;
|
|
18104
|
-
}
|
|
18199
|
+
ngDevMode && assertEqual(currentView.bindingStartIndex, -1, 'Binding start index should only be set once, when null');
|
|
18200
|
+
ngDevMode && assertEqual(currentView.bindingIndex, -1, 'Binding index should not yet be set ' + currentView.bindingIndex);
|
|
18201
|
+
currentView.bindingIndex = currentView.bindingStartIndex = data.length;
|
|
18105
18202
|
}
|
|
18106
18203
|
/**
|
|
18107
18204
|
* Creates a single value binding.
|
|
@@ -18111,16 +18208,16 @@ function initBindings() {
|
|
|
18111
18208
|
* @return {?}
|
|
18112
18209
|
*/
|
|
18113
18210
|
function bind(value) {
|
|
18114
|
-
if (
|
|
18211
|
+
if (currentView.bindingStartIndex < 0) {
|
|
18115
18212
|
initBindings();
|
|
18116
|
-
return data[bindingIndex++] = value;
|
|
18213
|
+
return data[currentView.bindingIndex++] = value;
|
|
18117
18214
|
}
|
|
18118
|
-
const /** @type {?} */ changed = value !== NO_CHANGE && isDifferent(data[bindingIndex], value);
|
|
18215
|
+
const /** @type {?} */ changed = value !== NO_CHANGE && isDifferent(data[currentView.bindingIndex], value);
|
|
18119
18216
|
if (changed) {
|
|
18120
|
-
throwErrorIfNoChangesMode(creationMode, checkNoChangesMode, data[bindingIndex], value);
|
|
18121
|
-
data[bindingIndex] = value;
|
|
18217
|
+
throwErrorIfNoChangesMode(creationMode, checkNoChangesMode, data[currentView.bindingIndex], value);
|
|
18218
|
+
data[currentView.bindingIndex] = value;
|
|
18122
18219
|
}
|
|
18123
|
-
bindingIndex++;
|
|
18220
|
+
currentView.bindingIndex++;
|
|
18124
18221
|
return changed ? value : NO_CHANGE;
|
|
18125
18222
|
}
|
|
18126
18223
|
/**
|
|
@@ -18363,10 +18460,10 @@ function loadDirective(index) {
|
|
|
18363
18460
|
* @return {?}
|
|
18364
18461
|
*/
|
|
18365
18462
|
function consumeBinding() {
|
|
18366
|
-
ngDevMode && assertDataInRange(bindingIndex);
|
|
18463
|
+
ngDevMode && assertDataInRange(currentView.bindingIndex);
|
|
18367
18464
|
ngDevMode &&
|
|
18368
|
-
assertNotEqual(data[bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.');
|
|
18369
|
-
return data[bindingIndex++];
|
|
18465
|
+
assertNotEqual(data[currentView.bindingIndex], NO_CHANGE, 'Stored value should never be NO_CHANGE.');
|
|
18466
|
+
return data[currentView.bindingIndex++];
|
|
18370
18467
|
}
|
|
18371
18468
|
/**
|
|
18372
18469
|
* Updates binding if changed, then returns whether it was updated.
|
|
@@ -18375,17 +18472,17 @@ function consumeBinding() {
|
|
|
18375
18472
|
*/
|
|
18376
18473
|
function bindingUpdated(value) {
|
|
18377
18474
|
ngDevMode && assertNotEqual(value, NO_CHANGE, 'Incoming value should never be NO_CHANGE.');
|
|
18378
|
-
if (
|
|
18475
|
+
if (currentView.bindingStartIndex < 0) {
|
|
18379
18476
|
initBindings();
|
|
18380
18477
|
}
|
|
18381
|
-
else if (isDifferent(data[bindingIndex], value)) {
|
|
18382
|
-
throwErrorIfNoChangesMode(creationMode, checkNoChangesMode, data[bindingIndex], value);
|
|
18478
|
+
else if (isDifferent(data[currentView.bindingIndex], value)) {
|
|
18479
|
+
throwErrorIfNoChangesMode(creationMode, checkNoChangesMode, data[currentView.bindingIndex], value);
|
|
18383
18480
|
}
|
|
18384
18481
|
else {
|
|
18385
|
-
bindingIndex++;
|
|
18482
|
+
currentView.bindingIndex++;
|
|
18386
18483
|
return false;
|
|
18387
18484
|
}
|
|
18388
|
-
data[bindingIndex++] = value;
|
|
18485
|
+
data[currentView.bindingIndex++] = value;
|
|
18389
18486
|
return true;
|
|
18390
18487
|
}
|
|
18391
18488
|
/**
|
|
@@ -18810,6 +18907,7 @@ function renderComponent(componentType /* Type as workaround for: Microsoft/Type
|
|
|
18810
18907
|
clean: CLEAN_PROMISE,
|
|
18811
18908
|
};
|
|
18812
18909
|
const /** @type {?} */ rootView = createLView(-1, rendererFactory.createRenderer(hostNode, componentDef.rendererType), createTView(null, null), null, rootContext, componentDef.onPush ? 4 /* Dirty */ : 2 /* CheckAlways */);
|
|
18910
|
+
rootView.injector = opts.injector || null;
|
|
18813
18911
|
const /** @type {?} */ oldView = enterView(rootView, /** @type {?} */ ((null)));
|
|
18814
18912
|
let /** @type {?} */ elementNode;
|
|
18815
18913
|
try {
|
|
@@ -18849,6 +18947,18 @@ function renderComponent(componentType /* Type as workaround for: Microsoft/Type
|
|
|
18849
18947
|
* @return {?}
|
|
18850
18948
|
*/
|
|
18851
18949
|
|
|
18950
|
+
/**
|
|
18951
|
+
* Retrieve the root context for any component by walking the parent `LView` until
|
|
18952
|
+
* reaching the root `LView`.
|
|
18953
|
+
*
|
|
18954
|
+
* @param {?} component any component
|
|
18955
|
+
* @return {?}
|
|
18956
|
+
*/
|
|
18957
|
+
function getRootContext(component) {
|
|
18958
|
+
const /** @type {?} */ rootContext = /** @type {?} */ (getRootView(component).context);
|
|
18959
|
+
ngDevMode && assertNotNull(rootContext, 'rootContext');
|
|
18960
|
+
return rootContext;
|
|
18961
|
+
}
|
|
18852
18962
|
/**
|
|
18853
18963
|
* Retrieve the host element of the component.
|
|
18854
18964
|
*
|
|
@@ -18888,6 +18998,9 @@ function renderComponent(componentType /* Type as workaround for: Microsoft/Type
|
|
|
18888
18998
|
* @param {?} component Component to wait upon
|
|
18889
18999
|
* @return {?} Promise which resolves when the component is rendered.
|
|
18890
19000
|
*/
|
|
19001
|
+
function whenRendered(component) {
|
|
19002
|
+
return getRootContext(component).clean;
|
|
19003
|
+
}
|
|
18891
19004
|
|
|
18892
19005
|
/**
|
|
18893
19006
|
* @fileoverview added by tsickle
|
|
@@ -18990,23 +19103,12 @@ function getOrCreateNodeInjectorForNode(node) {
|
|
|
18990
19103
|
cbf5: parentInjector == null ? 0 : parentInjector.cbf5 | parentInjector.bf5,
|
|
18991
19104
|
cbf6: parentInjector == null ? 0 : parentInjector.cbf6 | parentInjector.bf6,
|
|
18992
19105
|
cbf7: parentInjector == null ? 0 : parentInjector.cbf7 | parentInjector.bf7,
|
|
18993
|
-
injector: null,
|
|
18994
19106
|
templateRef: null,
|
|
18995
19107
|
viewContainerRef: null,
|
|
18996
19108
|
elementRef: null,
|
|
18997
19109
|
changeDetectorRef: null
|
|
18998
19110
|
};
|
|
18999
19111
|
}
|
|
19000
|
-
/**
|
|
19001
|
-
* Constructs an injection error with the given text and token.
|
|
19002
|
-
*
|
|
19003
|
-
* @param {?} text The text of the error
|
|
19004
|
-
* @param {?} token The token associated with the error
|
|
19005
|
-
* @return {?} The error that was created
|
|
19006
|
-
*/
|
|
19007
|
-
function createInjectionError(text$$1, token) {
|
|
19008
|
-
return new Error(`ElementInjector: ${text$$1} [${stringify$1(token)}]`);
|
|
19009
|
-
}
|
|
19010
19112
|
/**
|
|
19011
19113
|
* Makes a directive public to the DI system by adding it to an injector's bloom filter.
|
|
19012
19114
|
*
|
|
@@ -19027,34 +19129,13 @@ function diPublic(def) {
|
|
|
19027
19129
|
diPublicInInjector(getOrCreateNodeInjector(), def);
|
|
19028
19130
|
}
|
|
19029
19131
|
/**
|
|
19030
|
-
* Searches for an instance of the given type up the injector tree and returns
|
|
19031
|
-
* that instance if found.
|
|
19032
|
-
*
|
|
19033
|
-
* If not found, it will propagate up to the next parent injector until the token
|
|
19034
|
-
* is found or the top is reached.
|
|
19035
|
-
*
|
|
19036
|
-
* Usage example (in factory function):
|
|
19037
|
-
*
|
|
19038
|
-
* class SomeDirective {
|
|
19039
|
-
* constructor(directive: DirectiveA) {}
|
|
19040
|
-
*
|
|
19041
|
-
* static ngDirectiveDef = defineDirective({
|
|
19042
|
-
* type: SomeDirective,
|
|
19043
|
-
* factory: () => new SomeDirective(directiveInject(DirectiveA))
|
|
19044
|
-
* });
|
|
19045
|
-
* }
|
|
19046
|
-
*
|
|
19047
|
-
* NOTE: use `directiveInject` with `\@Directive`, `\@Component`, and `\@Pipe`. For
|
|
19048
|
-
* all other injection use `inject` which does not walk the DOM render tree.
|
|
19049
|
-
*
|
|
19050
19132
|
* @template T
|
|
19051
|
-
* @param {?} token
|
|
19052
|
-
* @param {?=} flags
|
|
19053
|
-
* @
|
|
19054
|
-
* @return {?} The instance found
|
|
19133
|
+
* @param {?} token
|
|
19134
|
+
* @param {?=} flags
|
|
19135
|
+
* @return {?}
|
|
19055
19136
|
*/
|
|
19056
|
-
function directiveInject(token, flags
|
|
19057
|
-
return getOrCreateInjectable(getOrCreateNodeInjector(), token, flags
|
|
19137
|
+
function directiveInject(token, flags = 0 /* Default */) {
|
|
19138
|
+
return getOrCreateInjectable(getOrCreateNodeInjector(), token, flags);
|
|
19058
19139
|
}
|
|
19059
19140
|
/**
|
|
19060
19141
|
* Creates an ElementRef and stores it on the injector.
|
|
@@ -19169,7 +19250,8 @@ function getOrCreateHostChangeDetector(currentNode) {
|
|
|
19169
19250
|
const /** @type {?} */ existingRef = hostInjector && hostInjector.changeDetectorRef;
|
|
19170
19251
|
return existingRef ?
|
|
19171
19252
|
existingRef :
|
|
19172
|
-
createViewRef(/** @type {?} */ (hostNode.data), /** @type {?} */ ((hostNode.view
|
|
19253
|
+
createViewRef(/** @type {?} */ (hostNode.data), /** @type {?} */ ((hostNode.view
|
|
19254
|
+
.directives))[/** @type {?} */ ((hostNode.tNode)).flags >> 13 /* DirectiveStartingIndexShift */]);
|
|
19173
19255
|
}
|
|
19174
19256
|
/**
|
|
19175
19257
|
* If the node is an embedded view, traverses up the view tree to return the closest
|
|
@@ -19200,22 +19282,21 @@ function getClosestComponentAncestor(node) {
|
|
|
19200
19282
|
* @param {?} di Node injector where the search should start
|
|
19201
19283
|
* @param {?} token The directive type to search for
|
|
19202
19284
|
* @param {?=} flags Injection flags (e.g. CheckParent)
|
|
19203
|
-
* @param {?=} defaultValue
|
|
19204
19285
|
* @return {?} The instance found
|
|
19205
19286
|
*/
|
|
19206
|
-
function getOrCreateInjectable(di, token, flags
|
|
19287
|
+
function getOrCreateInjectable(di, token, flags) {
|
|
19207
19288
|
const /** @type {?} */ bloomHash = bloomHashBit(token);
|
|
19208
19289
|
// If the token has a bloom hash, then it is a directive that is public to the injection system
|
|
19209
19290
|
// (diPublic). If there is no hash, fall back to the module injector.
|
|
19210
19291
|
if (bloomHash === null) {
|
|
19211
|
-
const /** @type {?} */ moduleInjector =
|
|
19212
|
-
|
|
19213
|
-
|
|
19214
|
-
|
|
19215
|
-
|
|
19216
|
-
|
|
19292
|
+
const /** @type {?} */ moduleInjector = getPreviousOrParentNode().view.injector;
|
|
19293
|
+
const /** @type {?} */ formerInjector = setCurrentInjector(moduleInjector);
|
|
19294
|
+
try {
|
|
19295
|
+
return inject(token, flags);
|
|
19296
|
+
}
|
|
19297
|
+
finally {
|
|
19298
|
+
setCurrentInjector(formerInjector);
|
|
19217
19299
|
}
|
|
19218
|
-
moduleInjector.get(token);
|
|
19219
19300
|
}
|
|
19220
19301
|
else {
|
|
19221
19302
|
let /** @type {?} */ injector = di;
|
|
@@ -19231,20 +19312,17 @@ function getOrCreateInjectable(di, token, flags, defaultValue) {
|
|
|
19231
19312
|
// At this point, we have an injector which *may* contain the token, so we step through the
|
|
19232
19313
|
// directives associated with the injector's corresponding node to get the directive instance.
|
|
19233
19314
|
const /** @type {?} */ node = injector.node;
|
|
19234
|
-
// The size of the node's directive's list is stored in certain bits of the node's flags,
|
|
19235
|
-
// so exact it with a mask and shift it back such that the bits reflect the real value.
|
|
19236
19315
|
const /** @type {?} */ flags = /** @type {?} */ ((node.tNode)).flags;
|
|
19237
|
-
const /** @type {?} */
|
|
19238
|
-
if (
|
|
19239
|
-
// The start index of the directives list is also part of the node's flags, but there is
|
|
19240
|
-
// nothing to the "left" of it so it doesn't need a mask.
|
|
19316
|
+
const /** @type {?} */ count = flags & 4095;
|
|
19317
|
+
if (count !== 0) {
|
|
19241
19318
|
const /** @type {?} */ start = flags >> 13;
|
|
19319
|
+
const /** @type {?} */ end = start + count;
|
|
19242
19320
|
const /** @type {?} */ defs = /** @type {?} */ ((node.view.tView.directives));
|
|
19243
|
-
for (let /** @type {?} */ i = start
|
|
19321
|
+
for (let /** @type {?} */ i = start; i < end; i++) {
|
|
19244
19322
|
// Get the definition for the directive at this index and, if it is injectable (diPublic),
|
|
19245
19323
|
// and matches the given token, return the directive instance.
|
|
19246
19324
|
const /** @type {?} */ directiveDef = /** @type {?} */ (defs[i]);
|
|
19247
|
-
if (directiveDef.
|
|
19325
|
+
if (directiveDef.type === token && directiveDef.diPublic) {
|
|
19248
19326
|
return getDirectiveInstance(/** @type {?} */ ((node.view.directives))[i]);
|
|
19249
19327
|
}
|
|
19250
19328
|
}
|
|
@@ -19262,7 +19340,7 @@ function getOrCreateInjectable(di, token, flags, defaultValue) {
|
|
|
19262
19340
|
}
|
|
19263
19341
|
// No directive was found for the given token.
|
|
19264
19342
|
// TODO: implement optional, check-self, and check-parent.
|
|
19265
|
-
throw
|
|
19343
|
+
throw new Error('Implement');
|
|
19266
19344
|
}
|
|
19267
19345
|
/**
|
|
19268
19346
|
* @template T
|
|
@@ -19476,7 +19554,7 @@ class ViewContainerRef$1 {
|
|
|
19476
19554
|
*/
|
|
19477
19555
|
insert(viewRef, index) {
|
|
19478
19556
|
const /** @type {?} */ lViewNode = (/** @type {?} */ (viewRef))._lViewNode;
|
|
19479
|
-
const /** @type {?} */ adjustedIdx = this.
|
|
19557
|
+
const /** @type {?} */ adjustedIdx = this._adjustIndex(index);
|
|
19480
19558
|
insertView(this._lContainerNode, lViewNode, adjustedIdx);
|
|
19481
19559
|
// invalidate cache of next sibling RNode (we do similar operation in the containerRefreshEnd
|
|
19482
19560
|
// instruction)
|
|
@@ -19498,42 +19576,52 @@ class ViewContainerRef$1 {
|
|
|
19498
19576
|
}
|
|
19499
19577
|
/**
|
|
19500
19578
|
* @param {?} viewRef
|
|
19501
|
-
* @param {?}
|
|
19579
|
+
* @param {?} newIndex
|
|
19502
19580
|
* @return {?}
|
|
19503
19581
|
*/
|
|
19504
|
-
move(viewRef,
|
|
19505
|
-
|
|
19582
|
+
move(viewRef, newIndex) {
|
|
19583
|
+
const /** @type {?} */ index = this.indexOf(viewRef);
|
|
19584
|
+
this.detach(index);
|
|
19585
|
+
this.insert(viewRef, this._adjustIndex(newIndex));
|
|
19586
|
+
return viewRef;
|
|
19506
19587
|
}
|
|
19507
19588
|
/**
|
|
19508
19589
|
* @param {?} viewRef
|
|
19509
19590
|
* @return {?}
|
|
19510
19591
|
*/
|
|
19511
|
-
indexOf(viewRef) {
|
|
19592
|
+
indexOf(viewRef) { return this._viewRefs.indexOf(viewRef); }
|
|
19512
19593
|
/**
|
|
19513
19594
|
* @param {?=} index
|
|
19514
19595
|
* @return {?}
|
|
19515
19596
|
*/
|
|
19516
19597
|
remove(index) {
|
|
19517
|
-
|
|
19518
|
-
|
|
19519
|
-
|
|
19598
|
+
this.detach(index);
|
|
19599
|
+
// TODO(ml): proper destroy of the ViewRef, i.e. recursively destroy the LviewNode and its
|
|
19600
|
+
// children, delete DOM nodes and QueryList, trigger hooks (onDestroy), destroy the renderer,
|
|
19601
|
+
// detach projected nodes
|
|
19520
19602
|
}
|
|
19521
19603
|
/**
|
|
19522
19604
|
* @param {?=} index
|
|
19523
19605
|
* @return {?}
|
|
19524
19606
|
*/
|
|
19525
|
-
detach(index) {
|
|
19607
|
+
detach(index) {
|
|
19608
|
+
const /** @type {?} */ adjustedIdx = this._adjustIndex(index, -1);
|
|
19609
|
+
removeView(this._lContainerNode, adjustedIdx);
|
|
19610
|
+
return this._viewRefs.splice(adjustedIdx, 1)[0] || null;
|
|
19611
|
+
}
|
|
19526
19612
|
/**
|
|
19527
19613
|
* @param {?=} index
|
|
19614
|
+
* @param {?=} shift
|
|
19528
19615
|
* @return {?}
|
|
19529
19616
|
*/
|
|
19530
|
-
|
|
19617
|
+
_adjustIndex(index, shift = 0) {
|
|
19531
19618
|
if (index == null) {
|
|
19532
|
-
|
|
19619
|
+
return this._lContainerNode.data.views.length + shift;
|
|
19533
19620
|
}
|
|
19534
|
-
|
|
19621
|
+
if (ngDevMode) {
|
|
19622
|
+
assertGreaterThan(index, -1, 'index must be positive');
|
|
19535
19623
|
// +1 because it's legal to insert at the end.
|
|
19536
|
-
|
|
19624
|
+
assertLessThan(index, this._lContainerNode.data.views.length + 1 + shift, 'index');
|
|
19537
19625
|
}
|
|
19538
19626
|
return index;
|
|
19539
19627
|
}
|
|
@@ -19549,7 +19637,8 @@ class ViewContainerRef$1 {
|
|
|
19549
19637
|
function getOrCreateTemplateRef(di) {
|
|
19550
19638
|
ngDevMode && assertNodeType(di.node, 0 /* Container */);
|
|
19551
19639
|
const /** @type {?} */ data = (/** @type {?} */ (di.node)).data;
|
|
19552
|
-
|
|
19640
|
+
const /** @type {?} */ tView = di.node.view.tView;
|
|
19641
|
+
return di.templateRef || (di.templateRef = new TemplateRef$1(getOrCreateElementRef(di), /** @type {?} */ ((data.template)), getRenderer(), tView.directiveRegistry, tView.pipeRegistry));
|
|
19553
19642
|
}
|
|
19554
19643
|
/**
|
|
19555
19644
|
* @template T
|
|
@@ -19559,9 +19648,13 @@ class TemplateRef$1 {
|
|
|
19559
19648
|
* @param {?} elementRef
|
|
19560
19649
|
* @param {?} template
|
|
19561
19650
|
* @param {?} _renderer
|
|
19651
|
+
* @param {?} _directives
|
|
19652
|
+
* @param {?} _pipes
|
|
19562
19653
|
*/
|
|
19563
|
-
constructor(elementRef, template, _renderer) {
|
|
19654
|
+
constructor(elementRef, template, _renderer, _directives, _pipes) {
|
|
19564
19655
|
this._renderer = _renderer;
|
|
19656
|
+
this._directives = _directives;
|
|
19657
|
+
this._pipes = _pipes;
|
|
19565
19658
|
this.elementRef = elementRef;
|
|
19566
19659
|
this._template = template;
|
|
19567
19660
|
}
|
|
@@ -19570,7 +19663,7 @@ class TemplateRef$1 {
|
|
|
19570
19663
|
* @return {?}
|
|
19571
19664
|
*/
|
|
19572
19665
|
createEmbeddedView(context) {
|
|
19573
|
-
const /** @type {?} */ viewNode = renderEmbeddedTemplate(null, this._template, context, this._renderer);
|
|
19666
|
+
const /** @type {?} */ viewNode = renderEmbeddedTemplate(null, this._template, context, this._renderer, this._directives, this._pipes);
|
|
19574
19667
|
return addDestroyable(new EmbeddedViewRef$1(viewNode, this._template, context));
|
|
19575
19668
|
}
|
|
19576
19669
|
}
|
|
@@ -19638,7 +19731,7 @@ function defineComponent(componentDefinition) {
|
|
|
19638
19731
|
});
|
|
19639
19732
|
const /** @type {?} */ feature = componentDefinition.features;
|
|
19640
19733
|
feature && feature.forEach((fn) => fn(def));
|
|
19641
|
-
return def;
|
|
19734
|
+
return /** @type {?} */ (def);
|
|
19642
19735
|
}
|
|
19643
19736
|
/**
|
|
19644
19737
|
* @param {?} type
|
|
@@ -19795,12 +19888,12 @@ const defineDirective = /** @type {?} */ ((defineComponent));
|
|
|
19795
19888
|
* @return {?}
|
|
19796
19889
|
*/
|
|
19797
19890
|
function definePipe(pipeDef) {
|
|
19798
|
-
return /** @type {?} */ ({
|
|
19891
|
+
return /** @type {?} */ ((/** @type {?} */ ({
|
|
19799
19892
|
name: pipeDef.name,
|
|
19800
19893
|
n: pipeDef.factory,
|
|
19801
19894
|
pure: pipeDef.pure !== false,
|
|
19802
19895
|
onDestroy: pipeDef.type.prototype.ngOnDestroy || null
|
|
19803
|
-
});
|
|
19896
|
+
})));
|
|
19804
19897
|
}
|
|
19805
19898
|
|
|
19806
19899
|
/**
|
|
@@ -20151,6 +20244,7 @@ function isPure(index) {
|
|
|
20151
20244
|
* Use of this source code is governed by an MIT-style license that can be
|
|
20152
20245
|
* found in the LICENSE file at https://angular.io/license
|
|
20153
20246
|
*/
|
|
20247
|
+
/** @enum {number} */
|
|
20154
20248
|
/**
|
|
20155
20249
|
* A subclass of `Type` which has a static `ngComponentDef`:`ComponentDef` field making it
|
|
20156
20250
|
* consumable for rendering.
|
|
@@ -20417,13 +20511,15 @@ function getIdxOfMatchingSelector(tNode, selector) {
|
|
|
20417
20511
|
* @param {?} type Type of a directive to look for.
|
|
20418
20512
|
* @return {?} Index of a found directive or null when none found.
|
|
20419
20513
|
*/
|
|
20420
|
-
function
|
|
20514
|
+
function getIdxOfMatchingDirective(node, type) {
|
|
20421
20515
|
const /** @type {?} */ defs = /** @type {?} */ ((node.view.tView.directives));
|
|
20422
20516
|
const /** @type {?} */ flags = /** @type {?} */ ((node.tNode)).flags;
|
|
20423
|
-
const /** @type {?} */
|
|
20424
|
-
|
|
20517
|
+
const /** @type {?} */ count = flags & 4095;
|
|
20518
|
+
const /** @type {?} */ start = flags >> 13;
|
|
20519
|
+
const /** @type {?} */ end = start + count;
|
|
20520
|
+
for (let /** @type {?} */ i = start; i < end; i++) {
|
|
20425
20521
|
const /** @type {?} */ def = /** @type {?} */ (defs[i]);
|
|
20426
|
-
if (def.
|
|
20522
|
+
if (def.type === type && def.diPublic) {
|
|
20427
20523
|
return i;
|
|
20428
20524
|
}
|
|
20429
20525
|
}
|
|
@@ -20441,7 +20537,7 @@ function readFromNodeInjector(nodeInjector, node, read, directiveIdx) {
|
|
|
20441
20537
|
return read.read(nodeInjector, node, directiveIdx);
|
|
20442
20538
|
}
|
|
20443
20539
|
else {
|
|
20444
|
-
const /** @type {?} */ matchingIdx =
|
|
20540
|
+
const /** @type {?} */ matchingIdx = getIdxOfMatchingDirective(node, /** @type {?} */ (read));
|
|
20445
20541
|
if (matchingIdx !== null) {
|
|
20446
20542
|
return /** @type {?} */ ((node.view.directives))[matchingIdx];
|
|
20447
20543
|
}
|
|
@@ -20459,7 +20555,7 @@ function add(query, node) {
|
|
|
20459
20555
|
const /** @type {?} */ predicate = query.predicate;
|
|
20460
20556
|
const /** @type {?} */ type = predicate.type;
|
|
20461
20557
|
if (type) {
|
|
20462
|
-
const /** @type {?} */ directiveIdx =
|
|
20558
|
+
const /** @type {?} */ directiveIdx = getIdxOfMatchingDirective(node, type);
|
|
20463
20559
|
if (directiveIdx !== null) {
|
|
20464
20560
|
// a node is matching a predicate - determine what to read
|
|
20465
20561
|
// if read token and / or strategy is not specified, use type as read token
|
|
@@ -20990,5 +21086,5 @@ function bypassSanitizationTrustString(trustedString, mode) {
|
|
|
20990
21086
|
* Generated bundle index. Do not edit.
|
|
20991
21087
|
*/
|
|
20992
21088
|
|
|
20993
|
-
export { _iterableDiffersFactory as ɵangular_packages_core_core_j, _keyValueDiffersFactory as ɵangular_packages_core_core_k, _localeFactory as ɵangular_packages_core_core_l, _appIdRandomProviderFactory as ɵangular_packages_core_core_f, defaultKeyValueDiffers as ɵangular_packages_core_core_g, DefaultIterableDifferFactory as ɵangular_packages_core_core_h, DefaultKeyValueDifferFactory as ɵangular_packages_core_core_i, ReflectiveInjector_ as ɵangular_packages_core_core_c, ReflectiveDependency as ɵangular_packages_core_core_d, resolveReflectiveProviders as ɵangular_packages_core_core_e, wtfEnabled as ɵangular_packages_core_core_m, createScope as ɵangular_packages_core_core_o, detectWTF as ɵangular_packages_core_core_n, endTimeRange as ɵangular_packages_core_core_r, leave as ɵangular_packages_core_core_p, startTimeRange as ɵangular_packages_core_core_q, getOrCreateChangeDetectorRef as ɵangular_packages_core_core_v, getOrCreateContainerRef as ɵangular_packages_core_core_x, getOrCreateInjectable as ɵangular_packages_core_core_w, getOrCreateNodeInjector as ɵangular_packages_core_core_u, getOrCreateTemplateRef as ɵangular_packages_core_core_y, bindingUpdated as ɵangular_packages_core_core_bb, bindingUpdated2 as ɵangular_packages_core_core_bd, bindingUpdated4 as ɵangular_packages_core_core_be, checkAndUpdateBinding$1 as ɵangular_packages_core_core_bc, consumeBinding as ɵangular_packages_core_core_ba, getCreationMode as ɵangular_packages_core_core_z, makeParamDecorator as ɵangular_packages_core_core_a, makePropDecorator as ɵangular_packages_core_core_b, _def as ɵangular_packages_core_core_s, DebugContext as ɵangular_packages_core_core_t, createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken, APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER, APP_INITIALIZER, ApplicationInitStatus, DebugElement, DebugNode, asNativeElements, getDebugNode, Testability, TestabilityRegistry, setTestabilityGetter, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, MissingTranslationStrategy, ApplicationModule, wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, Type, EventEmitter, ErrorHandler, Sanitizer, SecurityContext, ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren, Component, Directive, HostBinding, HostListener, Input, Output, Pipe, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, ViewEncapsulation, Version, VERSION, forwardRef, resolveForwardRef, Injectable, inject, INJECTOR, Injector, ReflectiveInjector, createInjector, ResolvedReflectiveFactory, ReflectiveKey, InjectionToken, Inject, Optional, Self, SkipSelf, Host,
|
|
21089
|
+
export { _iterableDiffersFactory as ɵangular_packages_core_core_j, _keyValueDiffersFactory as ɵangular_packages_core_core_k, _localeFactory as ɵangular_packages_core_core_l, _appIdRandomProviderFactory as ɵangular_packages_core_core_f, defaultKeyValueDiffers as ɵangular_packages_core_core_g, DefaultIterableDifferFactory as ɵangular_packages_core_core_h, DefaultKeyValueDifferFactory as ɵangular_packages_core_core_i, ReflectiveInjector_ as ɵangular_packages_core_core_c, ReflectiveDependency as ɵangular_packages_core_core_d, resolveReflectiveProviders as ɵangular_packages_core_core_e, wtfEnabled as ɵangular_packages_core_core_m, createScope as ɵangular_packages_core_core_o, detectWTF as ɵangular_packages_core_core_n, endTimeRange as ɵangular_packages_core_core_r, leave as ɵangular_packages_core_core_p, startTimeRange as ɵangular_packages_core_core_q, getOrCreateChangeDetectorRef as ɵangular_packages_core_core_v, getOrCreateContainerRef as ɵangular_packages_core_core_x, getOrCreateInjectable as ɵangular_packages_core_core_w, getOrCreateNodeInjector as ɵangular_packages_core_core_u, getOrCreateTemplateRef as ɵangular_packages_core_core_y, bindingUpdated as ɵangular_packages_core_core_bb, bindingUpdated2 as ɵangular_packages_core_core_bd, bindingUpdated4 as ɵangular_packages_core_core_be, checkAndUpdateBinding$1 as ɵangular_packages_core_core_bc, consumeBinding as ɵangular_packages_core_core_ba, getCreationMode as ɵangular_packages_core_core_z, makeParamDecorator as ɵangular_packages_core_core_a, makePropDecorator as ɵangular_packages_core_core_b, _def as ɵangular_packages_core_core_s, DebugContext as ɵangular_packages_core_core_t, createPlatform, assertPlatform, destroyPlatform, getPlatform, PlatformRef, ApplicationRef, enableProdMode, isDevMode, createPlatformFactory, NgProbeToken, APP_ID, PACKAGE_ROOT_URL, PLATFORM_INITIALIZER, PLATFORM_ID, APP_BOOTSTRAP_LISTENER, APP_INITIALIZER, ApplicationInitStatus, DebugElement, DebugNode, asNativeElements, getDebugNode, Testability, TestabilityRegistry, setTestabilityGetter, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID, MissingTranslationStrategy, ApplicationModule, wtfCreateScope, wtfLeave, wtfStartTimeRange, wtfEndTimeRange, Type, EventEmitter, ErrorHandler, Sanitizer, SecurityContext, ANALYZE_FOR_ENTRY_COMPONENTS, Attribute, ContentChild, ContentChildren, Query, ViewChild, ViewChildren, Component, Directive, HostBinding, HostListener, Input, Output, Pipe, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, NgModule, ViewEncapsulation, Version, VERSION, defineInjectable, defineInjector, forwardRef, resolveForwardRef, Injectable, inject, INJECTOR, Injector, ReflectiveInjector, createInjector, ResolvedReflectiveFactory, ReflectiveKey, InjectionToken, Inject, Optional, Self, SkipSelf, Host, NgZone, RenderComponentType, Renderer, Renderer2, RendererFactory2, RendererStyleFlags2, RootRenderer, COMPILER_OPTIONS, Compiler, CompilerFactory, ModuleWithComponentFactories, ComponentFactory, ComponentRef, ComponentFactoryResolver, ElementRef, NgModuleFactory, NgModuleRef, NgModuleFactoryLoader, getModuleFactory, QueryList, SystemJsNgModuleLoader, SystemJsNgModuleLoaderConfig, TemplateRef, ViewContainerRef, EmbeddedViewRef, ViewRef, ChangeDetectionStrategy, ChangeDetectorRef, DefaultIterableDiffer, IterableDiffers, KeyValueDiffers, SimpleChange, WrappedValue, platformCore, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, defaultIterableDiffers as ɵdefaultIterableDiffers, devModeEqual as ɵdevModeEqual, isListLikeIterable as ɵisListLikeIterable, ChangeDetectorStatus as ɵChangeDetectorStatus, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, Console as ɵConsole, inject as ɵinject, setCurrentInjector as ɵsetCurrentInjector, APP_ROOT as ɵAPP_ROOT, ComponentFactory as ɵComponentFactory, CodegenComponentFactoryResolver as ɵCodegenComponentFactoryResolver, ReflectionCapabilities as ɵReflectionCapabilities, RenderDebugInfo as ɵRenderDebugInfo, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeStyle as ɵ_sanitizeStyle, _sanitizeUrl as ɵ_sanitizeUrl, _global as ɵglobal, looseIdentical as ɵlooseIdentical, stringify as ɵstringify, makeDecorator as ɵmakeDecorator, isObservable as ɵisObservable, isPromise as ɵisPromise, clearOverrides as ɵclearOverrides, overrideComponentView as ɵoverrideComponentView, overrideProvider as ɵoverrideProvider, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, defineComponent as ɵdefineComponent, defineDirective as ɵdefineDirective, definePipe as ɵdefinePipe, detectChanges as ɵdetectChanges, renderComponent as ɵrenderComponent, directiveInject as ɵdirectiveInject, injectTemplateRef as ɵinjectTemplateRef, injectViewContainerRef as ɵinjectViewContainerRef, injectChangeDetectorRef as ɵinjectChangeDetectorRef, injectAttribute as ɵinjectAttribute, PublicFeature as ɵPublicFeature, NgOnChangesFeature as ɵNgOnChangesFeature, markDirty as ɵmarkDirty, NO_CHANGE as ɵNC, container as ɵC, elementStart as ɵE, listener as ɵL, text as ɵT, embeddedViewStart as ɵV, query as ɵQ, loadDirective as ɵd, projection as ɵP, bind as ɵb, interpolation1 as ɵi1, interpolation2 as ɵi2, interpolation3 as ɵi3, interpolation4 as ɵi4, interpolation5 as ɵi5, interpolation6 as ɵi6, interpolation7 as ɵi7, interpolation8 as ɵi8, interpolationV as ɵiV, pipeBind1 as ɵpb1, pipeBind2 as ɵpb2, pipeBind3 as ɵpb3, pipeBind4 as ɵpb4, pipeBindV as ɵpbV, pureFunction0 as ɵf0, pureFunction1 as ɵf1, pureFunction2 as ɵf2, pureFunction3 as ɵf3, pureFunction4 as ɵf4, pureFunction5 as ɵf5, pureFunction6 as ɵf6, pureFunction7 as ɵf7, pureFunction8 as ɵf8, pureFunctionV as ɵfV, containerRefreshStart as ɵcR, containerRefreshEnd as ɵcr, queryRefresh as ɵqR, elementEnd as ɵe, elementProperty as ɵp, projectionDef as ɵpD, elementAttribute as ɵa, elementStyle as ɵs, elementStyleNamed as ɵsn, elementClass as ɵk, elementClassNamed as ɵkn, textBinding as ɵt, embeddedViewEnd as ɵv, store as ɵst, load as ɵld, pipe as ɵPp, whenRendered as ɵwhenRendered, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, sanitizeHtml as ɵsanitizeHtml, sanitizeStyle as ɵsanitizeStyle, sanitizeUrl as ɵsanitizeUrl, sanitizeResourceUrl as ɵsanitizeResourceUrl, registerModuleFactory as ɵregisterModuleFactory, EMPTY_ARRAY$2 as ɵEMPTY_ARRAY, EMPTY_MAP as ɵEMPTY_MAP, anchorDef as ɵand, createComponentFactory as ɵccf, createNgModuleFactory as ɵcmf, createRendererType2 as ɵcrt, directiveDef as ɵdid, elementDef as ɵeld, elementEventFullName as ɵelementEventFullName, getComponentViewDefinitionFactory as ɵgetComponentViewDefinitionFactory, inlineInterpolate as ɵinlineInterpolate, interpolate as ɵinterpolate, moduleDef as ɵmod, moduleProvideDef as ɵmpd, ngContentDef as ɵncd, nodeValue as ɵnov, pipeDef as ɵpid, providerDef as ɵprd, pureArrayDef as ɵpad, pureObjectDef as ɵpod, purePipeDef as ɵppd, queryDef as ɵqud, textDef as ɵted, unwrapValue as ɵunv, viewDef as ɵvid };
|
|
20994
21090
|
//# sourceMappingURL=core.js.map
|