@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.
Files changed (369) hide show
  1. package/esm2022/rxjs-interop/index.mjs +9 -0
  2. package/esm2022/rxjs-interop/public_api.mjs +15 -0
  3. package/esm2022/rxjs-interop/rxjs-interop.mjs +5 -0
  4. package/esm2022/rxjs-interop/src/from_observable.mjs +46 -0
  5. package/esm2022/rxjs-interop/src/from_signal.mjs +36 -0
  6. package/esm2022/rxjs-interop/src/index.mjs +11 -0
  7. package/esm2022/rxjs-interop/src/take_until_destroyed.mjs +33 -0
  8. package/{esm2020 → esm2022}/src/application_init.mjs +3 -3
  9. package/{esm2020 → esm2022}/src/application_module.mjs +4 -4
  10. package/esm2022/src/application_ref.mjs +969 -0
  11. package/{esm2020 → esm2022}/src/change_detection/change_detector_ref.mjs +6 -6
  12. package/esm2022/src/change_detection/differs/iterable_differs.mjs +81 -0
  13. package/esm2022/src/change_detection/differs/keyvalue_differs.mjs +74 -0
  14. package/{esm2020 → esm2022}/src/console.mjs +3 -3
  15. package/esm2022/src/core.mjs +56 -0
  16. package/esm2022/src/core_private_export.mjs +39 -0
  17. package/esm2022/src/core_reactivity_export_internal.mjs +12 -0
  18. package/esm2022/src/di/contextual.mjs +54 -0
  19. package/esm2022/src/di/index.mjs +29 -0
  20. package/esm2022/src/di/injector.mjs +62 -0
  21. package/esm2022/src/di/injector_compatibility.mjs +239 -0
  22. package/esm2022/src/di/provider_collection.mjs +279 -0
  23. package/esm2022/src/di/reflective_injector.mjs +311 -0
  24. package/esm2022/src/errors.mjs +49 -0
  25. package/esm2022/src/hydration/annotate.mjs +426 -0
  26. package/esm2022/src/hydration/api.mjs +176 -0
  27. package/esm2022/src/hydration/cleanup.mjs +95 -0
  28. package/esm2022/src/hydration/node_lookup_utils.mjs +273 -0
  29. package/esm2022/src/hydration/utils.mjs +219 -0
  30. package/esm2022/src/initial_render_pending_tasks.mjs +75 -0
  31. package/{esm2020 → esm2022}/src/linker/compiler.mjs +5 -5
  32. package/{esm2020 → esm2022}/src/linker/component_factory.mjs +1 -1
  33. package/esm2022/src/linker/component_factory_resolver.mjs +42 -0
  34. package/{esm2020 → esm2022}/src/linker/destroy_ref.mjs +11 -11
  35. package/{esm2020 → esm2022}/src/linker/element_ref.mjs +6 -6
  36. package/esm2022/src/linker/query_list.mjs +169 -0
  37. package/esm2022/src/linker/template_ref.mjs +102 -0
  38. package/{esm2020 → esm2022}/src/linker/view_container_ref.mjs +7 -7
  39. package/{esm2020 → esm2022}/src/linker/view_ref.mjs +2 -2
  40. package/esm2022/src/metadata/di.mjs +69 -0
  41. package/{esm2020 → esm2022}/src/metadata/directives.mjs +1 -1
  42. package/{esm2020 → esm2022}/src/metadata/do_boostrap.mjs +1 -1
  43. package/{esm2020 → esm2022}/src/metadata/ng_module.mjs +2 -2
  44. package/esm2022/src/metadata.mjs +18 -0
  45. package/{esm2020 → esm2022}/src/render/api.mjs +6 -6
  46. package/esm2022/src/render3/component_ref.mjs +393 -0
  47. package/{esm2020 → esm2022}/src/render3/context_discovery.mjs +1 -1
  48. package/esm2022/src/render3/features/standalone_feature.mjs +70 -0
  49. package/{esm2020 → esm2022}/src/render3/instructions/element.mjs +3 -2
  50. package/{esm2020 → esm2022}/src/render3/instructions/element_container.mjs +1 -2
  51. package/esm2022/src/render3/instructions/listener.mjs +244 -0
  52. package/esm2022/src/render3/instructions/mark_view_dirty.mjs +35 -0
  53. package/{esm2020 → esm2022}/src/render3/instructions/shared.mjs +26 -38
  54. package/{esm2020 → esm2022}/src/render3/instructions/styling.mjs +5 -2
  55. package/esm2022/src/render3/interfaces/view.mjs +48 -0
  56. package/esm2022/src/render3/jit/module.mjs +531 -0
  57. package/esm2022/src/render3/ng_module_ref.mjs +134 -0
  58. package/esm2022/src/render3/node_manipulation.mjs +960 -0
  59. package/esm2022/src/render3/reactive_lview_consumer.mjs +81 -0
  60. package/esm2022/src/render3/reactivity/effect.mjs +77 -0
  61. package/{esm2020 → esm2022}/src/render3/util/change_detection_utils.mjs +2 -2
  62. package/esm2022/src/render3/view_ref.mjs +307 -0
  63. package/{esm2020 → esm2022}/src/sanitization/sanitization.mjs +3 -3
  64. package/{esm2020 → esm2022}/src/sanitization/sanitizer.mjs +7 -7
  65. package/esm2022/src/signals/index.mjs +16 -0
  66. package/esm2022/src/signals/src/api.mjs +46 -0
  67. package/esm2022/src/signals/src/computed.mjs +140 -0
  68. package/esm2022/src/signals/src/errors.mjs +18 -0
  69. package/esm2022/src/signals/src/graph.mjs +189 -0
  70. package/esm2022/src/signals/src/signal.mjs +86 -0
  71. package/esm2022/src/signals/src/watch.mjs +63 -0
  72. package/esm2022/src/signals/src/weak_ref.mjs +35 -0
  73. package/{esm2020 → esm2022}/src/testability/testability.mjs +5 -5
  74. package/esm2022/src/transfer_state.mjs +153 -0
  75. package/esm2022/src/util/ng_dev_mode.mjs +80 -0
  76. package/{esm2020 → esm2022}/src/version.mjs +1 -1
  77. package/{esm2020 → esm2022}/testing/src/logger.mjs +4 -4
  78. package/{esm2020 → esm2022}/testing/src/ng_zone_mock.mjs +4 -4
  79. package/{esm2020 → esm2022}/testing/src/test_bed.mjs +2 -2
  80. package/esm2022/testing/src/test_bed_compiler.mjs +845 -0
  81. package/{fesm2020 → fesm2022}/core.mjs +15745 -15364
  82. package/fesm2022/core.mjs.map +1 -0
  83. package/fesm2022/rxjs-interop.mjs +104 -0
  84. package/fesm2022/rxjs-interop.mjs.map +1 -0
  85. package/{fesm2020 → fesm2022}/testing.mjs +913 -176
  86. package/fesm2022/testing.mjs.map +1 -0
  87. package/index.d.ts +459 -211
  88. package/package.json +14 -16
  89. package/rxjs-interop/index.d.ts +95 -0
  90. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +694 -0
  91. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js.map +7 -0
  92. package/schematics/migrations/{router-link-with-href → remove-module-id}/bundle.js +153 -155
  93. package/schematics/migrations/remove-module-id/bundle.js.map +7 -0
  94. package/schematics/migrations.json +8 -8
  95. package/schematics/ng-generate/standalone-migration/bundle.js +928 -562
  96. package/schematics/ng-generate/standalone-migration/bundle.js.map +2 -2
  97. package/testing/index.d.ts +1 -1
  98. package/esm2020/src/application_ref.mjs +0 -907
  99. package/esm2020/src/change_detection/differs/iterable_differs.mjs +0 -81
  100. package/esm2020/src/change_detection/differs/keyvalue_differs.mjs +0 -74
  101. package/esm2020/src/core.mjs +0 -55
  102. package/esm2020/src/core_private_export.mjs +0 -38
  103. package/esm2020/src/core_reactivity_export_internal.mjs +0 -9
  104. package/esm2020/src/di/contextual.mjs +0 -37
  105. package/esm2020/src/di/index.mjs +0 -29
  106. package/esm2020/src/di/injector.mjs +0 -62
  107. package/esm2020/src/di/injector_compatibility.mjs +0 -236
  108. package/esm2020/src/di/provider_collection.mjs +0 -279
  109. package/esm2020/src/di/reflective_injector.mjs +0 -311
  110. package/esm2020/src/errors.mjs +0 -48
  111. package/esm2020/src/hydration/annotate.mjs +0 -384
  112. package/esm2020/src/hydration/api.mjs +0 -141
  113. package/esm2020/src/hydration/cleanup.mjs +0 -101
  114. package/esm2020/src/hydration/node_lookup_utils.mjs +0 -275
  115. package/esm2020/src/hydration/utils.mjs +0 -219
  116. package/esm2020/src/linker/component_factory_resolver.mjs +0 -42
  117. package/esm2020/src/linker/query_list.mjs +0 -169
  118. package/esm2020/src/linker/template_ref.mjs +0 -102
  119. package/esm2020/src/metadata/di.mjs +0 -108
  120. package/esm2020/src/metadata.mjs +0 -18
  121. package/esm2020/src/render3/component_ref.mjs +0 -377
  122. package/esm2020/src/render3/features/standalone_feature.mjs +0 -70
  123. package/esm2020/src/render3/instructions/listener.mjs +0 -243
  124. package/esm2020/src/render3/interfaces/view.mjs +0 -47
  125. package/esm2020/src/render3/jit/module.mjs +0 -544
  126. package/esm2020/src/render3/ng_module_ref.mjs +0 -132
  127. package/esm2020/src/render3/node_manipulation.mjs +0 -961
  128. package/esm2020/src/render3/view_ref.mjs +0 -306
  129. package/esm2020/src/signals/index.mjs +0 -16
  130. package/esm2020/src/signals/src/api.mjs +0 -46
  131. package/esm2020/src/signals/src/computed.mjs +0 -142
  132. package/esm2020/src/signals/src/effect.mjs +0 -67
  133. package/esm2020/src/signals/src/graph.mjs +0 -114
  134. package/esm2020/src/signals/src/signal.mjs +0 -78
  135. package/esm2020/src/signals/src/watch.mjs +0 -54
  136. package/esm2020/src/signals/src/weak_ref.mjs +0 -27
  137. package/esm2020/src/transfer_state.mjs +0 -153
  138. package/esm2020/src/util/ng_dev_mode.mjs +0 -79
  139. package/esm2020/testing/src/test_bed_compiler.mjs +0 -846
  140. package/fesm2015/core.mjs +0 -30473
  141. package/fesm2015/core.mjs.map +0 -1
  142. package/fesm2015/testing.mjs +0 -26417
  143. package/fesm2015/testing.mjs.map +0 -1
  144. package/fesm2020/core.mjs.map +0 -1
  145. package/fesm2020/testing.mjs.map +0 -1
  146. package/schematics/migrations/relative-link-resolution/bundle.js +0 -283
  147. package/schematics/migrations/relative-link-resolution/bundle.js.map +0 -7
  148. package/schematics/migrations/router-link-with-href/bundle.js.map +0 -7
  149. /package/{esm2020 → esm2022}/core.mjs +0 -0
  150. /package/{esm2020 → esm2022}/index.mjs +0 -0
  151. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
  152. /package/{esm2020 → esm2022}/src/application_config.mjs +0 -0
  153. /package/{esm2020 → esm2022}/src/application_tokens.mjs +0 -0
  154. /package/{esm2020 → esm2022}/src/change_detection/change_detection.mjs +0 -0
  155. /package/{esm2020 → esm2022}/src/change_detection/constants.mjs +0 -0
  156. /package/{esm2020 → esm2022}/src/change_detection/differs/default_iterable_differ.mjs +0 -0
  157. /package/{esm2020 → esm2022}/src/change_detection/differs/default_keyvalue_differ.mjs +0 -0
  158. /package/{esm2020 → esm2022}/src/change_detection/pipe_transform.mjs +0 -0
  159. /package/{esm2020 → esm2022}/src/change_detection.mjs +0 -0
  160. /package/{esm2020 → esm2022}/src/compiler/compiler_facade.mjs +0 -0
  161. /package/{esm2020 → esm2022}/src/compiler/compiler_facade_interface.mjs +0 -0
  162. /package/{esm2020 → esm2022}/src/core_reactivity_export.mjs +0 -0
  163. /package/{esm2020 → esm2022}/src/core_render3_private_export.mjs +0 -0
  164. /package/{esm2020 → esm2022}/src/debug/debug_node.mjs +0 -0
  165. /package/{esm2020 → esm2022}/src/di/create_injector.mjs +0 -0
  166. /package/{esm2020 → esm2022}/src/di/forward_ref.mjs +0 -0
  167. /package/{esm2020 → esm2022}/src/di/initializer_token.mjs +0 -0
  168. /package/{esm2020 → esm2022}/src/di/inject_switch.mjs +0 -0
  169. /package/{esm2020 → esm2022}/src/di/injectable.mjs +0 -0
  170. /package/{esm2020 → esm2022}/src/di/injection_token.mjs +0 -0
  171. /package/{esm2020 → esm2022}/src/di/injector_marker.mjs +0 -0
  172. /package/{esm2020 → esm2022}/src/di/injector_token.mjs +0 -0
  173. /package/{esm2020 → esm2022}/src/di/interface/defs.mjs +0 -0
  174. /package/{esm2020 → esm2022}/src/di/interface/injector.mjs +0 -0
  175. /package/{esm2020 → esm2022}/src/di/interface/provider.mjs +0 -0
  176. /package/{esm2020 → esm2022}/src/di/internal_tokens.mjs +0 -0
  177. /package/{esm2020 → esm2022}/src/di/jit/environment.mjs +0 -0
  178. /package/{esm2020 → esm2022}/src/di/jit/injectable.mjs +0 -0
  179. /package/{esm2020 → esm2022}/src/di/jit/util.mjs +0 -0
  180. /package/{esm2020 → esm2022}/src/di/metadata.mjs +0 -0
  181. /package/{esm2020 → esm2022}/src/di/metadata_attr.mjs +0 -0
  182. /package/{esm2020 → esm2022}/src/di/null_injector.mjs +0 -0
  183. /package/{esm2020 → esm2022}/src/di/provider_token.mjs +0 -0
  184. /package/{esm2020 → esm2022}/src/di/r3_injector.mjs +0 -0
  185. /package/{esm2020 → esm2022}/src/di/reflective_errors.mjs +0 -0
  186. /package/{esm2020 → esm2022}/src/di/reflective_key.mjs +0 -0
  187. /package/{esm2020 → esm2022}/src/di/reflective_provider.mjs +0 -0
  188. /package/{esm2020 → esm2022}/src/di/scope.mjs +0 -0
  189. /package/{esm2020 → esm2022}/src/di.mjs +0 -0
  190. /package/{esm2020 → esm2022}/src/error_details_base_url.mjs +0 -0
  191. /package/{esm2020 → esm2022}/src/error_handler.mjs +0 -0
  192. /package/{esm2020 → esm2022}/src/event_emitter.mjs +0 -0
  193. /package/{esm2020 → esm2022}/src/hydration/compression.mjs +0 -0
  194. /package/{esm2020 → esm2022}/src/hydration/error_handling.mjs +0 -0
  195. /package/{esm2020 → esm2022}/src/hydration/interfaces.mjs +0 -0
  196. /package/{esm2020 → esm2022}/src/hydration/skip_hydration.mjs +0 -0
  197. /package/{esm2020 → esm2022}/src/hydration/tokens.mjs +0 -0
  198. /package/{esm2020 → esm2022}/src/hydration/views.mjs +0 -0
  199. /package/{esm2020 → esm2022}/src/i18n/locale_data_api.mjs +0 -0
  200. /package/{esm2020 → esm2022}/src/i18n/locale_en.mjs +0 -0
  201. /package/{esm2020 → esm2022}/src/i18n/localization.mjs +0 -0
  202. /package/{esm2020 → esm2022}/src/i18n/tokens.mjs +0 -0
  203. /package/{esm2020 → esm2022}/src/interface/lifecycle_hooks.mjs +0 -0
  204. /package/{esm2020 → esm2022}/src/interface/simple_change.mjs +0 -0
  205. /package/{esm2020 → esm2022}/src/interface/type.mjs +0 -0
  206. /package/{esm2020 → esm2022}/src/linker/ng_module_factory.mjs +0 -0
  207. /package/{esm2020 → esm2022}/src/linker/ng_module_factory_loader.mjs +0 -0
  208. /package/{esm2020 → esm2022}/src/linker/ng_module_factory_loader_impl.mjs +0 -0
  209. /package/{esm2020 → esm2022}/src/linker/ng_module_registration.mjs +0 -0
  210. /package/{esm2020 → esm2022}/src/linker.mjs +0 -0
  211. /package/{esm2020 → esm2022}/src/metadata/ng_module_def.mjs +0 -0
  212. /package/{esm2020 → esm2022}/src/metadata/resource_loading.mjs +0 -0
  213. /package/{esm2020 → esm2022}/src/metadata/schema.mjs +0 -0
  214. /package/{esm2020 → esm2022}/src/metadata/view.mjs +0 -0
  215. /package/{esm2020 → esm2022}/src/platform_core_providers.mjs +0 -0
  216. /package/{esm2020 → esm2022}/src/r3_symbols.mjs +0 -0
  217. /package/{esm2020 → esm2022}/src/reflection/platform_reflection_capabilities.mjs +0 -0
  218. /package/{esm2020 → esm2022}/src/reflection/reflection_capabilities.mjs +0 -0
  219. /package/{esm2020 → esm2022}/src/render/api_flags.mjs +0 -0
  220. /package/{esm2020 → esm2022}/src/render.mjs +0 -0
  221. /package/{esm2020 → esm2022}/src/render3/assert.mjs +0 -0
  222. /package/{esm2020 → esm2022}/src/render3/bindings.mjs +0 -0
  223. /package/{esm2020 → esm2022}/src/render3/collect_native_nodes.mjs +0 -0
  224. /package/{esm2020 → esm2022}/src/render3/component.mjs +0 -0
  225. /package/{esm2020 → esm2022}/src/render3/definition.mjs +0 -0
  226. /package/{esm2020 → esm2022}/src/render3/definition_factory.mjs +0 -0
  227. /package/{esm2020 → esm2022}/src/render3/di.mjs +0 -0
  228. /package/{esm2020 → esm2022}/src/render3/di_setup.mjs +0 -0
  229. /package/{esm2020 → esm2022}/src/render3/errors.mjs +0 -0
  230. /package/{esm2020 → esm2022}/src/render3/errors_di.mjs +0 -0
  231. /package/{esm2020 → esm2022}/src/render3/features/copy_definition_feature.mjs +0 -0
  232. /package/{esm2020 → esm2022}/src/render3/features/host_directives_feature.mjs +0 -0
  233. /package/{esm2020 → esm2022}/src/render3/features/inherit_definition_feature.mjs +0 -0
  234. /package/{esm2020 → esm2022}/src/render3/features/ng_onchanges_feature.mjs +0 -0
  235. /package/{esm2020 → esm2022}/src/render3/features/providers_feature.mjs +0 -0
  236. /package/{esm2020 → esm2022}/src/render3/fields.mjs +0 -0
  237. /package/{esm2020 → esm2022}/src/render3/global_utils_api.mjs +0 -0
  238. /package/{esm2020 → esm2022}/src/render3/hooks.mjs +0 -0
  239. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_apply.mjs +0 -0
  240. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_debug.mjs +0 -0
  241. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_insert_before_index.mjs +0 -0
  242. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_locale_id.mjs +0 -0
  243. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_parse.mjs +0 -0
  244. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_postprocess.mjs +0 -0
  245. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_tree_shaking.mjs +0 -0
  246. /package/{esm2020 → esm2022}/src/render3/i18n/i18n_util.mjs +0 -0
  247. /package/{esm2020 → esm2022}/src/render3/index.mjs +0 -0
  248. /package/{esm2020 → esm2022}/src/render3/instructions/advance.mjs +0 -0
  249. /package/{esm2020 → esm2022}/src/render3/instructions/all.mjs +0 -0
  250. /package/{esm2020 → esm2022}/src/render3/instructions/attribute.mjs +0 -0
  251. /package/{esm2020 → esm2022}/src/render3/instructions/attribute_interpolation.mjs +0 -0
  252. /package/{esm2020 → esm2022}/src/render3/instructions/change_detection.mjs +0 -0
  253. /package/{esm2020 → esm2022}/src/render3/instructions/class_map_interpolation.mjs +0 -0
  254. /package/{esm2020 → esm2022}/src/render3/instructions/di.mjs +0 -0
  255. /package/{esm2020 → esm2022}/src/render3/instructions/di_attr.mjs +0 -0
  256. /package/{esm2020 → esm2022}/src/render3/instructions/element_validation.mjs +0 -0
  257. /package/{esm2020 → esm2022}/src/render3/instructions/get_current_view.mjs +0 -0
  258. /package/{esm2020 → esm2022}/src/render3/instructions/host_property.mjs +0 -0
  259. /package/{esm2020 → esm2022}/src/render3/instructions/i18n.mjs +0 -0
  260. /package/{esm2020 → esm2022}/src/render3/instructions/i18n_icu_container_visitor.mjs +0 -0
  261. /package/{esm2020 → esm2022}/src/render3/instructions/interpolation.mjs +0 -0
  262. /package/{esm2020 → esm2022}/src/render3/instructions/namespace.mjs +0 -0
  263. /package/{esm2020 → esm2022}/src/render3/instructions/next_context.mjs +0 -0
  264. /package/{esm2020 → esm2022}/src/render3/instructions/projection.mjs +0 -0
  265. /package/{esm2020 → esm2022}/src/render3/instructions/property.mjs +0 -0
  266. /package/{esm2020 → esm2022}/src/render3/instructions/property_interpolation.mjs +0 -0
  267. /package/{esm2020 → esm2022}/src/render3/instructions/storage.mjs +0 -0
  268. /package/{esm2020 → esm2022}/src/render3/instructions/style_map_interpolation.mjs +0 -0
  269. /package/{esm2020 → esm2022}/src/render3/instructions/style_prop_interpolation.mjs +0 -0
  270. /package/{esm2020 → esm2022}/src/render3/instructions/template.mjs +0 -0
  271. /package/{esm2020 → esm2022}/src/render3/instructions/text.mjs +0 -0
  272. /package/{esm2020 → esm2022}/src/render3/instructions/text_interpolation.mjs +0 -0
  273. /package/{esm2020 → esm2022}/src/render3/interfaces/container.mjs +0 -0
  274. /package/{esm2020 → esm2022}/src/render3/interfaces/context.mjs +0 -0
  275. /package/{esm2020 → esm2022}/src/render3/interfaces/definition.mjs +0 -0
  276. /package/{esm2020 → esm2022}/src/render3/interfaces/document.mjs +0 -0
  277. /package/{esm2020 → esm2022}/src/render3/interfaces/i18n.mjs +0 -0
  278. /package/{esm2020 → esm2022}/src/render3/interfaces/injector.mjs +0 -0
  279. /package/{esm2020 → esm2022}/src/render3/interfaces/lview_tracking.mjs +0 -0
  280. /package/{esm2020 → esm2022}/src/render3/interfaces/node.mjs +0 -0
  281. /package/{esm2020 → esm2022}/src/render3/interfaces/projection.mjs +0 -0
  282. /package/{esm2020 → esm2022}/src/render3/interfaces/public_definitions.mjs +0 -0
  283. /package/{esm2020 → esm2022}/src/render3/interfaces/query.mjs +0 -0
  284. /package/{esm2020 → esm2022}/src/render3/interfaces/renderer.mjs +0 -0
  285. /package/{esm2020 → esm2022}/src/render3/interfaces/renderer_dom.mjs +0 -0
  286. /package/{esm2020 → esm2022}/src/render3/interfaces/sanitization.mjs +0 -0
  287. /package/{esm2020 → esm2022}/src/render3/interfaces/styling.mjs +0 -0
  288. /package/{esm2020 → esm2022}/src/render3/interfaces/type_checks.mjs +0 -0
  289. /package/{esm2020 → esm2022}/src/render3/jit/directive.mjs +0 -0
  290. /package/{esm2020 → esm2022}/src/render3/jit/environment.mjs +0 -0
  291. /package/{esm2020 → esm2022}/src/render3/jit/jit_options.mjs +0 -0
  292. /package/{esm2020 → esm2022}/src/render3/jit/module_patch.mjs +0 -0
  293. /package/{esm2020 → esm2022}/src/render3/jit/partial.mjs +0 -0
  294. /package/{esm2020 → esm2022}/src/render3/jit/pipe.mjs +0 -0
  295. /package/{esm2020 → esm2022}/src/render3/jit/util.mjs +0 -0
  296. /package/{esm2020 → esm2022}/src/render3/metadata.mjs +0 -0
  297. /package/{esm2020 → esm2022}/src/render3/namespaces.mjs +0 -0
  298. /package/{esm2020 → esm2022}/src/render3/node_assert.mjs +0 -0
  299. /package/{esm2020 → esm2022}/src/render3/node_manipulation_i18n.mjs +0 -0
  300. /package/{esm2020 → esm2022}/src/render3/node_selector_matcher.mjs +0 -0
  301. /package/{esm2020 → esm2022}/src/render3/pipe.mjs +0 -0
  302. /package/{esm2020 → esm2022}/src/render3/profiler.mjs +0 -0
  303. /package/{esm2020 → esm2022}/src/render3/pure_function.mjs +0 -0
  304. /package/{esm2020 → esm2022}/src/render3/query.mjs +0 -0
  305. /package/{esm2020 → esm2022}/src/render3/state.mjs +0 -0
  306. /package/{esm2020 → esm2022}/src/render3/styling/class_differ.mjs +0 -0
  307. /package/{esm2020 → esm2022}/src/render3/styling/static_styling.mjs +0 -0
  308. /package/{esm2020 → esm2022}/src/render3/styling/style_binding_list.mjs +0 -0
  309. /package/{esm2020 → esm2022}/src/render3/styling/styling_parser.mjs +0 -0
  310. /package/{esm2020 → esm2022}/src/render3/tokens.mjs +0 -0
  311. /package/{esm2020 → esm2022}/src/render3/util/attrs_utils.mjs +0 -0
  312. /package/{esm2020 → esm2022}/src/render3/util/discovery_utils.mjs +0 -0
  313. /package/{esm2020 → esm2022}/src/render3/util/global_utils.mjs +0 -0
  314. /package/{esm2020 → esm2022}/src/render3/util/injector_utils.mjs +0 -0
  315. /package/{esm2020 → esm2022}/src/render3/util/misc_utils.mjs +0 -0
  316. /package/{esm2020 → esm2022}/src/render3/util/stringify_utils.mjs +0 -0
  317. /package/{esm2020 → esm2022}/src/render3/util/view_traversal_utils.mjs +0 -0
  318. /package/{esm2020 → esm2022}/src/render3/util/view_utils.mjs +0 -0
  319. /package/{esm2020 → esm2022}/src/render3/view_engine_compatibility_prebound.mjs +0 -0
  320. /package/{esm2020 → esm2022}/src/sanitization/bypass.mjs +0 -0
  321. /package/{esm2020 → esm2022}/src/sanitization/html_sanitizer.mjs +0 -0
  322. /package/{esm2020 → esm2022}/src/sanitization/iframe_attrs_validation.mjs +0 -0
  323. /package/{esm2020 → esm2022}/src/sanitization/inert_body.mjs +0 -0
  324. /package/{esm2020 → esm2022}/src/sanitization/security.mjs +0 -0
  325. /package/{esm2020 → esm2022}/src/sanitization/url_sanitizer.mjs +0 -0
  326. /package/{esm2020 → esm2022}/src/signals/src/untracked.mjs +0 -0
  327. /package/{esm2020 → esm2022}/src/util/array_utils.mjs +0 -0
  328. /package/{esm2020 → esm2022}/src/util/assert.mjs +0 -0
  329. /package/{esm2020 → esm2022}/src/util/char_code.mjs +0 -0
  330. /package/{esm2020 → esm2022}/src/util/closure.mjs +0 -0
  331. /package/{esm2020 → esm2022}/src/util/coercion.mjs +0 -0
  332. /package/{esm2020 → esm2022}/src/util/comparison.mjs +0 -0
  333. /package/{esm2020 → esm2022}/src/util/decorators.mjs +0 -0
  334. /package/{esm2020 → esm2022}/src/util/dom.mjs +0 -0
  335. /package/{esm2020 → esm2022}/src/util/empty.mjs +0 -0
  336. /package/{esm2020 → esm2022}/src/util/errors.mjs +0 -0
  337. /package/{esm2020 → esm2022}/src/util/global.mjs +0 -0
  338. /package/{esm2020 → esm2022}/src/util/is_dev_mode.mjs +0 -0
  339. /package/{esm2020 → esm2022}/src/util/iterable.mjs +0 -0
  340. /package/{esm2020 → esm2022}/src/util/lang.mjs +0 -0
  341. /package/{esm2020 → esm2022}/src/util/microtask.mjs +0 -0
  342. /package/{esm2020 → esm2022}/src/util/ng_i18n_closure_mode.mjs +0 -0
  343. /package/{esm2020 → esm2022}/src/util/ng_jit_mode.mjs +0 -0
  344. /package/{esm2020 → esm2022}/src/util/ng_reflect.mjs +0 -0
  345. /package/{esm2020 → esm2022}/src/util/noop.mjs +0 -0
  346. /package/{esm2020 → esm2022}/src/util/property.mjs +0 -0
  347. /package/{esm2020 → esm2022}/src/util/raf.mjs +0 -0
  348. /package/{esm2020 → esm2022}/src/util/security/trusted_type_defs.mjs +0 -0
  349. /package/{esm2020 → esm2022}/src/util/security/trusted_types.mjs +0 -0
  350. /package/{esm2020 → esm2022}/src/util/security/trusted_types_bypass.mjs +0 -0
  351. /package/{esm2020 → esm2022}/src/util/stringify.mjs +0 -0
  352. /package/{esm2020 → esm2022}/src/view/provider_flags.mjs +0 -0
  353. /package/{esm2020 → esm2022}/src/zone/async-stack-tagging.mjs +0 -0
  354. /package/{esm2020 → esm2022}/src/zone/ng_zone.mjs +0 -0
  355. /package/{esm2020 → esm2022}/src/zone.mjs +0 -0
  356. /package/{esm2020 → esm2022}/testing/index.mjs +0 -0
  357. /package/{esm2020 → esm2022}/testing/public_api.mjs +0 -0
  358. /package/{esm2020 → esm2022}/testing/src/async.mjs +0 -0
  359. /package/{esm2020 → esm2022}/testing/src/component_fixture.mjs +0 -0
  360. /package/{esm2020 → esm2022}/testing/src/fake_async.mjs +0 -0
  361. /package/{esm2020 → esm2022}/testing/src/metadata_override.mjs +0 -0
  362. /package/{esm2020 → esm2022}/testing/src/metadata_overrider.mjs +0 -0
  363. /package/{esm2020 → esm2022}/testing/src/resolvers.mjs +0 -0
  364. /package/{esm2020 → esm2022}/testing/src/styling.mjs +0 -0
  365. /package/{esm2020 → esm2022}/testing/src/test_bed_common.mjs +0 -0
  366. /package/{esm2020 → esm2022}/testing/src/test_hooks.mjs +0 -0
  367. /package/{esm2020 → esm2022}/testing/src/testing.mjs +0 -0
  368. /package/{esm2020 → esm2022}/testing/src/testing_internal.mjs +0 -0
  369. /package/{esm2020 → esm2022}/testing/testing.mjs +0 -0
