@angular/core 7.0.0-rc.1 → 7.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/core-testing.umd.js +36 -33
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core-testing.umd.min.js +3 -3
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +1856 -1463
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +155 -94
- package/bundles/core.umd.min.js.map +1 -1
- package/core.d.ts +7 -6
- package/core.metadata.json +1 -1
- package/esm2015/core.externs.js +0 -3
- package/esm2015/core.js +6 -6
- package/esm2015/index.js +2 -2
- package/esm2015/public_api.js +2 -2
- package/esm2015/src/application_init.js +5 -1
- package/esm2015/src/application_module.js +2 -2
- package/esm2015/src/application_ref.js +11 -9
- package/esm2015/src/application_tokens.js +7 -7
- package/esm2015/src/change_detection/change_detection_util.js +3 -1
- package/esm2015/src/change_detection/change_detector_ref.js +2 -1
- package/esm2015/src/change_detection/constants.js +1 -1
- package/esm2015/src/change_detection/differs/default_iterable_differ.js +2 -1
- package/esm2015/src/change_detection/differs/iterable_differs.js +8 -6
- package/esm2015/src/change_detection/differs/keyvalue_differs.js +6 -5
- package/esm2015/src/change_detection/pipe_transform.js +2 -2
- package/esm2015/src/core.js +2 -2
- package/esm2015/src/core_render3_private_export.js +5 -4
- package/esm2015/src/debug/debug_node.js +6 -6
- package/esm2015/src/di/defs.js +5 -5
- package/esm2015/src/di/forward_ref.js +4 -4
- package/esm2015/src/di/injectable.js +5 -2
- package/esm2015/src/di/injection_token.js +3 -1
- package/esm2015/src/di/injector.js +3 -3
- package/esm2015/src/di/metadata.js +16 -1
- package/esm2015/src/di/provider.js +16 -6
- package/esm2015/src/di/r3_injector.js +2 -2
- package/esm2015/src/di/reflective_injector.js +2 -2
- package/esm2015/src/di/reflective_key.js +3 -1
- package/esm2015/src/di/reflective_provider.js +3 -3
- package/esm2015/src/error_handler.js +3 -1
- package/esm2015/src/event_emitter.js +2 -1
- package/esm2015/src/i18n/tokens.js +4 -4
- package/esm2015/src/is_dev_mode.js +4 -2
- package/esm2015/src/ivy_switch/runtime/index.js +2 -2
- package/esm2015/src/ivy_switch/runtime/ivy_switch_on.js +4 -2
- package/esm2015/src/ivy_switch/runtime/jit.js +2 -2
- package/esm2015/src/ivy_switch/runtime/legacy.js +7 -1
- package/esm2015/src/ivy_switch/runtime/local.js +2 -2
- package/esm2015/src/linker/compiler.js +5 -4
- package/esm2015/src/linker/component_factory.js +4 -2
- package/esm2015/src/linker/component_factory_resolver.js +2 -1
- package/esm2015/src/linker/element_ref.js +2 -2
- package/esm2015/src/linker/ng_module_factory.js +3 -3
- package/esm2015/src/linker/ng_module_factory_loader.js +4 -3
- package/esm2015/src/linker/query_list.js +3 -1
- package/esm2015/src/linker/system_js_ng_module_factory_loader.js +3 -3
- package/esm2015/src/linker/template_ref.js +2 -1
- package/esm2015/src/linker/view_container_ref.js +2 -1
- package/esm2015/src/linker/view_ref.js +4 -2
- package/esm2015/src/metadata/di.js +13 -5
- package/esm2015/src/metadata/directives.js +20 -7
- package/esm2015/src/metadata/lifecycle_hooks.js +10 -5
- package/esm2015/src/metadata/ng_module.js +8 -6
- package/esm2015/src/metadata/view.js +1 -1
- package/esm2015/src/platform_core_providers.js +2 -2
- package/esm2015/src/profile/profile.js +5 -5
- package/esm2015/src/profile/wtf_impl.js +2 -2
- package/esm2015/src/r3_symbols.js +1 -1
- package/esm2015/src/reflection/reflection_capabilities.js +3 -3
- package/esm2015/src/render/api.js +20 -7
- package/esm2015/src/render3/component.js +52 -18
- package/esm2015/src/render3/component_ref.js +15 -15
- package/esm2015/src/render3/context_discovery.js +35 -126
- package/esm2015/src/render3/debug.js +33 -56
- package/esm2015/src/render3/definition.js +42 -37
- package/esm2015/src/render3/di.js +4 -28
- package/esm2015/src/render3/discovery_utils.js +10 -7
- package/esm2015/src/render3/i18n.js +60 -34
- package/esm2015/src/render3/index.js +3 -3
- package/esm2015/src/render3/instructions.js +162 -275
- package/esm2015/src/render3/interfaces/container.js +7 -5
- package/esm2015/src/render3/interfaces/context.js +60 -0
- package/esm2015/src/render3/interfaces/definition.js +7 -1
- package/esm2015/src/render3/interfaces/i18n.js +338 -0
- package/esm2015/src/render3/interfaces/node.js +12 -126
- package/esm2015/src/render3/interfaces/player.js +73 -1
- package/esm2015/src/render3/interfaces/styling.js +18 -22
- package/esm2015/src/render3/interfaces/view.js +19 -26
- package/esm2015/src/render3/jit/compiler_facade.js +22 -0
- package/esm2015/src/render3/jit/compiler_facade_interface.js +229 -0
- package/esm2015/src/render3/jit/directive.js +57 -93
- package/esm2015/src/render3/jit/environment.js +7 -3
- package/esm2015/src/render3/jit/injectable.js +21 -46
- package/esm2015/src/render3/jit/module.js +16 -43
- package/esm2015/src/render3/jit/pipe.js +6 -12
- package/esm2015/src/render3/jit/util.js +14 -17
- package/esm2015/src/render3/node_assert.js +1 -1
- package/esm2015/src/render3/node_manipulation.js +99 -109
- package/esm2015/src/render3/players.js +67 -0
- package/esm2015/src/render3/styling/class_and_style_bindings.js +347 -88
- package/esm2015/src/render3/styling/core_player_handler.js +2 -2
- package/esm2015/src/render3/styling/player_factory.js +48 -0
- package/esm2015/src/render3/styling/util.js +165 -17
- package/esm2015/src/render3/util.js +73 -20
- package/esm2015/src/render3/view_engine_compatibility.js +56 -40
- package/esm2015/src/sanitization/security.js +2 -2
- package/esm2015/src/testability/testability.js +5 -6
- package/esm2015/src/type.js +5 -2
- package/esm2015/src/util/decorators.js +2 -1
- package/esm2015/src/util.js +15 -1
- package/esm2015/src/version.js +6 -4
- package/esm2015/src/view/refs.js +3 -3
- package/esm2015/src/view/services.js +8 -6
- package/esm2015/src/zone/ng_zone.js +2 -2
- package/esm2015/testing/src/async.js +2 -2
- package/esm2015/testing/src/component_fixture.js +2 -2
- package/esm2015/testing/src/fake_async.js +7 -7
- package/esm2015/testing/src/fake_async_fallback.js +7 -7
- package/esm2015/testing/src/metadata_override.js +1 -1
- package/esm2015/testing/src/r3_test_bed.js +8 -6
- package/esm2015/testing/src/test_bed.js +10 -8
- package/esm2015/testing/src/test_bed_common.js +6 -6
- package/esm2015/testing/src/test_compiler.js +3 -3
- package/esm5/core.js +6 -6
- package/esm5/src/application_init.js +5 -1
- package/esm5/src/application_module.js +2 -2
- package/esm5/src/application_ref.js +11 -9
- package/esm5/src/application_tokens.js +7 -7
- package/esm5/src/change_detection/change_detection_util.js +3 -1
- package/esm5/src/change_detection/change_detector_ref.js +2 -1
- package/esm5/src/change_detection/constants.js +2 -1
- package/esm5/src/change_detection/differs/default_iterable_differ.js +2 -1
- package/esm5/src/change_detection/differs/iterable_differs.js +2 -1
- package/esm5/src/change_detection/differs/keyvalue_differs.js +2 -1
- package/esm5/src/change_detection/pipe_transform.js +1 -1
- package/esm5/src/core_render3_private_export.js +5 -4
- package/esm5/src/debug/debug_node.js +5 -5
- package/esm5/src/di/defs.js +3 -3
- package/esm5/src/di/forward_ref.js +3 -3
- package/esm5/src/di/injectable.js +6 -5
- package/esm5/src/di/injection_token.js +3 -1
- package/esm5/src/di/injector.js +3 -3
- package/esm5/src/di/metadata.js +6 -1
- package/esm5/src/di/provider.js +1 -1
- package/esm5/src/di/r3_injector.js +2 -2
- package/esm5/src/di/reflective_injector.js +2 -2
- package/esm5/src/di/reflective_key.js +3 -1
- package/esm5/src/di/reflective_provider.js +2 -2
- package/esm5/src/error_handler.js +3 -1
- package/esm5/src/event_emitter.js +2 -1
- package/esm5/src/i18n/tokens.js +5 -5
- package/esm5/src/is_dev_mode.js +4 -2
- package/esm5/src/ivy_switch/runtime/ivy_switch_on.js +3 -2
- package/esm5/src/ivy_switch/runtime/legacy.js +4 -1
- package/esm5/src/linker/compiler.js +5 -4
- package/esm5/src/linker/component_factory.js +5 -1
- package/esm5/src/linker/component_factory_resolver.js +4 -1
- package/esm5/src/linker/element_ref.js +2 -2
- package/esm5/src/linker/ng_module_factory.js +3 -3
- package/esm5/src/linker/ng_module_factory_loader.js +4 -3
- package/esm5/src/linker/query_list.js +3 -1
- package/esm5/src/linker/system_js_ng_module_factory_loader.js +3 -3
- package/esm5/src/linker/template_ref.js +2 -1
- package/esm5/src/linker/view_container_ref.js +2 -1
- package/esm5/src/linker/view_ref.js +4 -2
- package/esm5/src/metadata/di.js +10 -3
- package/esm5/src/metadata/directives.js +9 -6
- package/esm5/src/metadata/lifecycle_hooks.js +1 -1
- package/esm5/src/metadata/ng_module.js +4 -3
- package/esm5/src/metadata/view.js +4 -1
- package/esm5/src/platform_core_providers.js +2 -2
- package/esm5/src/profile/profile.js +5 -5
- package/esm5/src/profile/wtf_impl.js +1 -1
- package/esm5/src/r3_symbols.js +1 -1
- package/esm5/src/reflection/reflection_capabilities.js +3 -3
- package/esm5/src/render/api.js +11 -5
- package/esm5/src/render3/component.js +45 -16
- package/esm5/src/render3/component_ref.js +12 -13
- package/esm5/src/render3/context_discovery.js +33 -65
- package/esm5/src/render3/debug.js +31 -50
- package/esm5/src/render3/definition.js +35 -31
- package/esm5/src/render3/di.js +4 -20
- package/esm5/src/render3/discovery_utils.js +12 -7
- package/esm5/src/render3/i18n.js +40 -30
- package/esm5/src/render3/index.js +3 -3
- package/esm5/src/render3/instructions.js +143 -230
- package/esm5/src/render3/interfaces/container.js +6 -5
- package/esm5/src/render3/interfaces/context.js +13 -0
- package/esm5/src/render3/interfaces/definition.js +1 -1
- package/esm5/src/render3/interfaces/i18n.js +25 -0
- package/esm5/src/render3/interfaces/node.js +1 -1
- package/esm5/src/render3/interfaces/player.js +1 -1
- package/esm5/src/render3/interfaces/styling.js +1 -8
- package/esm5/src/render3/interfaces/view.js +18 -17
- package/esm5/src/render3/jit/compiler_facade.js +21 -0
- package/esm5/src/render3/jit/compiler_facade_interface.js +15 -0
- package/esm5/src/render3/jit/directive.js +44 -79
- package/esm5/src/render3/jit/environment.js +7 -3
- package/esm5/src/render3/jit/injectable.js +26 -46
- package/esm5/src/render3/jit/module.js +16 -31
- package/esm5/src/render3/jit/pipe.js +6 -9
- package/esm5/src/render3/jit/util.js +12 -17
- package/esm5/src/render3/node_assert.js +1 -1
- package/esm5/src/render3/node_manipulation.js +89 -101
- package/esm5/src/render3/players.js +59 -0
- package/esm5/src/render3/styling/class_and_style_bindings.js +248 -85
- package/esm5/src/render3/styling/core_player_handler.js +2 -2
- package/esm5/src/render3/styling/player_factory.js +29 -0
- package/esm5/src/render3/styling/util.js +132 -14
- package/esm5/src/render3/util.js +54 -21
- package/esm5/src/render3/view_engine_compatibility.js +46 -32
- package/esm5/src/sanitization/security.js +3 -3
- package/esm5/src/testability/testability.js +4 -4
- package/esm5/src/type.js +2 -2
- package/esm5/src/util/decorators.js +1 -1
- package/esm5/src/util.js +13 -1
- package/esm5/src/version.js +6 -3
- package/esm5/src/view/refs.js +1 -1
- package/esm5/src/view/services.js +7 -10
- package/esm5/src/zone/ng_zone.js +2 -2
- package/esm5/testing/src/async.js +2 -2
- package/esm5/testing/src/component_fixture.js +2 -2
- package/esm5/testing/src/fake_async.js +7 -7
- package/esm5/testing/src/fake_async_fallback.js +7 -7
- package/esm5/testing/src/metadata_override.js +1 -1
- package/esm5/testing/src/r3_test_bed.js +8 -7
- package/esm5/testing/src/test_bed.js +10 -8
- package/esm5/testing/src/test_bed_common.js +4 -4
- package/esm5/testing/src/test_compiler.js +3 -3
- package/fesm2015/core.js +2486 -1951
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +36 -32
- package/fesm2015/testing.js.map +1 -1
- package/fesm5/core.js +1830 -1439
- package/fesm5/core.js.map +1 -1
- package/fesm5/testing.js +36 -33
- package/fesm5/testing.js.map +1 -1
- package/package.json +1 -2
- package/src/application_init.d.ts +4 -0
- package/src/application_module.d.ts +1 -1
- package/src/application_ref.d.ts +10 -8
- package/src/application_tokens.d.ts +6 -6
- package/src/change_detection/change_detection_util.d.ts +2 -0
- package/src/change_detection/change_detector_ref.d.ts +1 -0
- package/src/change_detection/constants.d.ts +1 -0
- package/src/change_detection/differs/default_iterable_differ.d.ts +1 -0
- package/src/change_detection/differs/iterable_differs.d.ts +8 -6
- package/src/change_detection/differs/keyvalue_differs.d.ts +5 -4
- package/src/change_detection/pipe_transform.d.ts +1 -1
- package/src/core_render3_private_export.d.ts +7 -5
- package/src/debug/debug_node.d.ts +5 -5
- package/src/di/defs.d.ts +4 -4
- package/src/di/forward_ref.d.ts +3 -3
- package/src/di/injectable.d.ts +10 -7
- package/src/di/injection_token.d.ts +2 -0
- package/src/di/injector.d.ts +5 -3
- package/src/di/metadata.d.ts +24 -1
- package/src/di/provider.d.ts +19 -5
- package/src/di/r3_injector.d.ts +1 -1
- package/src/di/reflective_injector.d.ts +1 -1
- package/src/di/reflective_key.d.ts +2 -0
- package/src/di/reflective_provider.d.ts +2 -2
- package/src/error_handler.d.ts +2 -0
- package/src/event_emitter.d.ts +1 -0
- package/src/i18n/tokens.d.ts +4 -4
- package/src/is_dev_mode.d.ts +3 -1
- package/src/ivy_switch/runtime/ivy_switch_on.d.ts +2 -1
- package/src/ivy_switch/runtime/legacy.d.ts +3 -0
- package/src/linker/compiler.d.ts +5 -4
- package/src/linker/component_factory.d.ts +5 -1
- package/src/linker/component_factory_resolver.d.ts +3 -0
- package/src/linker/element_ref.d.ts +1 -1
- package/src/linker/ng_module_factory.d.ts +2 -2
- package/src/linker/ng_module_factory_loader.d.ts +3 -2
- package/src/linker/query_list.d.ts +2 -0
- package/src/linker/system_js_ng_module_factory_loader.d.ts +2 -2
- package/src/linker/template_ref.d.ts +1 -0
- package/src/linker/view_container_ref.d.ts +1 -0
- package/src/linker/view_ref.d.ts +3 -1
- package/src/metadata/di.d.ts +13 -5
- package/src/metadata/directives.d.ts +19 -6
- package/src/metadata/lifecycle_hooks.d.ts +9 -4
- package/src/metadata/ng_module.d.ts +7 -7
- package/src/metadata/view.d.ts +3 -0
- package/src/platform_core_providers.d.ts +1 -1
- package/src/profile/profile.d.ts +4 -4
- package/src/profile/wtf_impl.d.ts +1 -1
- package/src/r3_symbols.d.ts +1 -1
- package/src/render/api.d.ts +10 -7
- package/src/render3/component.d.ts +14 -3
- package/src/render3/context_discovery.d.ts +6 -58
- package/src/render3/definition.d.ts +0 -4
- package/src/render3/di.d.ts +1 -3
- package/src/render3/discovery_utils.d.ts +7 -1
- package/src/render3/i18n.d.ts +4 -0
- package/src/render3/index.d.ts +2 -2
- package/src/render3/instructions.d.ts +43 -50
- package/src/render3/interfaces/container.d.ts +36 -22
- package/src/render3/interfaces/context.d.ts +52 -0
- package/src/render3/interfaces/definition.d.ts +8 -3
- package/src/render3/interfaces/i18n.d.ts +326 -0
- package/src/render3/interfaces/node.d.ts +12 -89
- package/src/render3/interfaces/player.d.ts +58 -4
- package/src/render3/interfaces/styling.d.ts +17 -15
- package/src/render3/interfaces/view.d.ts +28 -28
- package/src/render3/jit/compiler_facade.d.ts +3 -0
- package/src/render3/jit/compiler_facade_interface.d.ts +131 -0
- package/src/render3/jit/directive.d.ts +3 -0
- package/src/render3/jit/util.d.ts +3 -3
- package/src/render3/node_manipulation.d.ts +21 -22
- package/src/render3/players.d.ts +32 -0
- package/src/render3/styling/class_and_style_bindings.d.ts +31 -24
- package/src/render3/styling/player_factory.d.ts +31 -0
- package/src/render3/styling/util.d.ts +31 -9
- package/src/render3/util.d.ts +32 -15
- package/src/render3/view_engine_compatibility.d.ts +3 -0
- package/src/sanitization/security.d.ts +2 -2
- package/src/testability/testability.d.ts +5 -6
- package/src/type.d.ts +6 -1
- package/src/util/decorators.d.ts +1 -0
- package/src/util.d.ts +10 -0
- package/src/version.d.ts +4 -1
- package/src/view/services.d.ts +2 -2
- package/src/zone/ng_zone.d.ts +1 -1
- package/testing/src/async.d.ts +1 -1
- package/testing/src/component_fixture.d.ts +1 -1
- package/testing/src/fake_async.d.ts +6 -6
- package/testing/src/fake_async_fallback.d.ts +6 -6
- package/testing/src/metadata_override.d.ts +1 -1
- package/testing/src/r3_test_bed.d.ts +4 -4
- package/testing/src/test_bed.d.ts +12 -10
- package/testing/src/test_bed_common.d.ts +6 -6
- package/testing/src/test_compiler.d.ts +2 -2
- package/testing/testing.metadata.json +1 -1
- package/esm2015/src/render3/player.js +0 -51
- package/esm5/src/render3/player.js +0 -39
- package/src/render3/player.d.ts +0 -3
|
@@ -5,7 +5,7 @@ var CorePlayerHandler = /** @class */ (function () {
|
|
|
5
5
|
CorePlayerHandler.prototype.flushPlayers = function () {
|
|
6
6
|
for (var i = 0; i < this._players.length; i++) {
|
|
7
7
|
var player = this._players[i];
|
|
8
|
-
if (!player.parent) {
|
|
8
|
+
if (!player.parent && player.state === 0 /* Pending */) {
|
|
9
9
|
player.play();
|
|
10
10
|
}
|
|
11
11
|
}
|
|
@@ -16,4 +16,4 @@ var CorePlayerHandler = /** @class */ (function () {
|
|
|
16
16
|
}());
|
|
17
17
|
export { CorePlayerHandler };
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZV9wbGF5ZXJfaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvc3R5bGluZy9jb3JlX3BsYXllcl9oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBO0lBQUE7UUFDVSxhQUFRLEdBQWEsRUFBRSxDQUFDO0lBYWxDLENBQUM7SUFYQyx3Q0FBWSxHQUFaO1FBQ0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdDLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEtBQUssb0JBQXNCLEVBQUU7Z0JBQ3hELE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNmO1NBQ0Y7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELHVDQUFXLEdBQVgsVUFBWSxNQUFjLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELHdCQUFDO0FBQUQsQ0FBQyxBQWRELElBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1BsYXlTdGF0ZSwgUGxheWVyLCBQbGF5ZXJIYW5kbGVyfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BsYXllcic7XG5cbmV4cG9ydCBjbGFzcyBDb3JlUGxheWVySGFuZGxlciBpbXBsZW1lbnRzIFBsYXllckhhbmRsZXIge1xuICBwcml2YXRlIF9wbGF5ZXJzOiBQbGF5ZXJbXSA9IFtdO1xuXG4gIGZsdXNoUGxheWVycygpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3BsYXllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHBsYXllciA9IHRoaXMuX3BsYXllcnNbaV07XG4gICAgICBpZiAoIXBsYXllci5wYXJlbnQgJiYgcGxheWVyLnN0YXRlID09PSBQbGF5U3RhdGUuUGVuZGluZykge1xuICAgICAgICBwbGF5ZXIucGxheSgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9wbGF5ZXJzLmxlbmd0aCA9IDA7XG4gIH1cblxuICBxdWV1ZVBsYXllcihwbGF5ZXI6IFBsYXllcikgeyB0aGlzLl9wbGF5ZXJzLnB1c2gocGxheWVyKTsgfVxufVxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Combines the binding value and a factory for an animation player.
|
|
3
|
+
*
|
|
4
|
+
* Used to bind a player to an element template binding (currently only
|
|
5
|
+
* `[style]`, `[style.prop]`, `[class]` and `[class.name]` bindings
|
|
6
|
+
* supported). The provided `factoryFn` function will be run once all
|
|
7
|
+
* the associated bindings have been evaluated on the element and is
|
|
8
|
+
* designed to return a player which will then be placed on the element.
|
|
9
|
+
*
|
|
10
|
+
* @param factoryFn The function that is used to create a player
|
|
11
|
+
* once all the rendering-related (styling values) have been
|
|
12
|
+
* processed for the element binding.
|
|
13
|
+
* @param value The raw value that will be exposed to the binding
|
|
14
|
+
* so that the binding can update its internal values when
|
|
15
|
+
* any changes are evaluated.
|
|
16
|
+
*/
|
|
17
|
+
export function bindPlayerFactory(factoryFn, value) {
|
|
18
|
+
return new BoundPlayerFactory(factoryFn, value);
|
|
19
|
+
}
|
|
20
|
+
var BoundPlayerFactory = /** @class */ (function () {
|
|
21
|
+
function BoundPlayerFactory(fn, value) {
|
|
22
|
+
this.fn = fn;
|
|
23
|
+
this.value = value;
|
|
24
|
+
}
|
|
25
|
+
return BoundPlayerFactory;
|
|
26
|
+
}());
|
|
27
|
+
export { BoundPlayerFactory };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWVyX2ZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL3N0eWxpbmcvcGxheWVyX2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFJLFNBQStCLEVBQUUsS0FBUTtJQUM1RSxPQUFPLElBQUksa0JBQWtCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBUSxDQUFDO0FBQ3pELENBQUM7QUFFRDtJQUVFLDRCQUFtQixFQUF3QixFQUFTLEtBQVE7UUFBekMsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFHO0lBQUcsQ0FBQztJQUNsRSx5QkFBQztBQUFELENBQUMsQUFIRCxJQUdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtQbGF5ZXJGYWN0b3J5LCBQbGF5ZXJGYWN0b3J5QnVpbGRGbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wbGF5ZXInO1xuXG4vKipcbiAqIENvbWJpbmVzIHRoZSBiaW5kaW5nIHZhbHVlIGFuZCBhIGZhY3RvcnkgZm9yIGFuIGFuaW1hdGlvbiBwbGF5ZXIuXG4gKlxuICogVXNlZCB0byBiaW5kIGEgcGxheWVyIHRvIGFuIGVsZW1lbnQgdGVtcGxhdGUgYmluZGluZyAoY3VycmVudGx5IG9ubHlcbiAqIGBbc3R5bGVdYCwgYFtzdHlsZS5wcm9wXWAsIGBbY2xhc3NdYCBhbmQgYFtjbGFzcy5uYW1lXWAgYmluZGluZ3NcbiAqIHN1cHBvcnRlZCkuIFRoZSBwcm92aWRlZCBgZmFjdG9yeUZuYCBmdW5jdGlvbiB3aWxsIGJlIHJ1biBvbmNlIGFsbFxuICogdGhlIGFzc29jaWF0ZWQgYmluZGluZ3MgaGF2ZSBiZWVuIGV2YWx1YXRlZCBvbiB0aGUgZWxlbWVudCBhbmQgaXNcbiAqIGRlc2lnbmVkIHRvIHJldHVybiBhIHBsYXllciB3aGljaCB3aWxsIHRoZW4gYmUgcGxhY2VkIG9uIHRoZSBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSBmYWN0b3J5Rm4gVGhlIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBjcmVhdGUgYSBwbGF5ZXJcbiAqICAgb25jZSBhbGwgdGhlIHJlbmRlcmluZy1yZWxhdGVkIChzdHlsaW5nIHZhbHVlcykgaGF2ZSBiZWVuXG4gKiAgIHByb2Nlc3NlZCBmb3IgdGhlIGVsZW1lbnQgYmluZGluZy5cbiAqIEBwYXJhbSB2YWx1ZSBUaGUgcmF3IHZhbHVlIHRoYXQgd2lsbCBiZSBleHBvc2VkIHRvIHRoZSBiaW5kaW5nXG4gKiAgIHNvIHRoYXQgdGhlIGJpbmRpbmcgY2FuIHVwZGF0ZSBpdHMgaW50ZXJuYWwgdmFsdWVzIHdoZW5cbiAqICAgYW55IGNoYW5nZXMgYXJlIGV2YWx1YXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJpbmRQbGF5ZXJGYWN0b3J5PFQ+KGZhY3RvcnlGbjogUGxheWVyRmFjdG9yeUJ1aWxkRm4sIHZhbHVlOiBUKTogUGxheWVyRmFjdG9yeSB7XG4gIHJldHVybiBuZXcgQm91bmRQbGF5ZXJGYWN0b3J5KGZhY3RvcnlGbiwgdmFsdWUpIGFzIGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEJvdW5kUGxheWVyRmFjdG9yeTxUPiB7XG4gICdfX2JyYW5kX18nOiAnQnJhbmQgZm9yIFBsYXllckZhY3RvcnkgdGhhdCBub3RoaW5nIHdpbGwgbWF0Y2gnO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZm46IFBsYXllckZhY3RvcnlCdWlsZEZuLCBwdWJsaWMgdmFsdWU6IFQpIHt9XG59XG4iXX0=
|
|
@@ -1,26 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
8
|
+
import '../ng_dev_mode';
|
|
1
9
|
import { getContext } from '../context_discovery';
|
|
2
|
-
|
|
3
|
-
|
|
10
|
+
import { ACTIVE_INDEX } from '../interfaces/container';
|
|
11
|
+
import { FLAGS, HEADER_OFFSET, HOST } from '../interfaces/view';
|
|
12
|
+
import { getTNode } from '../util';
|
|
13
|
+
import { CorePlayerHandler } from './core_player_handler';
|
|
4
14
|
export function createEmptyStylingContext(element, sanitizer, initialStylingValues) {
|
|
5
15
|
return [
|
|
6
|
-
|
|
16
|
+
null,
|
|
17
|
+
sanitizer || null,
|
|
18
|
+
initialStylingValues || [null],
|
|
19
|
+
0,
|
|
20
|
+
0,
|
|
21
|
+
element || null,
|
|
22
|
+
null,
|
|
23
|
+
null // PreviousMultiStyleValue
|
|
7
24
|
];
|
|
8
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Used clone a copy of a pre-computed template of a styling context.
|
|
28
|
+
*
|
|
29
|
+
* A pre-computed template is designed to be computed once for a given element
|
|
30
|
+
* (instructions.ts has logic for caching this).
|
|
31
|
+
*/
|
|
32
|
+
export function allocStylingContext(element, templateStyleContext) {
|
|
33
|
+
// each instance gets a copy
|
|
34
|
+
var context = templateStyleContext.slice();
|
|
35
|
+
context[5 /* ElementPosition */] = element;
|
|
36
|
+
return context;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Retrieve the `StylingContext` at a given index.
|
|
40
|
+
*
|
|
41
|
+
* This method lazily creates the `StylingContext`. This is because in most cases
|
|
42
|
+
* we have styling without any bindings. Creating `StylingContext` eagerly would mean that
|
|
43
|
+
* every style declaration such as `<div style="color: red">` would result `StyleContext`
|
|
44
|
+
* which would create unnecessary memory pressure.
|
|
45
|
+
*
|
|
46
|
+
* @param index Index of the style allocation. See: `elementStyling`.
|
|
47
|
+
* @param viewData The view to search for the styling context
|
|
48
|
+
*/
|
|
49
|
+
export function getStylingContext(index, viewData) {
|
|
50
|
+
var storageIndex = index + HEADER_OFFSET;
|
|
51
|
+
var slotValue = viewData[storageIndex];
|
|
52
|
+
var wrapper = viewData;
|
|
53
|
+
while (Array.isArray(slotValue)) {
|
|
54
|
+
wrapper = slotValue;
|
|
55
|
+
slotValue = slotValue[HOST];
|
|
56
|
+
}
|
|
57
|
+
if (isStylingContext(wrapper)) {
|
|
58
|
+
return wrapper;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// This is an LViewData or an LContainer
|
|
62
|
+
var stylingTemplate = getTNode(index, viewData).stylingTemplate;
|
|
63
|
+
if (wrapper !== viewData) {
|
|
64
|
+
storageIndex = HOST;
|
|
65
|
+
}
|
|
66
|
+
return wrapper[storageIndex] = stylingTemplate ?
|
|
67
|
+
allocStylingContext(slotValue, stylingTemplate) :
|
|
68
|
+
createEmptyStylingContext(slotValue);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function isStylingContext(value) {
|
|
72
|
+
// Not an LViewData or an LContainer
|
|
73
|
+
return typeof value[FLAGS] !== 'number' && typeof value[ACTIVE_INDEX] !== 'number';
|
|
74
|
+
}
|
|
75
|
+
export function addPlayerInternal(playerContext, rootContext, element, player, playerContextIndex, ref) {
|
|
76
|
+
ref = ref || element;
|
|
77
|
+
if (playerContextIndex) {
|
|
78
|
+
playerContext[playerContextIndex] = player;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
playerContext.push(player);
|
|
82
|
+
}
|
|
83
|
+
if (player) {
|
|
84
|
+
player.addEventListener(200 /* Destroyed */, function () {
|
|
85
|
+
var index = playerContext.indexOf(player);
|
|
86
|
+
var nonFactoryPlayerIndex = playerContext[0 /* NonBuilderPlayersStart */];
|
|
87
|
+
// if the player is being removed from the factory side of the context
|
|
88
|
+
// (which is where the [style] and [class] bindings do their thing) then
|
|
89
|
+
// that side of the array cannot be resized since the respective bindings
|
|
90
|
+
// have pointer index values that point to the associated factory instance
|
|
91
|
+
if (index) {
|
|
92
|
+
if (index < nonFactoryPlayerIndex) {
|
|
93
|
+
playerContext[index] = null;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
playerContext.splice(index, 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
player.destroy();
|
|
100
|
+
});
|
|
101
|
+
var playerHandler = rootContext.playerHandler || (rootContext.playerHandler = new CorePlayerHandler());
|
|
102
|
+
playerHandler.queuePlayer(player, ref);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
export function getPlayersInternal(playerContext) {
|
|
108
|
+
var players = [];
|
|
109
|
+
var nonFactoryPlayersStart = playerContext[0 /* NonBuilderPlayersStart */];
|
|
110
|
+
// add all factory-based players (which are apart of [style] and [class] bindings)
|
|
111
|
+
for (var i = 1 /* PlayerBuildersStartPosition */ + 1 /* PlayerOffsetPosition */; i < nonFactoryPlayersStart; i += 2 /* PlayerAndPlayerBuildersTupleSize */) {
|
|
112
|
+
var player = playerContext[i];
|
|
113
|
+
if (player) {
|
|
114
|
+
players.push(player);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// add all custom players (not apart of [style] and [class] bindings)
|
|
118
|
+
for (var i = nonFactoryPlayersStart; i < playerContext.length; i++) {
|
|
119
|
+
players.push(playerContext[i]);
|
|
120
|
+
}
|
|
121
|
+
return players;
|
|
122
|
+
}
|
|
9
123
|
export function getOrCreatePlayerContext(target, context) {
|
|
10
124
|
context = context || getContext(target);
|
|
11
|
-
if (
|
|
12
|
-
|
|
125
|
+
if (!context) {
|
|
126
|
+
ngDevMode && throwInvalidRefError();
|
|
127
|
+
return null;
|
|
13
128
|
}
|
|
14
129
|
var lViewData = context.lViewData, nodeIndex = context.nodeIndex;
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
130
|
+
var stylingContext = getStylingContext(nodeIndex - HEADER_OFFSET, lViewData);
|
|
131
|
+
return getPlayerContext(stylingContext) || allocPlayerContext(stylingContext);
|
|
132
|
+
}
|
|
133
|
+
export function getPlayerContext(stylingContext) {
|
|
134
|
+
return stylingContext[0 /* PlayerContext */];
|
|
135
|
+
}
|
|
136
|
+
export function allocPlayerContext(data) {
|
|
137
|
+
return data[0 /* PlayerContext */] =
|
|
138
|
+
[5 /* SinglePlayerBuildersStartPosition */, null, null, null, null];
|
|
21
139
|
}
|
|
22
|
-
function
|
|
23
|
-
|
|
140
|
+
export function throwInvalidRefError() {
|
|
141
|
+
throw new Error('Only elements that exist in an Angular application can be used for animations');
|
|
24
142
|
}
|
|
25
143
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvc3R5bGluZy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBVyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUsxRCxNQUFNLENBQUMsSUFBTSxTQUFTLEdBQVUsRUFBRSxDQUFDO0FBQ25DLE1BQU0sQ0FBQyxJQUFNLFNBQVMsR0FBeUIsRUFBRSxDQUFDO0FBRWxELE1BQU0sVUFBVSx5QkFBeUIsQ0FDckMsT0FBNkIsRUFBRSxTQUFrQyxFQUNqRSxvQkFBb0M7SUFDdEMsT0FBTztRQUNMLE9BQU8sSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsSUFBSSxJQUFJLEVBQUUsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJO0tBQzNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQVUsRUFBRSxPQUF5QjtJQUM1RSxPQUFPLEdBQUcsT0FBTyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUcsQ0FBQztJQUMxQyxJQUFJLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUN6QixNQUFNLElBQUksS0FBSyxDQUNYLGtGQUFrRixDQUFDLENBQUM7S0FDekY7SUFFTSxJQUFBLDZCQUFTLEVBQUUsNkJBQVMsQ0FBWTtJQUN2QyxJQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsSUFBSSxjQUFjLEdBQUcsS0FBdUIsQ0FBQztJQUM3QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN6QixjQUFjLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLHlCQUF5QixDQUFDLEtBQXFCLENBQUMsQ0FBQztLQUMxRjtJQUNELE9BQU8sY0FBYyx1QkFBNEIsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFvQjtJQUM5QyxPQUFPLElBQUksdUJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge1N0eWxlU2FuaXRpemVGbn0gZnJvbSAnLi4vLi4vc2FuaXRpemF0aW9uL3N0eWxlX3Nhbml0aXplcic7XG5pbXBvcnQge0xDb250ZXh0LCBnZXRDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0X2Rpc2NvdmVyeSc7XG5pbXBvcnQge0xFbGVtZW50Tm9kZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7UGxheWVyQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wbGF5ZXInO1xuaW1wb3J0IHtJbml0aWFsU3R5bGVzLCBTdHlsaW5nQ29udGV4dCwgU3R5bGluZ0luZGV4fSBmcm9tICcuLi9pbnRlcmZhY2VzL3N0eWxpbmcnO1xuXG5leHBvcnQgY29uc3QgRU1QVFlfQVJSOiBhbnlbXSA9IFtdO1xuZXhwb3J0IGNvbnN0IEVNUFRZX09CSjoge1trZXk6IHN0cmluZ106IGFueX0gPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5U3R5bGluZ0NvbnRleHQoXG4gICAgZWxlbWVudD86IExFbGVtZW50Tm9kZSB8IG51bGwsIHNhbml0aXplcj86IFN0eWxlU2FuaXRpemVGbiB8IG51bGwsXG4gICAgaW5pdGlhbFN0eWxpbmdWYWx1ZXM/OiBJbml0aWFsU3R5bGVzKTogU3R5bGluZ0NvbnRleHQge1xuICByZXR1cm4gW1xuICAgIGVsZW1lbnQgfHwgbnVsbCwgbnVsbCwgc2FuaXRpemVyIHx8IG51bGwsIGluaXRpYWxTdHlsaW5nVmFsdWVzIHx8IFtudWxsXSwgMCwgMCwgbnVsbCwgbnVsbFxuICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3JDcmVhdGVQbGF5ZXJDb250ZXh0KHRhcmdldDoge30sIGNvbnRleHQ/OiBMQ29udGV4dCB8IG51bGwpOiBQbGF5ZXJDb250ZXh0IHtcbiAgY29udGV4dCA9IGNvbnRleHQgfHwgZ2V0Q29udGV4dCh0YXJnZXQpICE7XG4gIGlmIChuZ0Rldk1vZGUgJiYgIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdPbmx5IGVsZW1lbnRzIHRoYXQgZXhpc3QgaW4gYW4gQW5ndWxhciBhcHBsaWNhdGlvbiBjYW4gYmUgdXNlZCBmb3IgcGxheWVyIGFjY2VzcycpO1xuICB9XG5cbiAgY29uc3Qge2xWaWV3RGF0YSwgbm9kZUluZGV4fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHZhbHVlID0gbFZpZXdEYXRhW25vZGVJbmRleF07XG4gIGxldCBzdHlsaW5nQ29udGV4dCA9IHZhbHVlIGFzIFN0eWxpbmdDb250ZXh0O1xuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgc3R5bGluZ0NvbnRleHQgPSBsVmlld0RhdGFbbm9kZUluZGV4XSA9IGNyZWF0ZUVtcHR5U3R5bGluZ0NvbnRleHQodmFsdWUgYXMgTEVsZW1lbnROb2RlKTtcbiAgfVxuICByZXR1cm4gc3R5bGluZ0NvbnRleHRbU3R5bGluZ0luZGV4LlBsYXllckNvbnRleHRdIHx8IGFsbG9jUGxheWVyQ29udGV4dChzdHlsaW5nQ29udGV4dCk7XG59XG5cbmZ1bmN0aW9uIGFsbG9jUGxheWVyQ29udGV4dChkYXRhOiBTdHlsaW5nQ29udGV4dCk6IFBsYXllckNvbnRleHQge1xuICByZXR1cm4gZGF0YVtTdHlsaW5nSW5kZXguUGxheWVyQ29udGV4dF0gPSBbXTtcbn1cbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvc3R5bGluZy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUtqRSxPQUFPLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQXlCLE1BQU0sb0JBQW9CLENBQUM7QUFDdEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVqQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLFVBQVUseUJBQXlCLENBQ3JDLE9BQXlCLEVBQUUsU0FBa0MsRUFDN0Qsb0JBQW9DO0lBQ3RDLE9BQU87UUFDTCxJQUFJO1FBQ0osU0FBUyxJQUFJLElBQUk7UUFDakIsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUNELENBQUM7UUFDRCxPQUFPLElBQUksSUFBSTtRQUNmLElBQUk7UUFDSixJQUFJLENBQTZCLDBCQUEwQjtLQUM1RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUMvQixPQUF3QixFQUFFLG9CQUFvQztJQUNoRSw0QkFBNEI7SUFDNUIsSUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUEyQixDQUFDO0lBQ3RFLE9BQU8seUJBQThCLEdBQUcsT0FBTyxDQUFDO0lBQ2hELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWEsRUFB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QU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0ICcuLi9uZ19kZXZfbW9kZSc7XG5cbmltcG9ydCB7U3R5bGVTYW5pdGl6ZUZufSBmcm9tICcuLi8uLi9zYW5pdGl6YXRpb24vc3R5bGVfc2FuaXRpemVyJztcbmltcG9ydCB7Z2V0Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dF9kaXNjb3ZlcnknO1xuaW1wb3J0IHtBQ1RJVkVfSU5ERVgsIExDb250YWluZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvY29udGFpbmVyJztcbmltcG9ydCB7TENvbnRleHR9IGZyb20gJy4uL2ludGVyZmFjZXMvY29udGV4dCc7XG5pbXBvcnQge1BsYXlTdGF0ZSwgUGxheWVyLCBQbGF5ZXJDb250ZXh0LCBQbGF5ZXJJbmRleH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wbGF5ZXInO1xuaW1wb3J0IHtSRWxlbWVudH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZW5kZXJlcic7XG5pbXBvcnQge0luaXRpYWxTdHlsZXMsIFN0eWxpbmdDb250ZXh0LCBTdHlsaW5nSW5kZXh9IGZyb20gJy4uL2ludGVyZmFjZXMvc3R5bGluZyc7XG5pbXBvcnQge0ZMQUdTLCBIRUFERVJfT0ZGU0VULCBIT1NULCBMVmlld0RhdGEsIFJvb3RDb250ZXh0fSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuaW1wb3J0IHtnZXRUTm9kZX0gZnJvbSAnLi4vdXRpbCc7XG5cbmltcG9ydCB7Q29yZVBsYXllckhhbmRsZXJ9IGZyb20gJy4vY29yZV9wbGF5ZXJfaGFuZGxlcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbXB0eVN0eWxpbmdDb250ZXh0KFxuICAgIGVsZW1lbnQ/OiBSRWxlbWVudCB8IG51bGwsIHNhbml0aXplcj86IFN0eWxlU2FuaXRpemVGbiB8IG51bGwsXG4gICAgaW5pdGlhbFN0eWxpbmdWYWx1ZXM/OiBJbml0aWFsU3R5bGVzKTogU3R5bGluZ0NvbnRleHQge1xuICByZXR1cm4gW1xuICAgIG51bGwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBsYXllckNvbnRleHRcbiAgICBzYW5pdGl6ZXIgfHwgbnVsbCwgICAgICAgICAgICAgICAvLyBTdHlsZVNhbml0aXplclxuICAgIGluaXRpYWxTdHlsaW5nVmFsdWVzIHx8IFtudWxsXSwgIC8vIEluaXRpYWxTdHlsZXNcbiAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBNYXN0ZXJGbGFnc1xuICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsYXNzT2Zmc2V0XG4gICAgZWxlbWVudCB8fCBudWxsLCAgICAgICAgICAgICAgICAgLy8gRWxlbWVudFxuICAgIG51bGwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByZXZpb3VzTXVsdGlDbGFzc1ZhbHVlXG4gICAgbnVsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUHJldmlvdXNNdWx0aVN0eWxlVmFsdWVcbiAgXTtcbn1cblxuLyoqXG4gKiBVc2VkIGNsb25lIGEgY29weSBvZiBhIHByZS1jb21wdXRlZCB0ZW1wbGF0ZSBvZiBhIHN0eWxpbmcgY29udGV4dC5cbiAqXG4gKiBBIHByZS1jb21wdXRlZCB0ZW1wbGF0ZSBpcyBkZXNpZ25lZCB0byBiZSBjb21wdXRlZCBvbmNlIGZvciBhIGdpdmVuIGVsZW1lbnRcbiAqIChpbnN0cnVjdGlvbnMudHMgaGFzIGxvZ2ljIGZvciBjYWNoaW5nIHRoaXMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxsb2NTdHlsaW5nQ29udGV4dChcbiAgICBlbGVtZW50OiBSRWxlbWVudCB8IG51bGwsIHRlbXBsYXRlU3R5bGVDb250ZXh0OiBTdHlsaW5nQ29udGV4dCk6IFN0eWxpbmdDb250ZXh0IHtcbiAgLy8gZWFjaCBpbnN0YW5jZSBnZXRzIGEgY29weVxuICBjb25zdCBjb250ZXh0ID0gdGVtcGxhdGVTdHlsZUNvbnRleHQuc2xpY2UoKSBhcyBhbnkgYXMgU3R5bGluZ0NvbnRleHQ7XG4gIGNvbnRleHRbU3R5bGluZ0luZGV4LkVsZW1lbnRQb3NpdGlvbl0gPSBlbGVtZW50O1xuICByZXR1cm4gY29udGV4dDtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZSB0aGUgYFN0eWxpbmdDb250ZXh0YCBhdCBhIGdpdmVuIGluZGV4LlxuICpcbiAqIFRoaXMgbWV0aG9kIGxhemlseSBjcmVhdGVzIHRoZSBgU3R5bGluZ0NvbnRleHRgLiBUaGlzIGlzIGJlY2F1c2UgaW4gbW9zdCBjYXNlc1xuICogd2UgaGF2ZSBzdHlsaW5nIHdpdGhvdXQgYW55IGJpbmRpbmdzLiBDcmVhdGluZyBgU3R5bGluZ0NvbnRleHRgIGVhZ2VybHkgd291bGQgbWVhbiB0aGF0XG4gKiBldmVyeSBzdHlsZSBkZWNsYXJhdGlvbiBzdWNoIGFzIGA8ZGl2IHN0eWxlPVwiY29sb3I6IHJlZFwiPmAgd291bGQgcmVzdWx0IGBTdHlsZUNvbnRleHRgXG4gKiB3aGljaCB3b3VsZCBjcmVhdGUgdW5uZWNlc3NhcnkgbWVtb3J5IHByZXNzdXJlLlxuICpcbiAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgc3R5bGUgYWxsb2NhdGlvbi4gU2VlOiBgZWxlbWVudFN0eWxpbmdgLlxuICogQHBhcmFtIHZpZXdEYXRhIFRoZSB2aWV3IHRvIHNlYXJjaCBmb3IgdGhlIHN0eWxpbmcgY29udGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3R5bGluZ0NvbnRleHQoaW5kZXg6IG51bWJlciwgdmlld0RhdGE6IExWaWV3RGF0YSk6IFN0eWxpbmdDb250ZXh0IHtcbiAgbGV0IHN0b3JhZ2VJbmRleCA9IGluZGV4ICsgSEVBREVSX09GRlNFVDtcbiAgbGV0IHNsb3RWYWx1ZTogTENvbnRhaW5lcnxMVmlld0RhdGF8U3R5bGluZ0NvbnRleHR8UkVsZW1lbnQgPSB2aWV3RGF0YVtzdG9yYWdlSW5kZXhdO1xuICBsZXQgd3JhcHBlcjogTENvbnRhaW5lcnxMVmlld0RhdGF8U3R5bGluZ0NvbnRleHQgPSB2aWV3RGF0YTtcblxuICB3aGlsZSAoQXJyYXkuaXNBcnJheShzbG90VmFsdWUpKSB7XG4gICAgd3JhcHBlciA9IHNsb3RWYWx1ZTtcbiAgICBzbG90VmFsdWUgPSBzbG90VmFsdWVbSE9TVF0gYXMgTFZpZXdEYXRhIHwgU3R5bGluZ0NvbnRleHQgfCBSRWxlbWVudDtcbiAgfVxuXG4gIGlmIChpc1N0eWxpbmdDb250ZXh0KHdyYXBwZXIpKSB7XG4gICAgcmV0dXJuIHdyYXBwZXIgYXMgU3R5bGluZ0NvbnRleHQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gVGhpcyBpcyBhbiBMVmlld0RhdGEgb3IgYW4gTENvbnRhaW5lclxuICAgIGNvbnN0IHN0eWxpbmdUZW1wbGF0ZSA9IGdldFROb2RlKGluZGV4LCB2aWV3RGF0YSkuc3R5bGluZ1RlbXBsYXRlO1xuXG4gICAgaWYgKHdyYXBwZXIgIT09IHZpZXdEYXRhKSB7XG4gICAgICBzdG9yYWdlSW5kZXggPSBIT1NUO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwcGVyW3N0b3JhZ2VJbmRleF0gPSBzdHlsaW5nVGVtcGxhdGUgP1xuICAgICAgICBhbGxvY1N0eWxpbmdDb250ZXh0KHNsb3RWYWx1ZSwgc3R5bGluZ1RlbXBsYXRlKSA6XG4gICAgICAgIGNyZWF0ZUVtcHR5U3R5bGluZ0NvbnRleHQoc2xvdFZhbHVlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1N0eWxpbmdDb250ZXh0KHZhbHVlOiBMVmlld0RhdGEgfCBMQ29udGFpbmVyIHwgU3R5bGluZ0NvbnRleHQpIHtcbiAgLy8gTm90IGFuIExWaWV3RGF0YSBvciBhbiBMQ29udGFpbmVyXG4gIHJldHVybiB0eXBlb2YgdmFsdWVbRkxBR1NdICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsdWVbQUNUSVZFX0lOREVYXSAhPT0gJ251bWJlcic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRQbGF5ZXJJbnRlcm5hbChcbiAgICBwbGF5ZXJDb250ZXh0OiBQbGF5ZXJDb250ZXh0LCByb290Q29udGV4dDogUm9vdENvbnRleHQsIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHBsYXllcjogUGxheWVyIHwgbnVsbCwgcGxheWVyQ29udGV4dEluZGV4OiBudW1iZXIsIHJlZj86IGFueSk6IGJvb2xlYW4ge1xuICByZWYgPSByZWYgfHwgZWxlbWVudDtcbiAgaWYgKHBsYXllckNvbnRleHRJbmRleCkge1xuICAgIHBsYXllckNvbnRleHRbcGxheWVyQ29udGV4dEluZGV4XSA9IHBsYXllcjtcbiAgfSBlbHNlIHtcbiAgICBwbGF5ZXJDb250ZXh0LnB1c2gocGxheWVyKTtcbiAgfVxuXG4gIGlmIChwbGF5ZXIpIHtcbiAgICBwbGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcihQbGF5U3RhdGUuRGVzdHJveWVkLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHBsYXllckNvbnRleHQuaW5kZXhPZihwbGF5ZXIpO1xuICAgICAgY29uc3Qgbm9uRmFjdG9yeVBsYXllckluZGV4ID0gcGxheWVyQ29udGV4dFtQbGF5ZXJJbmRleC5Ob25CdWlsZGVyUGxheWVyc1N0YXJ0XTtcblxuICAgICAgLy8gaWYgdGhlIHBsYXllciBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhlIGZhY3Rvcnkgc2lkZSBvZiB0aGUgY29udGV4dFxuICAgICAgLy8gKHdoaWNoIGlzIHdoZXJlIHRoZSBbc3R5bGVdIGFuZCBbY2xhc3NdIGJpbmRpbmdzIGRvIHRoZWlyIHRoaW5nKSB0aGVuXG4gICAgICAvLyB0aGF0IHNpZGUgb2YgdGhlIGFycmF5IGNhbm5vdCBiZSByZXNpemVkIHNpbmNlIHRoZSByZXNwZWN0aXZlIGJpbmRpbmdzXG4gICAgICAvLyBoYXZlIHBvaW50ZXIgaW5kZXggdmFsdWVzIHRoYXQgcG9pbnQgdG8gdGhlIGFzc29jaWF0ZWQgZmFjdG9yeSBpbnN0YW5jZVxuICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgIGlmIChpbmRleCA8IG5vbkZhY3RvcnlQbGF5ZXJJbmRleCkge1xuICAgICAgICAgIHBsYXllckNvbnRleHRbaW5kZXhdID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwbGF5ZXJDb250ZXh0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHBsYXllci5kZXN0cm95KCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBwbGF5ZXJIYW5kbGVyID1cbiAgICAgICAgcm9vdENvbnRleHQucGxheWVySGFuZGxlciB8fCAocm9vdENvbnRleHQucGxheWVySGFuZGxlciA9IG5ldyBDb3JlUGxheWVySGFuZGxlcigpKTtcbiAgICBwbGF5ZXJIYW5kbGVyLnF1ZXVlUGxheWVyKHBsYXllciwgcmVmKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBsYXllcnNJbnRlcm5hbChwbGF5ZXJDb250ZXh0OiBQbGF5ZXJDb250ZXh0KTogUGxheWVyW10ge1xuICBjb25zdCBwbGF5ZXJzOiBQbGF5ZXJbXSA9IFtdO1xuICBjb25zdCBub25GYWN0b3J5UGxheWVyc1N0YXJ0ID0gcGxheWVyQ29udGV4dFtQbGF5ZXJJbmRleC5Ob25CdWlsZGVyUGxheWVyc1N0YXJ0XTtcblxuICAvLyBhZGQgYWxsIGZhY3RvcnktYmFzZWQgcGxheWVycyAod2hpY2ggYXJlIGFwYXJ0IG9mIFtzdHlsZV0gYW5kIFtjbGFzc10gYmluZGluZ3MpXG4gIGZvciAobGV0IGkgPSBQbGF5ZXJJbmRleC5QbGF5ZXJCdWlsZGVyc1N0YXJ0UG9zaXRpb24gKyBQbGF5ZXJJbmRleC5QbGF5ZXJPZmZzZXRQb3NpdGlvbjtcbiAgICAgICBpIDwgbm9uRmFjdG9yeVBsYXllcnNTdGFydDsgaSArPSBQbGF5ZXJJbmRleC5QbGF5ZXJBbmRQbGF5ZXJCdWlsZGVyc1R1cGxlU2l6ZSkge1xuICAgIGNvbnN0IHBsYXllciA9IHBsYXllckNvbnRleHRbaV0gYXMgUGxheWVyIHwgbnVsbDtcbiAgICBpZiAocGxheWVyKSB7XG4gICAgICBwbGF5ZXJzLnB1c2gocGxheWVyKTtcbiAgICB9XG4gIH1cblxuICAvLyBhZGQgYWxsIGN1c3RvbSBwbGF5ZXJzIChub3QgYXBhcnQgb2YgW3N0eWxlXSBhbmQgW2NsYXNzXSBiaW5kaW5ncylcbiAgZm9yIChsZXQgaSA9IG5vbkZhY3RvcnlQbGF5ZXJzU3RhcnQ7IGkgPCBwbGF5ZXJDb250ZXh0Lmxlbmd0aDsgaSsrKSB7XG4gICAgcGxheWVycy5wdXNoKHBsYXllckNvbnRleHRbaV0gYXMgUGxheWVyKTtcbiAgfVxuXG4gIHJldHVybiBwbGF5ZXJzO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPckNyZWF0ZVBsYXllckNvbnRleHQodGFyZ2V0OiB7fSwgY29udGV4dD86IExDb250ZXh0IHwgbnVsbCk6IFBsYXllckNvbnRleHR8XG4gICAgbnVsbCB7XG4gIGNvbnRleHQgPSBjb250ZXh0IHx8IGdldENvbnRleHQodGFyZ2V0KSAhO1xuICBpZiAoIWNvbnRleHQpIHtcbiAgICBuZ0Rldk1vZGUgJiYgdGhyb3dJbnZhbGlkUmVmRXJyb3IoKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHtsVmlld0RhdGEsIG5vZGVJbmRleH0gPSBjb250ZXh0O1xuICBjb25zdCBzdHlsaW5nQ29udGV4dCA9IGdldFN0eWxpbmdDb250ZXh0KG5vZGVJbmRleCAtIEhFQURFUl9PRkZTRVQsIGxWaWV3RGF0YSk7XG4gIHJldHVybiBnZXRQbGF5ZXJDb250ZXh0KHN0eWxpbmdDb250ZXh0KSB8fCBhbGxvY1BsYXllckNvbnRleHQoc3R5bGluZ0NvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGxheWVyQ29udGV4dChzdHlsaW5nQ29udGV4dDogU3R5bGluZ0NvbnRleHQpOiBQbGF5ZXJDb250ZXh0fG51bGwge1xuICByZXR1cm4gc3R5bGluZ0NvbnRleHRbU3R5bGluZ0luZGV4LlBsYXllckNvbnRleHRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb2NQbGF5ZXJDb250ZXh0KGRhdGE6IFN0eWxpbmdDb250ZXh0KTogUGxheWVyQ29udGV4dCB7XG4gIHJldHVybiBkYXRhW1N0eWxpbmdJbmRleC5QbGF5ZXJDb250ZXh0XSA9XG4gICAgICAgICAgICAgW1BsYXllckluZGV4LlNpbmdsZVBsYXllckJ1aWxkZXJzU3RhcnRQb3NpdGlvbiwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0ludmFsaWRSZWZFcnJvcigpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdPbmx5IGVsZW1lbnRzIHRoYXQgZXhpc3QgaW4gYW4gQW5ndWxhciBhcHBsaWNhdGlvbiBjYW4gYmUgdXNlZCBmb3IgYW5pbWF0aW9ucycpO1xufVxuIl19
|
package/esm5/src/render3/util.js
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { devModeEqual } from '../change_detection/change_detection_util';
|
|
9
9
|
import { assertDefined, assertLessThan } from './assert';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { ACTIVE_INDEX } from './interfaces/container';
|
|
11
|
+
import { MONKEY_PATCH_KEY_NAME } from './interfaces/context';
|
|
12
|
+
import { CONTEXT, FLAGS, HEADER_OFFSET, HOST, PARENT, TVIEW } from './interfaces/view';
|
|
12
13
|
/**
|
|
13
14
|
* Returns whether the values are different from a change detection stand point.
|
|
14
15
|
*
|
|
@@ -31,15 +32,6 @@ export function stringify(value) {
|
|
|
31
32
|
return '';
|
|
32
33
|
return '' + value;
|
|
33
34
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Function that throws a "not implemented" error so it's clear certain
|
|
36
|
-
* behaviors/methods aren't yet ready.
|
|
37
|
-
*
|
|
38
|
-
* @returns Not implemented error
|
|
39
|
-
*/
|
|
40
|
-
export function notImplemented() {
|
|
41
|
-
return new Error('NotImplemented');
|
|
42
|
-
}
|
|
43
35
|
/**
|
|
44
36
|
* Flattens an array in non-recursive way. Input arrays are not modified.
|
|
45
37
|
*/
|
|
@@ -72,24 +64,51 @@ export function loadInternal(index, arr) {
|
|
|
72
64
|
export function assertDataInRangeInternal(index, arr) {
|
|
73
65
|
assertLessThan(index, arr ? arr.length : 0, 'index expected to be a valid data index');
|
|
74
66
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Takes the value of a slot in `LViewData` and returns the element node.
|
|
69
|
+
*
|
|
70
|
+
* Normally, element nodes are stored flat, but if the node has styles/classes on it,
|
|
71
|
+
* it might be wrapped in a styling context. Or if that node has a directive that injects
|
|
72
|
+
* ViewContainerRef, it may be wrapped in an LContainer. Or if that node is a component,
|
|
73
|
+
* it will be wrapped in LViewData. It could even have all three, so we keep looping
|
|
74
|
+
* until we find something that isn't an array.
|
|
75
|
+
*
|
|
76
|
+
* @param value The initial value in `LViewData`
|
|
77
|
+
*/
|
|
78
|
+
export function readElementValue(value) {
|
|
79
|
+
while (Array.isArray(value)) {
|
|
80
|
+
value = value[HOST];
|
|
81
|
+
}
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Retrieves an element value from the provided `viewData`, by unwrapping
|
|
86
|
+
* from any containers, component views, or style contexts.
|
|
87
|
+
*/
|
|
88
|
+
export function getNativeByIndex(index, arr) {
|
|
89
|
+
return readElementValue(arr[index + HEADER_OFFSET]);
|
|
83
90
|
}
|
|
84
|
-
export function
|
|
91
|
+
export function getNativeByTNode(tNode, hostView) {
|
|
85
92
|
return readElementValue(hostView[tNode.index]);
|
|
86
93
|
}
|
|
94
|
+
export function getTNode(index, view) {
|
|
95
|
+
return view[TVIEW].data[index + HEADER_OFFSET];
|
|
96
|
+
}
|
|
97
|
+
export function getComponentViewByIndex(nodeIndex, hostView) {
|
|
98
|
+
// Could be an LViewData or an LContainer. If LContainer, unwrap to find LViewData.
|
|
99
|
+
var slotValue = hostView[nodeIndex];
|
|
100
|
+
return slotValue.length >= HEADER_OFFSET ? slotValue : slotValue[HOST];
|
|
101
|
+
}
|
|
87
102
|
export function isContentQueryHost(tNode) {
|
|
88
103
|
return (tNode.flags & 16384 /* hasContentQuery */) !== 0;
|
|
89
104
|
}
|
|
90
105
|
export function isComponent(tNode) {
|
|
91
106
|
return (tNode.flags & 4096 /* isComponent */) === 4096 /* isComponent */;
|
|
92
107
|
}
|
|
108
|
+
export function isLContainer(value) {
|
|
109
|
+
// Styling contexts are also arrays, but their first index contains an element node
|
|
110
|
+
return Array.isArray(value) && typeof value[ACTIVE_INDEX] === 'number';
|
|
111
|
+
}
|
|
93
112
|
/**
|
|
94
113
|
* Retrieve the root view from any component by walking the parent `LViewData` until
|
|
95
114
|
* reaching the root `LViewData`.
|
|
@@ -107,5 +126,19 @@ export function getRootView(target) {
|
|
|
107
126
|
export function getRootContext(viewOrComponent) {
|
|
108
127
|
return getRootView(viewOrComponent)[CONTEXT];
|
|
109
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Returns the monkey-patch value data present on the target (which could be
|
|
131
|
+
* a component, directive or a DOM node).
|
|
132
|
+
*/
|
|
133
|
+
export function readPatchedData(target) {
|
|
134
|
+
return target[MONKEY_PATCH_KEY_NAME];
|
|
135
|
+
}
|
|
136
|
+
export function readPatchedLViewData(target) {
|
|
137
|
+
var value = readPatchedData(target);
|
|
138
|
+
if (value) {
|
|
139
|
+
return Array.isArray(value) ? value : value.lViewData;
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
110
143
|
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFdkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLG9CQUFvQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0UsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUF5QixNQUFNLEVBQTRCLE1BQU0sbUJBQW1CLENBQUM7QUFJMUg7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxrQkFBMkI7SUFDckUsSUFBSSxTQUFTLElBQUksa0JBQWtCLEVBQUU7UUFDbkMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDNUI7SUFDRCxpRUFBaUU7SUFDakUsMENBQTBDO0lBQzFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNsQyxJQUFJLE9BQU8sS0FBSyxJQUFJLFVBQVU7UUFBRSxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO0lBQzNELElBQUksT0FBTyxLQUFLLElBQUksUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzNDLElBQUksS0FBSyxJQUFJLElBQUk7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QixPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFDcEIs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VUFBVSxjQUFjLENBQUMsZUFBK0I7SUFDNUQsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFnQixDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZGV2TW9kZUVxdWFsfSBmcm9tICcuLi9jaGFuZ2VfZGV0ZWN0aW9uL2NoYW5nZV9kZXRlY3Rpb25fdXRpbCc7XG5cbmltcG9ydCB7YXNzZXJ0RGVmaW5lZCwgYXNzZXJ0TGVzc1RoYW59IGZyb20gJy4vYXNzZXJ0JztcbmltcG9ydCB7cmVhZEVsZW1lbnRWYWx1ZSwgcmVhZFBhdGNoZWRMVmlld0RhdGF9IGZyb20gJy4vY29udGV4dF9kaXNjb3ZlcnknO1xuaW1wb3J0IHtMQ29udGFpbmVyTm9kZSwgTEVsZW1lbnRDb250YWluZXJOb2RlLCBMRWxlbWVudE5vZGUsIFROb2RlLCBUTm9kZUZsYWdzfSBmcm9tICcuL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQge0NPTlRFWFQsIEZMQUdTLCBIRUFERVJfT0ZGU0VULCBMVmlld0RhdGEsIExWaWV3RmxhZ3MsIFBBUkVOVCwgUm9vdENvbnRleHQsIFREYXRhLCBUVklFV30gZnJvbSAnLi9pbnRlcmZhY2VzL3ZpZXcnO1xuXG5cblxuLyoqXG4gKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgZGlmZmVyZW50IGZyb20gYSBjaGFuZ2UgZGV0ZWN0aW9uIHN0YW5kIHBvaW50LlxuICpcbiAqIENvbnN0cmFpbnRzIGFyZSByZWxheGVkIGluIGNoZWNrTm9DaGFuZ2VzIG1vZGUuIFNlZSBgZGV2TW9kZUVxdWFsYCBmb3IgZGV0YWlscy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGlmZmVyZW50KGE6IGFueSwgYjogYW55LCBjaGVja05vQ2hhbmdlc01vZGU6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgaWYgKG5nRGV2TW9kZSAmJiBjaGVja05vQ2hhbmdlc01vZGUpIHtcbiAgICByZXR1cm4gIWRldk1vZGVFcXVhbChhLCBiKTtcbiAgfVxuICAvLyBOYU4gaXMgdGhlIG9ubHkgdmFsdWUgdGhhdCBpcyBub3QgZXF1YWwgdG8gaXRzZWxmIHNvIHRoZSBmaXJzdFxuICAvLyB0ZXN0IGNoZWNrcyBpZiBib3RoIGEgYW5kIGIgYXJlIG5vdCBOYU5cbiAgcmV0dXJuICEoYSAhPT0gYSAmJiBiICE9PSBiKSAmJiBhICE9PSBiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHJldHVybiB2YWx1ZS5uYW1lIHx8IHZhbHVlO1xuICBpZiAodHlwZW9mIHZhbHVlID09ICdzdHJpbmcnKSByZXR1cm4gdmFsdWU7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gJyc7XG4gIHJldHVybiAnJyArIHZhbHVlO1xufVxuXG4vKipcbiAqICBGdW5jdGlvbiB0aGF0IHRocm93cyBhIFwibm90IGltcGxlbWVudGVkXCIgZXJyb3Igc28gaXQncyBjbGVhciBjZXJ0YWluXG4gKiAgYmVoYXZpb3JzL21ldGhvZHMgYXJlbid0IHlldCByZWFkeS5cbiAqXG4gKiBAcmV0dXJucyBOb3QgaW1wbGVtZW50ZWQgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vdEltcGxlbWVudGVkKCk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBFcnJvcignTm90SW1wbGVtZW50ZWQnKTtcbn1cblxuLyoqXG4gKiBGbGF0dGVucyBhbiBhcnJheSBpbiBub24tcmVjdXJzaXZlIHdheS4gSW5wdXQgYXJyYXlzIGFyZSBub3QgbW9kaWZpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGF0dGVuKGxpc3Q6IGFueVtdKTogYW55W10ge1xuICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG4gIGxldCBpID0gMDtcblxuICB3aGlsZSAoaSA8IGxpc3QubGVuZ3RoKSB7XG4gICAgY29uc3QgaXRlbSA9IGxpc3RbaV07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgIGlmIChpdGVtLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGlzdCA9IGl0ZW0uY29uY2F0KGxpc3Quc2xpY2UoaSArIDEpKTtcbiAgICAgICAgaSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpKys7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5wdXNoKGl0ZW0pO1xuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBSZXRyaWV2ZXMgYSB2YWx1ZSBmcm9tIGFueSBgTFZpZXdEYXRhYCBvciBgVERhdGFgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRJbnRlcm5hbDxUPihpbmRleDogbnVtYmVyLCBhcnI6IExWaWV3RGF0YSB8IFREYXRhKTogVCB7XG4gIG5nRGV2TW9kZSAmJiBhc3NlcnREYXRhSW5SYW5nZUludGVybmFsKGluZGV4ICsgSEVBREVSX09GRlNFVCwgYXJyKTtcbiAgcmV0dXJuIGFycltpbmRleCArIEhFQURFUl9PRkZTRVRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0RGF0YUluUmFuZ2VJbnRlcm5hbChpbmRleDogbnVtYmVyLCBhcnI6IGFueVtdKSB7XG4gIGFzc2VydExlc3NUaGFuKGluZGV4LCBhcnIgPyBhcnIubGVuZ3RoIDogMCwgJ2luZGV4IGV4cGVjdGVkIHRvIGJlIGEgdmFsaWQgZGF0YSBpbmRleCcpO1xufVxuXG4vKiogUmV0cmlldmVzIGFuIGVsZW1lbnQgdmFsdWUgZnJvbSB0aGUgcHJvdmlkZWQgYHZpZXdEYXRhYC5cbiAgKlxuICAqIEVsZW1lbnRzIHRoYXQgYXJlIHJlYWQgbWF5IGJlIHdyYXBwZWQgaW4gYSBzdHlsZSBjb250ZXh0LFxuICAqIHRoZXJlZm9yZSByZWFkaW5nIHRoZSB2YWx1ZSBtYXkgaW52b2x2ZSB1bndyYXBwaW5nIHRoYXQuXG4gICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZEVsZW1lbnRJbnRlcm5hbChpbmRleDogbnVtYmVyLCBhcnI6IExWaWV3RGF0YSk6IExFbGVtZW50Tm9kZSB7XG4gIGNvbnN0IHZhbHVlID0gbG9hZEludGVybmFsPExFbGVtZW50Tm9kZT4oaW5kZXgsIGFycik7XG4gIHJldHVybiByZWFkRWxlbWVudFZhbHVlKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExOb2RlKHROb2RlOiBUTm9kZSwgaG9zdFZpZXc6IExWaWV3RGF0YSk6IExFbGVtZW50Tm9kZXxMQ29udGFpbmVyTm9kZXxcbiAgICBMRWxlbWVudENvbnRhaW5lck5vZGUge1xuICByZXR1cm4gcmVhZEVsZW1lbnRWYWx1ZShob3N0Vmlld1t0Tm9kZS5pbmRleF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZW50UXVlcnlIb3N0KHROb2RlOiBUTm9kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKHROb2RlLmZsYWdzICYgVE5vZGVGbGFncy5oYXNDb250ZW50UXVlcnkpICE9PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21wb25lbnQodE5vZGU6IFROb2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiAodE5vZGUuZmxhZ3MgJiBUTm9kZUZsYWdzLmlzQ29tcG9uZW50KSA9PT0gVE5vZGVGbGFncy5pc0NvbXBvbmVudDtcbn1cbi8qKlxuICogUmV0cmlldmUgdGhlIHJvb3QgdmlldyBmcm9tIGFueSBjb21wb25lbnQgYnkgd2Fsa2luZyB0aGUgcGFyZW50IGBMVmlld0RhdGFgIHVudGlsXG4gKiByZWFjaGluZyB0aGUgcm9vdCBgTFZpZXdEYXRhYC5cbiAqXG4gKiBAcGFyYW0gY29tcG9uZW50IGFueSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3RWaWV3KHRhcmdldDogTFZpZXdEYXRhIHwge30pOiBMVmlld0RhdGEge1xuICBuZ0Rldk1vZGUgJiYgYXNzZXJ0RGVmaW5lZCh0YXJnZXQsICdjb21wb25lbnQnKTtcbiAgbGV0IGxWaWV3RGF0YSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KSA/ICh0YXJnZXQgYXMgTFZpZXdEYXRhKSA6IHJlYWRQYXRjaGVkTFZpZXdEYXRhKHRhcmdldCkgITtcbiAgd2hpbGUgKGxWaWV3RGF0YSAmJiAhKGxWaWV3RGF0YVtGTEFHU10gJiBMVmlld0ZsYWdzLklzUm9vdCkpIHtcbiAgICBsVmlld0RhdGEgPSBsVmlld0RhdGFbUEFSRU5UXSAhO1xuICB9XG4gIHJldHVybiBsVmlld0RhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290Q29udGV4dCh2aWV3T3JDb21wb25lbnQ6IExWaWV3RGF0YSB8IHt9KTogUm9vdENvbnRleHQge1xuICByZXR1cm4gZ2V0Um9vdFZpZXcodmlld09yQ29tcG9uZW50KVtDT05URVhUXSBhcyBSb290Q29udGV4dDtcbn1cbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFdkUsT0FBTyxFQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBYSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBVyxxQkFBcUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBSXJFLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQXlCLE1BQU0sRUFBc0IsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFHaEk7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxrQkFBMkI7SUFDckUsSUFBSSxTQUFTLElBQUksa0JBQWtCLEVBQUU7UUFDbkMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDNUI7SUFDRCxpRUFBaUU7SUFDakUsMENBQTBDO0lBQzFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNsQyxJQUFJLE9BQU8sS0FBSyxJQUFJLFVBQVU7UUFBRSxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO0lBQzNELElBQUksT0FBTyxLQUFLLElBQUksUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzNDLElBQUksS0FBSyxJQUFJLElBQUk7UUFBRSxP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Q0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsS0FBa0IsQ0FBQyxTQUFTLENBQUM7S0FDckU7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7ZGV2TW9kZUVxdWFsfSBmcm9tICcuLi9jaGFuZ2VfZGV0ZWN0aW9uL2NoYW5nZV9kZXRlY3Rpb25fdXRpbCc7XG5cbmltcG9ydCB7YXNzZXJ0RGVmaW5lZCwgYXNzZXJ0TGVzc1RoYW59IGZyb20gJy4vYXNzZXJ0JztcbmltcG9ydCB7QUNUSVZFX0lOREVYLCBMQ29udGFpbmVyfSBmcm9tICcuL2ludGVyZmFjZXMvY29udGFpbmVyJztcbmltcG9ydCB7TENvbnRleHQsIE1PTktFWV9QQVRDSF9LRVlfTkFNRX0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbnRleHQnO1xuaW1wb3J0IHtUTm9kZSwgVE5vZGVGbGFnc30gZnJvbSAnLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtSQ29tbWVudCwgUkVsZW1lbnQsIFJUZXh0fSBmcm9tICcuL2ludGVyZmFjZXMvcmVuZGVyZXInO1xuaW1wb3J0IHtTdHlsaW5nQ29udGV4dH0gZnJvbSAnLi9pbnRlcmZhY2VzL3N0eWxpbmcnO1xuaW1wb3J0IHtDT05URVhULCBGTEFHUywgSEVBREVSX09GRlNFVCwgSE9TVCwgTFZpZXdEYXRhLCBMVmlld0ZsYWdzLCBQQVJFTlQsIFJvb3RDb250ZXh0LCBURGF0YSwgVFZJRVd9IGZyb20gJy4vaW50ZXJmYWNlcy92aWV3JztcblxuXG4vKipcbiAqIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWVzIGFyZSBkaWZmZXJlbnQgZnJvbSBhIGNoYW5nZSBkZXRlY3Rpb24gc3RhbmQgcG9pbnQuXG4gKlxuICogQ29uc3RyYWludHMgYXJlIHJlbGF4ZWQgaW4gY2hlY2tOb0NoYW5nZXMgbW9kZS4gU2VlIGBkZXZNb2RlRXF1YWxgIGZvciBkZXRhaWxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEaWZmZXJlbnQoYTogYW55LCBiOiBhbnksIGNoZWNrTm9DaGFuZ2VzTW9kZTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICBpZiAobmdEZXZNb2RlICYmIGNoZWNrTm9DaGFuZ2VzTW9kZSkge1xuICAgIHJldHVybiAhZGV2TW9kZUVxdWFsKGEsIGIpO1xuICB9XG4gIC8vIE5hTiBpcyB0aGUgb25seSB2YWx1ZSB0aGF0IGlzIG5vdCBlcXVhbCB0byBpdHNlbGYgc28gdGhlIGZpcnN0XG4gIC8vIHRlc3QgY2hlY2tzIGlmIGJvdGggYSBhbmQgYiBhcmUgbm90IE5hTlxuICByZXR1cm4gIShhICE9PSBhICYmIGIgIT09IGIpICYmIGEgIT09IGI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdpZnkodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlLm5hbWUgfHwgdmFsdWU7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcbiAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJztcbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5cbi8qKlxuICogRmxhdHRlbnMgYW4gYXJyYXkgaW4gbm9uLXJlY3Vyc2l2ZSB3YXkuIElucHV0IGFycmF5cyBhcmUgbm90IG1vZGlmaWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmxhdHRlbihsaXN0OiBhbnlbXSk6IGFueVtdIHtcbiAgY29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdO1xuICBsZXQgaSA9IDA7XG5cbiAgd2hpbGUgKGkgPCBsaXN0Lmxlbmd0aCkge1xuICAgIGNvbnN0IGl0ZW0gPSBsaXN0W2ldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgICBpZiAoaXRlbS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxpc3QgPSBpdGVtLmNvbmNhdChsaXN0LnNsaWNlKGkgKyAxKSk7XG4gICAgICAgIGkgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgIGkrKztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiogUmV0cmlldmVzIGEgdmFsdWUgZnJvbSBhbnkgYExWaWV3RGF0YWAgb3IgYFREYXRhYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkSW50ZXJuYWw8VD4oaW5kZXg6IG51bWJlciwgYXJyOiBMVmlld0RhdGEgfCBURGF0YSk6IFQge1xuICBuZ0Rldk1vZGUgJiYgYXNzZXJ0RGF0YUluUmFuZ2VJbnRlcm5hbChpbmRleCArIEhFQURFUl9PRkZTRVQsIGFycik7XG4gIHJldHVybiBhcnJbaW5kZXggKyBIRUFERVJfT0ZGU0VUXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERhdGFJblJhbmdlSW50ZXJuYWwoaW5kZXg6IG51bWJlciwgYXJyOiBhbnlbXSkge1xuICBhc3NlcnRMZXNzVGhhbihpbmRleCwgYXJyID8gYXJyLmxlbmd0aCA6IDAsICdpbmRleCBleHBlY3RlZCB0byBiZSBhIHZhbGlkIGRhdGEgaW5kZXgnKTtcbn1cblxuLyoqXG4gKiBUYWtlcyB0aGUgdmFsdWUgb2YgYSBzbG90IGluIGBMVmlld0RhdGFgIGFuZCByZXR1cm5zIHRoZSBlbGVtZW50IG5vZGUuXG4gKlxuICogTm9ybWFsbHksIGVsZW1lbnQgbm9kZXMgYXJlIHN0b3JlZCBmbGF0LCBidXQgaWYgdGhlIG5vZGUgaGFzIHN0eWxlcy9jbGFzc2VzIG9uIGl0LFxuICogaXQgbWlnaHQgYmUgd3JhcHBlZCBpbiBhIHN0eWxpbmcgY29udGV4dC4gT3IgaWYgdGhhdCBub2RlIGhhcyBhIGRpcmVjdGl2ZSB0aGF0IGluamVjdHNcbiAqIFZpZXdDb250YWluZXJSZWYsIGl0IG1heSBiZSB3cmFwcGVkIGluIGFuIExDb250YWluZXIuIE9yIGlmIHRoYXQgbm9kZSBpcyBhIGNvbXBvbmVudCxcbiAqIGl0IHdpbGwgYmUgd3JhcHBlZCBpbiBMVmlld0RhdGEuIEl0IGNvdWxkIGV2ZW4gaGF2ZSBhbGwgdGhyZWUsIHNvIHdlIGtlZXAgbG9vcGluZ1xuICogdW50aWwgd2UgZmluZCBzb21ldGhpbmcgdGhhdCBpc24ndCBhbiBhcnJheS5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGluaXRpYWwgdmFsdWUgaW4gYExWaWV3RGF0YWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRFbGVtZW50VmFsdWUodmFsdWU6IFJFbGVtZW50IHwgU3R5bGluZ0NvbnRleHQgfCBMQ29udGFpbmVyIHwgTFZpZXdEYXRhKTpcbiAgICBSRWxlbWVudCB7XG4gIHdoaWxlIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHZhbHVlID0gdmFsdWVbSE9TVF0gYXMgYW55O1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gZWxlbWVudCB2YWx1ZSBmcm9tIHRoZSBwcm92aWRlZCBgdmlld0RhdGFgLCBieSB1bndyYXBwaW5nXG4gKiBmcm9tIGFueSBjb250YWluZXJzLCBjb21wb25lbnQgdmlld3MsIG9yIHN0eWxlIGNvbnRleHRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmF0aXZlQnlJbmRleChpbmRleDogbnVtYmVyLCBhcnI6IExWaWV3RGF0YSk6IFJFbGVtZW50IHtcbiAgcmV0dXJuIHJlYWRFbGVtZW50VmFsdWUoYXJyW2luZGV4ICsgSEVBREVSX09GRlNFVF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmF0aXZlQnlUTm9kZSh0Tm9kZTogVE5vZGUsIGhvc3RWaWV3OiBMVmlld0RhdGEpOiBSRWxlbWVudHxSVGV4dHxSQ29tbWVudCB7XG4gIHJldHVybiByZWFkRWxlbWVudFZhbHVlKGhvc3RWaWV3W3ROb2RlLmluZGV4XSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUTm9kZShpbmRleDogbnVtYmVyLCB2aWV3OiBMVmlld0RhdGEpOiBUTm9kZSB7XG4gIHJldHVybiB2aWV3W1RWSUVXXS5kYXRhW2luZGV4ICsgSEVBREVSX09GRlNFVF0gYXMgVE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnRWaWV3QnlJbmRleChub2RlSW5kZXg6IG51bWJlciwgaG9zdFZpZXc6IExWaWV3RGF0YSk6IExWaWV3RGF0YSB7XG4gIC8vIENvdWxkIGJlIGFuIExWaWV3RGF0YSBvciBhbiBMQ29udGFpbmVyLiBJZiBMQ29udGFpbmVyLCB1bndyYXAgdG8gZmluZCBMVmlld0RhdGEuXG4gIGNvbnN0IHNsb3RWYWx1ZSA9IGhvc3RWaWV3W25vZGVJbmRleF07XG4gIHJldHVybiBzbG90VmFsdWUubGVuZ3RoID49IEhFQURFUl9PRkZTRVQgPyBzbG90VmFsdWUgOiBzbG90VmFsdWVbSE9TVF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRlbnRRdWVyeUhvc3QodE5vZGU6IFROb2RlKTogYm9vbGVhbiB7XG4gIHJldHVybiAodE5vZGUuZmxhZ3MgJiBUTm9kZUZsYWdzLmhhc0NvbnRlbnRRdWVyeSkgIT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbXBvbmVudCh0Tm9kZTogVE5vZGUpOiBib29sZWFuIHtcbiAgcmV0dXJuICh0Tm9kZS5mbGFncyAmIFROb2RlRmxhZ3MuaXNDb21wb25lbnQpID09PSBUTm9kZUZsYWdzLmlzQ29tcG9uZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMQ29udGFpbmVyKHZhbHVlOiBSRWxlbWVudCB8IFJDb21tZW50IHwgTENvbnRhaW5lciB8IFN0eWxpbmdDb250ZXh0KTogYm9vbGVhbiB7XG4gIC8vIFN0eWxpbmcgY29udGV4dHMgYXJlIGFsc28gYXJyYXlzLCBidXQgdGhlaXIgZmlyc3QgaW5kZXggY29udGFpbnMgYW4gZWxlbWVudCBub2RlXG4gIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB0eXBlb2YgdmFsdWVbQUNUSVZFX0lOREVYXSA9PT0gJ251bWJlcic7XG59XG5cbi8qKlxuICogUmV0cmlldmUgdGhlIHJvb3QgdmlldyBmcm9tIGFueSBjb21wb25lbnQgYnkgd2Fsa2luZyB0aGUgcGFyZW50IGBMVmlld0RhdGFgIHVudGlsXG4gKiByZWFjaGluZyB0aGUgcm9vdCBgTFZpZXdEYXRhYC5cbiAqXG4gKiBAcGFyYW0gY29tcG9uZW50IGFueSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvb3RWaWV3KHRhcmdldDogTFZpZXdEYXRhIHwge30pOiBMVmlld0RhdGEge1xuICBuZ0Rldk1vZGUgJiYgYXNzZXJ0RGVmaW5lZCh0YXJnZXQsICdjb21wb25lbnQnKTtcbiAgbGV0IGxWaWV3RGF0YSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KSA/ICh0YXJnZXQgYXMgTFZpZXdEYXRhKSA6IHJlYWRQYXRjaGVkTFZpZXdEYXRhKHRhcmdldCkgITtcbiAgd2hpbGUgKGxWaWV3RGF0YSAmJiAhKGxWaWV3RGF0YVtGTEFHU10gJiBMVmlld0ZsYWdzLklzUm9vdCkpIHtcbiAgICBsVmlld0RhdGEgPSBsVmlld0RhdGFbUEFSRU5UXSAhO1xuICB9XG4gIHJldHVybiBsVmlld0RhdGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290Q29udGV4dCh2aWV3T3JDb21wb25lbnQ6IExWaWV3RGF0YSB8IHt9KTogUm9vdENvbnRleHQge1xuICByZXR1cm4gZ2V0Um9vdFZpZXcodmlld09yQ29tcG9uZW50KVtDT05URVhUXSBhcyBSb290Q29udGV4dDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBtb25rZXktcGF0Y2ggdmFsdWUgZGF0YSBwcmVzZW50IG9uIHRoZSB0YXJnZXQgKHdoaWNoIGNvdWxkIGJlXG4gKiBhIGNvbXBvbmVudCwgZGlyZWN0aXZlIG9yIGEgRE9NIG5vZGUpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFBhdGNoZWREYXRhKHRhcmdldDogYW55KTogTFZpZXdEYXRhfExDb250ZXh0fG51bGwge1xuICByZXR1cm4gdGFyZ2V0W01PTktFWV9QQVRDSF9LRVlfTkFNRV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkUGF0Y2hlZExWaWV3RGF0YSh0YXJnZXQ6IGFueSk6IExWaWV3RGF0YXxudWxsIHtcbiAgY29uc3QgdmFsdWUgPSByZWFkUGF0Y2hlZERhdGEodGFyZ2V0KTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiAodmFsdWUgYXMgTENvbnRleHQpLmxWaWV3RGF0YTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
|