@angular/core 16.0.0-next.4 → 16.0.0-next.6
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/esm2022/rxjs-interop/index.mjs +9 -0
- package/esm2022/rxjs-interop/public_api.mjs +15 -0
- package/esm2022/rxjs-interop/rxjs-interop.mjs +5 -0
- package/esm2022/rxjs-interop/src/from_observable.mjs +46 -0
- package/esm2022/rxjs-interop/src/from_signal.mjs +36 -0
- package/esm2022/rxjs-interop/src/index.mjs +11 -0
- package/esm2022/rxjs-interop/src/take_until_destroyed.mjs +33 -0
- package/{esm2020 → esm2022}/src/application_init.mjs +3 -3
- package/{esm2020 → esm2022}/src/application_module.mjs +4 -4
- package/esm2022/src/application_ref.mjs +969 -0
- package/{esm2020 → esm2022}/src/change_detection/change_detector_ref.mjs +6 -6
- package/esm2022/src/change_detection/differs/iterable_differs.mjs +81 -0
- package/esm2022/src/change_detection/differs/keyvalue_differs.mjs +74 -0
- package/{esm2020 → esm2022}/src/console.mjs +3 -3
- package/esm2022/src/core.mjs +56 -0
- package/esm2022/src/core_private_export.mjs +39 -0
- package/esm2022/src/core_reactivity_export_internal.mjs +12 -0
- package/esm2022/src/di/contextual.mjs +54 -0
- package/esm2022/src/di/index.mjs +29 -0
- package/esm2022/src/di/injector.mjs +62 -0
- package/esm2022/src/di/injector_compatibility.mjs +239 -0
- package/esm2022/src/di/provider_collection.mjs +279 -0
- package/esm2022/src/di/reflective_injector.mjs +311 -0
- package/esm2022/src/errors.mjs +49 -0
- package/esm2022/src/hydration/annotate.mjs +426 -0
- package/esm2022/src/hydration/api.mjs +176 -0
- package/esm2022/src/hydration/cleanup.mjs +95 -0
- package/esm2022/src/hydration/node_lookup_utils.mjs +273 -0
- package/esm2022/src/hydration/utils.mjs +219 -0
- package/esm2022/src/initial_render_pending_tasks.mjs +75 -0
- package/{esm2020 → esm2022}/src/linker/compiler.mjs +5 -5
- package/{esm2020 → esm2022}/src/linker/component_factory.mjs +1 -1
- package/esm2022/src/linker/component_factory_resolver.mjs +42 -0
- package/{esm2020 → esm2022}/src/linker/destroy_ref.mjs +11 -11
- package/{esm2020 → esm2022}/src/linker/element_ref.mjs +6 -6
- package/esm2022/src/linker/query_list.mjs +169 -0
- package/esm2022/src/linker/template_ref.mjs +102 -0
- package/{esm2020 → esm2022}/src/linker/view_container_ref.mjs +7 -7
- package/{esm2020 → esm2022}/src/linker/view_ref.mjs +2 -2
- package/esm2022/src/metadata/di.mjs +69 -0
- package/{esm2020 → esm2022}/src/metadata/directives.mjs +1 -1
- package/{esm2020 → esm2022}/src/metadata/do_boostrap.mjs +1 -1
- package/{esm2020 → esm2022}/src/metadata/ng_module.mjs +2 -2
- package/esm2022/src/metadata.mjs +18 -0
- package/{esm2020 → esm2022}/src/render/api.mjs +6 -6
- package/esm2022/src/render3/component_ref.mjs +393 -0
- package/{esm2020 → esm2022}/src/render3/context_discovery.mjs +1 -1
- package/esm2022/src/render3/features/standalone_feature.mjs +70 -0
- package/{esm2020 → esm2022}/src/render3/instructions/element.mjs +3 -2
- package/{esm2020 → esm2022}/src/render3/instructions/element_container.mjs +1 -2
- package/esm2022/src/render3/instructions/listener.mjs +244 -0
- package/esm2022/src/render3/instructions/mark_view_dirty.mjs +35 -0
- package/{esm2020 → esm2022}/src/render3/instructions/shared.mjs +26 -38
- package/{esm2020 → esm2022}/src/render3/instructions/styling.mjs +5 -2
- package/esm2022/src/render3/interfaces/view.mjs +48 -0
- package/esm2022/src/render3/jit/module.mjs +531 -0
- package/esm2022/src/render3/ng_module_ref.mjs +134 -0
- package/esm2022/src/render3/node_manipulation.mjs +960 -0
- package/esm2022/src/render3/reactive_lview_consumer.mjs +81 -0
- package/esm2022/src/render3/reactivity/effect.mjs +77 -0
- package/{esm2020 → esm2022}/src/render3/util/change_detection_utils.mjs +2 -2
- package/esm2022/src/render3/view_ref.mjs +307 -0
- package/{esm2020 → esm2022}/src/sanitization/sanitization.mjs +3 -3
- package/{esm2020 → esm2022}/src/sanitization/sanitizer.mjs +7 -7
- package/esm2022/src/signals/index.mjs +16 -0
- package/esm2022/src/signals/src/api.mjs +46 -0
- package/esm2022/src/signals/src/computed.mjs +140 -0
- package/esm2022/src/signals/src/errors.mjs +18 -0
- package/esm2022/src/signals/src/graph.mjs +189 -0
- package/esm2022/src/signals/src/signal.mjs +86 -0
- package/esm2022/src/signals/src/watch.mjs +63 -0
- package/esm2022/src/signals/src/weak_ref.mjs +35 -0
- package/{esm2020 → esm2022}/src/testability/testability.mjs +5 -5
- package/esm2022/src/transfer_state.mjs +153 -0
- package/esm2022/src/util/ng_dev_mode.mjs +80 -0
- package/{esm2020 → esm2022}/src/version.mjs +1 -1
- package/{esm2020 → esm2022}/testing/src/logger.mjs +4 -4
- package/{esm2020 → esm2022}/testing/src/ng_zone_mock.mjs +4 -4
- package/{esm2020 → esm2022}/testing/src/test_bed.mjs +2 -2
- package/esm2022/testing/src/test_bed_compiler.mjs +845 -0
- package/{fesm2020 → fesm2022}/core.mjs +15745 -15364
- package/fesm2022/core.mjs.map +1 -0
- package/fesm2022/rxjs-interop.mjs +104 -0
- package/fesm2022/rxjs-interop.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/testing.mjs +913 -176
- package/fesm2022/testing.mjs.map +1 -0
- package/index.d.ts +459 -211
- package/package.json +14 -16
- package/rxjs-interop/index.d.ts +95 -0
- package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +694 -0
- package/schematics/migrations/guard-and-resolve-interfaces/bundle.js.map +7 -0
- package/schematics/migrations/{router-link-with-href → remove-module-id}/bundle.js +153 -155
- package/schematics/migrations/remove-module-id/bundle.js.map +7 -0
- package/schematics/migrations.json +8 -8
- package/schematics/ng-generate/standalone-migration/bundle.js +928 -562
- package/schematics/ng-generate/standalone-migration/bundle.js.map +2 -2
- package/testing/index.d.ts +1 -1
- package/esm2020/src/application_ref.mjs +0 -907
- package/esm2020/src/change_detection/differs/iterable_differs.mjs +0 -81
- package/esm2020/src/change_detection/differs/keyvalue_differs.mjs +0 -74
- package/esm2020/src/core.mjs +0 -55
- package/esm2020/src/core_private_export.mjs +0 -38
- package/esm2020/src/core_reactivity_export_internal.mjs +0 -9
- package/esm2020/src/di/contextual.mjs +0 -37
- package/esm2020/src/di/index.mjs +0 -29
- package/esm2020/src/di/injector.mjs +0 -62
- package/esm2020/src/di/injector_compatibility.mjs +0 -236
- package/esm2020/src/di/provider_collection.mjs +0 -279
- package/esm2020/src/di/reflective_injector.mjs +0 -311
- package/esm2020/src/errors.mjs +0 -48
- package/esm2020/src/hydration/annotate.mjs +0 -384
- package/esm2020/src/hydration/api.mjs +0 -141
- package/esm2020/src/hydration/cleanup.mjs +0 -101
- package/esm2020/src/hydration/node_lookup_utils.mjs +0 -275
- package/esm2020/src/hydration/utils.mjs +0 -219
- package/esm2020/src/linker/component_factory_resolver.mjs +0 -42
- package/esm2020/src/linker/query_list.mjs +0 -169
- package/esm2020/src/linker/template_ref.mjs +0 -102
- package/esm2020/src/metadata/di.mjs +0 -108
- package/esm2020/src/metadata.mjs +0 -18
- package/esm2020/src/render3/component_ref.mjs +0 -377
- package/esm2020/src/render3/features/standalone_feature.mjs +0 -70
- package/esm2020/src/render3/instructions/listener.mjs +0 -243
- package/esm2020/src/render3/interfaces/view.mjs +0 -47
- package/esm2020/src/render3/jit/module.mjs +0 -544
- package/esm2020/src/render3/ng_module_ref.mjs +0 -132
- package/esm2020/src/render3/node_manipulation.mjs +0 -961
- package/esm2020/src/render3/view_ref.mjs +0 -306
- package/esm2020/src/signals/index.mjs +0 -16
- package/esm2020/src/signals/src/api.mjs +0 -46
- package/esm2020/src/signals/src/computed.mjs +0 -142
- package/esm2020/src/signals/src/effect.mjs +0 -67
- package/esm2020/src/signals/src/graph.mjs +0 -114
- package/esm2020/src/signals/src/signal.mjs +0 -78
- package/esm2020/src/signals/src/watch.mjs +0 -54
- package/esm2020/src/signals/src/weak_ref.mjs +0 -27
- package/esm2020/src/transfer_state.mjs +0 -153
- package/esm2020/src/util/ng_dev_mode.mjs +0 -79
- package/esm2020/testing/src/test_bed_compiler.mjs +0 -846
- package/fesm2015/core.mjs +0 -30473
- package/fesm2015/core.mjs.map +0 -1
- package/fesm2015/testing.mjs +0 -26417
- package/fesm2015/testing.mjs.map +0 -1
- package/fesm2020/core.mjs.map +0 -1
- package/fesm2020/testing.mjs.map +0 -1
- package/schematics/migrations/relative-link-resolution/bundle.js +0 -283
- package/schematics/migrations/relative-link-resolution/bundle.js.map +0 -7
- package/schematics/migrations/router-link-with-href/bundle.js.map +0 -7
- /package/{esm2020 → esm2022}/core.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/application_config.mjs +0 -0
- /package/{esm2020 → esm2022}/src/application_tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/change_detection/change_detection.mjs +0 -0
- /package/{esm2020 → esm2022}/src/change_detection/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/src/change_detection/differs/default_iterable_differ.mjs +0 -0
- /package/{esm2020 → esm2022}/src/change_detection/differs/default_keyvalue_differ.mjs +0 -0
- /package/{esm2020 → esm2022}/src/change_detection/pipe_transform.mjs +0 -0
- /package/{esm2020 → esm2022}/src/change_detection.mjs +0 -0
- /package/{esm2020 → esm2022}/src/compiler/compiler_facade.mjs +0 -0
- /package/{esm2020 → esm2022}/src/compiler/compiler_facade_interface.mjs +0 -0
- /package/{esm2020 → esm2022}/src/core_reactivity_export.mjs +0 -0
- /package/{esm2020 → esm2022}/src/core_render3_private_export.mjs +0 -0
- /package/{esm2020 → esm2022}/src/debug/debug_node.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/create_injector.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/forward_ref.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/initializer_token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/inject_switch.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/injectable.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/injection_token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/injector_marker.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/injector_token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/interface/defs.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/interface/injector.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/interface/provider.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/internal_tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/jit/environment.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/jit/injectable.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/jit/util.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/metadata.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/metadata_attr.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/null_injector.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/provider_token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/r3_injector.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/reflective_errors.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/reflective_key.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/reflective_provider.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di/scope.mjs +0 -0
- /package/{esm2020 → esm2022}/src/di.mjs +0 -0
- /package/{esm2020 → esm2022}/src/error_details_base_url.mjs +0 -0
- /package/{esm2020 → esm2022}/src/error_handler.mjs +0 -0
- /package/{esm2020 → esm2022}/src/event_emitter.mjs +0 -0
- /package/{esm2020 → esm2022}/src/hydration/compression.mjs +0 -0
- /package/{esm2020 → esm2022}/src/hydration/error_handling.mjs +0 -0
- /package/{esm2020 → esm2022}/src/hydration/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/src/hydration/skip_hydration.mjs +0 -0
- /package/{esm2020 → esm2022}/src/hydration/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/hydration/views.mjs +0 -0
- /package/{esm2020 → esm2022}/src/i18n/locale_data_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/i18n/locale_en.mjs +0 -0
- /package/{esm2020 → esm2022}/src/i18n/localization.mjs +0 -0
- /package/{esm2020 → esm2022}/src/i18n/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/interface/lifecycle_hooks.mjs +0 -0
- /package/{esm2020 → esm2022}/src/interface/simple_change.mjs +0 -0
- /package/{esm2020 → esm2022}/src/interface/type.mjs +0 -0
- /package/{esm2020 → esm2022}/src/linker/ng_module_factory.mjs +0 -0
- /package/{esm2020 → esm2022}/src/linker/ng_module_factory_loader.mjs +0 -0
- /package/{esm2020 → esm2022}/src/linker/ng_module_factory_loader_impl.mjs +0 -0
- /package/{esm2020 → esm2022}/src/linker/ng_module_registration.mjs +0 -0
- /package/{esm2020 → esm2022}/src/linker.mjs +0 -0
- /package/{esm2020 → esm2022}/src/metadata/ng_module_def.mjs +0 -0
- /package/{esm2020 → esm2022}/src/metadata/resource_loading.mjs +0 -0
- /package/{esm2020 → esm2022}/src/metadata/schema.mjs +0 -0
- /package/{esm2020 → esm2022}/src/metadata/view.mjs +0 -0
- /package/{esm2020 → esm2022}/src/platform_core_providers.mjs +0 -0
- /package/{esm2020 → esm2022}/src/r3_symbols.mjs +0 -0
- /package/{esm2020 → esm2022}/src/reflection/platform_reflection_capabilities.mjs +0 -0
- /package/{esm2020 → esm2022}/src/reflection/reflection_capabilities.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render/api_flags.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/assert.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/bindings.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/collect_native_nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/component.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/definition.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/definition_factory.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/di.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/di_setup.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/errors.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/errors_di.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/features/copy_definition_feature.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/features/host_directives_feature.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/features/inherit_definition_feature.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/features/ng_onchanges_feature.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/features/providers_feature.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/fields.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/global_utils_api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/hooks.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_apply.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_debug.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_insert_before_index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_locale_id.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_parse.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_postprocess.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_tree_shaking.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/i18n/i18n_util.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/index.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/advance.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/all.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/attribute.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/attribute_interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/change_detection.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/class_map_interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/di.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/di_attr.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/element_validation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/get_current_view.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/host_property.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/i18n.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/i18n_icu_container_visitor.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/namespace.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/next_context.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/projection.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/property.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/property_interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/storage.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/style_map_interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/style_prop_interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/template.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/text.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/instructions/text_interpolation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/container.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/context.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/definition.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/document.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/i18n.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/injector.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/lview_tracking.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/node.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/projection.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/public_definitions.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/query.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/renderer.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/renderer_dom.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/sanitization.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/styling.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/interfaces/type_checks.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/directive.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/environment.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/jit_options.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/module_patch.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/partial.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/pipe.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/jit/util.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/metadata.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/namespaces.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/node_assert.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/node_manipulation_i18n.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/node_selector_matcher.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/pipe.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/profiler.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/pure_function.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/query.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/state.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/styling/class_differ.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/styling/static_styling.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/styling/style_binding_list.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/styling/styling_parser.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/attrs_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/discovery_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/global_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/injector_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/misc_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/stringify_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/view_traversal_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/util/view_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/render3/view_engine_compatibility_prebound.mjs +0 -0
- /package/{esm2020 → esm2022}/src/sanitization/bypass.mjs +0 -0
- /package/{esm2020 → esm2022}/src/sanitization/html_sanitizer.mjs +0 -0
- /package/{esm2020 → esm2022}/src/sanitization/iframe_attrs_validation.mjs +0 -0
- /package/{esm2020 → esm2022}/src/sanitization/inert_body.mjs +0 -0
- /package/{esm2020 → esm2022}/src/sanitization/security.mjs +0 -0
- /package/{esm2020 → esm2022}/src/sanitization/url_sanitizer.mjs +0 -0
- /package/{esm2020 → esm2022}/src/signals/src/untracked.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/array_utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/assert.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/char_code.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/closure.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/coercion.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/comparison.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/decorators.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/dom.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/empty.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/errors.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/global.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/is_dev_mode.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/iterable.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/lang.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/microtask.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/ng_i18n_closure_mode.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/ng_jit_mode.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/ng_reflect.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/noop.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/property.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/raf.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/security/trusted_type_defs.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/security/trusted_types.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/security/trusted_types_bypass.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/stringify.mjs +0 -0
- /package/{esm2020 → esm2022}/src/view/provider_flags.mjs +0 -0
- /package/{esm2020 → esm2022}/src/zone/async-stack-tagging.mjs +0 -0
- /package/{esm2020 → esm2022}/src/zone/ng_zone.mjs +0 -0
- /package/{esm2020 → esm2022}/src/zone.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/index.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/async.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/component_fixture.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/fake_async.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/metadata_override.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/metadata_overrider.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/resolvers.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/styling.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/test_bed_common.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/test_hooks.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/testing.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/src/testing_internal.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/testing.mjs +0 -0
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC 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
|
-
/**
|
|
9
|
-
* Tracks the currently active reactive context (or `null` if there is no active
|
|
10
|
-
* context).
|
|
11
|
-
*/
|
|
12
|
-
let activeConsumer = null;
|
|
13
|
-
/**
|
|
14
|
-
* Counter tracking the next `ProducerId` or `ConsumerId`.
|
|
15
|
-
*/
|
|
16
|
-
let _nextReactiveId = 0;
|
|
17
|
-
/**
|
|
18
|
-
* Get a new `ProducerId` or `ConsumerId`, allocated from the global sequence.
|
|
19
|
-
*
|
|
20
|
-
* The value returned is a type intersection of both branded types, and thus can be assigned to
|
|
21
|
-
* either.
|
|
22
|
-
*/
|
|
23
|
-
export function nextReactiveId() {
|
|
24
|
-
return _nextReactiveId++;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Set `consumer` as the active reactive context, and return the previous `Consumer`
|
|
28
|
-
* (if any) for later restoration.
|
|
29
|
-
*/
|
|
30
|
-
export function setActiveConsumer(consumer) {
|
|
31
|
-
const prevConsumer = activeConsumer;
|
|
32
|
-
activeConsumer = consumer;
|
|
33
|
-
return prevConsumer;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Notify all `Consumer`s of the given `Producer` that its value may have changed.
|
|
37
|
-
*/
|
|
38
|
-
export function producerNotifyConsumers(producer) {
|
|
39
|
-
for (const [consumerId, edge] of producer.consumers) {
|
|
40
|
-
const consumer = edge.consumerRef.deref();
|
|
41
|
-
if (consumer === undefined || consumer.trackingVersion !== edge.atTrackingVersion) {
|
|
42
|
-
producer.consumers.delete(consumerId);
|
|
43
|
-
consumer?.producers.delete(producer.id);
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
consumer.notify();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Record a dependency on the given `Producer` by the current reactive `Consumer` if
|
|
51
|
-
* one is present.
|
|
52
|
-
*/
|
|
53
|
-
export function producerAccessed(producer) {
|
|
54
|
-
if (activeConsumer === null) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
// Either create or update the dependency `Edge` in both directions.
|
|
58
|
-
let edge = activeConsumer.producers.get(producer.id);
|
|
59
|
-
if (edge === undefined) {
|
|
60
|
-
edge = {
|
|
61
|
-
consumerRef: activeConsumer.ref,
|
|
62
|
-
producerRef: producer.ref,
|
|
63
|
-
seenValueVersion: producer.valueVersion,
|
|
64
|
-
atTrackingVersion: activeConsumer.trackingVersion,
|
|
65
|
-
};
|
|
66
|
-
activeConsumer.producers.set(producer.id, edge);
|
|
67
|
-
producer.consumers.set(activeConsumer.id, edge);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
edge.seenValueVersion = producer.valueVersion;
|
|
71
|
-
edge.atTrackingVersion = activeConsumer.trackingVersion;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Checks if a `Producer` has a current value which is different than the value
|
|
76
|
-
* last seen at a specific version by a `Consumer` which recorded a dependency on
|
|
77
|
-
* this `Producer`.
|
|
78
|
-
*/
|
|
79
|
-
function producerPollStatus(producer, lastSeenValueVersion) {
|
|
80
|
-
// `producer.valueVersion` may be stale, but a mismatch still means that the value
|
|
81
|
-
// last seen by the `Consumer` is also stale.
|
|
82
|
-
if (producer.valueVersion !== lastSeenValueVersion) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
// Trigger the `Producer` to update its `valueVersion` if necessary.
|
|
86
|
-
producer.checkForChangedValue();
|
|
87
|
-
// At this point, we can trust `producer.valueVersion`.
|
|
88
|
-
return producer.valueVersion !== lastSeenValueVersion;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Function called to check the stale status of dependencies (producers) for a given consumer. This
|
|
92
|
-
* is a verification step before refreshing a given consumer: if none of the the dependencies
|
|
93
|
-
* reports a semantically new value, then the `Consumer` has not observed a real dependency change
|
|
94
|
-
* (even though it may have been notified of one).
|
|
95
|
-
*/
|
|
96
|
-
export function consumerPollValueStatus(consumer) {
|
|
97
|
-
for (const [producerId, edge] of consumer.producers) {
|
|
98
|
-
const producer = edge.producerRef.deref();
|
|
99
|
-
if (producer === undefined || edge.atTrackingVersion !== consumer.trackingVersion) {
|
|
100
|
-
// This dependency edge is stale, so remove it.
|
|
101
|
-
consumer.producers.delete(producerId);
|
|
102
|
-
producer?.consumers.delete(consumer.id);
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
if (producerPollStatus(producer, edge.seenValueVersion)) {
|
|
106
|
-
// One of the dependencies reports a real value change.
|
|
107
|
-
return true;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// No dependency reported a real value change, so the `Consumer` has also not been
|
|
111
|
-
// impacted.
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9zaWduYWxzL3NyYy9ncmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUE0Qkg7OztHQUdHO0FBQ0gsSUFBSSxjQUFjLEdBQWtCLElBQUksQ0FBQztBQUV6Qzs7R0FFRztBQUNILElBQUksZUFBZSxHQUFXLENBQUMsQ0FBQztBQUVoQzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxjQUFjO0lBQzVCLE9BQVEsZUFBZSxFQUE4QixDQUFDO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBdUI7SUFDdkQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDO0lBQ3BDLGNBQWMsR0FBRyxRQUFRLENBQUM7SUFDMUIsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQTJGRDs7R0FFRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFrQjtJQUN4RCxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNqRixRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsU0FBUztTQUNWO1FBRUQsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ25CO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxRQUFrQjtJQUNqRCxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUU7UUFDM0IsT0FBTztLQUNSO0lBRUQsb0VBQW9FO0lBQ3BFLElBQUksSUFBSSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDdEIsSUFBSSxHQUFHO1lBQ0wsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHO1lBQy9CLFdBQVcsRUFBRSxRQUFRLENBQUMsR0FBRztZQUN6QixnQkFBZ0IsRUFBRSxRQUFRLENBQUMsWUFBWTtZQUN2QyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsZUFBZTtTQUNsRCxDQUFDO1FBQ0YsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ2pEO1NBQU07UUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUM5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQztLQUN6RDtBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxRQUFrQixFQUFFLG9CQUE0QjtJQUMxRSxrRkFBa0Y7SUFDbEYsNkNBQTZDO0lBQzdDLElBQUksUUFBUSxDQUFDLFlBQVksS0FBSyxvQkFBb0IsRUFBRTtRQUNsRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsb0VBQW9FO0lBQ3BFLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBRWhDLHVEQUF1RDtJQUN2RCxPQUFPLFFBQVEsQ0FBQyxZQUFZLEtBQUssb0JBQW9CLENBQUM7QUFDeEQsQ0FBQztBQWdFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFrQjtJQUN4RCxLQUFLLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtRQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTFDLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssUUFBUSxDQUFDLGVBQWUsRUFBRTtZQUNqRiwrQ0FBK0M7WUFDL0MsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLFNBQVM7U0FDVjtRQUVELElBQUksa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3ZELHVEQUF1RDtZQUN2RCxPQUFPLElBQUksQ0FBQztTQUNiO0tBQ0Y7SUFFRCxrRkFBa0Y7SUFDbEYsWUFBWTtJQUNaLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1dlYWtSZWZ9IGZyb20gJy4vd2Vha19yZWYnO1xuXG4vKipcbiAqIElkZW50aWZpZXIgZm9yIGEgYFByb2R1Y2VyYCwgd2hpY2ggaXMgYSBicmFuZGVkIGBudW1iZXJgLlxuICpcbiAqIE5vdGUgdGhhdCBgUHJvZHVjZXJJZGAgYW5kIGBDb25zdW1lcklkYCBhcmUgYXNzaWduZWQgZnJvbSB0aGUgc2FtZSBzZXF1ZW5jZSwgc28gdGhlIHNhbWUgYG51bWJlcmBcbiAqIHdpbGwgbmV2ZXIgYmUgdXNlZCBmb3IgYm90aC5cbiAqXG4gKiBCcmFuZGluZyBwcm92aWRlcyBhZGRpdGlvbmFsIHR5cGUgc2FmZXR5IGJ5IGVuc3VyaW5nIHRoYXQgYFByb2R1Y2VySWRgIGFuZCBgQ29uc3VtZXJJZGAgYXJlXG4gKiBtdXR1YWxseSB1bmFzc2lnbmFibGUgd2l0aG91dCBhIGNhc3QuIFNpbmNlIHNldmVyYWwgYE1hcGBzIGFyZSBrZXllZCBieSB0aGVzZSBJRHMsIHRoaXMgcHJldmVudHNcbiAqIGBQcm9kdWNlcklkYHMgZnJvbSBiZWluZyBpbmFkdmVydGVudGx5IHVzZWQgdG8gbG9vayB1cCBgQ29uc3VtZXJgcyBvciB2aWNlIHZlcnNhLlxuICovXG5leHBvcnQgdHlwZSBQcm9kdWNlcklkID0gbnVtYmVyJntfX3Byb2R1Y2VyOiB0cnVlfTtcblxuLyoqXG4gKiBJZGVudGlmaWVyIGZvciBhIGBDb25zdW1lcmAsIHdoaWNoIGlzIGEgYnJhbmRlZCBgbnVtYmVyYC5cbiAqXG4gKiBOb3RlIHRoYXQgYFByb2R1Y2VySWRgIGFuZCBgQ29uc3VtZXJJZGAgYXJlIGFzc2lnbmVkIGZyb20gdGhlIHNhbWUgc2VxdWVuY2UsIHNvIHRoZSBzYW1lIGBudW1iZXJgXG4gKiB3aWxsIG5ldmVyIGJlIHVzZWQgZm9yIGJvdGguXG4gKlxuICogQnJhbmRpbmcgcHJvdmlkZXMgYWRkaXRpb25hbCB0eXBlIHNhZmV0eSBieSBlbnN1cmluZyB0aGF0IGBQcm9kdWNlcklkYCBhbmQgYENvbnN1bWVySWRgIGFyZVxuICogbXV0dWFsbHkgdW5hc3NpZ25hYmxlIHdpdGhvdXQgYSBjYXN0LiBTaW5jZSBzZXZlcmFsIGBNYXBgcyBhcmUga2V5ZWQgYnkgdGhlc2UgSURzLCB0aGlzIHByZXZlbnRzXG4gKiBgQ29uc3VtZXJJZGBzIGZyb20gYmVpbmcgaW5hZHZlcnRlbnRseSB1c2VkIHRvIGxvb2sgdXAgYFByb2R1Y2VyYHMgb3IgdmljZSB2ZXJzYS5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uc3VtZXJJZCA9IG51bWJlciZ7X19jb25zdW1lcjogdHJ1ZX07XG5cbi8qKlxuICogVHJhY2tzIHRoZSBjdXJyZW50bHkgYWN0aXZlIHJlYWN0aXZlIGNvbnRleHQgKG9yIGBudWxsYCBpZiB0aGVyZSBpcyBubyBhY3RpdmVcbiAqIGNvbnRleHQpLlxuICovXG5sZXQgYWN0aXZlQ29uc3VtZXI6IENvbnN1bWVyfG51bGwgPSBudWxsO1xuXG4vKipcbiAqIENvdW50ZXIgdHJhY2tpbmcgdGhlIG5leHQgYFByb2R1Y2VySWRgIG9yIGBDb25zdW1lcklkYC5cbiAqL1xubGV0IF9uZXh0UmVhY3RpdmVJZDogbnVtYmVyID0gMDtcblxuLyoqXG4gKiBHZXQgYSBuZXcgYFByb2R1Y2VySWRgIG9yIGBDb25zdW1lcklkYCwgYWxsb2NhdGVkIGZyb20gdGhlIGdsb2JhbCBzZXF1ZW5jZS5cbiAqXG4gKiBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgYSB0eXBlIGludGVyc2VjdGlvbiBvZiBib3RoIGJyYW5kZWQgdHlwZXMsIGFuZCB0aHVzIGNhbiBiZSBhc3NpZ25lZCB0b1xuICogZWl0aGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dFJlYWN0aXZlSWQoKTogUHJvZHVjZXJJZCZDb25zdW1lcklkIHtcbiAgcmV0dXJuIChfbmV4dFJlYWN0aXZlSWQrKyBhcyBQcm9kdWNlcklkICYgQ29uc3VtZXJJZCk7XG59XG5cbi8qKlxuICogU2V0IGBjb25zdW1lcmAgYXMgdGhlIGFjdGl2ZSByZWFjdGl2ZSBjb250ZXh0LCBhbmQgcmV0dXJuIHRoZSBwcmV2aW91cyBgQ29uc3VtZXJgXG4gKiAoaWYgYW55KSBmb3IgbGF0ZXIgcmVzdG9yYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRBY3RpdmVDb25zdW1lcihjb25zdW1lcjogQ29uc3VtZXJ8bnVsbCk6IENvbnN1bWVyfG51bGwge1xuICBjb25zdCBwcmV2Q29uc3VtZXIgPSBhY3RpdmVDb25zdW1lcjtcbiAgYWN0aXZlQ29uc3VtZXIgPSBjb25zdW1lcjtcbiAgcmV0dXJuIHByZXZDb25zdW1lcjtcbn1cblxuLyoqXG4gKiBBIGJpZGlyZWN0aW9uYWwgZWRnZSBpbiB0aGUgcHJvZHVjZXItY29uc3VtZXIgZGVwZW5kZW5jeSBncmFwaC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGdlIHtcbiAgLyoqXG4gICAqIFdlYWtseSBoZWxkIHJlZmVyZW5jZSB0byB0aGUgYENvbnN1bWVyYCBzaWRlIG9mIHRoaXMgZWRnZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN1bWVyUmVmOiBXZWFrUmVmPENvbnN1bWVyPjtcblxuICAvKipcbiAgICogV2Vha2x5IGhlbGQgcmVmZXJlbmNlIHRvIHRoZSBgUHJvZHVjZXJgIHNpZGUgb2YgdGhpcyBlZGdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZHVjZXJSZWY6IFdlYWtSZWY8UHJvZHVjZXI+O1xuXG4gIC8qKlxuICAgKiBgdHJhY2tpbmdWZXJzaW9uYCBvZiB0aGUgYENvbnN1bWVyYCBhdCB3aGljaCB0aGlzIGRlcGVuZGVuY3kgZWRnZSB3YXMgbGFzdCBvYnNlcnZlZC5cbiAgICpcbiAgICogSWYgdGhpcyBkb2Vzbid0IG1hdGNoIHRoZSBgQ29uc3VtZXJgJ3MgY3VycmVudCBgdHJhY2tpbmdWZXJzaW9uYCwgdGhlbiB0aGlzIGRlcGVuZGVuY3kgcmVjb3JkXG4gICAqIGlzIHN0YWxlLCBhbmQgbmVlZHMgdG8gYmUgY2xlYW5lZCB1cC5cbiAgICovXG4gIGF0VHJhY2tpbmdWZXJzaW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIGB2YWx1ZVZlcnNpb25gIG9mIHRoZSBgUHJvZHVjZXJgIGF0IHRoZSB0aW1lIHRoaXMgZGVwZW5kZW5jeSB3YXMgbGFzdCBhY2Nlc3NlZC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VkIGJ5IGBjb25zdW1lclBvbGxWYWx1ZVN0YXR1c2AgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBgQ29uc3VtZXJgJ3MgZGVwZW5kZW5jaWVzIGhhdmVcbiAgICogc2VtYW50aWNhbGx5IGNoYW5nZWQuXG4gICAqL1xuICBzZWVuVmFsdWVWZXJzaW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHZhbHVlIHRoYXQgY2FuIGJlIHJlYWQgcmVhY3RpdmVseSwgYW5kIGNhbiBub3RpZnkgcmVhZGVycyAoYENvbnN1bWVyYHMpXG4gKiB3aGVuIGl0IGNoYW5nZXMuXG4gKlxuICogUHJvZHVjZXJzIG1haW50YWluIGEgd2VhayByZWZlcmVuY2UgdG8gYW55IGBDb25zdW1lcmBzIHdoaWNoIG1heSBkZXBlbmQgb24gdGhlXG4gKiBwcm9kdWNlcidzIHZhbHVlLlxuICpcbiAqIEltcGxlbWVudGVycyBvZiBgUHJvZHVjZXJgIGV4cG9zZSBhIG1vbm90b25pYyBgdmFsdWVWZXJzaW9uYCBjb3VudGVyLCBhbmQgYXJlIHJlc3BvbnNpYmxlXG4gKiBmb3IgaW5jcmVtZW50aW5nIHRoaXMgdmVyc2lvbiB3aGVuIHRoZWlyIHZhbHVlIHNlbWFudGljYWxseSBjaGFuZ2VzLiBTb21lIFByb2R1Y2VycyBtYXlcbiAqIHByb2R1Y2UgdGhpcyB2YWx1ZSBsYXppbHkgYW5kIHRodXMgYXQgdGltZXMgbmVlZCB0byBiZSBwb2xsZWQgZm9yIHBvdGVudGlhbCB1cGRhdGVzIHRvXG4gKiB0aGVpciB2YWx1ZSAoYW5kIGJ5IGV4dGVuc2lvbiB0aGVpciBgdmFsdWVWZXJzaW9uYCkuIFRoaXMgaXMgYWNjb21wbGlzaGVkIHZpYSB0aGVcbiAqIGBjaGVja0ZvckNoYW5nZWRWYWx1ZWAgbWV0aG9kIGZvciBQcm9kdWNlcnMsIHdoaWNoIHNob3VsZCBwZXJmb3JtIHdoYXRldmVyIGNhbGN1bGF0aW9uc1xuICogYXJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgYHZhbHVlVmVyc2lvbmAgaXMgdXAgdG8gZGF0ZS5cbiAqXG4gKiBgUHJvZHVjZXJgcyBzdXBwb3J0IHR3byBvcGVyYXRpb25zOlxuICogICAqIGBwcm9kdWNlck5vdGlmeUNvbnN1bWVyc2BcbiAqICAgKiBgcHJvZHVjZXJBY2Nlc3NlZGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9kdWNlciB7XG4gIC8qKlxuICAgKiBOdW1lcmljIGlkZW50aWZpZXIgb2YgdGhpcyBgUHJvZHVjZXJgLlxuICAgKlxuICAgKiBNYXkgYWxzbyBiZSB1c2VkIHRvIHNhdGlzZnkgdGhlIGludGVyZmFjZSBmb3IgYENvbnN1bWVyYC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBQcm9kdWNlcklkO1xuXG4gIC8qKlxuICAgKiBBIGBXZWFrUmVmYCB0byB0aGlzIGBQcm9kdWNlcmAgaW5zdGFuY2UuXG4gICAqXG4gICAqIEFuIGltcGxlbWVudGVyIHByb3ZpZGVzIHRoaXMgYXMgYSBjYWNoZWQgdmFsdWUgdG8gYXZvaWQgdGhlIG5lZWQgdG8gaW5zdGFudGlhdGVcbiAgICogbXVsdGlwbGUgYFdlYWtSZWZgIGluc3RhbmNlcyBmb3IgdGhlIHNhbWUgYFByb2R1Y2VyYC5cbiAgICpcbiAgICogTWF5IGFsc28gYmUgdXNlZCB0byBzYXRpc2Z5IHRoZSBpbnRlcmZhY2UgZm9yIGBDb25zdW1lcmAuXG4gICAqL1xuICByZWFkb25seSByZWY6IFdlYWtSZWY8UHJvZHVjZXI+O1xuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBkZXBlbmRlbmN5IGBFZGdlYHMgdG8gYENvbnN1bWVyYHMsIGtleWVkIGJ5IHRoZSBgQ29uc3VtZXJJZGAuXG4gICAqXG4gICAqIFVzZWQgd2hlbiB0aGUgcHJvZHVjZWQgdmFsdWUgY2hhbmdlcyB0byBub3RpZnkgaW50ZXJlc3RlZCBgQ29uc3VtZXJgcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN1bWVyczogTWFwPENvbnN1bWVySWQsIEVkZ2U+O1xuXG4gIC8qKlxuICAgKiBNb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgY291bnRlciB3aGljaCBpbmNyZWFzZXMgd2hlbiB0aGUgdmFsdWUgb2YgdGhpcyBgUHJvZHVjZXJgXG4gICAqIHNlbWFudGljYWxseSBjaGFuZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVWZXJzaW9uOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEVuc3VyZSB0aGF0IGB2YWx1ZVZlcnNpb25gIGlzIHVwIHRvIGRhdGUgZm9yIHRoZSBgUHJvZHVjZXJgJ3MgdmFsdWUuXG4gICAqXG4gICAqIFNvbWUgYFByb2R1Y2VyYHMgbWF5IHByb2R1Y2UgdmFsdWVzIGxhemlseSwgYW5kIHRodXMgcmVxdWlyZSBwb2xsaW5nIGJlZm9yZSB0aGVpclxuICAgKiBgdmFsdWVWZXJzaW9uYCBjYW4gYmUgY29tcGFyZWQgd2l0aCB0aGUgdmVyc2lvbiBjYXB0dXJlZCBkdXJpbmcgYSBwcmV2aW91cyByZWFkLlxuICAgKi9cbiAgY2hlY2tGb3JDaGFuZ2VkVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBOb3RpZnkgYWxsIGBDb25zdW1lcmBzIG9mIHRoZSBnaXZlbiBgUHJvZHVjZXJgIHRoYXQgaXRzIHZhbHVlIG1heSBoYXZlIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWNlck5vdGlmeUNvbnN1bWVycyhwcm9kdWNlcjogUHJvZHVjZXIpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbY29uc3VtZXJJZCwgZWRnZV0gb2YgcHJvZHVjZXIuY29uc3VtZXJzKSB7XG4gICAgY29uc3QgY29uc3VtZXIgPSBlZGdlLmNvbnN1bWVyUmVmLmRlcmVmKCk7XG4gICAgaWYgKGNvbnN1bWVyID09PSB1bmRlZmluZWQgfHwgY29uc3VtZXIudHJhY2tpbmdWZXJzaW9uICE9PSBlZGdlLmF0VHJhY2tpbmdWZXJzaW9uKSB7XG4gICAgICBwcm9kdWNlci5jb25zdW1lcnMuZGVsZXRlKGNvbnN1bWVySWQpO1xuICAgICAgY29uc3VtZXI/LnByb2R1Y2Vycy5kZWxldGUocHJvZHVjZXIuaWQpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3VtZXIubm90aWZ5KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWNvcmQgYSBkZXBlbmRlbmN5IG9uIHRoZSBnaXZlbiBgUHJvZHVjZXJgIGJ5IHRoZSBjdXJyZW50IHJlYWN0aXZlIGBDb25zdW1lcmAgaWZcbiAqIG9uZSBpcyBwcmVzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvZHVjZXJBY2Nlc3NlZChwcm9kdWNlcjogUHJvZHVjZXIpOiB2b2lkIHtcbiAgaWYgKGFjdGl2ZUNvbnN1bWVyID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gRWl0aGVyIGNyZWF0ZSBvciB1cGRhdGUgdGhlIGRlcGVuZGVuY3kgYEVkZ2VgIGluIGJvdGggZGlyZWN0aW9ucy5cbiAgbGV0IGVkZ2UgPSBhY3RpdmVDb25zdW1lci5wcm9kdWNlcnMuZ2V0KHByb2R1Y2VyLmlkKTtcbiAgaWYgKGVkZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgIGVkZ2UgPSB7XG4gICAgICBjb25zdW1lclJlZjogYWN0aXZlQ29uc3VtZXIucmVmLFxuICAgICAgcHJvZHVjZXJSZWY6IHByb2R1Y2VyLnJlZixcbiAgICAgIHNlZW5WYWx1ZVZlcnNpb246IHByb2R1Y2VyLnZhbHVlVmVyc2lvbixcbiAgICAgIGF0VHJhY2tpbmdWZXJzaW9uOiBhY3RpdmVDb25zdW1lci50cmFja2luZ1ZlcnNpb24sXG4gICAgfTtcbiAgICBhY3RpdmVDb25zdW1lci5wcm9kdWNlcnMuc2V0KHByb2R1Y2VyLmlkLCBlZGdlKTtcbiAgICBwcm9kdWNlci5jb25zdW1lcnMuc2V0KGFjdGl2ZUNvbnN1bWVyLmlkLCBlZGdlKTtcbiAgfSBlbHNlIHtcbiAgICBlZGdlLnNlZW5WYWx1ZVZlcnNpb24gPSBwcm9kdWNlci52YWx1ZVZlcnNpb247XG4gICAgZWRnZS5hdFRyYWNraW5nVmVyc2lvbiA9IGFjdGl2ZUNvbnN1bWVyLnRyYWNraW5nVmVyc2lvbjtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIGBQcm9kdWNlcmAgaGFzIGEgY3VycmVudCB2YWx1ZSB3aGljaCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdmFsdWVcbiAqIGxhc3Qgc2VlbiBhdCBhIHNwZWNpZmljIHZlcnNpb24gYnkgYSBgQ29uc3VtZXJgIHdoaWNoIHJlY29yZGVkIGEgZGVwZW5kZW5jeSBvblxuICogdGhpcyBgUHJvZHVjZXJgLlxuICovXG5mdW5jdGlvbiBwcm9kdWNlclBvbGxTdGF0dXMocHJvZHVjZXI6IFByb2R1Y2VyLCBsYXN0U2VlblZhbHVlVmVyc2lvbjogbnVtYmVyKTogYm9vbGVhbiB7XG4gIC8vIGBwcm9kdWNlci52YWx1ZVZlcnNpb25gIG1heSBiZSBzdGFsZSwgYnV0IGEgbWlzbWF0Y2ggc3RpbGwgbWVhbnMgdGhhdCB0aGUgdmFsdWVcbiAgLy8gbGFzdCBzZWVuIGJ5IHRoZSBgQ29uc3VtZXJgIGlzIGFsc28gc3RhbGUuXG4gIGlmIChwcm9kdWNlci52YWx1ZVZlcnNpb24gIT09IGxhc3RTZWVuVmFsdWVWZXJzaW9uKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBUcmlnZ2VyIHRoZSBgUHJvZHVjZXJgIHRvIHVwZGF0ZSBpdHMgYHZhbHVlVmVyc2lvbmAgaWYgbmVjZXNzYXJ5LlxuICBwcm9kdWNlci5jaGVja0ZvckNoYW5nZWRWYWx1ZSgpO1xuXG4gIC8vIEF0IHRoaXMgcG9pbnQsIHdlIGNhbiB0cnVzdCBgcHJvZHVjZXIudmFsdWVWZXJzaW9uYC5cbiAgcmV0dXJuIHByb2R1Y2VyLnZhbHVlVmVyc2lvbiAhPT0gbGFzdFNlZW5WYWx1ZVZlcnNpb247XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHJlYWRlciB0aGF0IGNhbiBkZXBlbmQgb24gcmVhY3RpdmUgdmFsdWVzIChgUHJvZHVjZXJgcykgYW5kIHJlY2VpdmVcbiAqIG5vdGlmaWNhdGlvbnMgd2hlbiB0aG9zZSB2YWx1ZXMgY2hhbmdlLlxuICpcbiAqIGBDb25zdW1lcmBzIGRvIG5vdCB3cmFwIHRoZSByZWFkcyB0aGV5IGNvbnN1bWUgdGhlbXNlbHZlcywgYnV0IHJhdGhlciBjYW4gYmUgc2V0XG4gKiBhcyB0aGUgYWN0aXZlIHJlYWRlciB2aWEgYHNldEFjdGl2ZUNvbnN1bWVyYC5cbiAqXG4gKiBUaGUgc2V0IG9mIGRlcGVuZGVuY2llcyBvZiBhIGBDb25zdW1lcmAgaXMgZHluYW1pYy4gSW1wbGVtZW50ZXJzIGV4cG9zZSBhXG4gKiBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgYHRyYWNraW5nVmVyc2lvbmAgY291bnRlciwgd2hpY2ggaW5jcmVtZW50cyB3aGVuZXZlclxuICogdGhlIGBDb25zdW1lcmAgaXMgYWJvdXQgdG8gcmUtcnVuIGFueSByZWFjdGl2ZSByZWFkcyBpdCBuZWVkcyBhbmQgZXN0YWJsaXNoIGFcbiAqIG5ldyBzZXQgb2YgZGVwZW5kZW5jaWVzIGFzIGEgcmVzdWx0LlxuICpcbiAqIGBQcm9kdWNlcmBzIHN0b3JlIHRoZSBsYXN0IGB0cmFja2luZ1ZlcnNpb25gIHRoZXkndmUgc2VlbiBmcm9tIGBDb25zdW1lcmBzIHdoaWNoXG4gKiBoYXZlIHJlYWQgdGhlbS4gVGhpcyBhbGxvd3MgYSBgUHJvZHVjZXJgIHRvIGlkZW50aWZ5IHdoZXRoZXIgaXRzIHJlY29yZCBvZiB0aGVcbiAqIGRlcGVuZGVuY3kgaXMgY3VycmVudCBvciBzdGFsZSwgYnkgY29tcGFyaW5nIHRoZSBgQ29uc3VtZXJgJ3MgYHRyYWNraW5nVmVyc2lvbmBcbiAqIHRvIHRoZSB2ZXJzaW9uIGF0IHdoaWNoIHRoZSBkZXBlbmRlbmN5IHdhcyBlc3RhYmxpc2hlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdW1lciB7XG4gIC8qKlxuICAgKiBOdW1lcmljIGlkZW50aWZpZXIgb2YgdGhpcyBgUHJvZHVjZXJgLlxuICAgKlxuICAgKiBNYXkgYWxzbyBiZSB1c2VkIHRvIHNhdGlzZnkgdGhlIGludGVyZmFjZSBmb3IgYFByb2R1Y2VyYC5cbiAgICovXG4gIHJlYWRvbmx5IGlkOiBDb25zdW1lcklkO1xuXG4gIC8qKlxuICAgKiBBIGBXZWFrUmVmYCB0byB0aGlzIGBDb25zdW1lcmAgaW5zdGFuY2UuXG4gICAqXG4gICAqIEFuIGltcGxlbWVudGVyIHByb3ZpZGVzIHRoaXMgYXMgYSBjYWNoZWQgdmFsdWUgdG8gYXZvaWQgdGhlIG5lZWQgdG8gaW5zdGFudGlhdGVcbiAgICogbXVsdGlwbGUgYFdlYWtSZWZgIGluc3RhbmNlcyBmb3IgdGhlIHNhbWUgYENvbnN1bWVyYC5cbiAgICpcbiAgICogTWF5IGFsc28gYmUgdXNlZCB0byBzYXRpc2Z5IHRoZSBpbnRlcmZhY2UgZm9yIGBQcm9kdWNlcmAuXG4gICAqL1xuICByZWFkb25seSByZWY6IFdlYWtSZWY8Q29uc3VtZXI+O1xuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBgRWRnZWBzIHRvIGBQcm9kdWNlcmAgZGVwZW5kZW5jaWVzLCBrZXllZCBieSB0aGUgYFByb2R1Y2VySWRgLlxuICAgKlxuICAgKiBVc2VkIHRvIHBvbGwgYFByb2R1Y2VyYHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgQ29uc3VtZXJgIGhhcyByZWFsbHkgdXBkYXRlZFxuICAgKiBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBwcm9kdWNlcnM6IE1hcDxQcm9kdWNlcklkLCBFZGdlPjtcblxuICAvKipcbiAgICogTW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGNvdW50ZXIgcmVwcmVzZW50aW5nIGEgdmVyc2lvbiBvZiB0aGlzIGBDb25zdW1lcmAnc1xuICAgKiBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICByZWFkb25seSB0cmFja2luZ1ZlcnNpb246IG51bWJlcjtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYSBgUHJvZHVjZXJgIGRlcGVuZGVuY3kgb2YgdGhpcyBgQ29uc3VtZXJgIGluZGljYXRlcyBpdCBtYXlcbiAgICogaGF2ZSBhIG5ldyB2YWx1ZS5cbiAgICpcbiAgICogTm90aWZpY2F0aW9uIGFsb25lIGRvZXMgbm90IG1lYW4gdGhlIGBQcm9kdWNlcmAgaGFzIGRlZmluaXRlbHkgcHJvZHVjZWQgYVxuICAgKiBzZW1hbnRpY2FsbHkgZGlmZmVyZW50IHZhbHVlLCBvbmx5IHRoYXQgaXQgX21heV8gaGF2ZSBjaGFuZ2VkLiBCZWZvcmUgYVxuICAgKiBgQ29uc3VtZXJgIHJlLXJ1bnMgYW55IGNvbXB1dGF0aW9ucyBvciBzaWRlIGVmZmVjdHMsIGl0IHNob3VsZCB1c2UgdGhlXG4gICAqIGBjb25zdW1lclBvbGxWYWx1ZVN0YXR1c2AgbWV0aG9kIHRvIHBvbGwgdGhlIGBQcm9kdWNlcmBzIG9uIHdoaWNoIGl0IGRlcGVuZHNcbiAgICogYW5kIGRldGVybWluZSBpZiBhbnkgb2YgdGhlbSBoYXZlIGFjdHVhbGx5IHVwZGF0ZWQuXG4gICAqL1xuICBub3RpZnkoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBjYWxsZWQgdG8gY2hlY2sgdGhlIHN0YWxlIHN0YXR1cyBvZiBkZXBlbmRlbmNpZXMgKHByb2R1Y2VycykgZm9yIGEgZ2l2ZW4gY29uc3VtZXIuIFRoaXNcbiAqIGlzIGEgdmVyaWZpY2F0aW9uIHN0ZXAgYmVmb3JlIHJlZnJlc2hpbmcgYSBnaXZlbiBjb25zdW1lcjogaWYgbm9uZSBvZiB0aGUgdGhlIGRlcGVuZGVuY2llc1xuICogcmVwb3J0cyBhIHNlbWFudGljYWxseSBuZXcgdmFsdWUsIHRoZW4gdGhlIGBDb25zdW1lcmAgaGFzIG5vdCBvYnNlcnZlZCBhIHJlYWwgZGVwZW5kZW5jeSBjaGFuZ2VcbiAqIChldmVuIHRob3VnaCBpdCBtYXkgaGF2ZSBiZWVuIG5vdGlmaWVkIG9mIG9uZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zdW1lclBvbGxWYWx1ZVN0YXR1cyhjb25zdW1lcjogQ29uc3VtZXIpOiBib29sZWFuIHtcbiAgZm9yIChjb25zdCBbcHJvZHVjZXJJZCwgZWRnZV0gb2YgY29uc3VtZXIucHJvZHVjZXJzKSB7XG4gICAgY29uc3QgcHJvZHVjZXIgPSBlZGdlLnByb2R1Y2VyUmVmLmRlcmVmKCk7XG5cbiAgICBpZiAocHJvZHVjZXIgPT09IHVuZGVmaW5lZCB8fCBlZGdlLmF0VHJhY2tpbmdWZXJzaW9uICE9PSBjb25zdW1lci50cmFja2luZ1ZlcnNpb24pIHtcbiAgICAgIC8vIFRoaXMgZGVwZW5kZW5jeSBlZGdlIGlzIHN0YWxlLCBzbyByZW1vdmUgaXQuXG4gICAgICBjb25zdW1lci5wcm9kdWNlcnMuZGVsZXRlKHByb2R1Y2VySWQpO1xuICAgICAgcHJvZHVjZXI/LmNvbnN1bWVycy5kZWxldGUoY29uc3VtZXIuaWQpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHByb2R1Y2VyUG9sbFN0YXR1cyhwcm9kdWNlciwgZWRnZS5zZWVuVmFsdWVWZXJzaW9uKSkge1xuICAgICAgLy8gT25lIG9mIHRoZSBkZXBlbmRlbmNpZXMgcmVwb3J0cyBhIHJlYWwgdmFsdWUgY2hhbmdlLlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgLy8gTm8gZGVwZW5kZW5jeSByZXBvcnRlZCBhIHJlYWwgdmFsdWUgY2hhbmdlLCBzbyB0aGUgYENvbnN1bWVyYCBoYXMgYWxzbyBub3QgYmVlblxuICAvLyBpbXBhY3RlZC5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC 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 { createSignalFromFunction, defaultEquals } from './api';
|
|
9
|
-
import { nextReactiveId, producerAccessed, producerNotifyConsumers } from './graph';
|
|
10
|
-
import { newWeakRef } from './weak_ref';
|
|
11
|
-
/**
|
|
12
|
-
* Backing type for a `SettableSignal`, a mutable reactive value.
|
|
13
|
-
*/
|
|
14
|
-
class SettableSignalImpl {
|
|
15
|
-
constructor(value, equal) {
|
|
16
|
-
this.value = value;
|
|
17
|
-
this.equal = equal;
|
|
18
|
-
this.id = nextReactiveId();
|
|
19
|
-
this.ref = newWeakRef(this);
|
|
20
|
-
this.consumers = new Map();
|
|
21
|
-
this.valueVersion = 0;
|
|
22
|
-
}
|
|
23
|
-
checkForChangedValue() {
|
|
24
|
-
// Settable signals can only change when set, so there's nothing to check here.
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Directly update the value of the signal to a new value, which may or may not be
|
|
28
|
-
* equal to the previous.
|
|
29
|
-
*
|
|
30
|
-
* In the event that `newValue` is semantically equal to the current value, `set` is
|
|
31
|
-
* a no-op.
|
|
32
|
-
*/
|
|
33
|
-
set(newValue) {
|
|
34
|
-
if (!this.equal(this.value, newValue)) {
|
|
35
|
-
this.value = newValue;
|
|
36
|
-
this.valueVersion++;
|
|
37
|
-
producerNotifyConsumers(this);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Derive a new value for the signal from its current value using the `updater` function.
|
|
42
|
-
*
|
|
43
|
-
* This is equivalent to calling `set` on the result of running `updater` on the current
|
|
44
|
-
* value.
|
|
45
|
-
*/
|
|
46
|
-
update(updater) {
|
|
47
|
-
this.set(updater(this.value));
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Calls `mutator` on the current value and assumes that it has been mutated.
|
|
51
|
-
*/
|
|
52
|
-
mutate(mutator) {
|
|
53
|
-
// Mutate bypasses equality checks as it's by definition changing the value.
|
|
54
|
-
mutator(this.value);
|
|
55
|
-
this.valueVersion++;
|
|
56
|
-
producerNotifyConsumers(this);
|
|
57
|
-
}
|
|
58
|
-
signal() {
|
|
59
|
-
producerAccessed(this);
|
|
60
|
-
return this.value;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Create a `Signal` that can be set or updated directly.
|
|
65
|
-
*
|
|
66
|
-
* @developerPreview
|
|
67
|
-
*/
|
|
68
|
-
export function signal(initialValue, equal = defaultEquals) {
|
|
69
|
-
const signalNode = new SettableSignalImpl(initialValue, equal);
|
|
70
|
-
// Casting here is required for g3.
|
|
71
|
-
const signalFn = createSignalFromFunction(signalNode.signal.bind(signalNode), {
|
|
72
|
-
set: signalNode.set.bind(signalNode),
|
|
73
|
-
update: signalNode.update.bind(signalNode),
|
|
74
|
-
mutate: signalNode.mutate.bind(signalNode),
|
|
75
|
-
});
|
|
76
|
-
return signalFn;
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvc2lnbmFscy9zcmMvc2lnbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxhQUFhLEVBQTBCLE1BQU0sT0FBTyxDQUFDO0FBQ3ZGLE9BQU8sRUFBbUIsY0FBYyxFQUFZLGdCQUFnQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQzlHLE9BQU8sRUFBQyxVQUFVLEVBQVUsTUFBTSxZQUFZLENBQUM7QUEwQi9DOztHQUVHO0FBQ0gsTUFBTSxrQkFBa0I7SUFDdEIsWUFBb0IsS0FBUSxFQUFVLEtBQXlCO1FBQTNDLFVBQUssR0FBTCxLQUFLLENBQUc7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQUV0RCxPQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDdEIsUUFBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7UUFDakQsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFMaUQsQ0FBQztJQU9uRSxvQkFBb0I7UUFDbEIsK0VBQStFO0lBQ2pGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQUMsUUFBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE9BQXdCO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxPQUEyQjtRQUNoQyw0RUFBNEU7UUFDNUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU07UUFDSixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQ2xCLFlBQWUsRUFBRSxRQUE0QixhQUFhO0lBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ELG1DQUFtQztJQUNuQyxNQUFNLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMzRCxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDMUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztLQUMzQyxDQUFpQyxDQUFDO0lBQ3BELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtjcmVhdGVTaWduYWxGcm9tRnVuY3Rpb24sIGRlZmF1bHRFcXVhbHMsIFNpZ25hbCwgVmFsdWVFcXVhbGl0eUZufSBmcm9tICcuL2FwaSc7XG5pbXBvcnQge0NvbnN1bWVySWQsIEVkZ2UsIG5leHRSZWFjdGl2ZUlkLCBQcm9kdWNlciwgcHJvZHVjZXJBY2Nlc3NlZCwgcHJvZHVjZXJOb3RpZnlDb25zdW1lcnN9IGZyb20gJy4vZ3JhcGgnO1xuaW1wb3J0IHtuZXdXZWFrUmVmLCBXZWFrUmVmfSBmcm9tICcuL3dlYWtfcmVmJztcblxuLyoqXG4gKiBBIGBTaWduYWxgIHdpdGggYSB2YWx1ZSB0aGF0IGNhbiBiZSBtdXRhdGVkIHZpYSBhIHNldHRlciBpbnRlcmZhY2UuXG4gKlxuICogQGRldmVsb3BlclByZXZpZXdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXR0YWJsZVNpZ25hbDxUPiBleHRlbmRzIFNpZ25hbDxUPiB7XG4gIC8qKlxuICAgKiBEaXJlY3RseSBzZXQgdGhlIHNpZ25hbCB0byBhIG5ldyB2YWx1ZSwgYW5kIG5vdGlmeSBhbnkgZGVwZW5kZW50cy5cbiAgICovXG4gIHNldCh2YWx1ZTogVCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgdmFsdWUgb2YgdGhlIHNpZ25hbCBiYXNlZCBvbiBpdHMgY3VycmVudCB2YWx1ZSwgYW5kXG4gICAqIG5vdGlmeSBhbnkgZGVwZW5kZW50cy5cbiAgICovXG4gIHVwZGF0ZSh1cGRhdGVGbjogKHZhbHVlOiBUKSA9PiBUKTogdm9pZDtcblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBjdXJyZW50IHZhbHVlIGJ5IG11dGF0aW5nIGl0IGluLXBsYWNlLCBhbmRcbiAgICogbm90aWZ5IGFueSBkZXBlbmRlbnRzLlxuICAgKi9cbiAgbXV0YXRlKG11dGF0b3JGbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZDtcbn1cblxuLyoqXG4gKiBCYWNraW5nIHR5cGUgZm9yIGEgYFNldHRhYmxlU2lnbmFsYCwgYSBtdXRhYmxlIHJlYWN0aXZlIHZhbHVlLlxuICovXG5jbGFzcyBTZXR0YWJsZVNpZ25hbEltcGw8VD4gaW1wbGVtZW50cyBQcm9kdWNlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsdWU6IFQsIHByaXZhdGUgZXF1YWw6IFZhbHVlRXF1YWxpdHlGbjxUPikge31cblxuICByZWFkb25seSBpZCA9IG5leHRSZWFjdGl2ZUlkKCk7XG4gIHJlYWRvbmx5IHJlZiA9IG5ld1dlYWtSZWYodGhpcyk7XG4gIHJlYWRvbmx5IGNvbnN1bWVycyA9IG5ldyBNYXA8Q29uc3VtZXJJZCwgRWRnZT4oKTtcbiAgdmFsdWVWZXJzaW9uID0gMDtcblxuICBjaGVja0ZvckNoYW5nZWRWYWx1ZSgpOiB2b2lkIHtcbiAgICAvLyBTZXR0YWJsZSBzaWduYWxzIGNhbiBvbmx5IGNoYW5nZSB3aGVuIHNldCwgc28gdGhlcmUncyBub3RoaW5nIHRvIGNoZWNrIGhlcmUuXG4gIH1cblxuICAvKipcbiAgICogRGlyZWN0bHkgdXBkYXRlIHRoZSB2YWx1ZSBvZiB0aGUgc2lnbmFsIHRvIGEgbmV3IHZhbHVlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZVxuICAgKiBlcXVhbCB0byB0aGUgcHJldmlvdXMuXG4gICAqXG4gICAqIEluIHRoZSBldmVudCB0aGF0IGBuZXdWYWx1ZWAgaXMgc2VtYW50aWNhbGx5IGVxdWFsIHRvIHRoZSBjdXJyZW50IHZhbHVlLCBgc2V0YCBpc1xuICAgKiBhIG5vLW9wLlxuICAgKi9cbiAgc2V0KG5ld1ZhbHVlOiBUKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVxdWFsKHRoaXMudmFsdWUsIG5ld1ZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgdGhpcy52YWx1ZVZlcnNpb24rKztcbiAgICAgIHByb2R1Y2VyTm90aWZ5Q29uc3VtZXJzKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmUgYSBuZXcgdmFsdWUgZm9yIHRoZSBzaWduYWwgZnJvbSBpdHMgY3VycmVudCB2YWx1ZSB1c2luZyB0aGUgYHVwZGF0ZXJgIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyBgc2V0YCBvbiB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYHVwZGF0ZXJgIG9uIHRoZSBjdXJyZW50XG4gICAqIHZhbHVlLlxuICAgKi9cbiAgdXBkYXRlKHVwZGF0ZXI6ICh2YWx1ZTogVCkgPT4gVCk6IHZvaWQge1xuICAgIHRoaXMuc2V0KHVwZGF0ZXIodGhpcy52YWx1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIGBtdXRhdG9yYCBvbiB0aGUgY3VycmVudCB2YWx1ZSBhbmQgYXNzdW1lcyB0aGF0IGl0IGhhcyBiZWVuIG11dGF0ZWQuXG4gICAqL1xuICBtdXRhdGUobXV0YXRvcjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgLy8gTXV0YXRlIGJ5cGFzc2VzIGVxdWFsaXR5IGNoZWNrcyBhcyBpdCdzIGJ5IGRlZmluaXRpb24gY2hhbmdpbmcgdGhlIHZhbHVlLlxuICAgIG11dGF0b3IodGhpcy52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZVZlcnNpb24rKztcbiAgICBwcm9kdWNlck5vdGlmeUNvbnN1bWVycyh0aGlzKTtcbiAgfVxuXG4gIHNpZ25hbCgpOiBUIHtcbiAgICBwcm9kdWNlckFjY2Vzc2VkKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYFNpZ25hbGAgdGhhdCBjYW4gYmUgc2V0IG9yIHVwZGF0ZWQgZGlyZWN0bHkuXG4gKlxuICogQGRldmVsb3BlclByZXZpZXdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbDxUPihcbiAgICBpbml0aWFsVmFsdWU6IFQsIGVxdWFsOiBWYWx1ZUVxdWFsaXR5Rm48VD4gPSBkZWZhdWx0RXF1YWxzKTogU2V0dGFibGVTaWduYWw8VD4ge1xuICBjb25zdCBzaWduYWxOb2RlID0gbmV3IFNldHRhYmxlU2lnbmFsSW1wbChpbml0aWFsVmFsdWUsIGVxdWFsKTtcbiAgLy8gQ2FzdGluZyBoZXJlIGlzIHJlcXVpcmVkIGZvciBnMy5cbiAgY29uc3Qgc2lnbmFsRm4gPSBjcmVhdGVTaWduYWxGcm9tRnVuY3Rpb24oc2lnbmFsTm9kZS5zaWduYWwuYmluZChzaWduYWxOb2RlKSwge1xuICAgICAgICAgICAgICAgICAgICAgc2V0OiBzaWduYWxOb2RlLnNldC5iaW5kKHNpZ25hbE5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgdXBkYXRlOiBzaWduYWxOb2RlLnVwZGF0ZS5iaW5kKHNpZ25hbE5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgbXV0YXRlOiBzaWduYWxOb2RlLm11dGF0ZS5iaW5kKHNpZ25hbE5vZGUpLFxuICAgICAgICAgICAgICAgICAgIH0pIGFzIHVua25vd24gYXMgU2V0dGFibGVTaWduYWw8VD47XG4gIHJldHVybiBzaWduYWxGbjtcbn1cbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC 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 { consumerPollValueStatus, nextReactiveId, setActiveConsumer } from './graph';
|
|
9
|
-
import { newWeakRef } from './weak_ref';
|
|
10
|
-
/**
|
|
11
|
-
* Watches a reactive expression and allows it to be scheduled to re-run
|
|
12
|
-
* when any dependencies notify of a change.
|
|
13
|
-
*
|
|
14
|
-
* `Watch` doesn't run reactive expressions itself, but relies on a consumer-
|
|
15
|
-
* provided scheduling operation to coordinate calling `Watch.run()`.
|
|
16
|
-
*/
|
|
17
|
-
export class Watch {
|
|
18
|
-
constructor(watch, schedule) {
|
|
19
|
-
this.watch = watch;
|
|
20
|
-
this.schedule = schedule;
|
|
21
|
-
this.id = nextReactiveId();
|
|
22
|
-
this.ref = newWeakRef(this);
|
|
23
|
-
this.producers = new Map();
|
|
24
|
-
this.trackingVersion = 0;
|
|
25
|
-
this.dirty = false;
|
|
26
|
-
}
|
|
27
|
-
notify() {
|
|
28
|
-
if (!this.dirty) {
|
|
29
|
-
this.schedule(this);
|
|
30
|
-
}
|
|
31
|
-
this.dirty = true;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Execute the reactive expression in the context of this `Watch` consumer.
|
|
35
|
-
*
|
|
36
|
-
* Should be called by the user scheduling algorithm when the provided
|
|
37
|
-
* `schedule` hook is called by `Watch`.
|
|
38
|
-
*/
|
|
39
|
-
run() {
|
|
40
|
-
this.dirty = false;
|
|
41
|
-
if (this.trackingVersion !== 0 && !consumerPollValueStatus(this)) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
const prevConsumer = setActiveConsumer(this);
|
|
45
|
-
this.trackingVersion++;
|
|
46
|
-
try {
|
|
47
|
-
this.watch();
|
|
48
|
-
}
|
|
49
|
-
finally {
|
|
50
|
-
setActiveConsumer(prevConsumer);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9zaWduYWxzL3NyYy93YXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQVcsdUJBQXVCLEVBQVEsY0FBYyxFQUFjLGlCQUFpQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQy9HLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFdEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLEtBQUs7SUFRaEIsWUFBb0IsS0FBaUIsRUFBVSxRQUFnQztRQUEzRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7UUFQdEUsT0FBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLFFBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ2pELG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRVosVUFBSyxHQUFHLEtBQUssQ0FBQztJQUU0RCxDQUFDO0lBRW5GLE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hFLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJO1lBQ0YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7Z0JBQVM7WUFDUixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0NvbnN1bWVyLCBjb25zdW1lclBvbGxWYWx1ZVN0YXR1cywgRWRnZSwgbmV4dFJlYWN0aXZlSWQsIFByb2R1Y2VySWQsIHNldEFjdGl2ZUNvbnN1bWVyfSBmcm9tICcuL2dyYXBoJztcbmltcG9ydCB7bmV3V2Vha1JlZn0gZnJvbSAnLi93ZWFrX3JlZic7XG5cbi8qKlxuICogV2F0Y2hlcyBhIHJlYWN0aXZlIGV4cHJlc3Npb24gYW5kIGFsbG93cyBpdCB0byBiZSBzY2hlZHVsZWQgdG8gcmUtcnVuXG4gKiB3aGVuIGFueSBkZXBlbmRlbmNpZXMgbm90aWZ5IG9mIGEgY2hhbmdlLlxuICpcbiAqIGBXYXRjaGAgZG9lc24ndCBydW4gcmVhY3RpdmUgZXhwcmVzc2lvbnMgaXRzZWxmLCBidXQgcmVsaWVzIG9uIGEgY29uc3VtZXItXG4gKiBwcm92aWRlZCBzY2hlZHVsaW5nIG9wZXJhdGlvbiB0byBjb29yZGluYXRlIGNhbGxpbmcgYFdhdGNoLnJ1bigpYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFdhdGNoIGltcGxlbWVudHMgQ29uc3VtZXIge1xuICByZWFkb25seSBpZCA9IG5leHRSZWFjdGl2ZUlkKCk7XG4gIHJlYWRvbmx5IHJlZiA9IG5ld1dlYWtSZWYodGhpcyk7XG4gIHJlYWRvbmx5IHByb2R1Y2VycyA9IG5ldyBNYXA8UHJvZHVjZXJJZCwgRWRnZT4oKTtcbiAgdHJhY2tpbmdWZXJzaW9uID0gMDtcblxuICBwcml2YXRlIGRpcnR5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3YXRjaDogKCkgPT4gdm9pZCwgcHJpdmF0ZSBzY2hlZHVsZTogKHdhdGNoOiBXYXRjaCkgPT4gdm9pZCkge31cblxuICBub3RpZnkoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpcnR5KSB7XG4gICAgICB0aGlzLnNjaGVkdWxlKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSByZWFjdGl2ZSBleHByZXNzaW9uIGluIHRoZSBjb250ZXh0IG9mIHRoaXMgYFdhdGNoYCBjb25zdW1lci5cbiAgICpcbiAgICogU2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgdXNlciBzY2hlZHVsaW5nIGFsZ29yaXRobSB3aGVuIHRoZSBwcm92aWRlZFxuICAgKiBgc2NoZWR1bGVgIGhvb2sgaXMgY2FsbGVkIGJ5IGBXYXRjaGAuXG4gICAqL1xuICBydW4oKTogdm9pZCB7XG4gICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnRyYWNraW5nVmVyc2lvbiAhPT0gMCAmJiAhY29uc3VtZXJQb2xsVmFsdWVTdGF0dXModGhpcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2Q29uc3VtZXIgPSBzZXRBY3RpdmVDb25zdW1lcih0aGlzKTtcbiAgICB0aGlzLnRyYWNraW5nVmVyc2lvbisrO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLndhdGNoKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldEFjdGl2ZUNvbnN1bWVyKHByZXZDb25zdW1lcik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC 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 { global } from '../../util/global';
|
|
9
|
-
// `WeakRef` is not always defined in every TS environment where Angular is compiled. Instead,
|
|
10
|
-
// read it off of the global context if available.
|
|
11
|
-
// tslint:disable-next-line: no-toplevel-property-access
|
|
12
|
-
let WeakRefImpl = global['WeakRef'];
|
|
13
|
-
export function newWeakRef(value) {
|
|
14
|
-
if (typeof ngDevMode !== 'undefined' && ngDevMode && WeakRefImpl === undefined) {
|
|
15
|
-
throw new Error(`Angular requires a browser which supports the 'WeakRef' API`);
|
|
16
|
-
}
|
|
17
|
-
return new WeakRefImpl(value);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Use an alternate implementation of `WeakRef` if a platform implementation isn't available.
|
|
21
|
-
*/
|
|
22
|
-
export function setAlternateWeakRefImpl(impl) {
|
|
23
|
-
if (!WeakRefImpl) {
|
|
24
|
-
WeakRefImpl = impl;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vha19yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9zaWduYWxzL3NyYy93ZWFrX3JlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFekMsOEZBQThGO0FBQzlGLGtEQUFrRDtBQUNsRCx3REFBd0Q7QUFDeEQsSUFBSSxXQUFXLEdBQTBCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQU0zRCxNQUFNLFVBQVUsVUFBVSxDQUFtQixLQUFRO0lBQ25ELElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO1FBQzlFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztLQUNoRjtJQUNELE9BQU8sSUFBSSxXQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQU1EOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQWlCO0lBQ3ZELElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsV0FBVyxHQUFHLElBQUksQ0FBQztLQUNwQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtnbG9iYWx9IGZyb20gJy4uLy4uL3V0aWwvZ2xvYmFsJztcblxuLy8gYFdlYWtSZWZgIGlzIG5vdCBhbHdheXMgZGVmaW5lZCBpbiBldmVyeSBUUyBlbnZpcm9ubWVudCB3aGVyZSBBbmd1bGFyIGlzIGNvbXBpbGVkLiBJbnN0ZWFkLFxuLy8gcmVhZCBpdCBvZmYgb2YgdGhlIGdsb2JhbCBjb250ZXh0IGlmIGF2YWlsYWJsZS5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdG9wbGV2ZWwtcHJvcGVydHktYWNjZXNzXG5sZXQgV2Vha1JlZkltcGw6IFdlYWtSZWZDdG9yfHVuZGVmaW5lZCA9IGdsb2JhbFsnV2Vha1JlZiddO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYWtSZWY8VCBleHRlbmRzIG9iamVjdD4ge1xuICBkZXJlZigpOiBUfHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5ld1dlYWtSZWY8VCBleHRlbmRzIG9iamVjdD4odmFsdWU6IFQpOiBXZWFrUmVmPFQ+IHtcbiAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSAmJiBXZWFrUmVmSW1wbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBbmd1bGFyIHJlcXVpcmVzIGEgYnJvd3NlciB3aGljaCBzdXBwb3J0cyB0aGUgJ1dlYWtSZWYnIEFQSWApO1xuICB9XG4gIHJldHVybiBuZXcgV2Vha1JlZkltcGwhKHZhbHVlKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWFrUmVmQ3RvciB7XG4gIG5ldzxUIGV4dGVuZHMgb2JqZWN0Pih2YWx1ZTogVCk6IFdlYWtSZWY8VD47XG59XG5cbi8qKlxuICogVXNlIGFuIGFsdGVybmF0ZSBpbXBsZW1lbnRhdGlvbiBvZiBgV2Vha1JlZmAgaWYgYSBwbGF0Zm9ybSBpbXBsZW1lbnRhdGlvbiBpc24ndCBhdmFpbGFibGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRBbHRlcm5hdGVXZWFrUmVmSW1wbChpbXBsOiBXZWFrUmVmQ3Rvcikge1xuICBpZiAoIVdlYWtSZWZJbXBsKSB7XG4gICAgV2Vha1JlZkltcGwgPSBpbXBsO1xuICB9XG59XG4iXX0=
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC 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 { APP_ID } from './application_tokens';
|
|
9
|
-
import { inject } from './di/injector_compatibility';
|
|
10
|
-
import { ɵɵdefineInjectable } from './di/interface/defs';
|
|
11
|
-
import { getDocument } from './render3/interfaces/document';
|
|
12
|
-
export function escapeTransferStateContent(text) {
|
|
13
|
-
const escapedText = {
|
|
14
|
-
'&': '&a;',
|
|
15
|
-
'"': '&q;',
|
|
16
|
-
'\'': '&s;',
|
|
17
|
-
'<': '&l;',
|
|
18
|
-
'>': '&g;',
|
|
19
|
-
};
|
|
20
|
-
return text.replace(/[&"'<>]/g, s => escapedText[s]);
|
|
21
|
-
}
|
|
22
|
-
export function unescapeTransferStateContent(text) {
|
|
23
|
-
const unescapedText = {
|
|
24
|
-
'&a;': '&',
|
|
25
|
-
'&q;': '"',
|
|
26
|
-
'&s;': '\'',
|
|
27
|
-
'&l;': '<',
|
|
28
|
-
'&g;': '>',
|
|
29
|
-
};
|
|
30
|
-
return text.replace(/&[^;]+;/g, s => unescapedText[s]);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.
|
|
34
|
-
*
|
|
35
|
-
* Example:
|
|
36
|
-
*
|
|
37
|
-
* ```
|
|
38
|
-
* const COUNTER_KEY = makeStateKey<number>('counter');
|
|
39
|
-
* let value = 10;
|
|
40
|
-
*
|
|
41
|
-
* transferState.set(COUNTER_KEY, value);
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @publicApi
|
|
45
|
-
*/
|
|
46
|
-
export function makeStateKey(key) {
|
|
47
|
-
return key;
|
|
48
|
-
}
|
|
49
|
-
function initTransferState() {
|
|
50
|
-
const transferState = new TransferState();
|
|
51
|
-
transferState.store = retrieveTransferredState(getDocument(), inject(APP_ID));
|
|
52
|
-
return transferState;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* A key value store that is transferred from the application on the server side to the application
|
|
56
|
-
* on the client side.
|
|
57
|
-
*
|
|
58
|
-
* The `TransferState` is available as an injectable token.
|
|
59
|
-
* On the client, just inject this token using DI and use it, it will be lazily initialized.
|
|
60
|
-
* On the server it's already included if `renderApplication` function is used. Otherwise, import
|
|
61
|
-
* the `ServerTransferStateModule` module to make the `TransferState` available.
|
|
62
|
-
*
|
|
63
|
-
* The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only
|
|
64
|
-
* boolean, number, string, null and non-class objects will be serialized and deserialized in a
|
|
65
|
-
* non-lossy manner.
|
|
66
|
-
*
|
|
67
|
-
* @publicApi
|
|
68
|
-
*/
|
|
69
|
-
class TransferState {
|
|
70
|
-
constructor() {
|
|
71
|
-
/** @internal */
|
|
72
|
-
this.store = {};
|
|
73
|
-
this.onSerializeCallbacks = {};
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get the value corresponding to a key. Return `defaultValue` if key is not found.
|
|
77
|
-
*/
|
|
78
|
-
get(key, defaultValue) {
|
|
79
|
-
return this.store[key] !== undefined ? this.store[key] : defaultValue;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Set the value corresponding to a key.
|
|
83
|
-
*/
|
|
84
|
-
set(key, value) {
|
|
85
|
-
this.store[key] = value;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Remove a key from the store.
|
|
89
|
-
*/
|
|
90
|
-
remove(key) {
|
|
91
|
-
delete this.store[key];
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Test whether a key exists in the store.
|
|
95
|
-
*/
|
|
96
|
-
hasKey(key) {
|
|
97
|
-
return this.store.hasOwnProperty(key);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Indicates whether the state is empty.
|
|
101
|
-
*/
|
|
102
|
-
get isEmpty() {
|
|
103
|
-
return Object.keys(this.store).length === 0;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Register a callback to provide the value for a key when `toJson` is called.
|
|
107
|
-
*/
|
|
108
|
-
onSerialize(key, callback) {
|
|
109
|
-
this.onSerializeCallbacks[key] = callback;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Serialize the current state of the store to JSON.
|
|
113
|
-
*/
|
|
114
|
-
toJson() {
|
|
115
|
-
// Call the onSerialize callbacks and put those values into the store.
|
|
116
|
-
for (const key in this.onSerializeCallbacks) {
|
|
117
|
-
if (this.onSerializeCallbacks.hasOwnProperty(key)) {
|
|
118
|
-
try {
|
|
119
|
-
this.store[key] = this.onSerializeCallbacks[key]();
|
|
120
|
-
}
|
|
121
|
-
catch (e) {
|
|
122
|
-
console.warn('Exception in onSerialize callback: ', e);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return JSON.stringify(this.store);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/** @nocollapse */
|
|
130
|
-
TransferState.ɵprov =
|
|
131
|
-
/** @pureOrBreakMyCode */ ɵɵdefineInjectable({
|
|
132
|
-
token: TransferState,
|
|
133
|
-
providedIn: 'root',
|
|
134
|
-
factory: initTransferState,
|
|
135
|
-
});
|
|
136
|
-
export { TransferState };
|
|
137
|
-
function retrieveTransferredState(doc, appId) {
|
|
138
|
-
// Locate the script tag with the JSON data transferred from the server.
|
|
139
|
-
// The id of the script tag is set to the Angular appId + 'state'.
|
|
140
|
-
const script = doc.getElementById(appId + '-state');
|
|
141
|
-
let initialState = {};
|
|
142
|
-
if (script && script.textContent) {
|
|
143
|
-
try {
|
|
144
|
-
// Avoid using any here as it triggers lint errors in google3 (any is not allowed).
|
|
145
|
-
initialState = JSON.parse(unescapeTransferStateContent(script.textContent));
|
|
146
|
-
}
|
|
147
|
-
catch (e) {
|
|
148
|
-
console.warn('Exception while restoring TransferState for app ' + appId, e);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return initialState;
|
|
152
|
-
}
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJfc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy90cmFuc2Zlcl9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUUxRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsSUFBWTtJQUNyRCxNQUFNLFdBQVcsR0FBMEI7UUFDekMsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLElBQUksRUFBRSxLQUFLO1FBQ1gsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztLQUNYLENBQUM7SUFDRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxJQUFZO0lBQ3ZELE1BQU0sYUFBYSxHQUEwQjtRQUMzQyxLQUFLLEVBQUUsR0FBRztRQUNWLEtBQUssRUFBRSxHQUFHO1FBQ1YsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsR0FBRztRQUNWLEtBQUssRUFBRSxHQUFHO0tBQ1gsQ0FBQztJQUNGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBcUJEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFXLEdBQVc7SUFDaEQsT0FBTyxHQUFrQixDQUFDO0FBQzVCLENBQUM7QUFFRCxTQUFTLGlCQUFpQjtJQUN4QixNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsd0JBQXdCLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDOUUsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBYSxhQUFhO0lBQTFCO1FBU0UsZ0JBQWdCO1FBQ2hCLFVBQUssR0FBcUMsRUFBRSxDQUFDO1FBRXJDLHlCQUFvQixHQUE2QyxFQUFFLENBQUM7SUE0RDlFLENBQUM7SUExREM7O09BRUc7SUFDSCxHQUFHLENBQUksR0FBZ0IsRUFBRSxZQUFlO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUM3RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUksR0FBZ0IsRUFBRSxLQUFRO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBSSxHQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFJLEdBQWdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBSSxHQUFnQixFQUFFLFFBQWlCO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLHNFQUFzRTtRQUN0RSxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pELElBQUk7b0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztpQkFDcEQ7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDeEQ7YUFDRjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDOztBQXRFRCxrQkFBa0I7QUFDWCxtQkFBSztBQUNSLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDO0lBQzNDLEtBQUssRUFBRSxhQUFhO0lBQ3BCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxpQkFBaUI7Q0FDM0IsQ0FBQyxBQUxNLENBS0w7U0FQSSxhQUFhO0FBMEUxQixTQUFTLHdCQUF3QixDQUFDLEdBQWEsRUFBRSxLQUFhO0lBQzVELHdFQUF3RTtJQUN4RSxrRUFBa0U7SUFDbEUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLENBQUM7SUFDcEQsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDaEMsSUFBSTtZQUNGLG1GQUFtRjtZQUNuRixZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQU8sQ0FBQztTQUNuRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxrREFBa0QsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDN0U7S0FDRjtJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtBUFBfSUR9IGZyb20gJy4vYXBwbGljYXRpb25fdG9rZW5zJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICcuL2RpL2luamVjdG9yX2NvbXBhdGliaWxpdHknO1xuaW1wb3J0IHvJtcm1ZGVmaW5lSW5qZWN0YWJsZX0gZnJvbSAnLi9kaS9pbnRlcmZhY2UvZGVmcyc7XG5pbXBvcnQge2dldERvY3VtZW50fSBmcm9tICcuL3JlbmRlcjMvaW50ZXJmYWNlcy9kb2N1bWVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVUcmFuc2ZlclN0YXRlQ29udGVudCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBlc2NhcGVkVGV4dDoge1trOiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICAgICcmJzogJyZhOycsXG4gICAgJ1wiJzogJyZxOycsXG4gICAgJ1xcJyc6ICcmczsnLFxuICAgICc8JzogJyZsOycsXG4gICAgJz4nOiAnJmc7JyxcbiAgfTtcbiAgcmV0dXJuIHRleHQucmVwbGFjZSgvWyZcIic8Pl0vZywgcyA9PiBlc2NhcGVkVGV4dFtzXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmVzY2FwZVRyYW5zZmVyU3RhdGVDb250ZW50KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHVuZXNjYXBlZFRleHQ6IHtbazogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgICAnJmE7JzogJyYnLFxuICAgICcmcTsnOiAnXCInLFxuICAgICcmczsnOiAnXFwnJyxcbiAgICAnJmw7JzogJzwnLFxuICAgICcmZzsnOiAnPicsXG4gIH07XG4gIHJldHVybiB0ZXh0LnJlcGxhY2UoLyZbXjtdKzsvZywgcyA9PiB1bmVzY2FwZWRUZXh0W3NdKTtcbn1cblxuLyoqXG4gKiBBIHR5cGUtc2FmZSBrZXkgdG8gdXNlIHdpdGggYFRyYW5zZmVyU3RhdGVgLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgXG4gKiBjb25zdCBDT1VOVEVSX0tFWSA9IG1ha2VTdGF0ZUtleTxudW1iZXI+KCdjb3VudGVyJyk7XG4gKiBsZXQgdmFsdWUgPSAxMDtcbiAqXG4gKiB0cmFuc2ZlclN0YXRlLnNldChDT1VOVEVSX0tFWSwgdmFsdWUpO1xuICogYGBgXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBTdGF0ZUtleTxUPiA9IHN0cmluZyZ7XG4gIF9fbm90X2Ffc3RyaW5nOiBuZXZlcixcbiAgX192YWx1ZV90eXBlPzogVCxcbn07XG5cbi8qKlxuICogQ3JlYXRlIGEgYFN0YXRlS2V5PFQ+YCB0aGF0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIHZhbHVlIG9mIHR5cGUgVCB3aXRoIGBUcmFuc2ZlclN0YXRlYC5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGBgYFxuICogY29uc3QgQ09VTlRFUl9LRVkgPSBtYWtlU3RhdGVLZXk8bnVtYmVyPignY291bnRlcicpO1xuICogbGV0IHZhbHVlID0gMTA7XG4gKlxuICogdHJhbnNmZXJTdGF0ZS5zZXQoQ09VTlRFUl9LRVksIHZhbHVlKTtcbiAqIGBgYFxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VTdGF0ZUtleTxUID0gdm9pZD4oa2V5OiBzdHJpbmcpOiBTdGF0ZUtleTxUPiB7XG4gIHJldHVybiBrZXkgYXMgU3RhdGVLZXk8VD47XG59XG5cbmZ1bmN0aW9uIGluaXRUcmFuc2ZlclN0YXRlKCkge1xuICBjb25zdCB0cmFuc2ZlclN0YXRlID0gbmV3IFRyYW5zZmVyU3RhdGUoKTtcbiAgdHJhbnNmZXJTdGF0ZS5zdG9yZSA9IHJldHJpZXZlVHJhbnNmZXJyZWRTdGF0ZShnZXREb2N1bWVudCgpLCBpbmplY3QoQVBQX0lEKSk7XG4gIHJldHVybiB0cmFuc2ZlclN0YXRlO1xufVxuXG4vKipcbiAqIEEga2V5IHZhbHVlIHN0b3JlIHRoYXQgaXMgdHJhbnNmZXJyZWQgZnJvbSB0aGUgYXBwbGljYXRpb24gb24gdGhlIHNlcnZlciBzaWRlIHRvIHRoZSBhcHBsaWNhdGlvblxuICogb24gdGhlIGNsaWVudCBzaWRlLlxuICpcbiAqIFRoZSBgVHJhbnNmZXJTdGF0ZWAgaXMgYXZhaWxhYmxlIGFzIGFuIGluamVjdGFibGUgdG9rZW4uXG4gKiBPbiB0aGUgY2xpZW50LCBqdXN0IGluamVjdCB0aGlzIHRva2VuIHVzaW5nIERJIGFuZCB1c2UgaXQsIGl0IHdpbGwgYmUgbGF6aWx5IGluaXRpYWxpemVkLlxuICogT24gdGhlIHNlcnZlciBpdCdzIGFscmVhZHkgaW5jbHVkZWQgaWYgYHJlbmRlckFwcGxpY2F0aW9uYCBmdW5jdGlvbiBpcyB1c2VkLiBPdGhlcndpc2UsIGltcG9ydFxuICogdGhlIGBTZXJ2ZXJUcmFuc2ZlclN0YXRlTW9kdWxlYCBtb2R1bGUgdG8gbWFrZSB0aGUgYFRyYW5zZmVyU3RhdGVgIGF2YWlsYWJsZS5cbiAqXG4gKiBUaGUgdmFsdWVzIGluIHRoZSBzdG9yZSBhcmUgc2VyaWFsaXplZC9kZXNlcmlhbGl6ZWQgdXNpbmcgSlNPTi5zdHJpbmdpZnkvSlNPTi5wYXJzZS4gU28gb25seVxuICogYm9vbGVhbiwgbnVtYmVyLCBzdHJpbmcsIG51bGwgYW5kIG5vbi1jbGFzcyBvYmplY3RzIHdpbGwgYmUgc2VyaWFsaXplZCBhbmQgZGVzZXJpYWxpemVkIGluIGFcbiAqIG5vbi1sb3NzeSBtYW5uZXIuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY2xhc3MgVHJhbnNmZXJTdGF0ZSB7XG4gIC8qKiBAbm9jb2xsYXBzZSAqL1xuICBzdGF0aWMgybVwcm92ID1cbiAgICAgIC8qKiBAcHVyZU9yQnJlYWtNeUNvZGUgKi8gybXJtWRlZmluZUluamVjdGFibGUoe1xuICAgICAgICB0b2tlbjogVHJhbnNmZXJTdGF0ZSxcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgICAgICBmYWN0b3J5OiBpbml0VHJhbnNmZXJTdGF0ZSxcbiAgICAgIH0pO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc3RvcmU6IHtbazogc3RyaW5nXTogdW5rbm93bnx1bmRlZmluZWR9ID0ge307XG5cbiAgcHJpdmF0ZSBvblNlcmlhbGl6ZUNhbGxiYWNrczoge1trOiBzdHJpbmddOiAoKSA9PiB1bmtub3duIHwgdW5kZWZpbmVkfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gYSBrZXkuIFJldHVybiBgZGVmYXVsdFZhbHVlYCBpZiBrZXkgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgZ2V0PFQ+KGtleTogU3RhdGVLZXk8VD4sIGRlZmF1bHRWYWx1ZTogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLnN0b3JlW2tleV0gIT09IHVuZGVmaW5lZCA/IHRoaXMuc3RvcmVba2V5XSBhcyBUIDogZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdmFsdWUgY29ycmVzcG9uZGluZyB0byBhIGtleS5cbiAgICovXG4gIHNldDxUPihrZXk6IFN0YXRlS2V5PFQ+LCB2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmVba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIGtleSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHJlbW92ZTxUPihrZXk6IFN0YXRlS2V5PFQ+KTogdm9pZCB7XG4gICAgZGVsZXRlIHRoaXMuc3RvcmVba2V5XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZXN0IHdoZXRoZXIgYSBrZXkgZXhpc3RzIGluIHRoZSBzdG9yZS5cbiAgICovXG4gIGhhc0tleTxUPihrZXk6IFN0YXRlS2V5PFQ+KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuaGFzT3duUHJvcGVydHkoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc3RhdGUgaXMgZW1wdHkuXG4gICAqL1xuICBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5zdG9yZSkubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY2FsbGJhY2sgdG8gcHJvdmlkZSB0aGUgdmFsdWUgZm9yIGEga2V5IHdoZW4gYHRvSnNvbmAgaXMgY2FsbGVkLlxuICAgKi9cbiAgb25TZXJpYWxpemU8VD4oa2V5OiBTdGF0ZUtleTxUPiwgY2FsbGJhY2s6ICgpID0+IFQpOiB2b2lkIHtcbiAgICB0aGlzLm9uU2VyaWFsaXplQ2FsbGJhY2tzW2tleV0gPSBjYWxsYmFjaztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0b3JlIHRvIEpTT04uXG4gICAqL1xuICB0b0pzb24oKTogc3RyaW5nIHtcbiAgICAvLyBDYWxsIHRoZSBvblNlcmlhbGl6ZSBjYWxsYmFja3MgYW5kIHB1dCB0aG9zZSB2YWx1ZXMgaW50byB0aGUgc3RvcmUuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5vblNlcmlhbGl6ZUNhbGxiYWNrcykge1xuICAgICAgaWYgKHRoaXMub25TZXJpYWxpemVDYWxsYmFja3MuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuc3RvcmVba2V5XSA9IHRoaXMub25TZXJpYWxpemVDYWxsYmFja3Nba2V5XSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdFeGNlcHRpb24gaW4gb25TZXJpYWxpemUgY2FsbGJhY2s6ICcsIGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnN0b3JlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZXRyaWV2ZVRyYW5zZmVycmVkU3RhdGUoZG9jOiBEb2N1bWVudCwgYXBwSWQ6IHN0cmluZykge1xuICAvLyBMb2NhdGUgdGhlIHNjcmlwdCB0YWcgd2l0aCB0aGUgSlNPTiBkYXRhIHRyYW5zZmVycmVkIGZyb20gdGhlIHNlcnZlci5cbiAgLy8gVGhlIGlkIG9mIHRoZSBzY3JpcHQgdGFnIGlzIHNldCB0byB0aGUgQW5ndWxhciBhcHBJZCArICdzdGF0ZScuXG4gIGNvbnN0IHNjcmlwdCA9IGRvYy5nZXRFbGVtZW50QnlJZChhcHBJZCArICctc3RhdGUnKTtcbiAgbGV0IGluaXRpYWxTdGF0ZSA9IHt9O1xuICBpZiAoc2NyaXB0ICYmIHNjcmlwdC50ZXh0Q29udGVudCkge1xuICAgIHRyeSB7XG4gICAgICAvLyBBdm9pZCB1c2luZyBhbnkgaGVyZSBhcyBpdCB0cmlnZ2VycyBsaW50IGVycm9ycyBpbiBnb29nbGUzIChhbnkgaXMgbm90IGFsbG93ZWQpLlxuICAgICAgaW5pdGlhbFN0YXRlID0gSlNPTi5wYXJzZSh1bmVzY2FwZVRyYW5zZmVyU3RhdGVDb250ZW50KHNjcmlwdC50ZXh0Q29udGVudCkpIGFzIHt9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignRXhjZXB0aW9uIHdoaWxlIHJlc3RvcmluZyBUcmFuc2ZlclN0YXRlIGZvciBhcHAgJyArIGFwcElkLCBlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbn1cbiJdfQ==
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC 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 { global } from './global';
|
|
9
|
-
export function ngDevModeResetPerfCounters() {
|
|
10
|
-
const locationString = typeof location !== 'undefined' ? location.toString() : '';
|
|
11
|
-
const newCounters = {
|
|
12
|
-
namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,
|
|
13
|
-
firstCreatePass: 0,
|
|
14
|
-
tNode: 0,
|
|
15
|
-
tView: 0,
|
|
16
|
-
rendererCreateTextNode: 0,
|
|
17
|
-
rendererSetText: 0,
|
|
18
|
-
rendererCreateElement: 0,
|
|
19
|
-
rendererAddEventListener: 0,
|
|
20
|
-
rendererSetAttribute: 0,
|
|
21
|
-
rendererRemoveAttribute: 0,
|
|
22
|
-
rendererSetProperty: 0,
|
|
23
|
-
rendererSetClassName: 0,
|
|
24
|
-
rendererAddClass: 0,
|
|
25
|
-
rendererRemoveClass: 0,
|
|
26
|
-
rendererSetStyle: 0,
|
|
27
|
-
rendererRemoveStyle: 0,
|
|
28
|
-
rendererDestroy: 0,
|
|
29
|
-
rendererDestroyNode: 0,
|
|
30
|
-
rendererMoveNode: 0,
|
|
31
|
-
rendererRemoveNode: 0,
|
|
32
|
-
rendererAppendChild: 0,
|
|
33
|
-
rendererInsertBefore: 0,
|
|
34
|
-
rendererCreateComment: 0,
|
|
35
|
-
hydratedNodes: 0,
|
|
36
|
-
hydratedComponents: 0,
|
|
37
|
-
dehydratedViewsRemoved: 0,
|
|
38
|
-
dehydratedViewsCleanupRuns: 0,
|
|
39
|
-
};
|
|
40
|
-
// Make sure to refer to ngDevMode as ['ngDevMode'] for closure.
|
|
41
|
-
const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;
|
|
42
|
-
global['ngDevMode'] = allowNgDevModeTrue && newCounters;
|
|
43
|
-
return newCounters;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* This function checks to see if the `ngDevMode` has been set. If yes,
|
|
47
|
-
* then we honor it, otherwise we default to dev mode with additional checks.
|
|
48
|
-
*
|
|
49
|
-
* The idea is that unless we are doing production build where we explicitly
|
|
50
|
-
* set `ngDevMode == false` we should be helping the developer by providing
|
|
51
|
-
* as much early warning and errors as possible.
|
|
52
|
-
*
|
|
53
|
-
* `ɵɵdefineComponent` is guaranteed to have been called before any component template functions
|
|
54
|
-
* (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode
|
|
55
|
-
* is defined for the entire instruction set.
|
|
56
|
-
*
|
|
57
|
-
* When checking `ngDevMode` on toplevel, always init it before referencing it
|
|
58
|
-
* (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can
|
|
59
|
-
* get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.
|
|
60
|
-
*
|
|
61
|
-
* Details on possible values for `ngDevMode` can be found on its docstring.
|
|
62
|
-
*
|
|
63
|
-
* NOTE:
|
|
64
|
-
* - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.
|
|
65
|
-
*/
|
|
66
|
-
export function initNgDevMode() {
|
|
67
|
-
// The below checks are to ensure that calling `initNgDevMode` multiple times does not
|
|
68
|
-
// reset the counters.
|
|
69
|
-
// If the `ngDevMode` is not an object, then it means we have not created the perf counters
|
|
70
|
-
// yet.
|
|
71
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
72
|
-
if (typeof ngDevMode !== 'object') {
|
|
73
|
-
ngDevModeResetPerfCounters();
|
|
74
|
-
}
|
|
75
|
-
return typeof ngDevMode !== 'undefined' && !!ngDevMode;
|
|
76
|
-
}
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdfZGV2X21vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy91dGlsL25nX2Rldl9tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFpRGhDLE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsTUFBTSxjQUFjLEdBQUcsT0FBTyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNsRixNQUFNLFdBQVcsR0FBMEI7UUFDekMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RSxlQUFlLEVBQUUsQ0FBQztRQUNsQixLQUFLLEVBQUUsQ0FBQztRQUNSLEtBQUssRUFBRSxDQUFDO1FBQ1Isc0JBQXNCLEVBQUUsQ0FBQztRQUN6QixlQUFlLEVBQUUsQ0FBQztRQUNsQixxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLHdCQUF3QixFQUFFLENBQUM7UUFDM0Isb0JBQW9CLEVBQUUsQ0FBQztRQUN2Qix1QkFBdUIsRUFBRSxDQUFDO1FBQzFCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsb0JBQW9CLEVBQUUsQ0FBQztRQUN2QixnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixtQkFBbUIsRUFBRSxDQUFDO1FBQ3RCLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLG1CQUFtQixFQUFFLENBQUM7UUFDdEIsb0JBQW9CLEVBQUUsQ0FBQztRQUN2QixxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLGtCQUFrQixFQUFFLENBQUM7UUFDckIsc0JBQXNCLEVBQUUsQ0FBQztRQUN6QiwwQkFBMEIsRUFBRSxDQUFDO0tBQzlCLENBQUM7SUFFRixnRUFBZ0U7SUFDaEUsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGtCQUFrQixJQUFJLFdBQVcsQ0FBQztJQUN4RCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLGFBQWE7SUFDM0Isc0ZBQXNGO0lBQ3RGLHNCQUFzQjtJQUN0QiwyRkFBMkY7SUFDM0YsT0FBTztJQUNQLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtRQUNqRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtZQUNqQywwQkFBMEIsRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUN4RDtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2dsb2JhbH0gZnJvbSAnLi9nbG9iYWwnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8qKlxuICAgKiBWYWx1ZXMgb2YgbmdEZXZNb2RlXG4gICAqIERlcGVuZGluZyBvbiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgYXBwbGljYXRpb24sIG5nRGV2TW9kZSBtYXkgaGF2ZSBvbmUgb2Ygc2V2ZXJhbCB2YWx1ZXMuXG4gICAqXG4gICAqIEZvciBjb252ZW5pZW5jZSwgdGhlIOKAnHRydXRoeeKAnSB2YWx1ZSB3aGljaCBlbmFibGVzIGRldiBtb2RlIGlzIGFsc28gYW4gb2JqZWN0IHdoaWNoIGNvbnRhaW5zXG4gICAqIEFuZ3VsYXLigJlzIHBlcmZvcm1hbmNlIGNvdW50ZXJzLiBUaGlzIGlzIG5vdCBuZWNlc3NhcnksIGJ1dCBjdXRzIGRvd24gb24gYm9pbGVycGxhdGUgZm9yIHRoZVxuICAgKiBwZXJmIGNvdW50ZXJzLlxuICAgKlxuICAgKiBuZ0Rldk1vZGUgbWF5IGFsc28gYmUgc2V0IHRvIGZhbHNlLiBUaGlzIGNhbiBoYXBwZW4gaW4gb25lIG9mIGEgZmV3IHdheXM6XG4gICAqIC0gVGhlIHVzZXIgZXhwbGljaXRseSBzZXRzIGB3aW5kb3cubmdEZXZNb2RlID0gZmFsc2VgIHNvbWV3aGVyZSBpbiB0aGVpciBhcHAuXG4gICAqIC0gVGhlIHVzZXIgY2FsbHMgYGVuYWJsZVByb2RNb2RlKClgLlxuICAgKiAtIFRoZSBVUkwgY29udGFpbnMgYSBgbmdEZXZNb2RlPWZhbHNlYCB0ZXh0LlxuICAgKiBGaW5hbGx5LCBuZ0Rldk1vZGUgbWF5IG5vdCBoYXZlIGJlZW4gZGVmaW5lZCBhdCBhbGwuXG4gICAqL1xuICBjb25zdCBuZ0Rldk1vZGU6IG51bGx8TmdEZXZNb2RlUGVyZkNvdW50ZXJzO1xuICBpbnRlcmZhY2UgTmdEZXZNb2RlUGVyZkNvdW50ZXJzIHtcbiAgICBuYW1lZENvbnN0cnVjdG9yczogYm9vbGVhbjtcbiAgICBmaXJzdENyZWF0ZVBhc3M6IG51bWJlcjtcbiAgICB0Tm9kZTogbnVtYmVyO1xuICAgIHRWaWV3OiBudW1iZXI7XG4gICAgcmVuZGVyZXJDcmVhdGVUZXh0Tm9kZTogbnVtYmVyO1xuICAgIHJlbmRlcmVyU2V0VGV4dDogbnVtYmVyO1xuICAgIHJlbmRlcmVyQ3JlYXRlRWxlbWVudDogbnVtYmVyO1xuICAgIHJlbmRlcmVyQWRkRXZlbnRMaXN0ZW5lcjogbnVtYmVyO1xuICAgIHJlbmRlcmVyU2V0QXR0cmlidXRlOiBudW1iZXI7XG4gICAgcmVuZGVyZXJSZW1vdmVBdHRyaWJ1dGU6IG51bWJlcjtcbiAgICByZW5kZXJlclNldFByb3BlcnR5OiBudW1iZXI7XG4gICAgcmVuZGVyZXJTZXRDbGFzc05hbWU6IG51bWJlcjtcbiAgICByZW5kZXJlckFkZENsYXNzOiBudW1iZXI7XG4gICAgcmVuZGVyZXJSZW1vdmVDbGFzczogbnVtYmVyO1xuICAgIHJlbmRlcmVyU2V0U3R5bGU6IG51bWJlcjtcbiAgICByZW5kZXJlclJlbW92ZVN0eWxlOiBudW1iZXI7XG4gICAgcmVuZGVyZXJEZXN0cm95OiBudW1iZXI7XG4gICAgcmVuZGVyZXJEZXN0cm95Tm9kZTogbnVtYmVyO1xuICAgIHJlbmRlcmVyTW92ZU5vZGU6IG51bWJlcjtcbiAgICByZW5kZXJlclJlbW92ZU5vZGU6IG51bWJlcjtcbiAgICByZW5kZXJlckFwcGVuZENoaWxkOiBudW1iZXI7XG4gICAgcmVuZGVyZXJJbnNlcnRCZWZvcmU6IG51bWJlcjtcbiAgICByZW5kZXJlckNyZWF0ZUNvbW1lbnQ6IG51bWJlcjtcbiAgICBoeWRyYXRlZE5vZGVzOiBudW1iZXI7XG4gICAgaHlkcmF0ZWRDb21wb25lbnRzOiBudW1iZXI7XG4gICAgZGVoeWRyYXRlZFZpZXdzUmVtb3ZlZDogbnVtYmVyO1xuICAgIGRlaHlkcmF0ZWRWaWV3c0NsZWFudXBSdW5zOiBudW1iZXI7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5nRGV2TW9kZVJlc2V0UGVyZkNvdW50ZXJzKCk6IE5nRGV2TW9kZVBlcmZDb3VudGVycyB7XG4gIGNvbnN0IGxvY2F0aW9uU3RyaW5nID0gdHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyA/IGxvY2F0aW9uLnRvU3RyaW5nKCkgOiAnJztcbiAgY29uc3QgbmV3Q291bnRlcnM6IE5nRGV2TW9kZVBlcmZDb3VudGVycyA9IHtcbiAgICBuYW1lZENvbnN0cnVjdG9yczogbG9jYXRpb25TdHJpbmcuaW5kZXhPZignbmdEZXZNb2RlPW5hbWVkQ29uc3RydWN0b3JzJykgIT0gLTEsXG4gICAgZmlyc3RDcmVhdGVQYXNzOiAwLFxuICAgIHROb2RlOiAwLFxuICAgIHRWaWV3OiAwLFxuICAgIHJlbmRlcmVyQ3JlYXRlVGV4dE5vZGU6IDAsXG4gICAgcmVuZGVyZXJTZXRUZXh0OiAwLFxuICAgIHJlbmRlcmVyQ3JlYXRlRWxlbWVudDogMCxcbiAgICByZW5kZXJlckFkZEV2ZW50TGlzdGVuZXI6IDAsXG4gICAgcmVuZGVyZXJTZXRBdHRyaWJ1dGU6IDAsXG4gICAgcmVuZGVyZXJSZW1vdmVBdHRyaWJ1dGU6IDAsXG4gICAgcmVuZGVyZXJTZXRQcm9wZXJ0eTogMCxcbiAgICByZW5kZXJlclNldENsYXNzTmFtZTogMCxcbiAgICByZW5kZXJlckFkZENsYXNzOiAwLFxuICAgIHJlbmRlcmVyUmVtb3ZlQ2xhc3M6IDAsXG4gICAgcmVuZGVyZXJTZXRTdHlsZTogMCxcbiAgICByZW5kZXJlclJlbW92ZVN0eWxlOiAwLFxuICAgIHJlbmRlcmVyRGVzdHJveTogMCxcbiAgICByZW5kZXJlckRlc3Ryb3lOb2RlOiAwLFxuICAgIHJlbmRlcmVyTW92ZU5vZGU6IDAsXG4gICAgcmVuZGVyZXJSZW1vdmVOb2RlOiAwLFxuICAgIHJlbmRlcmVyQXBwZW5kQ2hpbGQ6IDAsXG4gICAgcmVuZGVyZXJJbnNlcnRCZWZvcmU6IDAsXG4gICAgcmVuZGVyZXJDcmVhdGVDb21tZW50OiAwLFxuICAgIGh5ZHJhdGVkTm9kZXM6IDAsXG4gICAgaHlkcmF0ZWRDb21wb25lbnRzOiAwLFxuICAgIGRlaHlkcmF0ZWRWaWV3c1JlbW92ZWQ6IDAsXG4gICAgZGVoeWRyYXRlZFZpZXdzQ2xlYW51cFJ1bnM6IDAsXG4gIH07XG5cbiAgLy8gTWFrZSBzdXJlIHRvIHJlZmVyIHRvIG5nRGV2TW9kZSBhcyBbJ25nRGV2TW9kZSddIGZvciBjbG9zdXJlLlxuICBjb25zdCBhbGxvd05nRGV2TW9kZVRydWUgPSBsb2NhdGlvblN0cmluZy5pbmRleE9mKCduZ0Rldk1vZGU9ZmFsc2UnKSA9PT0gLTE7XG4gIGdsb2JhbFsnbmdEZXZNb2RlJ10gPSBhbGxvd05nRGV2TW9kZVRydWUgJiYgbmV3Q291bnRlcnM7XG4gIHJldHVybiBuZXdDb3VudGVycztcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0byBzZWUgaWYgdGhlIGBuZ0Rldk1vZGVgIGhhcyBiZWVuIHNldC4gSWYgeWVzLFxuICogdGhlbiB3ZSBob25vciBpdCwgb3RoZXJ3aXNlIHdlIGRlZmF1bHQgdG8gZGV2IG1vZGUgd2l0aCBhZGRpdGlvbmFsIGNoZWNrcy5cbiAqXG4gKiBUaGUgaWRlYSBpcyB0aGF0IHVubGVzcyB3ZSBhcmUgZG9pbmcgcHJvZHVjdGlvbiBidWlsZCB3aGVyZSB3ZSBleHBsaWNpdGx5XG4gKiBzZXQgYG5nRGV2TW9kZSA9PSBmYWxzZWAgd2Ugc2hvdWxkIGJlIGhlbHBpbmcgdGhlIGRldmVsb3BlciBieSBwcm92aWRpbmdcbiAqIGFzIG11Y2ggZWFybHkgd2FybmluZyBhbmQgZXJyb3JzIGFzIHBvc3NpYmxlLlxuICpcbiAqIGDJtcm1ZGVmaW5lQ29tcG9uZW50YCBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYmVlbiBjYWxsZWQgYmVmb3JlIGFueSBjb21wb25lbnQgdGVtcGxhdGUgZnVuY3Rpb25zXG4gKiAoYW5kIHRodXMgSXZ5IGluc3RydWN0aW9ucyksIHNvIGEgc2luZ2xlIGluaXRpYWxpemF0aW9uIHRoZXJlIGlzIHN1ZmZpY2llbnQgdG8gZW5zdXJlIG5nRGV2TW9kZVxuICogaXMgZGVmaW5lZCBmb3IgdGhlIGVudGlyZSBpbnN0cnVjdGlvbiBzZXQuXG4gKlxuICogV2hlbiBjaGVja2luZyBgbmdEZXZNb2RlYCBvbiB0b3BsZXZlbCwgYWx3YXlzIGluaXQgaXQgYmVmb3JlIHJlZmVyZW5jaW5nIGl0XG4gKiAoZS5nLiBgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmIGluaXROZ0Rldk1vZGUoKSlgKSwgb3RoZXJ3aXNlIHlvdSBjYW5cbiAqICBnZXQgYSBgUmVmZXJlbmNlRXJyb3JgIGxpa2UgaW4gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMzE1OTUuXG4gKlxuICogRGV0YWlscyBvbiBwb3NzaWJsZSB2YWx1ZXMgZm9yIGBuZ0Rldk1vZGVgIGNhbiBiZSBmb3VuZCBvbiBpdHMgZG9jc3RyaW5nLlxuICpcbiAqIE5PVEU6XG4gKiAtIGNoYW5nZXMgdG8gdGhlIGBuZ0Rldk1vZGVgIG5hbWUgbXVzdCBiZSBzeW5jZWQgd2l0aCBgY29tcGlsZXItY2xpL3NyYy90b29saW5nLnRzYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXROZ0Rldk1vZGUoKTogYm9vbGVhbiB7XG4gIC8vIFRoZSBiZWxvdyBjaGVja3MgYXJlIHRvIGVuc3VyZSB0aGF0IGNhbGxpbmcgYGluaXROZ0Rldk1vZGVgIG11bHRpcGxlIHRpbWVzIGRvZXMgbm90XG4gIC8vIHJlc2V0IHRoZSBjb3VudGVycy5cbiAgLy8gSWYgdGhlIGBuZ0Rldk1vZGVgIGlzIG5vdCBhbiBvYmplY3QsIHRoZW4gaXQgbWVhbnMgd2UgaGF2ZSBub3QgY3JlYXRlZCB0aGUgcGVyZiBjb3VudGVyc1xuICAvLyB5ZXQuXG4gIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIG5nRGV2TW9kZVJlc2V0UGVyZkNvdW50ZXJzKCk7XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiAhIW5nRGV2TW9kZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
|