@@ -1,219 +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 { getDocument } from '../render3/interfaces/document';
9
- import { isRootView } from '../render3/interfaces/type_checks';
10
- import { HEADER_OFFSET, TVIEW } from '../render3/interfaces/view';
11
- import { makeStateKey, TransferState } from '../transfer_state';
12
- import { assertDefined } from '../util/assert';
13
- import { CONTAINERS, DISCONNECTED_NODES, ELEMENT_CONTAINERS, MULTIPLIER, NUM_ROOT_NODES } from './interfaces';
14
- /**
15
- * The name of the key used in the TransferState collection,
16
- * where hydration information is located.
17
- */
18
- const TRANSFER_STATE_TOKEN_ID = '__ɵnghData__';
19
- /**
20
- * Lookup key used to reference DOM hydration data (ngh) in `TransferState`.
21
- */
22
- export const NGH_DATA_KEY = makeStateKey(TRANSFER_STATE_TOKEN_ID);
23
- /**
24
- * The name of the attribute that would be added to host component
25
- * nodes and contain a reference to a particular slot in transferred
26
- * state that contains the necessary hydration info for this component.
27
- */
28
- export const NGH_ATTR_NAME = 'ngh';
29
- /**
30
- * Reference to a function that reads `ngh` attribute value from a given RNode
31
- * and retrieves hydration information from the TransferState using that value
32
- * as an index. Returns `null` by default, when hydration is not enabled.
33
- *
34
- * @param rNode Component's host element.
35
- * @param injector Injector that this component has access to.
36
- */
37
- let _retrieveHydrationInfoImpl = (rNode, injector) => null;
38
- export function retrieveHydrationInfoImpl(rNode, injector) {
39
- const nghAttrValue = rNode.getAttribute(NGH_ATTR_NAME);
40
- if (nghAttrValue == null)
41
- return null;
42
- let data = {};
43
- // An element might have an empty `ngh` attribute value (e.g. `<comp ngh="" />`),
44
- // which means that no special annotations are required. Do not attempt to read
45
- // from the TransferState in this case.
46
- if (nghAttrValue !== '') {
47
- const transferState = injector.get(TransferState, null, { optional: true });
48
- if (transferState !== null) {
49
- const nghData = transferState.get(NGH_DATA_KEY, []);
50
- // The nghAttrValue is always a number referencing an index
51
- // in the hydration TransferState data.
52
- data = nghData[Number(nghAttrValue)];
53
- // If the `ngh` attribute exists and has a non-empty value,
54
- // the hydration info *must* be present in the TransferState.
55
- // If there is no data for some reasons, this is an error.
56
- ngDevMode && assertDefined(data, 'Unable to retrieve hydration info from the TransferState.');
57
- }
58
- }
59
- const dehydratedView = {
60
- data,
61
- firstChild: rNode.firstChild ?? null,
62
- };
63
- // The `ngh` attribute is cleared from the DOM node now
64
- // that the data has been retrieved.
65
- rNode.removeAttribute(NGH_ATTR_NAME);
66
- // Note: don't check whether this node was claimed for hydration,
67
- // because this node might've been previously claimed while processing
68
- // template instructions.
69
- ngDevMode && markRNodeAsClaimedByHydration(rNode, /* checkIfAlreadyClaimed */ false);
70
- ngDevMode && ngDevMode.hydratedComponents++;
71
- return dehydratedView;
72
- }
73
- /**
74
- * Sets the implementation for the `retrieveHydrationInfo` function.
75
- */
76
- export function enableRetrieveHydrationInfoImpl() {
77
- _retrieveHydrationInfoImpl = retrieveHydrationInfoImpl;
78
- }
79
- /**
80
- * Retrieves hydration info by reading the value from the `ngh` attribute
81
- * and accessing a corresponding slot in TransferState storage.
82
- */
83
- export function retrieveHydrationInfo(rNode, injector) {
84
- return _retrieveHydrationInfoImpl(rNode, injector);
85
- }
86
- /**
87
- * Retrieves an instance of a component LView from a given ViewRef.
88
- * Returns an instance of a component LView or `null` in case of an embedded view.
89
- */
90
- export function getComponentLViewForHydration(viewRef) {
91
- // Reading an internal field from `ViewRef` instance.
92
- let lView = viewRef._lView;
93
- const tView = lView[TVIEW];
94
- // A registered ViewRef might represent an instance of an
95
- // embedded view, in which case we do not need to annotate it.
96
- if (tView.type === 2 /* TViewType.Embedded */) {
97
- return null;
98
- }
99
- // Check if it's a root view and if so, retrieve component's
100
- // LView from the first slot after the header.
101
- if (isRootView(lView)) {
102
- lView = lView[HEADER_OFFSET];
103
- }
104
- return lView;
105
- }
106
- function getTextNodeContent(node) {
107
- return node.textContent?.replace(/\s/gm, '');
108
- }
109
- /**
110
- * Restores text nodes and separators into the DOM that were lost during SSR
111
- * serialization. The hydration process replaces empty text nodes and text
112
- * nodes that are immediately adjacent to other text nodes with comment nodes
113
- * that this method filters on to restore those missing nodes that the
114
- * hydration process is expecting to be present.
115
- *
116
- * @param node The app's root HTML Element
117
- */
118
- export function processTextNodeMarkersBeforeHydration(node) {
119
- const doc = getDocument();
120
- const commentNodesIterator = doc.createNodeIterator(node, NodeFilter.SHOW_COMMENT, {
121
- acceptNode(node) {
122
- const content = getTextNodeContent(node);
123
- const isTextNodeMarker = content === "ngetn" /* TextNodeMarker.EmptyNode */ || content === "ngtns" /* TextNodeMarker.Separator */;
124
- return isTextNodeMarker ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;
125
- }
126
- });
127
- let currentNode;
128
- // We cannot modify the DOM while using the commentIterator,
129
- // because it throws off the iterator state.
130
- // So we collect all marker nodes first and then follow up with
131
- // applying the changes to the DOM: either inserting an empty node
132
- // or just removing the marker if it was used as a separator.
133
- const nodes = [];
134
- while (currentNode = commentNodesIterator.nextNode()) {
135
- nodes.push(currentNode);
136
- }
137
- for (const node of nodes) {
138
- if (node.textContent === "ngetn" /* TextNodeMarker.EmptyNode */) {
139
- node.replaceWith(doc.createTextNode(''));
140
- }
141
- else {
142
- node.remove();
143
- }
144
- }
145
- }
146
- /**
147
- * Marks a node as "claimed" by hydration process.
148
- * This is needed to make assessments in tests whether
149
- * the hydration process handled all nodes.
150
- */
151
- export function markRNodeAsClaimedByHydration(node, checkIfAlreadyClaimed = true) {
152
- if (!ngDevMode) {
153
- throw new Error('Calling `markRNodeAsClaimedByHydration` in prod mode ' +
154
- 'is not supported and likely a mistake.');
155
- }
156
- if (checkIfAlreadyClaimed && isRNodeClaimedForHydration(node)) {
157
- throw new Error('Trying to claim a node, which was claimed already.');
158
- }
159
- node.__claimed = true;
160
- ngDevMode.hydratedNodes++;
161
- }
162
- export function isRNodeClaimedForHydration(node) {
163
- return !!node.__claimed;
164
- }
165
- export function setSegmentHead(hydrationInfo, index, node) {
166
- hydrationInfo.segmentHeads ?? (hydrationInfo.segmentHeads = {});
167
- hydrationInfo.segmentHeads[index] = node;
168
- }
169
- export function getSegmentHead(hydrationInfo, index) {
170
- return hydrationInfo.segmentHeads?.[index] ?? null;
171
- }
172
- /**
173
- * Returns the size of an <ng-container>, using either the information
174
- * serialized in `ELEMENT_CONTAINERS` (element container size) or by
175
- * computing the sum of root nodes in all dehydrated views in a given
176
- * container (in case this `<ng-container>` was also used as a view
177
- * container host node, e.g. <ng-container *ngIf>).
178
- */
179
- export function getNgContainerSize(hydrationInfo, index) {
180
- const data = hydrationInfo.data;
181
- let size = data[ELEMENT_CONTAINERS]?.[index] ?? null;
182
- // If there is no serialized information available in the `ELEMENT_CONTAINERS` slot,
183
- // check if we have info about view containers at this location (e.g.
184
- // `<ng-container *ngIf>`) and use container size as a number of root nodes in this
185
- // element container.
186
- if (size === null && data[CONTAINERS]?.[index]) {
187
- size = calcSerializedContainerSize(hydrationInfo, index);
188
- }
189
- return size;
190
- }
191
- export function getSerializedContainerViews(hydrationInfo, index) {
192
- return hydrationInfo.data[CONTAINERS]?.[index] ?? null;
193
- }
194
- /**
195
- * Computes the size of a serialized container (the number of root nodes)
196
- * by calculating the sum of root nodes in all dehydrated views in this container.
197
- */
198
- export function calcSerializedContainerSize(hydrationInfo, index) {
199
- const views = getSerializedContainerViews(hydrationInfo, index) ?? [];
200
- let numNodes = 0;
201
- for (let view of views) {
202
- numNodes += view[NUM_ROOT_NODES] * (view[MULTIPLIER] ?? 1);
203
- }
204
- return numNodes;
205
- }
206
- /**
207
- * Checks whether a node is annotated as "disconnected", i.e. not present
208
- * in the DOM at serialization time. We should not attempt hydration for
209
- * such nodes and instead, use a regular "creation mode".
210
- */
211
- export function isDisconnectedNode(hydrationInfo, index) {
212
- // Check if we are processing disconnected info for the first time.
213
- if (typeof hydrationInfo.disconnectedNodes === 'undefined') {
214
- const nodeIds = hydrationInfo.data[DISCONNECTED_NODES];
215
- hydrationInfo.disconnectedNodes = nodeIds ? (new Set(nodeIds)) : null;
216
- }
217
- return !!hydrationInfo.disconnectedNodes?.has(index);
218
- }
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9oeWRyYXRpb24vdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRTNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsYUFBYSxFQUFTLEtBQUssRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxVQUFVLEVBQWtCLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQTBDLE1BQU0sY0FBYyxDQUFDO0FBRXJLOzs7R0FHRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBd0IsdUJBQXVCLENBQUMsQ0FBQztBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQztBQXVCbkM7Ozs7Ozs7R0FPRztBQUNILElBQUksMEJBQTBCLEdBQzFCLENBQUMsS0FBZSxFQUFFLFFBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQztBQUVsRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsS0FBZSxFQUFFLFFBQWtCO0lBRTNFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkQsSUFBSSxZQUFZLElBQUksSUFBSTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXRDLElBQUksSUFBSSxHQUFt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QUFFLENBQUM7SUFDdEUsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3RCLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDNUQ7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxhQUE2QixFQUFFLEtBQWE7SUFDN0UsbUVBQW1FO0lBQ25FLElBQUksT0FBTyxhQUFhLENBQUMsaUJBQWlCLEtBQUssV0FBVyxFQUFFO1FBQzFELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RCxhQUFhLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUN2RTtJQUNELE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJy4uL2RpL2luamVjdG9yJztcbmltcG9ydCB7Vmlld1JlZn0gZnJvbSAnLi4vbGlua2VyL3ZpZXdfcmVmJztcbmltcG9ydCB7Z2V0RG9jdW1lbnR9IGZyb20gJy4uL3JlbmRlcjMvaW50ZXJmYWNlcy9kb2N1bWVudCc7XG5pbXBvcnQge1JFbGVtZW50LCBSTm9kZX0gZnJvbSAnLi4vcmVuZGVyMy9pbnRlcmZhY2VzL3JlbmRlcmVyX2RvbSc7XG5pbXBvcnQge2lzUm9vdFZpZXd9IGZyb20gJy4uL3JlbmRlcjMvaW50ZXJmYWNlcy90eXBlX2NoZWNrcyc7XG5pbXBvcnQge0hFQURFUl9PRkZTRVQsIExWaWV3LCBUVklFVywgVFZpZXdUeXBlfSBmcm9tICcuLi9yZW5kZXIzL2ludGVyZmFjZXMvdmlldyc7XG5pbXBvcnQge21ha2VTdGF0ZUtleSwgVHJhbnNmZXJTdGF0ZX0gZnJvbSAnLi4vdHJhbnNmZXJfc3RhdGUnO1xuaW1wb3J0IHthc3NlcnREZWZpbmVkfSBmcm9tICcuLi91dGlsL2Fzc2VydCc7XG5cbmltcG9ydCB7Q09OVEFJTkVSUywgRGVoeWRyYXRlZFZpZXcsIERJU0NPTk5FQ1RFRF9OT0RFUywgRUxFTUVOVF9DT05UQUlORVJTLCBNVUxUSVBMSUVSLCBOVU1fUk9PVF9OT0RFUywgU2VyaWFsaXplZENvbnRhaW5lclZpZXcsIFNlcmlhbGl6ZWRWaWV3fSBmcm9tICcuL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBrZXkgdXNlZCBpbiB0aGUgVHJhbnNmZXJTdGF0ZSBjb2xsZWN0aW9uLFxuICogd2hlcmUgaHlkcmF0aW9uIGluZm9ybWF0aW9uIGlzIGxvY2F0ZWQuXG4gKi9cbmNvbnN0IFRSQU5TRkVSX1NUQVRFX1RPS0VOX0lEID0gJ19fybVuZ2hEYXRhX18nO1xuXG4vKipcbiAqIExvb2t1cCBrZXkgdXNlZCB0byByZWZlcmVuY2UgRE9NIGh5ZHJhdGlvbiBkYXRhIChuZ2gpIGluIGBUcmFuc2ZlclN0YXRlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HSF9EQVRBX0tFWSA9IG1ha2VTdGF0ZUtleTxBcnJheTxTZXJpYWxpemVkVmlldz4+KFRSQU5TRkVSX1NUQVRFX1RPS0VOX0lEKTtcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRoYXQgd291bGQgYmUgYWRkZWQgdG8gaG9zdCBjb21wb25lbnRcbiAqIG5vZGVzIGFuZCBjb250YWluIGEgcmVmZXJlbmNlIHRvIGEgcGFydGljdWxhciBzbG90IGluIHRyYW5zZmVycmVkXG4gKiBzdGF0ZSB0aGF0IGNvbnRhaW5zIHRoZSBuZWNlc3NhcnkgaHlkcmF0aW9uIGluZm8gZm9yIHRoaXMgY29tcG9uZW50LlxuICovXG5leHBvcnQgY29uc3QgTkdIX0FUVFJfTkFNRSA9ICduZ2gnO1xuXG5leHBvcnQgY29uc3QgZW51bSBUZXh0Tm9kZU1hcmtlciB7XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50cyBvZiB0aGUgdGV4dCBjb21tZW50IGFkZGVkIHRvIG5vZGVzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlXG4gICAqIGVtcHR5IHdoZW4gc2VyaWFsaXplZCBieSB0aGUgc2VydmVyIGFuZCBwYXNzZWQgdG8gdGhlIGNsaWVudC4gVGhlIGVtcHR5XG4gICAqIG5vZGUgaXMgbG9zdCB3aGVuIHRoZSBicm93c2VyIHBhcnNlcyBpdCBvdGhlcndpc2UuIFRoaXMgY29tbWVudCBub2RlIHdpbGxcbiAgICogYmUgcmVwbGFjZWQgZHVyaW5nIGh5ZHJhdGlvbiBpbiB0aGUgY2xpZW50IHRvIHJlc3RvcmUgdGhlIGxvc3QgZW1wdHkgdGV4dFxuICAgKiBub2RlLlxuICAgKi9cbiAgRW1wdHlOb2RlID0gJ25nZXRuJyxcblxuICAvKipcbiAgICogVGhlIGNvbnRlbnRzIG9mIHRoZSB0ZXh0IGNvbW1lbnQgYWRkZWQgaW4gdGhlIGNhc2Ugb2YgYWRqYWNlbnQgdGV4dCBub2Rlcy5cbiAgICogV2hlbiBhZGphY2VudCB0ZXh0IG5vZGVzIGFyZSBzZXJpYWxpemVkIGJ5IHRoZSBzZXJ2ZXIgYW5kIHNlbnQgdG8gdGhlXG4gICAqIGNsaWVudCwgdGhlIGJyb3dzZXIgbG9zZXMgcmVmZXJlbmNlIHRvIHRoZSBhbW91bnQgb2Ygbm9kZXMgYW5kIGFzc3VtZXNcbiAgICoganVzdCBvbmUgdGV4dCBub2RlLiBUaGlzIHNlcGFyYXRvciBpcyByZXBsYWNlZCBkdXJpbmcgaHlkcmF0aW9uIHRvIHJlc3RvcmVcbiAgICogdGhlIHByb3BlciBzZXBhcmF0aW9uIGFuZCBhbW91bnQgb2YgdGV4dCBub2RlcyB0aGF0IHNob3VsZCBiZSBwcmVzZW50LlxuICAgKi9cbiAgU2VwYXJhdG9yID0gJ25ndG5zJyxcbn1cblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBmdW5jdGlvbiB0aGF0IHJlYWRzIGBuZ2hgIGF0dHJpYnV0ZSB2YWx1ZSBmcm9tIGEgZ2l2ZW4gUk5vZGVcbiAqIGFuZCByZXRyaWV2ZXMgaHlkcmF0aW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIFRyYW5zZmVyU3RhdGUgdXNpbmcgdGhhdCB2YWx1ZVxuICogYXMgYW4gaW5kZXguIFJldHVybnMgYG51bGxgIGJ5IGRlZmF1bHQsIHdoZW4gaHlkcmF0aW9uIGlzIG5vdCBlbmFibGVkLlxuICpcbiAqIEBwYXJhbSByTm9kZSBDb21wb25lbnQncyBob3N0IGVsZW1lbnQuXG4gKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgdGhhdCB0aGlzIGNvbXBvbmVudCBoYXMgYWNjZXNzIHRvLlxuICovXG5sZXQgX3JldHJpZXZlSHlkcmF0aW9uSW5mb0ltcGw6IHR5cGVvZiByZXRyaWV2ZUh5ZHJhdGlvbkluZm9JbXBsID1cbiAgICAock5vZGU6IFJFbGVtZW50LCBpbmplY3RvcjogSW5qZWN0b3IpID0+IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXRyaWV2ZUh5ZHJhdGlvbkluZm9JbXBsKHJOb2RlOiBSRWxlbWVudCwgaW5qZWN0b3I6IEluamVjdG9yKTogRGVoeWRyYXRlZFZpZXd8XG4gICAgbnVsbCB7XG4gIGNvbnN0IG5naEF0dHJWYWx1ZSA9IHJOb2RlLmdldEF0dHJpYnV0ZShOR0hfQVRUUl9OQU1FKTtcbiAgaWYgKG5naEF0dHJWYWx1ZSA9PSBudWxsKSByZXR1cm4gbnVsbDtcblxuICBsZXQgZGF0YTogU2VyaWFsaXplZFZpZXcgPSB7fTtcbiAgLy8gQW4gZWxlbWVudCBtaWdodCBoYXZlIGFuIGVtcHR5IGBuZ2hgIGF0dHJpYnV0ZSB2YWx1ZSAoZS5nLiBgPGNvbXAgbmdoPVwiXCIgLz5gKSxcbiAgLy8gd2hpY2ggbWVhbnMgdGhhdCBubyBzcGVjaWFsIGFubm90YXRpb25zIGFyZSByZXF1aXJlZC4gRG8gbm90IGF0dGVtcHQgdG8gcmVhZFxuICAvLyBmcm9tIHRoZSBUcmFuc2ZlclN0YXRlIGluIHRoaXMgY2FzZS5cbiAgaWYgKG5naEF0dHJWYWx1ZSAhPT0gJycpIHtcbiAgICBjb25zdCB0cmFuc2ZlclN0YXRlID0gaW5qZWN0b3IuZ2V0KFRyYW5zZmVyU3RhdGUsIG51bGwsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIGlmICh0cmFuc2ZlclN0YXRlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBuZ2hEYXRhID0gdHJhbnNmZXJTdGF0ZS5nZXQoTkdIX0RBVEFfS0VZLCBbXSk7XG5cbiAgICAgIC8vIFRoZSBuZ2hBdHRyVmFsdWUgaXMgYWx3YXlzIGEgbnVtYmVyIHJlZmVyZW5jaW5nIGFuIGluZGV4XG4gICAgICAvLyBpbiB0aGUgaHlkcmF0aW9uIFRyYW5zZmVyU3RhdGUgZGF0YS5cbiAgICAgIGRhdGEgPSBuZ2hEYXRhW051bWJlcihuZ2hBdHRyVmFsdWUpXTtcblxuICAgICAgLy8gSWYgdGhlIGBuZ2hgIGF0dHJpYnV0ZSBleGlzdHMgYW5kIGhhcyBhIG5vbi1lbXB0eSB2YWx1ZSxcbiAgICAgIC8vIHRoZSBoeWRyYXRpb24gaW5mbyAqbXVzdCogYmUgcHJlc2VudCBpbiB0aGUgVHJhbnNmZXJTdGF0ZS5cbiAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGRhdGEgZm9yIHNvbWUgcmVhc29ucywgdGhpcyBpcyBhbiBlcnJvci5cbiAgICAgIG5nRGV2TW9kZSAmJiBhc3NlcnREZWZpbmVkKGRhdGEsICdVbmFibGUgdG8gcmV0cmlldmUgaHlkcmF0aW9uIGluZm8gZnJvbSB0aGUgVHJhbnNmZXJTdGF0ZS4nKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgZGVoeWRyYXRlZFZpZXc6IERlaHlkcmF0ZWRWaWV3ID0ge1xuICAgIGRhdGEsXG4gICAgZmlyc3RDaGlsZDogck5vZGUuZmlyc3RDaGlsZCA/PyBudWxsLFxuICB9O1xuICAvLyBUaGUgYG5naGAgYXR0cmlidXRlIGlzIGNsZWFyZWQgZnJvbSB0aGUgRE9NIG5vZGUgbm93XG4gIC8vIHRoYXQgdGhlIGRhdGEgaGFzIGJlZW4gcmV0cmlldmVkLlxuICByTm9kZS5yZW1vdmVBdHRyaWJ1dGUoTkdIX0FUVFJfTkFNRSk7XG5cbiAgLy8gTm90ZTogZG9uJ3QgY2hlY2sgd2hldGhlciB0aGlzIG5vZGUgd2FzIGNsYWltZWQgZm9yIGh5ZHJhdGlvbixcbiAgLy8gYmVjYXVzZSB0aGlzIG5vZGUgbWlnaHQndmUgYmVlbiBwcmV2aW91c2x5IGNsYWltZWQgd2hpbGUgcHJvY2Vzc2luZ1xuICAvLyB0ZW1wbGF0ZSBpbnN0cnVjdGlvbnMuXG4gIG5nRGV2TW9kZSAmJiBtYXJrUk5vZGVBc0NsYWltZWRCeUh5ZHJhdGlvbihyTm9kZSwgLyogY2hlY2tJZkFscmVhZHlDbGFpbWVkICovIGZhbHNlKTtcbiAgbmdEZXZNb2RlICYmIG5nRGV2TW9kZS5oeWRyYXRlZENvbXBvbmVudHMrKztcblxuICByZXR1cm4gZGVoeWRyYXRlZFZpZXc7XG59XG5cbi8qKlxuICogU2V0cyB0aGUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBgcmV0cmlldmVIeWRyYXRpb25JbmZvYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZVJldHJpZXZlSHlkcmF0aW9uSW5mb0ltcGwoKSB7XG4gIF9yZXRyaWV2ZUh5ZHJhdGlvbkluZm9JbXBsID0gcmV0cmlldmVIeWRyYXRpb25JbmZvSW1wbDtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgaHlkcmF0aW9uIGluZm8gYnkgcmVhZGluZyB0aGUgdmFsdWUgZnJvbSB0aGUgYG5naGAgYXR0cmlidXRlXG4gKiBhbmQgYWNjZXNzaW5nIGEgY29ycmVzcG9uZGluZyBzbG90IGluIFRyYW5zZmVyU3RhdGUgc3RvcmFnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXZlSHlkcmF0aW9uSW5mbyhyTm9kZTogUkVsZW1lbnQsIGluamVjdG9yOiBJbmplY3Rvcik6IERlaHlkcmF0ZWRWaWV3fG51bGwge1xuICByZXR1cm4gX3JldHJpZXZlSHlkcmF0aW9uSW5mb0ltcGwock5vZGUsIGluamVjdG9yKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYW4gaW5zdGFuY2Ugb2YgYSBjb21wb25lbnQgTFZpZXcgZnJvbSBhIGdpdmVuIFZpZXdSZWYuXG4gKiBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGEgY29tcG9uZW50IExWaWV3IG9yIGBudWxsYCBpbiBjYXNlIG9mIGFuIGVtYmVkZGVkIHZpZXcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnRMVmlld0Zvckh5ZHJhdGlvbih2aWV3UmVmOiBWaWV3UmVmKTogTFZpZXd8bnVsbCB7XG4gIC8vIFJlYWRpbmcgYW4gaW50ZXJuYWwgZmllbGQgZnJvbSBgVmlld1JlZmAgaW5zdGFuY2UuXG4gIGxldCBsVmlldyA9ICh2aWV3UmVmIGFzIGFueSkuX2xWaWV3IGFzIExWaWV3O1xuICBjb25zdCB0VmlldyA9IGxWaWV3W1RWSUVXXTtcbiAgLy8gQSByZWdpc3RlcmVkIFZpZXdSZWYgbWlnaHQgcmVwcmVzZW50IGFuIGluc3RhbmNlIG9mIGFuXG4gIC8vIGVtYmVkZGVkIHZpZXcsIGluIHdoaWNoIGNhc2Ugd2UgZG8gbm90IG5lZWQgdG8gYW5ub3RhdGUgaXQuXG4gIGlmICh0Vmlldy50eXBlID09PSBUVmlld1R5cGUuRW1iZWRkZWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBDaGVjayBpZiBpdCdzIGEgcm9vdCB2aWV3IGFuZCBpZiBzbywgcmV0cmlldmUgY29tcG9uZW50J3NcbiAgLy8gTFZpZXcgZnJvbSB0aGUgZmlyc3Qgc2xvdCBhZnRlciB0aGUgaGVhZGVyLlxuICBpZiAoaXNSb290VmlldyhsVmlldykpIHtcbiAgICBsVmlldyA9IGxWaWV3W0hFQURFUl9PRkZTRVRdO1xuICB9XG4gIHJldHVybiBsVmlldztcbn1cblxuZnVuY3Rpb24gZ2V0VGV4dE5vZGVDb250ZW50KG5vZGU6IE5vZGUpOiBzdHJpbmd8dW5kZWZpbmVkIHtcbiAgcmV0dXJuIG5vZGUudGV4dENvbnRlbnQ/LnJlcGxhY2UoL1xccy9nbSwgJycpO1xufVxuXG4vKipcbiAqIFJlc3RvcmVzIHRleHQgbm9kZXMgYW5kIHNlcGFyYXRvcnMgaW50byB0aGUgRE9NIHRoYXQgd2VyZSBsb3N0IGR1cmluZyBTU1JcbiAqIHNlcmlhbGl6YXRpb24uIFRoZSBoeWRyYXRpb24gcHJvY2VzcyByZXBsYWNlcyBlbXB0eSB0ZXh0IG5vZGVzIGFuZCB0ZXh0XG4gKiBub2RlcyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhZGphY2VudCB0byBvdGhlciB0ZXh0IG5vZGVzIHdpdGggY29tbWVudCBub2Rlc1xuICogdGhhdCB0aGlzIG1ldGhvZCBmaWx0ZXJzIG9uIHRvIHJlc3RvcmUgdGhvc2UgbWlzc2luZyBub2RlcyB0aGF0IHRoZVxuICogaHlkcmF0aW9uIHByb2Nlc3MgaXMgZXhwZWN0aW5nIHRvIGJlIHByZXNlbnQuXG4gKlxuICogQHBhcmFtIG5vZGUgVGhlIGFwcCdzIHJvb3QgSFRNTCBFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzVGV4dE5vZGVNYXJrZXJzQmVmb3JlSHlkcmF0aW9uKG5vZGU6IEhUTUxFbGVtZW50KSB7XG4gIGNvbnN0IGRvYyA9IGdldERvY3VtZW50KCk7XG4gIGNvbnN0IGNvbW1lbnROb2Rlc0l0ZXJhdG9yID0gZG9jLmNyZWF0ZU5vZGVJdGVyYXRvcihub2RlLCBOb2RlRmlsdGVyLlNIT1dfQ09NTUVOVCwge1xuICAgIGFjY2VwdE5vZGUobm9kZSkge1xuICAgICAgY29uc3QgY29udGVudCA9IGdldFRleHROb2RlQ29udGVudChub2RlKTtcbiAgICAgIGNvbnN0IGlzVGV4dE5vZGVNYXJrZXIgPVxuICAgICAgICAgIGNvbnRlbnQgPT09IFRleHROb2RlTWFya2VyLkVtcHR5Tm9kZSB8fCBjb250ZW50ID09PSBUZXh0Tm9kZU1hcmtlci5TZXBhcmF0b3I7XG4gICAgICByZXR1cm4gaXNUZXh0Tm9kZU1hcmtlciA/IE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVCA6IE5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVDtcbiAgICB9XG4gIH0pO1xuICBsZXQgY3VycmVudE5vZGU6IENvbW1lbnQ7XG4gIC8vIFdlIGNhbm5vdCBtb2RpZnkgdGhlIERPTSB3aGlsZSB1c2luZyB0aGUgY29tbWVudEl0ZXJhdG9yLFxuICAvLyBiZWNhdXNlIGl0IHRocm93cyBvZmYgdGhlIGl0ZXJhdG9yIHN0YXRlLlxuICAvLyBTbyB3ZSBjb2xsZWN0IGFsbCBtYXJrZXIgbm9kZXMgZmlyc3QgYW5kIHRoZW4gZm9sbG93IHVwIHdpdGhcbiAgLy8gYXBwbHlpbmcgdGhlIGNoYW5nZXMgdG8gdGhlIERPTTogZWl0aGVyIGluc2VydGluZyBhbiBlbXB0eSBub2RlXG4gIC8vIG9yIGp1c3QgcmVtb3ZpbmcgdGhlIG1hcmtlciBpZiBpdCB3YXMgdXNlZCBhcyBhIHNlcGFyYXRvci5cbiAgY29uc3Qgbm9kZXMgPSBbXTtcbiAgd2hpbGUgKGN1cnJlbnROb2RlID0gY29tbWVudE5vZGVzSXRlcmF0b3IubmV4dE5vZGUoKSBhcyBDb21tZW50KSB7XG4gICAgbm9kZXMucHVzaChjdXJyZW50Tm9kZSk7XG4gIH1cbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgaWYgKG5vZGUudGV4dENvbnRlbnQgPT09IFRleHROb2RlTWFya2VyLkVtcHR5Tm9kZSkge1xuICAgICAgbm9kZS5yZXBsYWNlV2l0aChkb2MuY3JlYXRlVGV4dE5vZGUoJycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5yZW1vdmUoKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCB0eXBlIHRoYXQgcmVwcmVzZW50cyBhIGNsYWltZWQgbm9kZS5cbiAqIE9ubHkgdXNlZCBpbiBkZXYgbW9kZS5cbiAqL1xudHlwZSBDbGFpbWVkTm9kZSA9IHtcbiAgX19jbGFpbWVkPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogTWFya3MgYSBub2RlIGFzIFwiY2xhaW1lZFwiIGJ5IGh5ZHJhdGlvbiBwcm9jZXNzLlxuICogVGhpcyBpcyBuZWVkZWQgdG8gbWFrZSBhc3Nlc3NtZW50cyBpbiB0ZXN0cyB3aGV0aGVyXG4gKiB0aGUgaHlkcmF0aW9uIHByb2Nlc3MgaGFuZGxlZCBhbGwgbm9kZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXJrUk5vZGVBc0NsYWltZWRCeUh5ZHJhdGlvbihub2RlOiBSTm9kZSwgY2hlY2tJZkFscmVhZHlDbGFpbWVkID0gdHJ1ZSkge1xuICBpZiAoIW5nRGV2TW9kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NhbGxpbmcgYG1hcmtSTm9kZUFzQ2xhaW1lZEJ5SHlkcmF0aW9uYCBpbiBwcm9kIG1vZGUgJyArXG4gICAgICAgICdpcyBub3Qgc3VwcG9ydGVkIGFuZCBsaWtlbHkgYSBtaXN0YWtlLicpO1xuICB9XG4gIGlmIChjaGVja0lmQWxyZWFkeUNsYWltZWQgJiYgaXNSTm9kZUNsYWltZWRGb3JIeWRyYXRpb24obm9kZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBjbGFpbSBhIG5vZGUsIHdoaWNoIHdhcyBjbGFpbWVkIGFscmVhZHkuJyk7XG4gIH1cbiAgKG5vZGUgYXMgQ2xhaW1lZE5vZGUpLl9fY2xhaW1lZCA9IHRydWU7XG4gIG5nRGV2TW9kZS5oeWRyYXRlZE5vZGVzKys7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JOb2RlQ2xhaW1lZEZvckh5ZHJhdGlvbihub2RlOiBSTm9kZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEobm9kZSBhcyBDbGFpbWVkTm9kZSkuX19jbGFpbWVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2VnbWVudEhlYWQoXG4gICAgaHlkcmF0aW9uSW5mbzogRGVoeWRyYXRlZFZpZXcsIGluZGV4OiBudW1iZXIsIG5vZGU6IFJOb2RlfG51bGwpOiB2b2lkIHtcbiAgaHlkcmF0aW9uSW5mby5zZWdtZW50SGVhZHMgPz89IHt9O1xuICBoeWRyYXRpb25JbmZvLnNlZ21lbnRIZWFkc1tpbmRleF0gPSBub2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VnbWVudEhlYWQoaHlkcmF0aW9uSW5mbzogRGVoeWRyYXRlZFZpZXcsIGluZGV4OiBudW1iZXIpOiBSTm9kZXxudWxsIHtcbiAgcmV0dXJuIGh5ZHJhdGlvbkluZm8uc2VnbWVudEhlYWRzPy5baW5kZXhdID8/IG51bGw7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgc2l6ZSBvZiBhbiA8bmctY29udGFpbmVyPiwgdXNpbmcgZWl0aGVyIHRoZSBpbmZvcm1hdGlvblxuICogc2VyaWFsaXplZCBpbiBgRUxFTUVOVF9DT05UQUlORVJTYCAoZWxlbWVudCBjb250YWluZXIgc2l6ZSkgb3IgYnlcbiAqIGNvbXB1dGluZyB0aGUgc3VtIG9mIHJvb3Qgbm9kZXMgaW4gYWxsIGRlaHlkcmF0ZWQgdmlld3MgaW4gYSBnaXZlblxuICogY29udGFpbmVyIChpbiBjYXNlIHRoaXMgYDxuZy1jb250YWluZXI+YCB3YXMgYWxzbyB1c2VkIGFzIGEgdmlld1xuICogY29udGFpbmVyIGhvc3Qgbm9kZSwgZS5nLiA8bmctY29udGFpbmVyICpuZ0lmPikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZ0NvbnRhaW5lclNpemUoaHlkcmF0aW9uSW5mbzogRGVoeWRyYXRlZFZpZXcsIGluZGV4OiBudW1iZXIpOiBudW1iZXJ8bnVsbCB7XG4gIGNvbnN0IGRhdGEgPSBoeWRyYXRpb25JbmZvLmRhdGE7XG4gIGxldCBzaXplID0gZGF0YVtFTEVNRU5UX0NPTlRBSU5FUlNdPy5baW5kZXhdID8/IG51bGw7XG4gIC8vIElmIHRoZXJlIGlzIG5vIHNlcmlhbGl6ZWQgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGluIHRoZSBgRUxFTUVOVF9DT05UQUlORVJTYCBzbG90LFxuICAvLyBjaGVjayBpZiB3ZSBoYXZlIGluZm8gYWJvdXQgdmlldyBjb250YWluZXJzIGF0IHRoaXMgbG9jYXRpb24gKGUuZy5cbiAgLy8gYDxuZy1jb250YWluZXIgKm5nSWY+YCkgYW5kIHVzZSBjb250YWluZXIgc2l6ZSBhcyBhIG51bWJlciBvZiByb290IG5vZGVzIGluIHRoaXNcbiAgLy8gZWxlbWVudCBjb250YWluZXIuXG4gIGlmIChzaXplID09PSBudWxsICYmIGRhdGFbQ09OVEFJTkVSU10/LltpbmRleF0pIHtcbiAgICBzaXplID0gY2FsY1NlcmlhbGl6ZWRDb250YWluZXJTaXplKGh5ZHJhdGlvbkluZm8sIGluZGV4KTtcbiAgfVxuICByZXR1cm4gc2l6ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcmlhbGl6ZWRDb250YWluZXJWaWV3cyhcbiAgICBoeWRyYXRpb25JbmZvOiBEZWh5ZHJhdGVkVmlldywgaW5kZXg6IG51bWJlcik6IFNlcmlhbGl6ZWRDb250YWluZXJWaWV3W118bnVsbCB7XG4gIHJldHVybiBoeWRyYXRpb25JbmZvLmRhdGFbQ09OVEFJTkVSU10/LltpbmRleF0gPz8gbnVsbDtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgc2l6ZSBvZiBhIHNlcmlhbGl6ZWQgY29udGFpbmVyICh0aGUgbnVtYmVyIG9mIHJvb3Qgbm9kZXMpXG4gKiBieSBjYWxjdWxhdGluZyB0aGUgc3VtIG9mIHJvb3Qgbm9kZXMgaW4gYWxsIGRlaHlkcmF0ZWQgdmlld3MgaW4gdGhpcyBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjU2VyaWFsaXplZENvbnRhaW5lclNpemUoaHlkcmF0aW9uSW5mbzogRGVoeWRyYXRlZFZpZXcsIGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB2aWV3cyA9IGdldFNlcmlhbGl6ZWRDb250YWluZXJWaWV3cyhoeWRyYXRpb25JbmZvLCBpbmRleCkgPz8gW107XG4gIGxldCBudW1Ob2RlcyA9IDA7XG4gIGZvciAobGV0IHZpZXcgb2Ygdmlld3MpIHtcbiAgICBudW1Ob2RlcyArPSB2aWV3W05VTV9ST09UX05PREVTXSAqICh2aWV3W01VTFRJUExJRVJdID8/IDEpO1xuICB9XG4gIHJldHVybiBudW1Ob2Rlcztcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5vZGUgaXMgYW5ub3RhdGVkIGFzIFwiZGlzY29ubmVjdGVkXCIsIGkuZS4gbm90IHByZXNlbnRcbiAqIGluIHRoZSBET00gYXQgc2VyaWFsaXphdGlvbiB0aW1lLiBXZSBzaG91bGQgbm90IGF0dGVtcHQgaHlkcmF0aW9uIGZvclxuICogc3VjaCBub2RlcyBhbmQgaW5zdGVhZCwgdXNlIGEgcmVndWxhciBcImNyZWF0aW9uIG1vZGVcIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGlzY29ubmVjdGVkTm9kZShoeWRyYXRpb25JbmZvOiBEZWh5ZHJhdGVkVmlldywgaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAvLyBDaGVjayBpZiB3ZSBhcmUgcHJvY2Vzc2luZyBkaXNjb25uZWN0ZWQgaW5mbyBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gIGlmICh0eXBlb2YgaHlkcmF0aW9uSW5mby5kaXNjb25uZWN0ZWROb2RlcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zdCBub2RlSWRzID0gaHlkcmF0aW9uSW5mby5kYXRhW0RJU0NPTk5FQ1RFRF9OT0RFU107XG4gICAgaHlkcmF0aW9uSW5mby5kaXNjb25uZWN0ZWROb2RlcyA9IG5vZGVJZHMgPyAobmV3IFNldChub2RlSWRzKSkgOiBudWxsO1xuICB9XG4gIHJldHVybiAhIWh5ZHJhdGlvbkluZm8uZGlzY29ubmVjdGVkTm9kZXM/LmhhcyhpbmRleCk7XG59XG4iXX0=
@@ -1,42 +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 { stringify } from '../util/stringify';
9
- export function noComponentFactoryError(component) {
10
- const error = Error(`No component factory found for ${stringify(component)}. Did you add it to @NgModule.entryComponents?`);
11
- error[ERROR_COMPONENT] = component;
12
- return error;
13
- }
14
- const ERROR_COMPONENT = 'ngComponent';
15
- export function getComponent(error) {
16
- return error[ERROR_COMPONENT];
17
- }
18
- class _NullComponentFactoryResolver {
19
- resolveComponentFactory(component) {
20
- throw noComponentFactoryError(component);
21
- }
22
- }
23
- /**
24
- * A simple registry that maps `Components` to generated `ComponentFactory` classes
25
- * that can be used to create instances of components.
26
- * Use to obtain the factory for a given component type,
27
- * then use the factory's `create()` method to create a component of that type.
28
- *
29
- * Note: since v13, dynamic component creation via
30
- * [`ViewContainerRef.createComponent`](api/core/ViewContainerRef#createComponent)
31
- * does **not** require resolving component factory: component class can be used directly.
32
- *
33
- * @publicApi
34
- *
35
- * @deprecated Angular no longer requires Component factories. Please use other APIs where
36
- * Component class can be used directly.
37
- */
38
- class ComponentFactoryResolver {
39
- }
40
- ComponentFactoryResolver.NULL = ( /* @__PURE__ */new _NullComponentFactoryResolver());
41
- export { ComponentFactoryResolver };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50X2ZhY3RvcnlfcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saW5rZXIvY29tcG9uZW50X2ZhY3RvcnlfcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSTVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxTQUFtQjtJQUN6RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsa0NBQ2hCLFNBQVMsQ0FBQyxTQUFTLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUN6RSxLQUFhLENBQUMsZUFBZSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzVDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQUV0QyxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQVk7SUFDdkMsT0FBUSxLQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUdELE1BQU0sNkJBQTZCO0lBQ2pDLHVCQUF1QixDQUFJLFNBQW1DO1FBQzVELE1BQU0sdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFzQix3QkFBd0I7O0FBQ3JDLDZCQUFJLEdBQTZCLEVBQUMsZUFBZ0IsSUFBSSw2QkFBNkIsRUFBRSxDQUFDLENBQUM7U0FEMUUsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHtzdHJpbmdpZnl9IGZyb20gJy4uL3V0aWwvc3RyaW5naWZ5JztcblxuaW1wb3J0IHtDb21wb25lbnRGYWN0b3J5fSBmcm9tICcuL2NvbXBvbmVudF9mYWN0b3J5JztcblxuZXhwb3J0IGZ1bmN0aW9uIG5vQ29tcG9uZW50RmFjdG9yeUVycm9yKGNvbXBvbmVudDogRnVuY3Rpb24pIHtcbiAgY29uc3QgZXJyb3IgPSBFcnJvcihgTm8gY29tcG9uZW50IGZhY3RvcnkgZm91bmQgZm9yICR7XG4gICAgICBzdHJpbmdpZnkoY29tcG9uZW50KX0uIERpZCB5b3UgYWRkIGl0IHRvIEBOZ01vZHVsZS5lbnRyeUNvbXBvbmVudHM/YCk7XG4gIChlcnJvciBhcyBhbnkpW0VSUk9SX0NPTVBPTkVOVF0gPSBjb21wb25lbnQ7XG4gIHJldHVybiBlcnJvcjtcbn1cblxuY29uc3QgRVJST1JfQ09NUE9ORU5UID0gJ25nQ29tcG9uZW50JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbXBvbmVudChlcnJvcjogRXJyb3IpOiBUeXBlPGFueT4ge1xuICByZXR1cm4gKGVycm9yIGFzIGFueSlbRVJST1JfQ09NUE9ORU5UXTtcbn1cblxuXG5jbGFzcyBfTnVsbENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciBpbXBsZW1lbnRzIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB7XG4gIHJlc29sdmVDb21wb25lbnRGYWN0b3J5PFQ+KGNvbXBvbmVudDoge25ldyguLi5hcmdzOiBhbnlbXSk6IFR9KTogQ29tcG9uZW50RmFjdG9yeTxUPiB7XG4gICAgdGhyb3cgbm9Db21wb25lbnRGYWN0b3J5RXJyb3IoY29tcG9uZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc2ltcGxlIHJlZ2lzdHJ5IHRoYXQgbWFwcyBgQ29tcG9uZW50c2AgdG8gZ2VuZXJhdGVkIGBDb21wb25lbnRGYWN0b3J5YCBjbGFzc2VzXG4gKiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBpbnN0YW5jZXMgb2YgY29tcG9uZW50cy5cbiAqIFVzZSB0byBvYnRhaW4gdGhlIGZhY3RvcnkgZm9yIGEgZ2l2ZW4gY29tcG9uZW50IHR5cGUsXG4gKiB0aGVuIHVzZSB0aGUgZmFjdG9yeSdzIGBjcmVhdGUoKWAgbWV0aG9kIHRvIGNyZWF0ZSBhIGNvbXBvbmVudCBvZiB0aGF0IHR5cGUuXG4gKlxuICogTm90ZTogc2luY2UgdjEzLCBkeW5hbWljIGNvbXBvbmVudCBjcmVhdGlvbiB2aWFcbiAqIFtgVmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnRgXShhcGkvY29yZS9WaWV3Q29udGFpbmVyUmVmI2NyZWF0ZUNvbXBvbmVudClcbiAqIGRvZXMgKipub3QqKiByZXF1aXJlIHJlc29sdmluZyBjb21wb25lbnQgZmFjdG9yeTogY29tcG9uZW50IGNsYXNzIGNhbiBiZSB1c2VkIGRpcmVjdGx5LlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIG5vIGxvbmdlciByZXF1aXJlcyBDb21wb25lbnQgZmFjdG9yaWVzLiBQbGVhc2UgdXNlIG90aGVyIEFQSXMgd2hlcmVcbiAqICAgICBDb21wb25lbnQgY2xhc3MgY2FuIGJlIHVzZWQgZGlyZWN0bHkuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIge1xuICBzdGF0aWMgTlVMTDogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgX051bGxDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIoKSk7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGZhY3Rvcnkgb2JqZWN0IHRoYXQgY3JlYXRlcyBhIGNvbXBvbmVudCBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudCBUaGUgY29tcG9uZW50IHR5cGUuXG4gICAqL1xuICBhYnN0cmFjdCByZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnQ6IFR5cGU8VD4pOiBDb21wb25lbnRGYWN0b3J5PFQ+O1xufVxuIl19
@@ -1,169 +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 { EventEmitter } from '../event_emitter';
9
- import { arrayEquals, flatten } from '../util/array_utils';
10
- function symbolIterator() {
11
- // @ts-expect-error accessing a private member
12
- return this._results[Symbol.iterator]();
13
- }
14
- /**
15
- * An unmodifiable list of items that Angular keeps up to date when the state
16
- * of the application changes.
17
- *
18
- * The type of object that {@link ViewChildren}, {@link ContentChildren}, and {@link QueryList}
19
- * provide.
20
- *
21
- * Implements an iterable interface, therefore it can be used in both ES6
22
- * javascript `for (var i of items)` loops as well as in Angular templates with
23
- * `*ngFor="let i of myList"`.
24
- *
25
- * Changes can be observed by subscribing to the changes `Observable`.
26
- *
27
- * NOTE: In the future this class will implement an `Observable` interface.
28
- *
29
- * @usageNotes
30
- * ### Example
31
- * ```typescript
32
- * @Component({...})
33
- * class Container {
34
- * @ViewChildren(Item) items:QueryList<Item>;
35
- * }
36
- * ```
37
- *
38
- * @publicApi
39
- */
40
- export class QueryList {
41
- /**
42
- * Returns `Observable` of `QueryList` notifying the subscriber of changes.
43
- */
44
- get changes() {
45
- return this._changes || (this._changes = new EventEmitter());
46
- }
47
- /**
48
- * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change
49
- * has occurred. Or if it should fire when query is recomputed. (recomputing could resolve in
50
- * the same result)
51
- */
52
- constructor(_emitDistinctChangesOnly = false) {
53
- this._emitDistinctChangesOnly = _emitDistinctChangesOnly;
54
- this.dirty = true;
55
- this._results = [];
56
- this._changesDetected = false;
57
- this._changes = null;
58
- this.length = 0;
59
- this.first = undefined;
60
- this.last = undefined;
61
- // This function should be declared on the prototype, but doing so there will cause the class
62
- // declaration to have side-effects and become not tree-shakable. For this reason we do it in
63
- // the constructor.
64
- // [Symbol.iterator](): Iterator<T> { ... }
65
- const proto = QueryList.prototype;
66
- if (!proto[Symbol.iterator])
67
- proto[Symbol.iterator] = symbolIterator;
68
- }
69
- /**
70
- * Returns the QueryList entry at `index`.
71
- */
72
- get(index) {
73
- return this._results[index];
74
- }
75
- /**
76
- * See
77
- * [Array.map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map)
78
- */
79
- map(fn) {
80
- return this._results.map(fn);
81
- }
82
- /**
83
- * See
84
- * [Array.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
85
- */
86
- filter(fn) {
87
- return this._results.filter(fn);
88
- }
89
- /**
90
- * See
91
- * [Array.find](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find)
92
- */
93
- find(fn) {
94
- return this._results.find(fn);
95
- }
96
- /**
97
- * See
98
- * [Array.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce)
99
- */
100
- reduce(fn, init) {
101
- return this._results.reduce(fn, init);
102
- }
103
- /**
104
- * See
105
- * [Array.forEach](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)
106
- */
107
- forEach(fn) {
108
- this._results.forEach(fn);
109
- }
110
- /**
111
- * See
112
- * [Array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some)
113
- */
114
- some(fn) {
115
- return this._results.some(fn);
116
- }
117
- /**
118
- * Returns a copy of the internal results list as an Array.
119
- */
120
- toArray() {
121
- return this._results.slice();
122
- }
123
- toString() {
124
- return this._results.toString();
125
- }
126
- /**
127
- * Updates the stored data of the query list, and resets the `dirty` flag to `false`, so that
128
- * on change detection, it will not notify of changes to the queries, unless a new change
129
- * occurs.
130
- *
131
- * @param resultsTree The query results to store
132
- * @param identityAccessor Optional function for extracting stable object identity from a value
133
- * in the array. This function is executed for each element of the query result list while
134
- * comparing current query list with the new one (provided as a first argument of the `reset`
135
- * function) to detect if the lists are different. If the function is not provided, elements
136
- * are compared as is (without any pre-processing).
137
- */
138
- reset(resultsTree, identityAccessor) {
139
- // Cast to `QueryListInternal` so that we can mutate fields which are readonly for the usage of
140
- // QueryList (but not for QueryList itself.)
141
- const self = this;
142
- self.dirty = false;
143
- const newResultFlat = flatten(resultsTree);
144
- if (this._changesDetected = !arrayEquals(self._results, newResultFlat, identityAccessor)) {
145
- self._results = newResultFlat;
146
- self.length = newResultFlat.length;
147
- self.last = newResultFlat[this.length - 1];
148
- self.first = newResultFlat[0];
149
- }
150
- }
151
- /**
152
- * Triggers a change event by emitting on the `changes` {@link EventEmitter}.
153
- */
154
- notifyOnChanges() {
155
- if (this._changes && (this._changesDetected || !this._emitDistinctChangesOnly))
156
- this._changes.emit(this);
157
- }
158
- /** internal */
159
- setDirty() {
160
- this.dirty = true;
161
- }
162
- /** internal */
163
- destroy() {
164
- this.changes.complete();
165
- this.changes.unsubscribe();
166
- }
167
- }
168
- Symbol.iterator;
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlfbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpbmtlci9xdWVyeV9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsV0FBVyxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXpELFNBQVMsY0FBYztJQUNyQiw4Q0FBOEM7SUFDOUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBVXBCOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFvQiwyQkFBb0MsS0FBSztRQUF6Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQWlCO1FBckI3QyxVQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFDeEIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLGFBQVEsR0FBb0MsSUFBSSxDQUFDO1FBRWhELFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsVUFBSyxHQUFNLFNBQVUsQ0FBQztRQUN0QixTQUFJLEdBQU0sU0FBVSxDQUFDO1FBZTVCLDZGQUE2RjtRQUM3Riw2RkFBNkY7UUFDN0YsbUJBQW1CO1FBQ25CLDJDQUEyQztRQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFL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QUFNLENBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0V2ZW50RW1pdHRlcn0gZnJvbSAnLi4vZXZlbnRfZW1pdHRlcic7XG5pbXBvcnQge2FycmF5RXF1YWxzLCBmbGF0dGVufSBmcm9tICcuLi91dGlsL2FycmF5X3V0aWxzJztcblxuZnVuY3Rpb24gc3ltYm9sSXRlcmF0b3I8VD4odGhpczogUXVlcnlMaXN0PFQ+KTogSXRlcmF0b3I8VD4ge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIGFjY2Vzc2luZyBhIHByaXZhdGUgbWVtYmVyXG4gIHJldHVybiB0aGlzLl9yZXN1bHRzW1N5bWJvbC5pdGVyYXRvcl0oKTtcbn1cblxuLyoqXG4gKiBBbiB1bm1vZGlmaWFibGUgbGlzdCBvZiBpdGVtcyB0aGF0IEFuZ3VsYXIga2VlcHMgdXAgdG8gZGF0ZSB3aGVuIHRoZSBzdGF0ZVxuICogb2YgdGhlIGFwcGxpY2F0aW9uIGNoYW5nZXMuXG4gKlxuICogVGhlIHR5cGUgb2Ygb2JqZWN0IHRoYXQge0BsaW5rIFZpZXdDaGlsZHJlbn0sIHtAbGluayBDb250ZW50Q2hpbGRyZW59LCBhbmQge0BsaW5rIFF1ZXJ5TGlzdH1cbiAqIHByb3ZpZGUuXG4gKlxuICogSW1wbGVtZW50cyBhbiBpdGVyYWJsZSBpbnRlcmZhY2UsIHRoZXJlZm9yZSBpdCBjYW4gYmUgdXNlZCBpbiBib3RoIEVTNlxuICogamF2YXNjcmlwdCBgZm9yICh2YXIgaSBvZiBpdGVtcylgIGxvb3BzIGFzIHdlbGwgYXMgaW4gQW5ndWxhciB0ZW1wbGF0ZXMgd2l0aFxuICogYCpuZ0Zvcj1cImxldCBpIG9mIG15TGlzdFwiYC5cbiAqXG4gKiBDaGFuZ2VzIGNhbiBiZSBvYnNlcnZlZCBieSBzdWJzY3JpYmluZyB0byB0aGUgY2hhbmdlcyBgT2JzZXJ2YWJsZWAuXG4gKlxuICogTk9URTogSW4gdGhlIGZ1dHVyZSB0aGlzIGNsYXNzIHdpbGwgaW1wbGVtZW50IGFuIGBPYnNlcnZhYmxlYCBpbnRlcmZhY2UuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqICMjIyBFeGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHsuLi59KVxuICogY2xhc3MgQ29udGFpbmVyIHtcbiAqICAgQFZpZXdDaGlsZHJlbihJdGVtKSBpdGVtczpRdWVyeUxpc3Q8SXRlbT47XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVyeUxpc3Q8VD4gaW1wbGVtZW50cyBJdGVyYWJsZTxUPiB7XG4gIHB1YmxpYyByZWFkb25seSBkaXJ0eSA9IHRydWU7XG4gIHByaXZhdGUgX3Jlc3VsdHM6IEFycmF5PFQ+ID0gW107XG4gIHByaXZhdGUgX2NoYW5nZXNEZXRlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jaGFuZ2VzOiBFdmVudEVtaXR0ZXI8UXVlcnlMaXN0PFQ+PnxudWxsID0gbnVsbDtcblxuICByZWFkb25seSBsZW5ndGg6IG51bWJlciA9IDA7XG4gIHJlYWRvbmx5IGZpcnN0OiBUID0gdW5kZWZpbmVkITtcbiAgcmVhZG9ubHkgbGFzdDogVCA9IHVuZGVmaW5lZCE7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYE9ic2VydmFibGVgIG9mIGBRdWVyeUxpc3RgIG5vdGlmeWluZyB0aGUgc3Vic2NyaWJlciBvZiBjaGFuZ2VzLlxuICAgKi9cbiAgZ2V0IGNoYW5nZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlcyB8fCAodGhpcy5fY2hhbmdlcyA9IG5ldyBFdmVudEVtaXR0ZXIoKSk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGVtaXREaXN0aW5jdENoYW5nZXNPbmx5IFdoZXRoZXIgYFF1ZXJ5TGlzdC5jaGFuZ2VzYCBzaG91bGQgZmlyZSBvbmx5IHdoZW4gYWN0dWFsIGNoYW5nZVxuICAgKiAgICAgaGFzIG9jY3VycmVkLiBPciBpZiBpdCBzaG91bGQgZmlyZSB3aGVuIHF1ZXJ5IGlzIHJlY29tcHV0ZWQuIChyZWNvbXB1dGluZyBjb3VsZCByZXNvbHZlIGluXG4gICAqICAgICB0aGUgc2FtZSByZXN1bHQpXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbWl0RGlzdGluY3RDaGFuZ2VzT25seTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgZGVjbGFyZWQgb24gdGhlIHByb3RvdHlwZSwgYnV0IGRvaW5nIHNvIHRoZXJlIHdpbGwgY2F1c2UgdGhlIGNsYXNzXG4gICAgLy8gZGVjbGFyYXRpb24gdG8gaGF2ZSBzaWRlLWVmZmVjdHMgYW5kIGJlY29tZSBub3QgdHJlZS1zaGFrYWJsZS4gRm9yIHRoaXMgcmVhc29uIHdlIGRvIGl0IGluXG4gICAgLy8gdGhlIGNvbnN0cnVjdG9yLlxuICAgIC8vIFtTeW1ib2wuaXRlcmF0b3JdKCk6IEl0ZXJhdG9yPFQ+IHsgLi4uIH1cbiAgICBjb25zdCBwcm90byA9IFF1ZXJ5TGlzdC5wcm90b3R5cGU7XG4gICAgaWYgKCFwcm90b1tTeW1ib2wuaXRlcmF0b3JdKSBwcm90b1tTeW1ib2wuaXRlcmF0b3JdID0gc3ltYm9sSXRlcmF0b3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgUXVlcnlMaXN0IGVudHJ5IGF0IGBpbmRleGAuXG4gICAqL1xuICBnZXQoaW5kZXg6IG51bWJlcik6IFR8dW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0c1tpbmRleF07XG4gIH1cblxuICAvKipcbiAgICogU2VlXG4gICAqIFtBcnJheS5tYXBdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L21hcClcbiAgICovXG4gIG1hcDxVPihmbjogKGl0ZW06IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IFUpOiBVW10ge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzLm1hcChmbik7XG4gIH1cblxuICAvKipcbiAgICogU2VlXG4gICAqIFtBcnJheS5maWx0ZXJdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L2ZpbHRlcilcbiAgICovXG4gIGZpbHRlcihmbjogKGl0ZW06IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IGJvb2xlYW4pOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcihmbik7XG4gIH1cblxuICAvKipcbiAgICogU2VlXG4gICAqIFtBcnJheS5maW5kXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9maW5kKVxuICAgKi9cbiAgZmluZChmbjogKGl0ZW06IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IGJvb2xlYW4pOiBUfHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdHMuZmluZChmbik7XG4gIH1cblxuICAvKipcbiAgICogU2VlXG4gICAqIFtBcnJheS5yZWR1Y2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L3JlZHVjZSlcbiAgICovXG4gIHJlZHVjZTxVPihmbjogKHByZXZWYWx1ZTogVSwgY3VyVmFsdWU6IFQsIGN1ckluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IFUsIGluaXQ6IFUpOiBVIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0cy5yZWR1Y2UoZm4sIGluaXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlZVxuICAgKiBbQXJyYXkuZm9yRWFjaF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvQXJyYXkvZm9yRWFjaClcbiAgICovXG4gIGZvckVhY2goZm46IChpdGVtOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzdWx0cy5mb3JFYWNoKGZuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWVcbiAgICogW0FycmF5LnNvbWVdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0FycmF5L3NvbWUpXG4gICAqL1xuICBzb21lKGZuOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKGZuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgcmVzdWx0cyBsaXN0IGFzIGFuIEFycmF5LlxuICAgKi9cbiAgdG9BcnJheSgpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzLnNsaWNlKCk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc3RvcmVkIGRhdGEgb2YgdGhlIHF1ZXJ5IGxpc3QsIGFuZCByZXNldHMgdGhlIGBkaXJ0eWAgZmxhZyB0byBgZmFsc2VgLCBzbyB0aGF0XG4gICAqIG9uIGNoYW5nZSBkZXRlY3Rpb24sIGl0IHdpbGwgbm90IG5vdGlmeSBvZiBjaGFuZ2VzIHRvIHRoZSBxdWVyaWVzLCB1bmxlc3MgYSBuZXcgY2hhbmdlXG4gICAqIG9jY3Vycy5cbiAgICpcbiAgICogQHBhcmFtIHJlc3VsdHNUcmVlIFRoZSBxdWVyeSByZXN1bHRzIHRvIHN0b3JlXG4gICAqIEBwYXJhbSBpZGVudGl0eUFjY2Vzc29yIE9wdGlvbmFsIGZ1bmN0aW9uIGZvciBleHRyYWN0aW5nIHN0YWJsZSBvYmplY3QgaWRlbnRpdHkgZnJvbSBhIHZhbHVlXG4gICAqICAgIGluIHRoZSBhcnJheS4gVGhpcyBmdW5jdGlvbiBpcyBleGVjdXRlZCBmb3IgZWFjaCBlbGVtZW50IG9mIHRoZSBxdWVyeSByZXN1bHQgbGlzdCB3aGlsZVxuICAgKiAgICBjb21wYXJpbmcgY3VycmVudCBxdWVyeSBsaXN0IHdpdGggdGhlIG5ldyBvbmUgKHByb3ZpZGVkIGFzIGEgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGByZXNldGBcbiAgICogICAgZnVuY3Rpb24pIHRvIGRldGVjdCBpZiB0aGUgbGlzdHMgYXJlIGRpZmZlcmVudC4gSWYgdGhlIGZ1bmN0aW9uIGlzIG5vdCBwcm92aWRlZCwgZWxlbWVudHNcbiAgICogICAgYXJlIGNvbXBhcmVkIGFzIGlzICh3aXRob3V0IGFueSBwcmUtcHJvY2Vzc2luZykuXG4gICAqL1xuICByZXNldChyZXN1bHRzVHJlZTogQXJyYXk8VHxhbnlbXT4sIGlkZW50aXR5QWNjZXNzb3I/OiAodmFsdWU6IFQpID0+IHVua25vd24pOiB2b2lkIHtcbiAgICAvLyBDYXN0IHRvIGBRdWVyeUxpc3RJbnRlcm5hbGAgc28gdGhhdCB3ZSBjYW4gbXV0YXRlIGZpZWxkcyB3aGljaCBhcmUgcmVhZG9ubHkgZm9yIHRoZSB1c2FnZSBvZlxuICAgIC8vIFF1ZXJ5TGlzdCAoYnV0IG5vdCBmb3IgUXVlcnlMaXN0IGl0c2VsZi4pXG4gICAgY29uc3Qgc2VsZiA9IHRoaXMgYXMgUXVlcnlMaXN0SW50ZXJuYWw8VD47XG4gICAgKHNlbGYgYXMge2RpcnR5OiBib29sZWFufSkuZGlydHkgPSBmYWxzZTtcbiAgICBjb25zdCBuZXdSZXN1bHRGbGF0ID0gZmxhdHRlbihyZXN1bHRzVHJlZSk7XG4gICAgaWYgKHRoaXMuX2NoYW5nZXNEZXRlY3RlZCA9ICFhcnJheUVxdWFscyhzZWxmLl9yZXN1bHRzLCBuZXdSZXN1bHRGbGF0LCBpZGVudGl0eUFjY2Vzc29yKSkge1xuICAgICAgc2VsZi5fcmVzdWx0cyA9IG5ld1Jlc3VsdEZsYXQ7XG4gICAgICBzZWxmLmxlbmd0aCA9IG5ld1Jlc3VsdEZsYXQubGVuZ3RoO1xuICAgICAgc2VsZi5sYXN0ID0gbmV3UmVzdWx0RmxhdFt0aGlzLmxlbmd0aCAtIDFdO1xuICAgICAgc2VsZi5maXJzdCA9IG5ld1Jlc3VsdEZsYXRbMF07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIGEgY2hhbmdlIGV2ZW50IGJ5IGVtaXR0aW5nIG9uIHRoZSBgY2hhbmdlc2Age0BsaW5rIEV2ZW50RW1pdHRlcn0uXG4gICAqL1xuICBub3RpZnlPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NoYW5nZXMgJiYgKHRoaXMuX2NoYW5nZXNEZXRlY3RlZCB8fCAhdGhpcy5fZW1pdERpc3RpbmN0Q2hhbmdlc09ubHkpKVxuICAgICAgdGhpcy5fY2hhbmdlcy5lbWl0KHRoaXMpO1xuICB9XG5cbiAgLyoqIGludGVybmFsICovXG4gIHNldERpcnR5KCkge1xuICAgICh0aGlzIGFzIHtkaXJ0eTogYm9vbGVhbn0pLmRpcnR5ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBpbnRlcm5hbCAqL1xuICBkZXN0cm95KCk6IHZvaWQge1xuICAgICh0aGlzLmNoYW5nZXMgYXMgRXZlbnRFbWl0dGVyPGFueT4pLmNvbXBsZXRlKCk7XG4gICAgKHRoaXMuY2hhbmdlcyBhcyBFdmVudEVtaXR0ZXI8YW55PikudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgU3ltYm9sLml0ZXJhdG9yYCBzaG91bGQgYmUgZGVjbGFyZWQgaGVyZSwgYnV0IHRoaXMgd291bGQgY2F1c2VcbiAgLy8gdHJlZS1zaGFraW5nIGlzc3VlcyB3aXRoIGBRdWVyeUxpc3QuIFNvIGluc3RlYWQsIGl0J3MgYWRkZWQgaW4gdGhlIGNvbnN0cnVjdG9yIChzZWUgY29tbWVudHNcbiAgLy8gdGhlcmUpIGFuZCB0aGlzIGRlY2xhcmF0aW9uIGlzIGxlZnQgaGVyZSB0byBlbnN1cmUgdGhhdCBUeXBlU2NyaXB0IGNvbnNpZGVycyBRdWVyeUxpc3QgdG9cbiAgLy8gaW1wbGVtZW50IHRoZSBJdGVyYWJsZSBpbnRlcmZhY2UuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHRlbXBsYXRlIHR5cGUtY2hlY2tpbmcgb2YgTmdGb3IgbG9vcHNcbiAgLy8gb3ZlciBRdWVyeUxpc3RzIHRvIHdvcmsgY29ycmVjdGx5LCBzaW5jZSBRdWVyeUxpc3QgbXVzdCBiZSBhc3NpZ25hYmxlIHRvIE5nSXRlcmFibGUuXG4gIFtTeW1ib2wuaXRlcmF0b3JdITogKCkgPT4gSXRlcmF0b3I8VD47XG59XG5cbi8qKlxuICogSW50ZXJuYWwgc2V0IG9mIEFQSXMgdXNlZCBieSB0aGUgZnJhbWV3b3JrLiAobm90IHRvIGJlIG1hZGUgcHVibGljKVxuICovXG5pbnRlcmZhY2UgUXVlcnlMaXN0SW50ZXJuYWw8VD4gZXh0ZW5kcyBRdWVyeUxpc3Q8VD4ge1xuICByZXNldChhOiBhbnlbXSk6IHZvaWQ7XG4gIG5vdGlmeU9uQ2hhbmdlcygpOiB2b2lkO1xuICBsZW5ndGg6IG51bWJlcjtcbiAgbGFzdDogVDtcbiAgZmlyc3Q6IFQ7XG59XG4iXX0=
@@ -1,102 +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 { assertLContainer } from '../render3/assert';
9
- import { createLView, renderView } from '../render3/instructions/shared';
10
- import { DECLARATION_LCONTAINER, QUERIES } from '../render3/interfaces/view';
11
- import { getCurrentTNode, getLView } from '../render3/state';
12
- import { ViewRef as R3_ViewRef } from '../render3/view_ref';
13
- import { assertDefined } from '../util/assert';
14
- import { createElementRef } from './element_ref';
15
- /**
16
- * Represents an embedded template that can be used to instantiate embedded views.
17
- * To instantiate embedded views based on a template, use the `ViewContainerRef`
18
- * method `createEmbeddedView()`.
19
- *
20
- * Access a `TemplateRef` instance by placing a directive on an `<ng-template>`
21
- * element (or directive prefixed with `*`). The `TemplateRef` for the embedded view
22
- * is injected into the constructor of the directive,
23
- * using the `TemplateRef` token.
24
- *
25
- * You can also use a `Query` to find a `TemplateRef` associated with
26
- * a component or a directive.
27
- *
28
- * @see `ViewContainerRef`
29
- * @see [Navigate the Component Tree with DI](guide/dependency-injection-navtree)
30
- *
31
- * @publicApi
32
- */
33
- class TemplateRef {
34
- }
35
- /**
36
- * @internal
37
- * @nocollapse
38
- */
39
- TemplateRef.__NG_ELEMENT_ID__ = injectTemplateRef;
40
- export { TemplateRef };
41
- const ViewEngineTemplateRef = TemplateRef;
42
- // TODO(alxhub): combine interface and implementation. Currently this is challenging since something
43
- // in g3 depends on them being separate.
44
- const R3TemplateRef = class TemplateRef extends ViewEngineTemplateRef {
45
- constructor(_declarationLView, _declarationTContainer, elementRef) {
46
- super();
47
- this._declarationLView = _declarationLView;
48
- this._declarationTContainer = _declarationTContainer;
49
- this.elementRef = elementRef;
50
- }
51
- /**
52
- * Returns an `ssrId` associated with a TView, which was used to
53
- * create this instance of the `TemplateRef`.
54
- *
55
- * @internal
56
- */
57
- get ssrId() {
58
- return this._declarationTContainer.tView?.ssrId || null;
59
- }
60
- createEmbeddedView(context, injector) {
61
- return this.createEmbeddedViewImpl(context, injector, null);
62
- }
63
- /**
64
- * @internal
65
- */
66
- createEmbeddedViewImpl(context, injector, hydrationInfo) {
67
- const embeddedTView = this._declarationTContainer.tView;
68
- const embeddedLView = createLView(this._declarationLView, embeddedTView, context, 16 /* LViewFlags.CheckAlways */, null, embeddedTView.declTNode, null, null, null, null, injector || null, hydrationInfo || null);
69
- const declarationLContainer = this._declarationLView[this._declarationTContainer.index];
70
- ngDevMode && assertLContainer(declarationLContainer);
71
- embeddedLView[DECLARATION_LCONTAINER] = declarationLContainer;
72
- const declarationViewLQueries = this._declarationLView[QUERIES];
73
- if (declarationViewLQueries !== null) {
74
- embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);
75
- }
76
- renderView(embeddedTView, embeddedLView, context);
77
- return new R3_ViewRef(embeddedLView);
78
- }
79
- };
80
- /**
81
- * Creates a TemplateRef given a node.
82
- *
83
- * @returns The TemplateRef instance to use
84
- */
85
- export function injectTemplateRef() {
86
- return createTemplateRef(getCurrentTNode(), getLView());
87
- }
88
- /**
89
- * Creates a TemplateRef and stores it on the injector.
90
- *
91
- * @param hostTNode The node on which a TemplateRef is requested
92
- * @param hostLView The `LView` to which the node belongs
93
- * @returns The TemplateRef instance or null if we can't create a TemplateRef on a given node type
94
- */
95
- export function createTemplateRef(hostTNode, hostLView) {
96
- if (hostTNode.type & 4 /* TNodeType.Container */) {
97
- ngDevMode && assertDefined(hostTNode.tView, 'TView must be allocated');
98
- return new R3TemplateRef(hostLView, hostTNode, createElementRef(hostTNode, hostLView));
99
- }
100
- return null;
101
- }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVfcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGlua2VyL3RlbXBsYXRlX3JlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBRXZFLE9BQU8sRUFBQyxzQkFBc0IsRUFBcUIsT0FBTyxFQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDckcsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsT0FBTyxJQUFJLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBc0IsV0FBVzs7QUE2Qy9COzs7R0FHRztBQUNJLDZCQUFpQixHQUFpQyxpQkFBaUIsQ0FBQztTQWpEdkQsV0FBVztBQW9EakMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUM7QUFFMUMsb0dBQW9HO0FBQ3BHLHdDQUF3QztBQUN4QyxNQUFNLGFBQWEsR0FBRyxNQUFNLFdBQWUsU0FBUSxxQkFBd0I7SUFDekUsWUFDWSxpQkFBd0IsRUFBVSxzQkFBc0MsRUFDaEUsVUFBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFGRSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQU87UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWdCO1FBQ2hFLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDO0lBQzFELENBQUM7SUFFUSxrQkFBa0IsQ0FBQyxPQUFVLEVBQUUsUUFBbUI7UUFDekQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDTSxzQkFBc0IsQ0FDM0IsT0FBVSxFQUFFLFFBQW1CLEVBQy9CLGFBQTRDO1FBQzlDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFjLENBQUM7UUFDakUsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUM3QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE9BQU8sbUNBQTBCLElBQUksRUFDNUUsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLENBQUM7UUFFOUYsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hGLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3JELGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO1FBRTlELE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLElBQUksdUJBQXVCLEtBQUssSUFBSSxFQUFFO1lBQ3BDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNwRjtRQUVELFVBQVUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWxELE9BQU8sSUFBSSxVQUFVLENBQUksYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLGlCQUFpQixDQUFJLGVBQWUsRUFBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxTQUFnQixFQUFFLFNBQWdCO0lBQ3JFLElBQUksU0FBUyxDQUFDLElBQUksOEJBQXNCLEVBQUU7UUFDeEMsU0FBUyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLGFBQWEsQ0FDcEIsU0FBUyxFQUFFLFNBQTJCLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7S0FDckY7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnLi4vZGkvaW5qZWN0b3InO1xuaW1wb3J0IHtEZWh5ZHJhdGVkQ29udGFpbmVyVmlld30gZnJvbSAnLi4vaHlkcmF0aW9uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHthc3NlcnRMQ29udGFpbmVyfSBmcm9tICcuLi9yZW5kZXIzL2Fzc2VydCc7XG5pbXBvcnQge2NyZWF0ZUxWaWV3LCByZW5kZXJWaWV3fSBmcm9tICcuLi9yZW5kZXIzL2luc3RydWN0aW9ucy9zaGFyZWQnO1xuaW1wb3J0IHtUQ29udGFpbmVyTm9kZSwgVE5vZGUsIFROb2RlVHlwZX0gZnJvbSAnLi4vcmVuZGVyMy9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHtERUNMQVJBVElPTl9MQ09OVEFJTkVSLCBMVmlldywgTFZpZXdGbGFncywgUVVFUklFUywgVFZpZXd9IGZyb20gJy4uL3JlbmRlcjMvaW50ZXJmYWNlcy92aWV3JztcbmltcG9ydCB7Z2V0Q3VycmVudFROb2RlLCBnZXRMVmlld30gZnJvbSAnLi4vcmVuZGVyMy9zdGF0ZSc7XG5pbXBvcnQge1ZpZXdSZWYgYXMgUjNfVmlld1JlZn0gZnJvbSAnLi4vcmVuZGVyMy92aWV3X3JlZic7XG5pbXBvcnQge2Fzc2VydERlZmluZWR9IGZyb20gJy4uL3V0aWwvYXNzZXJ0JztcblxuaW1wb3J0IHtjcmVhdGVFbGVtZW50UmVmLCBFbGVtZW50UmVmfSBmcm9tICcuL2VsZW1lbnRfcmVmJztcbmltcG9ydCB7RW1iZWRkZWRWaWV3UmVmfSBmcm9tICcuL3ZpZXdfcmVmJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5zdGFudGlhdGUgZW1iZWRkZWQgdmlld3MuXG4gKiBUbyBpbnN0YW50aWF0ZSBlbWJlZGRlZCB2aWV3cyBiYXNlZCBvbiBhIHRlbXBsYXRlLCB1c2UgdGhlIGBWaWV3Q29udGFpbmVyUmVmYFxuICogbWV0aG9kIGBjcmVhdGVFbWJlZGRlZFZpZXcoKWAuXG4gKlxuICogQWNjZXNzIGEgYFRlbXBsYXRlUmVmYCBpbnN0YW5jZSBieSBwbGFjaW5nIGEgZGlyZWN0aXZlIG9uIGFuIGA8bmctdGVtcGxhdGU+YFxuICogZWxlbWVudCAob3IgZGlyZWN0aXZlIHByZWZpeGVkIHdpdGggYCpgKS4gVGhlIGBUZW1wbGF0ZVJlZmAgZm9yIHRoZSBlbWJlZGRlZCB2aWV3XG4gKiBpcyBpbmplY3RlZCBpbnRvIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgZGlyZWN0aXZlLFxuICogdXNpbmcgdGhlIGBUZW1wbGF0ZVJlZmAgdG9rZW4uXG4gKlxuICogWW91IGNhbiBhbHNvIHVzZSBhIGBRdWVyeWAgdG8gZmluZCBhIGBUZW1wbGF0ZVJlZmAgYXNzb2NpYXRlZCB3aXRoXG4gKiBhIGNvbXBvbmVudCBvciBhIGRpcmVjdGl2ZS5cbiAqXG4gKiBAc2VlIGBWaWV3Q29udGFpbmVyUmVmYFxuICogQHNlZSBbTmF2aWdhdGUgdGhlIENvbXBvbmVudCBUcmVlIHdpdGggREldKGd1aWRlL2RlcGVuZGVuY3ktaW5qZWN0aW9uLW5hdnRyZWUpXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGVtcGxhdGVSZWY8Qz4ge1xuICAvKipcbiAgICogVGhlIGFuY2hvciBlbGVtZW50IGluIHRoZSBwYXJlbnQgdmlldyBmb3IgdGhpcyBlbWJlZGRlZCB2aWV3LlxuICAgKlxuICAgKiBUaGUgZGF0YS1iaW5kaW5nIGFuZCBpbmplY3Rpb24gY29udGV4dHMgb2YgZW1iZWRkZWQgdmlld3MgY3JlYXRlZCBmcm9tIHRoaXMgYFRlbXBsYXRlUmVmYFxuICAgKiBpbmhlcml0IGZyb20gdGhlIGNvbnRleHRzIG9mIHRoaXMgbG9jYXRpb24uXG4gICAqXG4gICAqIFR5cGljYWxseSBuZXcgZW1iZWRkZWQgdmlld3MgYXJlIGF0dGFjaGVkIHRvIHRoZSB2aWV3IGNvbnRhaW5lciBvZiB0aGlzIGxvY2F0aW9uLCBidXQgaW5cbiAgICogYWR2YW5jZWQgdXNlLWNhc2VzLCB0aGUgdmlldyBjYW4gYmUgYXR0YWNoZWQgdG8gYSBkaWZmZXJlbnQgY29udGFpbmVyIHdoaWxlIGtlZXBpbmcgdGhlXG4gICAqIGRhdGEtYmluZGluZyBhbmQgaW5qZWN0aW9uIGNvbnRleHQgZnJvbSB0aGUgb3JpZ2luYWwgbG9jYXRpb24uXG4gICAqXG4gICAqL1xuICAvLyBUT0RPKGkpOiByZW5hbWUgdG8gYW5jaG9yIG9yIGxvY2F0aW9uXG4gIGFic3RyYWN0IHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEluc3RhbnRpYXRlcyBhbiB1bmF0dGFjaGVkIGVtYmVkZGVkIHZpZXcgYmFzZWQgb24gdGhpcyB0ZW1wbGF0ZS5cbiAgICogQHBhcmFtIGNvbnRleHQgVGhlIGRhdGEtYmluZGluZyBjb250ZXh0IG9mIHRoZSBlbWJlZGRlZCB2aWV3LCBhcyBkZWNsYXJlZFxuICAgKiBpbiB0aGUgYDxuZy10ZW1wbGF0ZT5gIHVzYWdlLlxuICAgKiBAcGFyYW0gaW5qZWN0b3IgSW5qZWN0b3IgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGVtYmVkZGVkIHZpZXcuXG4gICAqIEByZXR1cm5zIFRoZSBuZXcgZW1iZWRkZWQgdmlldyBvYmplY3QuXG4gICAqL1xuICBhYnN0cmFjdCBjcmVhdGVFbWJlZGRlZFZpZXcoY29udGV4dDogQywgaW5qZWN0b3I/OiBJbmplY3Rvcik6IEVtYmVkZGVkVmlld1JlZjxDPjtcblxuICAvKipcbiAgICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGBjcmVhdGVFbWJlZGRlZFZpZXdgIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGludGVybmFsIGFuZCBhbGxvd3MgZnJhbWV3b3JrIGNvZGVcbiAgICogdG8gaW52b2tlIGl0IHdpdGggZXh0cmEgcGFyYW1ldGVycyAoZS5nLiBmb3IgaHlkcmF0aW9uKSB3aXRob3V0XG4gICAqIGFmZmVjdGluZyBwdWJsaWMgQVBJLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGFic3RyYWN0IGNyZWF0ZUVtYmVkZGVkVmlld0ltcGwoXG4gICAgICBjb250ZXh0OiBDLCBpbmplY3Rvcj86IEluamVjdG9yLFxuICAgICAgaHlkcmF0aW9uSW5mbz86IERlaHlkcmF0ZWRDb250YWluZXJWaWV3fG51bGwpOiBFbWJlZGRlZFZpZXdSZWY8Qz47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYHNzcklkYCBhc3NvY2lhdGVkIHdpdGggYSBUVmlldywgd2hpY2ggd2FzIHVzZWQgdG9cbiAgICogY3JlYXRlIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIGBUZW1wbGF0ZVJlZmAuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0IHNzcklkKCk6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQG5vY29sbGFwc2VcbiAgICovXG4gIHN0YXRpYyBfX05HX0VMRU1FTlRfSURfXzogKCkgPT4gVGVtcGxhdGVSZWY8YW55PnwgbnVsbCA9IGluamVjdFRlbXBsYXRlUmVmO1xufVxuXG5jb25zdCBWaWV3RW5naW5lVGVtcGxhdGVSZWYgPSBUZW1wbGF0ZVJlZjtcblxuLy8gVE9ETyhhbHhodWIpOiBjb21iaW5lIGludGVyZmFjZSBhbmQgaW1wbGVtZW50YXRpb24uIEN1cnJlbnRseSB0aGlzIGlzIGNoYWxsZW5naW5nIHNpbmNlIHNvbWV0aGluZ1xuLy8gaW4gZzMgZGVwZW5kcyBvbiB0aGVtIGJlaW5nIHNlcGFyYXRlLlxuY29uc3QgUjNUZW1wbGF0ZVJlZiA9IGNsYXNzIFRlbXBsYXRlUmVmPFQ+IGV4dGVuZHMgVmlld0VuZ2luZVRlbXBsYXRlUmVmPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIF9kZWNsYXJhdGlvbkxWaWV3OiBMVmlldywgcHJpdmF0ZSBfZGVjbGFyYXRpb25UQ29udGFpbmVyOiBUQ29udGFpbmVyTm9kZSxcbiAgICAgIHB1YmxpYyBvdmVycmlkZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGBzc3JJZGAgYXNzb2NpYXRlZCB3aXRoIGEgVFZpZXcsIHdoaWNoIHdhcyB1c2VkIHRvXG4gICAqIGNyZWF0ZSB0aGlzIGluc3RhbmNlIG9mIHRoZSBgVGVtcGxhdGVSZWZgLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG92ZXJyaWRlIGdldCBzc3JJZCgpOiBzdHJpbmd8bnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RlY2xhcmF0aW9uVENvbnRhaW5lci50Vmlldz8uc3NySWQgfHwgbnVsbDtcbiAgfVxuXG4gIG92ZXJyaWRlIGNyZWF0ZUVtYmVkZGVkVmlldyhjb250ZXh0OiBULCBpbmplY3Rvcj86IEluamVjdG9yKTogRW1iZWRkZWRWaWV3UmVmPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVFbWJlZGRlZFZpZXdJbXBsKGNvbnRleHQsIGluamVjdG9yLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG92ZXJyaWRlIGNyZWF0ZUVtYmVkZGVkVmlld0ltcGwoXG4gICAgICBjb250ZXh0OiBULCBpbmplY3Rvcj86IEluamVjdG9yLFxuICAgICAgaHlkcmF0aW9uSW5mbz86IERlaHlkcmF0ZWRDb250YWluZXJWaWV3fG51bGwpOiBFbWJlZGRlZFZpZXdSZWY8VD4ge1xuICAgIGNvbnN0IGVtYmVkZGVkVFZpZXcgPSB0aGlzLl9kZWNsYXJhdGlvblRDb250YWluZXIudFZpZXcgYXMgVFZpZXc7XG4gICAgY29uc3QgZW1iZWRkZWRMVmlldyA9IGNyZWF0ZUxWaWV3KFxuICAgICAgICB0aGlzLl9kZWNsYXJhdGlvbkxWaWV3LCBlbWJlZGRlZFRWaWV3LCBjb250ZXh0LCBMVmlld0ZsYWdzLkNoZWNrQWx3YXlzLCBudWxsLFxuICAgICAgICBlbWJlZGRlZFRWaWV3LmRlY2xUTm9kZSwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgaW5qZWN0b3IgfHwgbnVsbCwgaHlkcmF0aW9uSW5mbyB8fCBudWxsKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uTENvbnRhaW5lciA9IHRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLmluZGV4XTtcbiAgICBuZ0Rldk1vZGUgJiYgYXNzZXJ0TENvbnRhaW5lcihkZWNsYXJhdGlvbkxDb250YWluZXIpO1xuICAgIGVtYmVkZGVkTFZpZXdbREVDTEFSQVRJT05fTENPTlRBSU5FUl0gPSBkZWNsYXJhdGlvbkxDb250YWluZXI7XG5cbiAgICBjb25zdCBkZWNsYXJhdGlvblZpZXdMUXVlcmllcyA9IHRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbUVVFUklFU107XG4gICAgaWYgKGRlY2xhcmF0aW9uVmlld0xRdWVyaWVzICE9PSBudWxsKSB7XG4gICAgICBlbWJlZGRlZExWaWV3W1FVRVJJRVNdID0gZGVjbGFyYXRpb25WaWV3TFF1ZXJpZXMuY3JlYXRlRW1iZWRkZWRWaWV3KGVtYmVkZGVkVFZpZXcpO1xuICAgIH1cblxuICAgIHJlbmRlclZpZXcoZW1iZWRkZWRUVmlldywgZW1iZWRkZWRMVmlldywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbmV3IFIzX1ZpZXdSZWY8VD4oZW1iZWRkZWRMVmlldyk7XG4gIH1cbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFRlbXBsYXRlUmVmIGdpdmVuIGEgbm9kZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVGVtcGxhdGVSZWYgaW5zdGFuY2UgdG8gdXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RUZW1wbGF0ZVJlZjxUPigpOiBUZW1wbGF0ZVJlZjxUPnxudWxsIHtcbiAgcmV0dXJuIGNyZWF0ZVRlbXBsYXRlUmVmPFQ+KGdldEN1cnJlbnRUTm9kZSgpISwgZ2V0TFZpZXcoKSk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIFRlbXBsYXRlUmVmIGFuZCBzdG9yZXMgaXQgb24gdGhlIGluamVjdG9yLlxuICpcbiAqIEBwYXJhbSBob3N0VE5vZGUgVGhlIG5vZGUgb24gd2hpY2ggYSBUZW1wbGF0ZVJlZiBpcyByZXF1ZXN0ZWRcbiAqIEBwYXJhbSBob3N0TFZpZXcgVGhlIGBMVmlld2AgdG8gd2hpY2ggdGhlIG5vZGUgYmVsb25nc1xuICogQHJldHVybnMgVGhlIFRlbXBsYXRlUmVmIGluc3RhbmNlIG9yIG51bGwgaWYgd2UgY2FuJ3QgY3JlYXRlIGEgVGVtcGxhdGVSZWYgb24gYSBnaXZlbiBub2RlIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRlbXBsYXRlUmVmPFQ+KGhvc3RUTm9kZTogVE5vZGUsIGhvc3RMVmlldzogTFZpZXcpOiBUZW1wbGF0ZVJlZjxUPnxudWxsIHtcbiAgaWYgKGhvc3RUTm9kZS50eXBlICYgVE5vZGVUeXBlLkNvbnRhaW5lcikge1xuICAgIG5nRGV2TW9kZSAmJiBhc3NlcnREZWZpbmVkKGhvc3RUTm9kZS50VmlldywgJ1RWaWV3IG11c3QgYmUgYWxsb2NhdGVkJyk7XG4gICAgcmV0dXJuIG5ldyBSM1RlbXBsYXRlUmVmKFxuICAgICAgICBob3N0TFZpZXcsIGhvc3RUTm9kZSBhcyBUQ29udGFpbmVyTm9kZSwgY3JlYXRlRWxlbWVudFJlZihob3N0VE5vZGUsIGhvc3RMVmlldykpO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19