@angular/core 6.0.3 → 6.0.7
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 +61 -237
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core-testing.umd.min.js +11 -4
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +591 -2007
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +4 -32
- package/bundles/core.umd.min.js.map +1 -1
- package/core.metadata.json +1 -1
- package/esm2015/core.externs.js +3 -3
- package/esm2015/src/application_init.js +2 -9
- package/esm2015/src/application_module.js +1 -10
- package/esm2015/src/application_ref.js +15 -30
- package/esm2015/src/change_detection/change_detector_ref.js +7 -5
- package/esm2015/src/change_detection/differs/iterable_differs.js +4 -3
- package/esm2015/src/change_detection/differs/keyvalue_differs.js +4 -3
- package/esm2015/src/change_detection/pipe_transform.js +3 -6
- package/esm2015/src/console.js +0 -11
- package/esm2015/src/di/forward_ref.js +8 -6
- package/esm2015/src/di/injectable.js +1 -4
- package/esm2015/src/di/injection_token.js +6 -8
- package/esm2015/src/di/injector.js +5 -10
- package/esm2015/src/di/metadata.js +1 -16
- package/esm2015/src/di/provider.js +47 -138
- package/esm2015/src/di/reflective_errors.js +14 -7
- package/esm2015/src/di/reflective_injector.js +22 -24
- package/esm2015/src/di/reflective_provider.js +11 -12
- package/esm2015/src/error_handler.js +2 -5
- package/esm2015/src/event_emitter.js +6 -3
- package/esm2015/src/i18n/tokens.js +7 -4
- package/esm2015/src/linker/compiler.js +1 -12
- package/esm2015/src/linker/query_list.js +4 -4
- package/esm2015/src/linker/system_js_ng_module_factory_loader.js +3 -10
- package/esm2015/src/linker/view_ref.js +10 -7
- package/esm2015/src/metadata/di.js +10 -16
- package/esm2015/src/metadata/directives.js +111 -33
- package/esm2015/src/metadata/lifecycle_hooks.js +9 -9
- package/esm2015/src/metadata/ng_module.js +19 -11
- package/esm2015/src/render3/node_manipulation.js +2 -3
- package/esm2015/src/render3/view_ref.js +7 -3
- package/esm2015/src/testability/testability.js +2 -16
- package/esm2015/src/version.js +1 -1
- package/esm2015/src/view/ng_module.js +4 -1
- package/esm2015/src/zone/ng_zone.js +2 -1
- package/esm2015/testing/src/fake_async.js +5 -3
- package/esm2015/testing/src/fake_async_fallback.js +5 -3
- package/esm2015/testing/src/logger.js +0 -7
- package/esm2015/testing/src/metadata_override.js +1 -1
- package/esm2015/testing/src/ng_zone_mock.js +0 -7
- package/esm2015/testing/src/test_bed.js +1 -34
- package/esm2015/testing/src/test_compiler.js +1 -12
- package/esm5/index.js +5 -1
- package/esm5/public_api.js +6 -1
- package/esm5/src/application_init.js +3 -5
- package/esm5/src/application_module.js +2 -2
- package/esm5/src/application_ref.js +35 -211
- package/esm5/src/application_tokens.js +1 -1
- package/esm5/src/change_detection/change_detection.js +1 -1
- package/esm5/src/change_detection/change_detection_util.js +7 -72
- package/esm5/src/change_detection/change_detector_ref.js +1 -1
- package/esm5/src/change_detection/constants.js +1 -24
- package/esm5/src/change_detection/differs/default_iterable_differ.js +26 -209
- package/esm5/src/change_detection/differs/default_keyvalue_differ.js +7 -38
- package/esm5/src/change_detection/differs/iterable_differs.js +5 -42
- package/esm5/src/change_detection/differs/keyvalue_differs.js +6 -51
- package/esm5/src/change_detection/pipe_transform.js +1 -1
- package/esm5/src/change_detection.js +6 -1
- package/esm5/src/codegen_private_exports.js +1 -1
- package/esm5/src/console.js +2 -7
- package/esm5/src/core.js +6 -1
- package/esm5/src/core_private_export.js +1 -1
- package/esm5/src/core_render3_private_export.js +2 -1
- package/esm5/src/debug/debug_node.js +3 -15
- package/esm5/src/di/defs.js +1 -1
- package/esm5/src/di/forward_ref.js +7 -6
- package/esm5/src/di/injectable.js +2 -3
- package/esm5/src/di/injection_token.js +5 -83
- package/esm5/src/di/injector.js +13 -27
- package/esm5/src/di/metadata.js +1 -6
- package/esm5/src/di/provider.js +1 -1
- package/esm5/src/di/r3_injector.js +13 -39
- package/esm5/src/di/reflective_errors.js +14 -7
- package/esm5/src/di/reflective_injector.js +19 -265
- package/esm5/src/di/reflective_key.js +4 -45
- package/esm5/src/di/reflective_provider.js +17 -35
- package/esm5/src/di/scope.js +1 -1
- package/esm5/src/di.js +6 -1
- package/esm5/src/error_handler.js +7 -66
- package/esm5/src/errors.js +1 -1
- package/esm5/src/event_emitter.js +4 -95
- package/esm5/src/i18n/tokens.js +9 -49
- package/esm5/src/linker/compiler.js +9 -69
- package/esm5/src/linker/component_factory.js +2 -18
- package/esm5/src/linker/component_factory_resolver.js +1 -1
- package/esm5/src/linker/element_ref.js +2 -32
- package/esm5/src/linker/ng_module_factory.js +3 -25
- package/esm5/src/linker/ng_module_factory_loader.js +2 -10
- package/esm5/src/linker/query_list.js +12 -112
- package/esm5/src/linker/system_js_ng_module_factory_loader.js +4 -16
- package/esm5/src/linker/template_ref.js +2 -26
- package/esm5/src/linker/view_container_ref.js +2 -38
- package/esm5/src/linker/view_ref.js +10 -115
- package/esm5/src/linker.js +2 -1
- package/esm5/src/metadata/di.js +7 -25
- package/esm5/src/metadata/directives.js +111 -20
- package/esm5/src/metadata/lifecycle_hooks.js +1 -1
- package/esm5/src/metadata/ng_module.js +14 -9
- package/esm5/src/metadata/view.js +1 -20
- package/esm5/src/metadata.js +1 -1
- package/esm5/src/platform_core_providers.js +1 -1
- package/esm5/src/profile/profile.js +1 -1
- package/esm5/src/profile/wtf_impl.js +1 -1
- package/esm5/src/reflection/platform_reflection_capabilities.js +1 -1
- package/esm5/src/reflection/reflection.js +1 -1
- package/esm5/src/reflection/reflection_capabilities.js +3 -8
- package/esm5/src/reflection/reflector.js +2 -10
- package/esm5/src/reflection/types.js +1 -1
- package/esm5/src/render/api.js +7 -71
- package/esm5/src/render.js +2 -1
- package/esm5/src/render3/assert.js +1 -1
- package/esm5/src/render3/component.js +6 -5
- package/esm5/src/render3/definition.js +6 -8
- package/esm5/src/render3/di.js +9 -14
- package/esm5/src/render3/errors.js +1 -1
- package/esm5/src/render3/hooks.js +2 -2
- package/esm5/src/render3/index.js +11 -1
- package/esm5/src/render3/instructions.js +52 -38
- package/esm5/src/render3/interfaces/container.js +1 -1
- 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/projection.js +1 -1
- package/esm5/src/render3/interfaces/query.js +1 -1
- package/esm5/src/render3/interfaces/renderer.js +1 -3
- package/esm5/src/render3/interfaces/view.js +1 -1
- package/esm5/src/render3/ng_dev_mode.js +1 -1
- package/esm5/src/render3/node_assert.js +1 -1
- package/esm5/src/render3/node_manipulation.js +12 -15
- package/esm5/src/render3/node_selector_matcher.js +2 -2
- package/esm5/src/render3/pipe.js +1 -1
- package/esm5/src/render3/pure_function.js +1 -1
- package/esm5/src/render3/query.js +11 -59
- package/esm5/src/render3/util.js +1 -1
- package/esm5/src/render3/view_ref.js +15 -345
- package/esm5/src/sanitization/html_sanitizer.js +8 -12
- package/esm5/src/sanitization/inert_body.js +8 -72
- package/esm5/src/sanitization/sanitization.js +1 -1
- package/esm5/src/sanitization/security.js +2 -37
- package/esm5/src/sanitization/style_sanitizer.js +1 -1
- package/esm5/src/sanitization/url_sanitizer.js +1 -1
- package/esm5/src/testability/testability.js +21 -143
- package/esm5/src/type.js +1 -1
- package/esm5/src/util/decorators.js +1 -1
- package/esm5/src/util/lang.js +1 -1
- package/esm5/src/util/property.js +1 -1
- package/esm5/src/util.js +6 -1
- package/esm5/src/version.js +3 -13
- package/esm5/src/view/element.js +7 -7
- package/esm5/src/view/entrypoint.js +1 -1
- package/esm5/src/view/errors.js +1 -1
- package/esm5/src/view/index.js +1 -1
- package/esm5/src/view/ng_content.js +1 -1
- package/esm5/src/view/ng_module.js +4 -1
- package/esm5/src/view/provider.js +12 -12
- package/esm5/src/view/pure_expression.js +1 -1
- package/esm5/src/view/query.js +6 -6
- package/esm5/src/view/refs.js +8 -14
- package/esm5/src/view/services.js +16 -20
- package/esm5/src/view/text.js +1 -1
- package/esm5/src/view/types.js +19 -41
- package/esm5/src/view/util.js +5 -5
- package/esm5/src/view/view.js +4 -6
- package/esm5/src/view/view_attach.js +5 -5
- package/esm5/src/zone/ng_zone.js +22 -257
- package/esm5/src/zone.js +2 -1
- package/esm5/testing/index.js +5 -1
- package/esm5/testing/public_api.js +6 -1
- package/esm5/testing/src/async.js +1 -1
- package/esm5/testing/src/async_fallback.js +1 -1
- package/esm5/testing/src/async_test_completer.js +2 -8
- package/esm5/testing/src/before_each.js +6 -1
- package/esm5/testing/src/component_fixture.js +9 -75
- package/esm5/testing/src/fake_async.js +12 -3
- package/esm5/testing/src/fake_async_fallback.js +5 -3
- package/esm5/testing/src/lang_utils.js +1 -1
- package/esm5/testing/src/logger.js +1 -1
- package/esm5/testing/src/metadata_override.js +1 -1
- package/esm5/testing/src/ng_zone_mock.js +1 -1
- package/esm5/testing/src/private_export_testing.js +1 -1
- package/esm5/testing/src/render3.js +1 -5
- package/esm5/testing/src/test_bed.js +20 -172
- package/esm5/testing/src/test_compiler.js +5 -43
- package/esm5/testing/src/testing.js +6 -1
- package/esm5/testing/src/testing_internal.js +3 -9
- package/fesm2015/core.js +248 -177
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +9 -13
- package/fesm2015/testing.js.map +1 -1
- package/fesm5/core.js +591 -2007
- package/fesm5/core.js.map +1 -1
- package/fesm5/testing.js +61 -237
- package/fesm5/testing.js.map +1 -1
- package/package.json +1 -1
- package/src/application_ref.d.ts +7 -8
- package/src/change_detection/change_detector_ref.d.ts +6 -4
- package/src/change_detection/differs/iterable_differs.d.ts +3 -2
- package/src/change_detection/differs/keyvalue_differs.d.ts +3 -2
- package/src/change_detection/pipe_transform.d.ts +2 -5
- package/src/di/forward_ref.d.ts +7 -5
- package/src/di/injectable.d.ts +4 -14
- package/src/di/injection_token.d.ts +5 -7
- package/src/di/injector.d.ts +7 -10
- package/src/di/metadata.d.ts +13 -86
- package/src/di/provider.d.ts +55 -150
- package/src/di/reflective_errors.d.ts +13 -6
- package/src/di/reflective_injector.d.ts +21 -23
- package/src/di/reflective_provider.d.ts +7 -8
- package/src/error_handler.d.ts +1 -4
- package/src/event_emitter.d.ts +3 -0
- package/src/i18n/tokens.d.ts +8 -4
- package/src/linker/query_list.d.ts +2 -2
- package/src/linker/view_ref.d.ts +9 -6
- package/src/metadata/di.d.ts +41 -59
- package/src/metadata/directives.d.ts +410 -460
- package/src/metadata/lifecycle_hooks.d.ts +8 -8
- package/src/metadata/ng_module.d.ts +49 -38
- package/src/render3/view_ref.d.ts +6 -2
- package/src/zone/ng_zone.d.ts +1 -0
- package/testing/src/fake_async.d.ts +4 -2
- package/testing/src/fake_async_fallback.d.ts +4 -2
- package/testing/src/metadata_override.d.ts +3 -3
- package/testing.d.ts +0 -5
- package/testing.metadata.json +1 -1
package/fesm2015/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v6.0.
|
|
2
|
+
* @license Angular v6.0.7
|
|
3
3
|
* (c) 2010-2018 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -167,16 +167,14 @@ function defineInjector(options) {
|
|
|
167
167
|
* overrides the above behavior and marks the token as belonging to a particular `\@NgModule`. As
|
|
168
168
|
* mentioned above, `'root'` is the default value for `providedIn`.
|
|
169
169
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* #### Tree-shakeable InjectionToken
|
|
173
|
-
*
|
|
174
|
-
* {\@example core/di/ts/injector_spec.ts region='ShakeableInjectionToken'}
|
|
175
|
-
*
|
|
176
|
-
* #### Plain InjectionToken
|
|
170
|
+
* \@usageNotes
|
|
171
|
+
* ### Basic Example
|
|
177
172
|
*
|
|
178
173
|
* {\@example core/di/ts/injector_spec.ts region='InjectionToken'}
|
|
179
174
|
*
|
|
175
|
+
* ### Tree-shakeable Example
|
|
176
|
+
*
|
|
177
|
+
* {\@example core/di/ts/injector_spec.ts region='ShakeableInjectionToken'}
|
|
180
178
|
*
|
|
181
179
|
* @template T
|
|
182
180
|
*/
|
|
@@ -398,6 +396,7 @@ function makePropDecorator(name, props, parentClass) {
|
|
|
398
396
|
* All components that are referenced in the `useValue` value (either directly
|
|
399
397
|
* or in a nested array or map) will be added to the `entryComponents` property.
|
|
400
398
|
*
|
|
399
|
+
* \@usageNotes
|
|
401
400
|
* ### Example
|
|
402
401
|
* The following example shows how the router can populate the `entryComponents`
|
|
403
402
|
* field of an NgModule based on the router configuration which refers
|
|
@@ -437,17 +436,16 @@ const ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponen
|
|
|
437
436
|
/**
|
|
438
437
|
* Attribute decorator and metadata.
|
|
439
438
|
*
|
|
440
|
-
*
|
|
441
439
|
* \@Annotation
|
|
442
440
|
*/
|
|
443
441
|
const Attribute = makeParamDecorator('Attribute', (attributeName) => ({ attributeName }));
|
|
444
442
|
/**
|
|
445
443
|
* Base class for query metadata.
|
|
446
444
|
*
|
|
447
|
-
*
|
|
448
|
-
*
|
|
449
|
-
*
|
|
450
|
-
*
|
|
445
|
+
* @see `ContentChildren`.
|
|
446
|
+
* @see `ContentChild`.
|
|
447
|
+
* @see `ViewChildren`.
|
|
448
|
+
* @see `ViewChild`.
|
|
451
449
|
* @abstract
|
|
452
450
|
*/
|
|
453
451
|
class Query {
|
|
@@ -455,9 +453,7 @@ class Query {
|
|
|
455
453
|
/**
|
|
456
454
|
* Type of the ContentChildren decorator / constructor function.
|
|
457
455
|
*
|
|
458
|
-
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
456
|
+
* @see `ContentChildren`.
|
|
461
457
|
* @record
|
|
462
458
|
*/
|
|
463
459
|
|
|
@@ -465,7 +461,7 @@ class Query {
|
|
|
465
461
|
* ContentChildren decorator and metadata.
|
|
466
462
|
*
|
|
467
463
|
*
|
|
468
|
-
*
|
|
464
|
+
* \@Annotation
|
|
469
465
|
*/
|
|
470
466
|
const ContentChildren = makePropDecorator('ContentChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: false, descendants: false }, data)), Query);
|
|
471
467
|
/**
|
|
@@ -486,7 +482,7 @@ const ContentChild = makePropDecorator('ContentChild', (selector, data = {}) =>
|
|
|
486
482
|
/**
|
|
487
483
|
* Type of the ViewChildren decorator / constructor function.
|
|
488
484
|
*
|
|
489
|
-
*
|
|
485
|
+
* @see `ViewChildren`.
|
|
490
486
|
*
|
|
491
487
|
*
|
|
492
488
|
* @record
|
|
@@ -495,23 +491,19 @@ const ContentChild = makePropDecorator('ContentChild', (selector, data = {}) =>
|
|
|
495
491
|
/**
|
|
496
492
|
* ViewChildren decorator and metadata.
|
|
497
493
|
*
|
|
498
|
-
*
|
|
499
494
|
* \@Annotation
|
|
500
495
|
*/
|
|
501
496
|
const ViewChildren = makePropDecorator('ViewChildren', (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: true, descendants: true }, data)), Query);
|
|
502
497
|
/**
|
|
503
498
|
* Type of the ViewChild decorator / constructor function.
|
|
504
499
|
*
|
|
505
|
-
*
|
|
506
|
-
*
|
|
507
|
-
*
|
|
500
|
+
* @see `ViewChild`.
|
|
508
501
|
* @record
|
|
509
502
|
*/
|
|
510
503
|
|
|
511
504
|
/**
|
|
512
505
|
* ViewChild decorator and metadata.
|
|
513
506
|
*
|
|
514
|
-
*
|
|
515
507
|
* \@Annotation
|
|
516
508
|
*/
|
|
517
509
|
const ViewChild = makePropDecorator('ViewChild', (selector, data) => (Object.assign({ selector, first: true, isViewQuery: true, descendants: true }, data)), Query);
|
|
@@ -601,21 +593,15 @@ function isDefaultChangeDetectionStrategy(changeDetectionStrategy) {
|
|
|
601
593
|
*/
|
|
602
594
|
/**
|
|
603
595
|
* Type of the Directive decorator / constructor function.
|
|
604
|
-
*
|
|
605
|
-
*
|
|
606
596
|
* @record
|
|
607
597
|
*/
|
|
608
598
|
|
|
609
599
|
/**
|
|
610
|
-
*
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
* \@Annotation
|
|
600
|
+
* Type of the Component metadata.
|
|
614
601
|
*/
|
|
615
602
|
const Directive = makeDecorator('Directive', (dir = {}) => dir);
|
|
616
603
|
/**
|
|
617
|
-
*
|
|
618
|
-
*
|
|
604
|
+
* Component decorator interface
|
|
619
605
|
*
|
|
620
606
|
* @record
|
|
621
607
|
*/
|
|
@@ -623,82 +609,166 @@ const Directive = makeDecorator('Directive', (dir = {}) => dir);
|
|
|
623
609
|
/**
|
|
624
610
|
* Component decorator and metadata.
|
|
625
611
|
*
|
|
612
|
+
* \@usageNotes
|
|
613
|
+
*
|
|
614
|
+
* ### Using animations
|
|
615
|
+
*
|
|
616
|
+
* The following snippet shows an animation trigger in a component's
|
|
617
|
+
* metadata. The trigger is attached to an element in the component's
|
|
618
|
+
* template, using "\@_trigger_name_", and a state expression that is evaluated
|
|
619
|
+
* at run time to determine whether the animation should start.
|
|
620
|
+
*
|
|
621
|
+
* ```typescript
|
|
622
|
+
* \@Component({
|
|
623
|
+
* selector: 'animation-cmp',
|
|
624
|
+
* templateUrl: 'animation-cmp.html',
|
|
625
|
+
* animations: [
|
|
626
|
+
* trigger('myTriggerName', [
|
|
627
|
+
* state('on', style({ opacity: 1 }),
|
|
628
|
+
* state('off', style({ opacity: 0 }),
|
|
629
|
+
* transition('on => off', [
|
|
630
|
+
* animate("1s")
|
|
631
|
+
* ])
|
|
632
|
+
* ])
|
|
633
|
+
* ]
|
|
634
|
+
* })
|
|
635
|
+
* ```
|
|
636
|
+
*
|
|
637
|
+
* ```html
|
|
638
|
+
* <!-- animation-cmp.html -->
|
|
639
|
+
* <div \@myTriggerName="expression">...</div>
|
|
640
|
+
* ```
|
|
641
|
+
*
|
|
642
|
+
* ### Preserving whitespace
|
|
643
|
+
*
|
|
644
|
+
* Removing whitespace can greatly reduce AOT-generated code size, and speed up view creation.
|
|
645
|
+
* As of Angular 6, default for `preserveWhitespaces` is false (whitespace is removed).
|
|
646
|
+
* To change the default setting for all components in your application, set
|
|
647
|
+
* the `preserveWhitespaces` option of the AOT compiler.
|
|
648
|
+
*
|
|
649
|
+
* Current implementation removes whitespace characters as follows:
|
|
650
|
+
* - Trims all whitespaces at the beginning and the end of a template.
|
|
651
|
+
* - Removes whitespace-only text nodes. For example,
|
|
652
|
+
* `<button>Action 1</button> <button>Action 2</button>` becomes
|
|
653
|
+
* `<button>Action 1</button><button>Action 2</button>`.
|
|
654
|
+
* - Replaces a series of whitespace characters in text nodes with a single space.
|
|
655
|
+
* For example, `<span>\n some text\n</span>` becomes `<span> some text </span>`.
|
|
656
|
+
* - Does NOT alter text nodes inside HTML tags such as `<pre>` or `<textarea>`,
|
|
657
|
+
* where whitespace characters are significant.
|
|
658
|
+
*
|
|
659
|
+
* Note that these transformations can influence DOM nodes layout, although impact
|
|
660
|
+
* should be minimal.
|
|
661
|
+
*
|
|
662
|
+
* You can override the default behavior to preserve whitespace characters
|
|
663
|
+
* in certain fragments of a template. For example, you can exclude an entire
|
|
664
|
+
* DOM sub-tree by using the `ngPreserveWhitespaces` attribute:
|
|
665
|
+
*
|
|
666
|
+
* ```html
|
|
667
|
+
* <div ngPreserveWhitespaces>
|
|
668
|
+
* whitespaces are preserved here
|
|
669
|
+
* <span> and here </span>
|
|
670
|
+
* </div>
|
|
671
|
+
* ```
|
|
672
|
+
*
|
|
673
|
+
* You can force a single space to be preserved in a text node by using `&ngsp;`,
|
|
674
|
+
* which is replaced with a space character by Angular's template
|
|
675
|
+
* compiler:
|
|
676
|
+
*
|
|
677
|
+
* ```html
|
|
678
|
+
* <a>Spaces</a>&ngsp;<a>between</a>&ngsp;<a>links.</a>
|
|
679
|
+
* <!-->compiled to be equivalent to:</>
|
|
680
|
+
* <a>Spaces</a> <a>between</a> <a>links.</a>
|
|
681
|
+
* ```
|
|
682
|
+
*
|
|
683
|
+
* Note that sequences of `&ngsp;` are still collapsed to just one space character when
|
|
684
|
+
* the `preserveWhitespaces` option is set to `false`.
|
|
685
|
+
*
|
|
686
|
+
* ```html
|
|
687
|
+
* <a>before</a>&ngsp;&ngsp;&ngsp;<a>after</a>
|
|
688
|
+
* <!-->compiled to be equivalent to:</>
|
|
689
|
+
* <a>Spaces</a> <a>between</a> <a>links.</a>
|
|
690
|
+
* ```
|
|
691
|
+
*
|
|
692
|
+
* To preserve sequences of whitespace characters, use the
|
|
693
|
+
* `ngPreserveWhitespaces` attribute.
|
|
626
694
|
*
|
|
627
695
|
* \@Annotation
|
|
628
696
|
*/
|
|
629
697
|
const Component = makeDecorator('Component', (c = {}) => (Object.assign({ changeDetection: ChangeDetectionStrategy.Default }, c)), Directive);
|
|
630
698
|
/**
|
|
631
699
|
* Type of the Pipe decorator / constructor function.
|
|
632
|
-
*
|
|
633
|
-
*
|
|
634
700
|
* @record
|
|
635
701
|
*/
|
|
636
702
|
|
|
637
703
|
/**
|
|
638
|
-
* Pipe decorator and metadata.
|
|
639
|
-
*
|
|
640
|
-
* Use the `\@Pipe` annotation to declare that a given class is a pipe. A pipe
|
|
641
|
-
* class must also implement {\@link PipeTransform} interface.
|
|
642
|
-
*
|
|
643
|
-
* To use the pipe include a reference to the pipe class in
|
|
644
|
-
* {\@link NgModule#declarations}.
|
|
645
704
|
*
|
|
646
705
|
*
|
|
647
706
|
* \@Annotation
|
|
648
707
|
*/
|
|
649
708
|
const Pipe = makeDecorator('Pipe', (p) => (Object.assign({ pure: true }, p)));
|
|
650
709
|
/**
|
|
651
|
-
* Type of the Input decorator / constructor function.
|
|
652
|
-
*
|
|
653
710
|
*
|
|
654
711
|
* @record
|
|
655
712
|
*/
|
|
656
713
|
|
|
657
714
|
/**
|
|
658
|
-
* Input decorator and metadata.
|
|
659
|
-
*
|
|
660
715
|
*
|
|
661
716
|
* \@Annotation
|
|
662
717
|
*/
|
|
663
718
|
const Input = makePropDecorator('Input', (bindingPropertyName) => ({ bindingPropertyName }));
|
|
664
719
|
/**
|
|
665
720
|
* Type of the Output decorator / constructor function.
|
|
666
|
-
*
|
|
667
|
-
*
|
|
668
721
|
* @record
|
|
669
722
|
*/
|
|
670
723
|
|
|
671
724
|
/**
|
|
672
|
-
* Output decorator and metadata.
|
|
673
|
-
*
|
|
674
725
|
*
|
|
675
726
|
* \@Annotation
|
|
676
727
|
*/
|
|
677
728
|
const Output = makePropDecorator('Output', (bindingPropertyName) => ({ bindingPropertyName }));
|
|
678
729
|
/**
|
|
679
730
|
* Type of the HostBinding decorator / constructor function.
|
|
680
|
-
*
|
|
681
|
-
*
|
|
682
731
|
* @record
|
|
683
732
|
*/
|
|
684
733
|
|
|
685
734
|
/**
|
|
686
|
-
* HostBinding decorator and metadata.
|
|
687
|
-
*
|
|
688
735
|
*
|
|
689
736
|
* \@Annotation
|
|
690
737
|
*/
|
|
691
738
|
const HostBinding = makePropDecorator('HostBinding', (hostPropertyName) => ({ hostPropertyName }));
|
|
692
739
|
/**
|
|
693
740
|
* Type of the HostListener decorator / constructor function.
|
|
694
|
-
*
|
|
695
|
-
*
|
|
696
741
|
* @record
|
|
697
742
|
*/
|
|
698
743
|
|
|
699
744
|
/**
|
|
700
|
-
*
|
|
745
|
+
* Binds a CSS event to a host listener and supplies configuration metadata.
|
|
746
|
+
* Angular invokes the supplied handler method when the host element emits the specified event,
|
|
747
|
+
* and updates the bound element with the result.
|
|
748
|
+
* If the handler method returns false, applies `preventDefault` on the bound element.
|
|
749
|
+
*
|
|
750
|
+
* \@usageNotes
|
|
701
751
|
*
|
|
752
|
+
* The following example declares a directive
|
|
753
|
+
* that attaches a click listener to a button and counts clicks.
|
|
754
|
+
*
|
|
755
|
+
* ```
|
|
756
|
+
* \@Directive({selector: 'button[counting]'})
|
|
757
|
+
* class CountClicks {
|
|
758
|
+
* numberOfClicks = 0;
|
|
759
|
+
*
|
|
760
|
+
* \@HostListener('click', ['$event.target'])
|
|
761
|
+
* onClick(btn) {
|
|
762
|
+
* console.log('button', btn, 'number of clicks:', this.numberOfClicks++);
|
|
763
|
+
* }
|
|
764
|
+
* }
|
|
765
|
+
*
|
|
766
|
+
* \@Component({
|
|
767
|
+
* selector: 'app',
|
|
768
|
+
* template: '<button counting>Increment</button>',
|
|
769
|
+
* })
|
|
770
|
+
* class App {}
|
|
771
|
+
* ```
|
|
702
772
|
*
|
|
703
773
|
* \@Annotation
|
|
704
774
|
*/
|
|
@@ -1183,6 +1253,7 @@ function getClosureSafeProperty(objWithPropertyToExtract, target) {
|
|
|
1183
1253
|
/**
|
|
1184
1254
|
* An interface that a function passed into {\@link forwardRef} has to implement.
|
|
1185
1255
|
*
|
|
1256
|
+
* \@usageNotes
|
|
1186
1257
|
* ### Example
|
|
1187
1258
|
*
|
|
1188
1259
|
* {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref_fn'}
|
|
@@ -1194,10 +1265,10 @@ function getClosureSafeProperty(objWithPropertyToExtract, target) {
|
|
|
1194
1265
|
* Allows to refer to references which are not yet defined.
|
|
1195
1266
|
*
|
|
1196
1267
|
* For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of
|
|
1197
|
-
* DI is declared,
|
|
1198
|
-
*
|
|
1199
|
-
* yet defined.
|
|
1268
|
+
* DI is declared, but not yet defined. It is also used when the `token` which we use when creating
|
|
1269
|
+
* a query is not yet defined.
|
|
1200
1270
|
*
|
|
1271
|
+
* \@usageNotes
|
|
1201
1272
|
* ### Example
|
|
1202
1273
|
* {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}
|
|
1203
1274
|
* \@experimental
|
|
@@ -1214,11 +1285,12 @@ function forwardRef(forwardRefFn) {
|
|
|
1214
1285
|
*
|
|
1215
1286
|
* Acts as the identity function when given a non-forward-ref value.
|
|
1216
1287
|
*
|
|
1217
|
-
*
|
|
1288
|
+
* \@usageNotes
|
|
1289
|
+
* ### Example
|
|
1218
1290
|
*
|
|
1219
1291
|
* {\@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}
|
|
1220
1292
|
*
|
|
1221
|
-
*
|
|
1293
|
+
* @see `forwardRef`
|
|
1222
1294
|
* \@experimental
|
|
1223
1295
|
* @param {?} type
|
|
1224
1296
|
* @return {?}
|
|
@@ -1246,71 +1318,56 @@ function resolveForwardRef(type) {
|
|
|
1246
1318
|
*/
|
|
1247
1319
|
/**
|
|
1248
1320
|
* Type of the Inject decorator / constructor function.
|
|
1249
|
-
*
|
|
1250
|
-
*
|
|
1251
1321
|
* @record
|
|
1252
1322
|
*/
|
|
1253
1323
|
|
|
1254
1324
|
/**
|
|
1255
1325
|
* Inject decorator and metadata.
|
|
1256
1326
|
*
|
|
1257
|
-
*
|
|
1258
1327
|
* \@Annotation
|
|
1259
1328
|
*/
|
|
1260
1329
|
const Inject = makeParamDecorator('Inject', (token) => ({ token }));
|
|
1261
1330
|
/**
|
|
1262
1331
|
* Type of the Optional decorator / constructor function.
|
|
1263
|
-
*
|
|
1264
|
-
*
|
|
1265
1332
|
* @record
|
|
1266
1333
|
*/
|
|
1267
1334
|
|
|
1268
1335
|
/**
|
|
1269
1336
|
* Optional decorator and metadata.
|
|
1270
1337
|
*
|
|
1271
|
-
*
|
|
1272
1338
|
* \@Annotation
|
|
1273
1339
|
*/
|
|
1274
1340
|
const Optional = makeParamDecorator('Optional');
|
|
1275
1341
|
/**
|
|
1276
1342
|
* Type of the Self decorator / constructor function.
|
|
1277
|
-
*
|
|
1278
|
-
*
|
|
1279
1343
|
* @record
|
|
1280
1344
|
*/
|
|
1281
1345
|
|
|
1282
1346
|
/**
|
|
1283
1347
|
* Self decorator and metadata.
|
|
1284
1348
|
*
|
|
1285
|
-
*
|
|
1286
1349
|
* \@Annotation
|
|
1287
1350
|
*/
|
|
1288
1351
|
const Self = makeParamDecorator('Self');
|
|
1289
1352
|
/**
|
|
1290
1353
|
* Type of the SkipSelf decorator / constructor function.
|
|
1291
|
-
*
|
|
1292
|
-
*
|
|
1293
1354
|
* @record
|
|
1294
1355
|
*/
|
|
1295
1356
|
|
|
1296
1357
|
/**
|
|
1297
1358
|
* SkipSelf decorator and metadata.
|
|
1298
1359
|
*
|
|
1299
|
-
*
|
|
1300
1360
|
* \@Annotation
|
|
1301
1361
|
*/
|
|
1302
1362
|
const SkipSelf = makeParamDecorator('SkipSelf');
|
|
1303
1363
|
/**
|
|
1304
1364
|
* Type of the Host decorator / constructor function.
|
|
1305
|
-
*
|
|
1306
|
-
*
|
|
1307
1365
|
* @record
|
|
1308
1366
|
*/
|
|
1309
1367
|
|
|
1310
1368
|
/**
|
|
1311
1369
|
* Host decorator and metadata.
|
|
1312
1370
|
*
|
|
1313
|
-
*
|
|
1314
1371
|
* \@Annotation
|
|
1315
1372
|
*/
|
|
1316
1373
|
const Host = makeParamDecorator('Host');
|
|
@@ -1352,23 +1409,17 @@ class NullInjector {
|
|
|
1352
1409
|
}
|
|
1353
1410
|
}
|
|
1354
1411
|
/**
|
|
1355
|
-
* \@usageNotes
|
|
1356
|
-
* ```
|
|
1357
|
-
* const injector: Injector = ...;
|
|
1358
|
-
* injector.get(...);
|
|
1359
|
-
* ```
|
|
1360
|
-
*
|
|
1361
|
-
* \@description
|
|
1362
|
-
*
|
|
1363
1412
|
* Concrete injectors implement this interface.
|
|
1364
1413
|
*
|
|
1365
|
-
* For more details, see the
|
|
1414
|
+
* For more details, see the ["Dependency Injection Guide"](guide/dependency-injection).
|
|
1366
1415
|
*
|
|
1416
|
+
* \@usageNotes
|
|
1367
1417
|
* ### Example
|
|
1368
1418
|
*
|
|
1369
1419
|
* {\@example core/di/ts/injector_spec.ts region='Injector'}
|
|
1370
1420
|
*
|
|
1371
1421
|
* `Injector` returns itself when given `Injector` as a token:
|
|
1422
|
+
*
|
|
1372
1423
|
* {\@example core/di/ts/injector_spec.ts region='injectInjector'}
|
|
1373
1424
|
*
|
|
1374
1425
|
*
|
|
@@ -1378,6 +1429,7 @@ class Injector {
|
|
|
1378
1429
|
/**
|
|
1379
1430
|
* Create a new Injector which is configure using `StaticProvider`s.
|
|
1380
1431
|
*
|
|
1432
|
+
* \@usageNotes
|
|
1381
1433
|
* ### Example
|
|
1382
1434
|
*
|
|
1383
1435
|
* {\@example core/di/ts/provider_spec.ts region='ConstructorProvider'}
|
|
@@ -1815,8 +1867,6 @@ const ɵ0 = GET_PROPERTY_NAME;
|
|
|
1815
1867
|
const USE_VALUE = getClosureSafeProperty({ provide: String, useValue: ɵ0 }, GET_PROPERTY_NAME);
|
|
1816
1868
|
/**
|
|
1817
1869
|
* Type of the Injectable decorator / constructor function.
|
|
1818
|
-
*
|
|
1819
|
-
*
|
|
1820
1870
|
* @record
|
|
1821
1871
|
*/
|
|
1822
1872
|
|
|
@@ -1866,7 +1916,6 @@ function convertInjectableProviderToFactory(type, provider) {
|
|
|
1866
1916
|
/**
|
|
1867
1917
|
* Injectable decorator and metadata.
|
|
1868
1918
|
*
|
|
1869
|
-
*
|
|
1870
1919
|
* \@Annotation
|
|
1871
1920
|
*/
|
|
1872
1921
|
const Injectable = makeDecorator('Injectable', undefined, undefined, undefined, (injectableType, options) => {
|
|
@@ -1898,24 +1947,28 @@ const Injectable = makeDecorator('Injectable', undefined, undefined, undefined,
|
|
|
1898
1947
|
* found in the LICENSE file at https://angular.io/license
|
|
1899
1948
|
*/
|
|
1900
1949
|
/**
|
|
1901
|
-
* A wrapper around
|
|
1950
|
+
* A wrapper around an NgModule that associates it with the providers.
|
|
1902
1951
|
*
|
|
1903
1952
|
*
|
|
1904
1953
|
* @record
|
|
1905
1954
|
*/
|
|
1906
1955
|
|
|
1907
1956
|
/**
|
|
1908
|
-
*
|
|
1957
|
+
* A schema definition associated with an NgModule.
|
|
1958
|
+
*
|
|
1959
|
+
* @see `\@NgModule`, `CUSTOM_ELEMENTS_SCHEMA`, `NO_ERRORS_SCHEMA`
|
|
1960
|
+
*
|
|
1961
|
+
* @param name The name of a defined schema.
|
|
1909
1962
|
*
|
|
1910
1963
|
* \@experimental
|
|
1911
1964
|
* @record
|
|
1912
1965
|
*/
|
|
1913
1966
|
|
|
1914
1967
|
/**
|
|
1915
|
-
* Defines a schema that
|
|
1916
|
-
* -
|
|
1917
|
-
* -
|
|
1918
|
-
* elements.
|
|
1968
|
+
* Defines a schema that allows an NgModule to contain the following:
|
|
1969
|
+
* - Non-Angular elements named with dash case (`-`).
|
|
1970
|
+
* - Element properties named with dash case (`-`).
|
|
1971
|
+
* Dash case is the naming convention for custom elements.
|
|
1919
1972
|
*
|
|
1920
1973
|
*
|
|
1921
1974
|
*/
|
|
@@ -1923,7 +1976,7 @@ const CUSTOM_ELEMENTS_SCHEMA = {
|
|
|
1923
1976
|
name: 'custom-elements'
|
|
1924
1977
|
};
|
|
1925
1978
|
/**
|
|
1926
|
-
* Defines a schema that
|
|
1979
|
+
* Defines a schema that allows any property on any element.
|
|
1927
1980
|
*
|
|
1928
1981
|
* \@experimental
|
|
1929
1982
|
*/
|
|
@@ -1938,12 +1991,16 @@ const NO_ERRORS_SCHEMA = {
|
|
|
1938
1991
|
*/
|
|
1939
1992
|
|
|
1940
1993
|
/**
|
|
1941
|
-
* NgModule
|
|
1942
|
-
*
|
|
1994
|
+
* Decorator that marks the following class as an NgModule, and supplies
|
|
1995
|
+
* configuration metadata for it.
|
|
1943
1996
|
*
|
|
1944
1997
|
* \@Annotation
|
|
1945
1998
|
*/
|
|
1946
|
-
const NgModule = makeDecorator('NgModule', (ngModule) => ngModule, undefined, undefined,
|
|
1999
|
+
const NgModule = makeDecorator('NgModule', (ngModule) => ngModule, undefined, undefined, /**
|
|
2000
|
+
* Decorator that marks the following class as an NgModule, and supplies
|
|
2001
|
+
* configuration metadata for it.
|
|
2002
|
+
*/
|
|
2003
|
+
(moduleType, metadata) => {
|
|
1947
2004
|
let /** @type {?} */ imports = (metadata && metadata.imports) || [];
|
|
1948
2005
|
if (metadata && metadata.exports) {
|
|
1949
2006
|
imports = [...imports, metadata.exports];
|
|
@@ -2032,7 +2089,7 @@ class Version {
|
|
|
2032
2089
|
this.patch = full.split('.').slice(2).join('.');
|
|
2033
2090
|
}
|
|
2034
2091
|
}
|
|
2035
|
-
const VERSION = new Version('6.0.
|
|
2092
|
+
const VERSION = new Version('6.0.7');
|
|
2036
2093
|
|
|
2037
2094
|
/**
|
|
2038
2095
|
* @fileoverview added by tsickle
|
|
@@ -2096,14 +2153,13 @@ function defaultErrorLogger(console, ...values) {
|
|
|
2096
2153
|
* found in the LICENSE file at https://angular.io/license
|
|
2097
2154
|
*/
|
|
2098
2155
|
/**
|
|
2099
|
-
*
|
|
2100
|
-
* \@description
|
|
2101
2156
|
* Provides a hook for centralized exception handling.
|
|
2102
2157
|
*
|
|
2103
2158
|
* The default implementation of `ErrorHandler` prints error messages to the `console`. To
|
|
2104
2159
|
* intercept error handling, write a custom exception handler that replaces this default as
|
|
2105
2160
|
* appropriate for your app.
|
|
2106
2161
|
*
|
|
2162
|
+
* \@usageNotes
|
|
2107
2163
|
* ### Example
|
|
2108
2164
|
*
|
|
2109
2165
|
* ```
|
|
@@ -2118,8 +2174,6 @@ function defaultErrorLogger(console, ...values) {
|
|
|
2118
2174
|
* })
|
|
2119
2175
|
* class MyModule {}
|
|
2120
2176
|
* ```
|
|
2121
|
-
*
|
|
2122
|
-
*
|
|
2123
2177
|
*/
|
|
2124
2178
|
class ErrorHandler {
|
|
2125
2179
|
constructor() {
|
|
@@ -2259,7 +2313,8 @@ function addKey(injector, key) {
|
|
|
2259
2313
|
* Thrown when trying to retrieve a dependency by key from {\@link Injector}, but the
|
|
2260
2314
|
* {\@link Injector} does not have a {\@link Provider} for the given key.
|
|
2261
2315
|
*
|
|
2262
|
-
*
|
|
2316
|
+
* \@usageNotes
|
|
2317
|
+
* ### Example
|
|
2263
2318
|
*
|
|
2264
2319
|
* ```typescript
|
|
2265
2320
|
* class A {
|
|
@@ -2281,7 +2336,8 @@ function noProviderError(injector, key) {
|
|
|
2281
2336
|
/**
|
|
2282
2337
|
* Thrown when dependencies form a cycle.
|
|
2283
2338
|
*
|
|
2284
|
-
*
|
|
2339
|
+
* \@usageNotes
|
|
2340
|
+
* ### Example
|
|
2285
2341
|
*
|
|
2286
2342
|
* ```typescript
|
|
2287
2343
|
* var injector = Injector.resolveAndCreate([
|
|
@@ -2308,7 +2364,8 @@ function cyclicDependencyError(injector, key) {
|
|
|
2308
2364
|
* The `InstantiationError` class contains the original error plus the dependency graph which caused
|
|
2309
2365
|
* this object to be instantiated.
|
|
2310
2366
|
*
|
|
2311
|
-
*
|
|
2367
|
+
* \@usageNotes
|
|
2368
|
+
* ### Example
|
|
2312
2369
|
*
|
|
2313
2370
|
* ```typescript
|
|
2314
2371
|
* class A {
|
|
@@ -2342,7 +2399,8 @@ function instantiationError(injector, originalException, originalStack, key) {
|
|
|
2342
2399
|
* Thrown when an object other then {\@link Provider} (or `Type`) is passed to {\@link Injector}
|
|
2343
2400
|
* creation.
|
|
2344
2401
|
*
|
|
2345
|
-
*
|
|
2402
|
+
* \@usageNotes
|
|
2403
|
+
* ### Example
|
|
2346
2404
|
*
|
|
2347
2405
|
* ```typescript
|
|
2348
2406
|
* expect(() => Injector.resolveAndCreate(["not a type"])).toThrowError();
|
|
@@ -2359,7 +2417,8 @@ function invalidProviderError(provider) {
|
|
|
2359
2417
|
* Lack of annotation information prevents the {\@link Injector} from determining which dependencies
|
|
2360
2418
|
* need to be injected into the constructor.
|
|
2361
2419
|
*
|
|
2362
|
-
*
|
|
2420
|
+
* \@usageNotes
|
|
2421
|
+
* ### Example
|
|
2363
2422
|
*
|
|
2364
2423
|
* ```typescript
|
|
2365
2424
|
* class A {
|
|
@@ -2404,7 +2463,8 @@ function noAnnotationError(typeOrFunc, params) {
|
|
|
2404
2463
|
/**
|
|
2405
2464
|
* Thrown when getting an object by index.
|
|
2406
2465
|
*
|
|
2407
|
-
*
|
|
2466
|
+
* \@usageNotes
|
|
2467
|
+
* ### Example
|
|
2408
2468
|
*
|
|
2409
2469
|
* ```typescript
|
|
2410
2470
|
* class A {}
|
|
@@ -2423,6 +2483,7 @@ function outOfBoundsError(index) {
|
|
|
2423
2483
|
/**
|
|
2424
2484
|
* Thrown when a multi provider and a regular provider are bound to the same token.
|
|
2425
2485
|
*
|
|
2486
|
+
* \@usageNotes
|
|
2426
2487
|
* ### Example
|
|
2427
2488
|
*
|
|
2428
2489
|
* ```typescript
|
|
@@ -2677,13 +2738,14 @@ class ReflectiveDependency {
|
|
|
2677
2738
|
}
|
|
2678
2739
|
const _EMPTY_LIST = [];
|
|
2679
2740
|
/**
|
|
2680
|
-
* An internal resolved representation of a
|
|
2741
|
+
* An internal resolved representation of a `Provider` used by the `Injector`.
|
|
2681
2742
|
*
|
|
2682
|
-
*
|
|
2743
|
+
* \@usageNotes
|
|
2744
|
+
* This is usually created automatically by `Injector.resolveAndCreate`.
|
|
2683
2745
|
*
|
|
2684
2746
|
* It can be created manually, as follows:
|
|
2685
2747
|
*
|
|
2686
|
-
* ### Example
|
|
2748
|
+
* ### Example
|
|
2687
2749
|
*
|
|
2688
2750
|
* ```typescript
|
|
2689
2751
|
* var resolvedProviders = Injector.resolve([{ provide: 'message', useValue: 'Hello' }]);
|
|
@@ -2710,8 +2772,7 @@ class ResolvedReflectiveProvider_ {
|
|
|
2710
2772
|
}
|
|
2711
2773
|
}
|
|
2712
2774
|
/**
|
|
2713
|
-
* An internal resolved representation of a factory function created by resolving
|
|
2714
|
-
* Provider}.
|
|
2775
|
+
* An internal resolved representation of a factory function created by resolving `Provider`.
|
|
2715
2776
|
* \@experimental
|
|
2716
2777
|
*/
|
|
2717
2778
|
class ResolvedReflectiveFactory {
|
|
@@ -2752,10 +2813,10 @@ function resolveReflectiveFactory(provider) {
|
|
|
2752
2813
|
return new ResolvedReflectiveFactory(factoryFn, resolvedDeps);
|
|
2753
2814
|
}
|
|
2754
2815
|
/**
|
|
2755
|
-
* Converts the
|
|
2816
|
+
* Converts the `Provider` into `ResolvedProvider`.
|
|
2756
2817
|
*
|
|
2757
|
-
*
|
|
2758
|
-
*
|
|
2818
|
+
* `Injector` internally only uses `ResolvedProvider`, `Provider` contains convenience provider
|
|
2819
|
+
* syntax.
|
|
2759
2820
|
* @param {?} provider
|
|
2760
2821
|
* @return {?}
|
|
2761
2822
|
*/
|
|
@@ -2774,9 +2835,8 @@ function resolveReflectiveProviders(providers) {
|
|
|
2774
2835
|
return Array.from(resolvedProviderMap.values());
|
|
2775
2836
|
}
|
|
2776
2837
|
/**
|
|
2777
|
-
* Merges a list of ResolvedProviders into a list where
|
|
2778
|
-
*
|
|
2779
|
-
* have been merged.
|
|
2838
|
+
* Merges a list of ResolvedProviders into a list where each key is contained exactly once and
|
|
2839
|
+
* multi providers have been merged.
|
|
2780
2840
|
* @param {?} providers
|
|
2781
2841
|
* @param {?} normalizedProvidersMap
|
|
2782
2842
|
* @return {?}
|
|
@@ -2937,7 +2997,8 @@ const UNDEFINED = new Object();
|
|
|
2937
2997
|
* In typical use, application code asks for the dependencies in the constructor and they are
|
|
2938
2998
|
* resolved by the `Injector`.
|
|
2939
2999
|
*
|
|
2940
|
-
*
|
|
3000
|
+
* \@usageNotes
|
|
3001
|
+
* ### Example
|
|
2941
3002
|
*
|
|
2942
3003
|
* The following example creates an `Injector` configured to create `Engine` and `Car`.
|
|
2943
3004
|
*
|
|
@@ -2968,9 +3029,10 @@ class ReflectiveInjector {
|
|
|
2968
3029
|
* Turns an array of provider definitions into an array of resolved providers.
|
|
2969
3030
|
*
|
|
2970
3031
|
* A resolution is a process of flattening multiple nested arrays and converting individual
|
|
2971
|
-
* providers into an array of
|
|
3032
|
+
* providers into an array of `ResolvedReflectiveProvider`s.
|
|
2972
3033
|
*
|
|
2973
|
-
*
|
|
3034
|
+
* \@usageNotes
|
|
3035
|
+
* ### Example
|
|
2974
3036
|
*
|
|
2975
3037
|
* ```typescript
|
|
2976
3038
|
* \@Injectable()
|
|
@@ -2995,7 +3057,6 @@ class ReflectiveInjector {
|
|
|
2995
3057
|
* });
|
|
2996
3058
|
* ```
|
|
2997
3059
|
*
|
|
2998
|
-
* See {\@link ReflectiveInjector#fromResolvedProviders fromResolvedProviders} for more info.
|
|
2999
3060
|
* @param {?} providers
|
|
3000
3061
|
* @return {?}
|
|
3001
3062
|
*/
|
|
@@ -3005,10 +3066,11 @@ class ReflectiveInjector {
|
|
|
3005
3066
|
/**
|
|
3006
3067
|
* Resolves an array of providers and creates an injector from those providers.
|
|
3007
3068
|
*
|
|
3008
|
-
* The passed-in providers can be an array of `Type`,
|
|
3069
|
+
* The passed-in providers can be an array of `Type`, `Provider`,
|
|
3009
3070
|
* or a recursive array of more providers.
|
|
3010
3071
|
*
|
|
3011
|
-
*
|
|
3072
|
+
* \@usageNotes
|
|
3073
|
+
* ### Example
|
|
3012
3074
|
*
|
|
3013
3075
|
* ```typescript
|
|
3014
3076
|
* \@Injectable()
|
|
@@ -3023,11 +3085,6 @@ class ReflectiveInjector {
|
|
|
3023
3085
|
* var injector = ReflectiveInjector.resolveAndCreate([Car, Engine]);
|
|
3024
3086
|
* expect(injector.get(Car) instanceof Car).toBe(true);
|
|
3025
3087
|
* ```
|
|
3026
|
-
*
|
|
3027
|
-
* This function is slower than the corresponding `fromResolvedProviders`
|
|
3028
|
-
* because it needs to resolve the passed-in providers first.
|
|
3029
|
-
* See {\@link ReflectiveInjector#resolve resolve} and
|
|
3030
|
-
* {\@link ReflectiveInjector#fromResolvedProviders fromResolvedProviders}.
|
|
3031
3088
|
* @param {?} providers
|
|
3032
3089
|
* @param {?=} parent
|
|
3033
3090
|
* @return {?}
|
|
@@ -3041,7 +3098,8 @@ class ReflectiveInjector {
|
|
|
3041
3098
|
*
|
|
3042
3099
|
* This API is the recommended way to construct injectors in performance-sensitive parts.
|
|
3043
3100
|
*
|
|
3044
|
-
*
|
|
3101
|
+
* \@usageNotes
|
|
3102
|
+
* ### Example
|
|
3045
3103
|
*
|
|
3046
3104
|
* ```typescript
|
|
3047
3105
|
* \@Injectable()
|
|
@@ -3856,7 +3914,7 @@ ApplicationInitStatus.decorators = [
|
|
|
3856
3914
|
];
|
|
3857
3915
|
/** @nocollapse */
|
|
3858
3916
|
ApplicationInitStatus.ctorParameters = () => [
|
|
3859
|
-
{ type: Array, decorators: [{ type: Inject, args: [APP_INITIALIZER,] }, { type: Optional }
|
|
3917
|
+
{ type: Array, decorators: [{ type: Inject, args: [APP_INITIALIZER,] }, { type: Optional }] }
|
|
3860
3918
|
];
|
|
3861
3919
|
|
|
3862
3920
|
/**
|
|
@@ -3959,8 +4017,6 @@ class Console {
|
|
|
3959
4017
|
Console.decorators = [
|
|
3960
4018
|
{ type: Injectable }
|
|
3961
4019
|
];
|
|
3962
|
-
/** @nocollapse */
|
|
3963
|
-
Console.ctorParameters = () => [];
|
|
3964
4020
|
|
|
3965
4021
|
/**
|
|
3966
4022
|
* @fileoverview added by tsickle
|
|
@@ -4054,8 +4110,6 @@ class Compiler {
|
|
|
4054
4110
|
Compiler.decorators = [
|
|
4055
4111
|
{ type: Injectable }
|
|
4056
4112
|
];
|
|
4057
|
-
/** @nocollapse */
|
|
4058
|
-
Compiler.ctorParameters = () => [];
|
|
4059
4113
|
/**
|
|
4060
4114
|
* Token to provide CompilerOptions in the platform injector.
|
|
4061
4115
|
*
|
|
@@ -4416,6 +4470,7 @@ const wtfEndTimeRange = wtfEnabled ? endTimeRange : (r) => null;
|
|
|
4416
4470
|
/**
|
|
4417
4471
|
* Use by directives and components to emit custom Events.
|
|
4418
4472
|
*
|
|
4473
|
+
* \@usageNotes
|
|
4419
4474
|
* ### Examples
|
|
4420
4475
|
*
|
|
4421
4476
|
* In the following example, `Zippy` alternatively emits `open` and `close` events when its
|
|
@@ -4433,8 +4488,8 @@ const wtfEndTimeRange = wtfEnabled ? endTimeRange : (r) => null;
|
|
|
4433
4488
|
* </div>`})
|
|
4434
4489
|
* export class Zippy {
|
|
4435
4490
|
* visible: boolean = true;
|
|
4436
|
-
*
|
|
4437
|
-
*
|
|
4491
|
+
* \@Output() open: EventEmitter<any> = new EventEmitter();
|
|
4492
|
+
* \@Output() close: EventEmitter<any> = new EventEmitter();
|
|
4438
4493
|
*
|
|
4439
4494
|
* toggle() {
|
|
4440
4495
|
* this.visible = !this.visible;
|
|
@@ -4454,6 +4509,8 @@ const wtfEndTimeRange = wtfEnabled ? endTimeRange : (r) => null;
|
|
|
4454
4509
|
* <zippy (open)="onOpen($event)" (close)="onClose($event)"></zippy>
|
|
4455
4510
|
* ```
|
|
4456
4511
|
*
|
|
4512
|
+
* ### Notes
|
|
4513
|
+
*
|
|
4457
4514
|
* Uses Rx.Observable but provides an adapter to make it work as specified here:
|
|
4458
4515
|
* https://github.com/jhusain/observable-spec
|
|
4459
4516
|
*
|
|
@@ -4545,6 +4602,7 @@ class EventEmitter extends Subject {
|
|
|
4545
4602
|
* - link to runOutsideAngular/run (throughout this file!)
|
|
4546
4603
|
* -->
|
|
4547
4604
|
*
|
|
4605
|
+
* \@usageNotes
|
|
4548
4606
|
* ### Example
|
|
4549
4607
|
*
|
|
4550
4608
|
* ```
|
|
@@ -5087,7 +5145,7 @@ Testability.decorators = [
|
|
|
5087
5145
|
];
|
|
5088
5146
|
/** @nocollapse */
|
|
5089
5147
|
Testability.ctorParameters = () => [
|
|
5090
|
-
{ type: NgZone
|
|
5148
|
+
{ type: NgZone }
|
|
5091
5149
|
];
|
|
5092
5150
|
/**
|
|
5093
5151
|
* A global registry of {\@link Testability} instances for specific elements.
|
|
@@ -5345,8 +5403,6 @@ function getPlatform() {
|
|
|
5345
5403
|
*
|
|
5346
5404
|
* A page's platform is initialized implicitly when a platform is created via a platform factory
|
|
5347
5405
|
* (e.g. {\@link platformBrowser}), or explicitly by calling the {\@link createPlatform} function.
|
|
5348
|
-
*
|
|
5349
|
-
*
|
|
5350
5406
|
*/
|
|
5351
5407
|
class PlatformRef {
|
|
5352
5408
|
/**
|
|
@@ -5363,7 +5419,8 @@ class PlatformRef {
|
|
|
5363
5419
|
* Creates an instance of an `\@NgModule` for the given platform
|
|
5364
5420
|
* for offline compilation.
|
|
5365
5421
|
*
|
|
5366
|
-
*
|
|
5422
|
+
* \@usageNotes
|
|
5423
|
+
* ### Simple Example
|
|
5367
5424
|
*
|
|
5368
5425
|
* ```typescript
|
|
5369
5426
|
* my_module.ts:
|
|
@@ -5418,7 +5475,8 @@ class PlatformRef {
|
|
|
5418
5475
|
/**
|
|
5419
5476
|
* Creates an instance of an `\@NgModule` for a given platform using the given runtime compiler.
|
|
5420
5477
|
*
|
|
5421
|
-
*
|
|
5478
|
+
* \@usageNotes
|
|
5479
|
+
* ### Simple Example
|
|
5422
5480
|
*
|
|
5423
5481
|
* ```typescript
|
|
5424
5482
|
* \@NgModule({
|
|
@@ -5493,7 +5551,7 @@ PlatformRef.decorators = [
|
|
|
5493
5551
|
];
|
|
5494
5552
|
/** @nocollapse */
|
|
5495
5553
|
PlatformRef.ctorParameters = () => [
|
|
5496
|
-
{ type: Injector
|
|
5554
|
+
{ type: Injector }
|
|
5497
5555
|
];
|
|
5498
5556
|
/**
|
|
5499
5557
|
* @param {?=} ngZoneOption
|
|
@@ -5551,8 +5609,6 @@ function optionsReducer(dst, objs) {
|
|
|
5551
5609
|
}
|
|
5552
5610
|
/**
|
|
5553
5611
|
* A reference to an Angular application running on a page.
|
|
5554
|
-
*
|
|
5555
|
-
*
|
|
5556
5612
|
*/
|
|
5557
5613
|
class ApplicationRef {
|
|
5558
5614
|
/**
|
|
@@ -5631,14 +5687,15 @@ class ApplicationRef {
|
|
|
5631
5687
|
/**
|
|
5632
5688
|
* Bootstrap a new component at the root level of the application.
|
|
5633
5689
|
*
|
|
5690
|
+
* \@usageNotes
|
|
5634
5691
|
* ### Bootstrap process
|
|
5635
5692
|
*
|
|
5636
5693
|
* When bootstrapping a new root component into an application, Angular mounts the
|
|
5637
|
-
* specified application component onto DOM elements identified by the
|
|
5694
|
+
* specified application component onto DOM elements identified by the componentType's
|
|
5638
5695
|
* selector and kicks off automatic change detection to finish initializing the component.
|
|
5639
5696
|
*
|
|
5640
5697
|
* Optionally, a component can be mounted onto a DOM element that does not match the
|
|
5641
|
-
*
|
|
5698
|
+
* componentType's selector.
|
|
5642
5699
|
*
|
|
5643
5700
|
* ### Example
|
|
5644
5701
|
* {\@example core/ts/platform/platform.ts region='longform'}
|
|
@@ -5775,12 +5832,12 @@ ApplicationRef.decorators = [
|
|
|
5775
5832
|
];
|
|
5776
5833
|
/** @nocollapse */
|
|
5777
5834
|
ApplicationRef.ctorParameters = () => [
|
|
5778
|
-
{ type: NgZone
|
|
5779
|
-
{ type: Console
|
|
5780
|
-
{ type: Injector
|
|
5781
|
-
{ type: ErrorHandler
|
|
5782
|
-
{ type: ComponentFactoryResolver
|
|
5783
|
-
{ type: ApplicationInitStatus
|
|
5835
|
+
{ type: NgZone },
|
|
5836
|
+
{ type: Console },
|
|
5837
|
+
{ type: Injector },
|
|
5838
|
+
{ type: ErrorHandler },
|
|
5839
|
+
{ type: ComponentFactoryResolver },
|
|
5840
|
+
{ type: ApplicationInitStatus }
|
|
5784
5841
|
];
|
|
5785
5842
|
/**
|
|
5786
5843
|
* @template T
|
|
@@ -6020,14 +6077,14 @@ function getModuleFactory(id) {
|
|
|
6020
6077
|
*
|
|
6021
6078
|
* NOTE: In the future this class will implement an `Observable` interface.
|
|
6022
6079
|
*
|
|
6023
|
-
*
|
|
6080
|
+
* \@usageNotes
|
|
6081
|
+
* ### Example
|
|
6024
6082
|
* ```typescript
|
|
6025
6083
|
* \@Component({...})
|
|
6026
6084
|
* class Container {
|
|
6027
|
-
*
|
|
6085
|
+
* \@ViewChildren(Item) items:QueryList<Item>;
|
|
6028
6086
|
* }
|
|
6029
6087
|
* ```
|
|
6030
|
-
*
|
|
6031
6088
|
* @template T
|
|
6032
6089
|
*/
|
|
6033
6090
|
class QueryList {
|
|
@@ -6225,8 +6282,8 @@ SystemJsNgModuleLoader.decorators = [
|
|
|
6225
6282
|
];
|
|
6226
6283
|
/** @nocollapse */
|
|
6227
6284
|
SystemJsNgModuleLoader.ctorParameters = () => [
|
|
6228
|
-
{ type: Compiler
|
|
6229
|
-
{ type: SystemJsNgModuleLoaderConfig, decorators: [{ type: Optional }
|
|
6285
|
+
{ type: Compiler },
|
|
6286
|
+
{ type: SystemJsNgModuleLoaderConfig, decorators: [{ type: Optional }] }
|
|
6230
6287
|
];
|
|
6231
6288
|
/**
|
|
6232
6289
|
* @param {?} value
|
|
@@ -6344,9 +6401,10 @@ class ViewRef extends ChangeDetectorRef {
|
|
|
6344
6401
|
*
|
|
6345
6402
|
* Properties of elements in a View can change, but the structure (number and order) of elements in
|
|
6346
6403
|
* a View cannot. Changing the structure of Elements can only be done by inserting, moving or
|
|
6347
|
-
* removing nested Views via a
|
|
6404
|
+
* removing nested Views via a `ViewContainerRef`. Each View can contain many View Containers.
|
|
6348
6405
|
* <!-- /TODO -->
|
|
6349
6406
|
*
|
|
6407
|
+
* \@usageNotes
|
|
6350
6408
|
* ### Example
|
|
6351
6409
|
*
|
|
6352
6410
|
* Given this template...
|
|
@@ -6358,9 +6416,10 @@ class ViewRef extends ChangeDetectorRef {
|
|
|
6358
6416
|
* </ul>
|
|
6359
6417
|
* ```
|
|
6360
6418
|
*
|
|
6361
|
-
* We have two
|
|
6419
|
+
* We have two `TemplateRef`s:
|
|
6420
|
+
*
|
|
6421
|
+
* Outer `TemplateRef`:
|
|
6362
6422
|
*
|
|
6363
|
-
* Outer {\@link TemplateRef}:
|
|
6364
6423
|
* ```
|
|
6365
6424
|
* Count: {{items.length}}
|
|
6366
6425
|
* <ul>
|
|
@@ -6368,14 +6427,15 @@ class ViewRef extends ChangeDetectorRef {
|
|
|
6368
6427
|
* </ul>
|
|
6369
6428
|
* ```
|
|
6370
6429
|
*
|
|
6371
|
-
* Inner
|
|
6430
|
+
* Inner `TemplateRef`:
|
|
6431
|
+
*
|
|
6372
6432
|
* ```
|
|
6373
6433
|
* <li>{{item}}</li>
|
|
6374
6434
|
* ```
|
|
6375
6435
|
*
|
|
6376
|
-
* Notice that the original template is broken down into two separate
|
|
6436
|
+
* Notice that the original template is broken down into two separate `TemplateRef`s.
|
|
6377
6437
|
*
|
|
6378
|
-
* The outer/inner
|
|
6438
|
+
* The outer/inner `TemplateRef`s are then assembled into views like so:
|
|
6379
6439
|
*
|
|
6380
6440
|
* ```
|
|
6381
6441
|
* <!-- ViewRef: outer-0 -->
|
|
@@ -8088,12 +8148,13 @@ class IterableDiffers {
|
|
|
8088
8148
|
* inherited {\@link IterableDiffers} instance with the provided factories and return a new
|
|
8089
8149
|
* {\@link IterableDiffers} instance.
|
|
8090
8150
|
*
|
|
8151
|
+
* \@usageNotes
|
|
8152
|
+
* ### Example
|
|
8153
|
+
*
|
|
8091
8154
|
* The following example shows how to extend an existing list of factories,
|
|
8092
8155
|
* which will only be applied to the injector for this component and its children.
|
|
8093
8156
|
* This step is all that's required to make a new {\@link IterableDiffer} available.
|
|
8094
8157
|
*
|
|
8095
|
-
* ### Example
|
|
8096
|
-
*
|
|
8097
8158
|
* ```
|
|
8098
8159
|
* \@Component({
|
|
8099
8160
|
* viewProviders: [
|
|
@@ -8216,12 +8277,13 @@ class KeyValueDiffers {
|
|
|
8216
8277
|
* inherited {\@link KeyValueDiffers} instance with the provided factories and return a new
|
|
8217
8278
|
* {\@link KeyValueDiffers} instance.
|
|
8218
8279
|
*
|
|
8280
|
+
* \@usageNotes
|
|
8281
|
+
* ### Example
|
|
8282
|
+
*
|
|
8219
8283
|
* The following example shows how to extend an existing list of factories,
|
|
8220
8284
|
* which will only be applied to the injector for this component and its children.
|
|
8221
8285
|
* This step is all that's required to make a new {\@link KeyValueDiffer} available.
|
|
8222
8286
|
*
|
|
8223
|
-
* ### Example
|
|
8224
|
-
*
|
|
8225
8287
|
* ```
|
|
8226
8288
|
* \@Component({
|
|
8227
8289
|
* viewProviders: [
|
|
@@ -8336,8 +8398,9 @@ const platformCore = createPlatformFactory(null, 'core', _CORE_PLATFORM_PROVIDER
|
|
|
8336
8398
|
* It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,
|
|
8337
8399
|
* DecimalPipe and PercentPipe) and by ICU expressions.
|
|
8338
8400
|
*
|
|
8339
|
-
* See the
|
|
8401
|
+
* See the [i18n guide](guide/i18n#setting-up-locale) for more information.
|
|
8340
8402
|
*
|
|
8403
|
+
* \@usageNotes
|
|
8341
8404
|
* ### Example
|
|
8342
8405
|
*
|
|
8343
8406
|
* ```typescript
|
|
@@ -8357,8 +8420,9 @@ const LOCALE_ID = new InjectionToken('LocaleId');
|
|
|
8357
8420
|
* Use this token at bootstrap to provide the content of your translation file (`xtb`,
|
|
8358
8421
|
* `xlf` or `xlf2`) when you want to translate your application in another language.
|
|
8359
8422
|
*
|
|
8360
|
-
* See the
|
|
8423
|
+
* See the [i18n guide](guide/i18n#merge) for more information.
|
|
8361
8424
|
*
|
|
8425
|
+
* \@usageNotes
|
|
8362
8426
|
* ### Example
|
|
8363
8427
|
*
|
|
8364
8428
|
* ```typescript
|
|
@@ -8381,8 +8445,9 @@ const TRANSLATIONS = new InjectionToken('Translations');
|
|
|
8381
8445
|
* Provide this token at bootstrap to set the format of your {\@link TRANSLATIONS}: `xtb`,
|
|
8382
8446
|
* `xlf` or `xlf2`.
|
|
8383
8447
|
*
|
|
8384
|
-
* See the
|
|
8448
|
+
* See the [i18n guide](guide/i18n#merge) for more information.
|
|
8385
8449
|
*
|
|
8450
|
+
* \@usageNotes
|
|
8386
8451
|
* ### Example
|
|
8387
8452
|
*
|
|
8388
8453
|
* ```typescript
|
|
@@ -8469,7 +8534,7 @@ ApplicationModule.decorators = [
|
|
|
8469
8534
|
];
|
|
8470
8535
|
/** @nocollapse */
|
|
8471
8536
|
ApplicationModule.ctorParameters = () => [
|
|
8472
|
-
{ type: ApplicationRef
|
|
8537
|
+
{ type: ApplicationRef }
|
|
8473
8538
|
];
|
|
8474
8539
|
|
|
8475
8540
|
/**
|
|
@@ -10558,6 +10623,9 @@ function resolveNgModuleDep(data, depDef, notFoundValue = Injector.THROW_IF_NOT_
|
|
|
10558
10623
|
return (data._providers[index] =
|
|
10559
10624
|
_createProviderInstance$1(data, data._def.providersByKey[depDef.tokenKey]));
|
|
10560
10625
|
}
|
|
10626
|
+
else if (depDef.flags & 4 /* Self */) {
|
|
10627
|
+
return notFoundValue;
|
|
10628
|
+
}
|
|
10561
10629
|
return data._parent.get(depDef.token, notFoundValue);
|
|
10562
10630
|
}
|
|
10563
10631
|
finally {
|
|
@@ -15776,8 +15844,7 @@ function addRemoveViewFromContainer(container, rootNode, insertMode, beforeNode)
|
|
|
15776
15844
|
* - Using a while loop because it's faster than recursion
|
|
15777
15845
|
* - Destroy only called on movement to sibling or movement to parent (laterally or up)
|
|
15778
15846
|
*
|
|
15779
|
-
*
|
|
15780
|
-
* @param {?} rootView
|
|
15847
|
+
* @param {?} rootView The view to destroy
|
|
15781
15848
|
* @return {?}
|
|
15782
15849
|
*/
|
|
15783
15850
|
function destroyViewTree(rootView) {
|
|
@@ -18636,7 +18703,8 @@ class ViewRef$1 {
|
|
|
18636
18703
|
*
|
|
18637
18704
|
* <!-- TODO: Add a link to a chapter on OnPush components -->
|
|
18638
18705
|
*
|
|
18639
|
-
*
|
|
18706
|
+
* \@usageNotes
|
|
18707
|
+
* ### Example
|
|
18640
18708
|
*
|
|
18641
18709
|
* ```typescript
|
|
18642
18710
|
* \@Component({
|
|
@@ -18670,6 +18738,7 @@ class ViewRef$1 {
|
|
|
18670
18738
|
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
|
|
18671
18739
|
* <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
|
|
18672
18740
|
*
|
|
18741
|
+
* \@usageNotes
|
|
18673
18742
|
* ### Example
|
|
18674
18743
|
*
|
|
18675
18744
|
* The following example defines a component with a large list of readonly data.
|
|
@@ -18721,7 +18790,8 @@ class ViewRef$1 {
|
|
|
18721
18790
|
*
|
|
18722
18791
|
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
|
|
18723
18792
|
*
|
|
18724
|
-
*
|
|
18793
|
+
* \@usageNotes
|
|
18794
|
+
* ### Example
|
|
18725
18795
|
*
|
|
18726
18796
|
* The following example creates a component displaying `live` data. The component will detach
|
|
18727
18797
|
* its change detector from the main change detector tree when the component's live property
|
|
@@ -18779,6 +18849,7 @@ class ViewRef$1 {
|
|
|
18779
18849
|
* <!-- TODO: Add a link to a chapter on detach/reattach/local digest -->
|
|
18780
18850
|
* <!-- TODO: Add a live demo once ref.detectChanges is merged into master -->
|
|
18781
18851
|
*
|
|
18852
|
+
* \@usageNotes
|
|
18782
18853
|
* ### Example
|
|
18783
18854
|
*
|
|
18784
18855
|
* The following example defines a component with a large list of readonly data.
|