@angular/cdk 19.0.0-next.1 → 19.0.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/a11y/_index.scss +12 -54
  2. package/a11y/index.d.ts +5 -1
  3. package/fesm2022/a11y.mjs +61 -51
  4. package/fesm2022/a11y.mjs.map +1 -1
  5. package/fesm2022/accordion.mjs +10 -10
  6. package/fesm2022/bidi.mjs +10 -10
  7. package/fesm2022/cdk.mjs +1 -1
  8. package/fesm2022/cdk.mjs.map +1 -1
  9. package/fesm2022/clipboard.mjs +10 -10
  10. package/fesm2022/collections.mjs +3 -3
  11. package/fesm2022/dialog.mjs +10 -10
  12. package/fesm2022/drag-drop.mjs +33 -32
  13. package/fesm2022/drag-drop.mjs.map +1 -1
  14. package/fesm2022/layout.mjs +10 -10
  15. package/fesm2022/listbox.mjs +10 -10
  16. package/fesm2022/menu.mjs +49 -49
  17. package/fesm2022/observers/private.mjs +3 -3
  18. package/fesm2022/observers.mjs +13 -13
  19. package/fesm2022/overlay.mjs +54 -35
  20. package/fesm2022/overlay.mjs.map +1 -1
  21. package/fesm2022/platform.mjs +7 -7
  22. package/fesm2022/portal.mjs +16 -16
  23. package/fesm2022/private.mjs +12 -10
  24. package/fesm2022/private.mjs.map +1 -1
  25. package/fesm2022/scrolling.mjs +38 -35
  26. package/fesm2022/scrolling.mjs.map +1 -1
  27. package/fesm2022/stepper.mjs +22 -22
  28. package/fesm2022/table.mjs +76 -76
  29. package/fesm2022/text-field.mjs +30 -15
  30. package/fesm2022/text-field.mjs.map +1 -1
  31. package/fesm2022/tree.mjs +36 -30
  32. package/fesm2022/tree.mjs.map +1 -1
  33. package/overlay/_index.scss +15 -13
  34. package/overlay/index.d.ts +6 -1
  35. package/overlay-prebuilt.css +1 -1
  36. package/package.json +1 -57
  37. package/private/index.d.ts +1 -0
  38. package/schematics/ng-add/index.js +1 -1
  39. package/schematics/ng-add/index.mjs +1 -1
  40. package/scrolling/index.d.ts +1 -0
  41. package/table/index.d.ts +8 -8
  42. package/text-field/index.d.ts +1 -0
  43. package/tree/index.d.ts +6 -4
  44. package/esm2022/a11y/a11y-module.mjs +0 -31
  45. package/esm2022/a11y/a11y_public_index.mjs +0 -5
  46. package/esm2022/a11y/aria-describer/aria-describer.mjs +0 -232
  47. package/esm2022/a11y/aria-describer/aria-reference.mjs +0 -47
  48. package/esm2022/a11y/fake-event-detection.mjs +0 -29
  49. package/esm2022/a11y/focus-monitor/focus-monitor.mjs +0 -468
  50. package/esm2022/a11y/focus-trap/configurable-focus-trap-config.mjs +0 -9
  51. package/esm2022/a11y/focus-trap/configurable-focus-trap-factory.mjs +0 -54
  52. package/esm2022/a11y/focus-trap/configurable-focus-trap.mjs +0 -51
  53. package/esm2022/a11y/focus-trap/event-listener-inert-strategy.mjs +0 -61
  54. package/esm2022/a11y/focus-trap/focus-trap-inert-strategy.mjs +0 -11
  55. package/esm2022/a11y/focus-trap/focus-trap-manager.mjs +0 -53
  56. package/esm2022/a11y/focus-trap/focus-trap.mjs +0 -396
  57. package/esm2022/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +0 -116
  58. package/esm2022/a11y/index.mjs +0 -9
  59. package/esm2022/a11y/input-modality/input-modality-detector.mjs +0 -176
  60. package/esm2022/a11y/interactivity-checker/interactivity-checker.mjs +0 -238
  61. package/esm2022/a11y/key-manager/activedescendant-key-manager.mjs +0 -20
  62. package/esm2022/a11y/key-manager/focus-key-manager.mjs +0 -29
  63. package/esm2022/a11y/key-manager/list-key-manager.mjs +0 -357
  64. package/esm2022/a11y/key-manager/noop-tree-key-manager.mjs +0 -94
  65. package/esm2022/a11y/key-manager/tree-key-manager-strategy.mjs +0 -9
  66. package/esm2022/a11y/key-manager/tree-key-manager.mjs +0 -345
  67. package/esm2022/a11y/key-manager/typeahead.mjs +0 -91
  68. package/esm2022/a11y/live-announcer/live-announcer-tokens.mjs +0 -19
  69. package/esm2022/a11y/live-announcer/live-announcer.mjs +0 -210
  70. package/esm2022/a11y/public-api.mjs +0 -30
  71. package/esm2022/accordion/accordion-item.mjs +0 -162
  72. package/esm2022/accordion/accordion-module.mjs +0 -24
  73. package/esm2022/accordion/accordion.mjs +0 -65
  74. package/esm2022/accordion/accordion_public_index.mjs +0 -5
  75. package/esm2022/accordion/index.mjs +0 -9
  76. package/esm2022/accordion/public-api.mjs +0 -11
  77. package/esm2022/bidi/bidi-module.mjs +0 -23
  78. package/esm2022/bidi/bidi_public_index.mjs +0 -5
  79. package/esm2022/bidi/dir-document-token.mjs +0 -33
  80. package/esm2022/bidi/dir.mjs +0 -70
  81. package/esm2022/bidi/directionality.mjs +0 -52
  82. package/esm2022/bidi/index.mjs +0 -9
  83. package/esm2022/bidi/public-api.mjs +0 -12
  84. package/esm2022/clipboard/clipboard-module.mjs +0 -23
  85. package/esm2022/clipboard/clipboard.mjs +0 -53
  86. package/esm2022/clipboard/clipboard_public_index.mjs +0 -5
  87. package/esm2022/clipboard/copy-to-clipboard.mjs +0 -100
  88. package/esm2022/clipboard/index.mjs +0 -9
  89. package/esm2022/clipboard/pending-copy.mjs +0 -71
  90. package/esm2022/clipboard/public-api.mjs +0 -12
  91. package/esm2022/coercion/array.mjs +0 -11
  92. package/esm2022/coercion/boolean-property.mjs +0 -12
  93. package/esm2022/coercion/css-pixel-value.mjs +0 -15
  94. package/esm2022/coercion/element.mjs +0 -16
  95. package/esm2022/coercion/index.mjs +0 -9
  96. package/esm2022/coercion/number-property.mjs +0 -24
  97. package/esm2022/coercion/private/index.mjs +0 -9
  98. package/esm2022/coercion/private/observable.mjs +0 -19
  99. package/esm2022/coercion/private/private_public_index.mjs +0 -5
  100. package/esm2022/coercion/public-api.mjs +0 -14
  101. package/esm2022/coercion/string-array.mjs +0 -38
  102. package/esm2022/collections/array-data-source.mjs +0 -21
  103. package/esm2022/collections/collection-viewer.mjs +0 -9
  104. package/esm2022/collections/collections_public_index.mjs +0 -5
  105. package/esm2022/collections/data-source.mjs +0 -19
  106. package/esm2022/collections/dispose-view-repeater-strategy.mjs +0 -48
  107. package/esm2022/collections/index.mjs +0 -9
  108. package/esm2022/collections/public-api.mjs +0 -17
  109. package/esm2022/collections/recycle-view-repeater-strategy.mjs +0 -129
  110. package/esm2022/collections/selection-model.mjs +0 -225
  111. package/esm2022/collections/tree-adapter.mjs +0 -9
  112. package/esm2022/collections/unique-selection-dispatcher.mjs +0 -55
  113. package/esm2022/collections/view-repeater.mjs +0 -26
  114. package/esm2022/dialog/dialog-config.mjs +0 -70
  115. package/esm2022/dialog/dialog-container.mjs +0 -308
  116. package/esm2022/dialog/dialog-injectors.mjs +0 -40
  117. package/esm2022/dialog/dialog-module.mjs +0 -40
  118. package/esm2022/dialog/dialog-ref.mjs +0 -85
  119. package/esm2022/dialog/dialog.mjs +0 -303
  120. package/esm2022/dialog/dialog_public_index.mjs +0 -5
  121. package/esm2022/dialog/index.mjs +0 -9
  122. package/esm2022/dialog/public-api.mjs +0 -14
  123. package/esm2022/drag-drop/directives/assertions.mjs +0 -18
  124. package/esm2022/drag-drop/directives/config.mjs +0 -14
  125. package/esm2022/drag-drop/directives/drag-handle.mjs +0 -68
  126. package/esm2022/drag-drop/directives/drag-placeholder.mjs +0 -43
  127. package/esm2022/drag-drop/directives/drag-preview.mjs +0 -48
  128. package/esm2022/drag-drop/directives/drag.mjs +0 -520
  129. package/esm2022/drag-drop/directives/drop-list-group.mjs +0 -47
  130. package/esm2022/drag-drop/directives/drop-list.mjs +0 -352
  131. package/esm2022/drag-drop/dom/clone-node.mjs +0 -65
  132. package/esm2022/drag-drop/dom/dom-rect.mjs +0 -64
  133. package/esm2022/drag-drop/dom/parent-position-tracker.mjs +0 -76
  134. package/esm2022/drag-drop/dom/root-node.mjs +0 -21
  135. package/esm2022/drag-drop/dom/styling.mjs +0 -89
  136. package/esm2022/drag-drop/dom/transition-duration.mjs +0 -36
  137. package/esm2022/drag-drop/drag-drop-module.mjs +0 -49
  138. package/esm2022/drag-drop/drag-drop-registry.mjs +0 -248
  139. package/esm2022/drag-drop/drag-drop.mjs +0 -57
  140. package/esm2022/drag-drop/drag-drop_public_index.mjs +0 -5
  141. package/esm2022/drag-drop/drag-events.mjs +0 -9
  142. package/esm2022/drag-drop/drag-parent.mjs +0 -16
  143. package/esm2022/drag-drop/drag-ref.mjs +0 -1097
  144. package/esm2022/drag-drop/drag-utils.mjs +0 -60
  145. package/esm2022/drag-drop/drop-list-ref.mjs +0 -672
  146. package/esm2022/drag-drop/index.mjs +0 -9
  147. package/esm2022/drag-drop/preview-ref.mjs +0 -125
  148. package/esm2022/drag-drop/public-api.mjs +0 -23
  149. package/esm2022/drag-drop/sorting/drop-list-sort-strategy.mjs +0 -9
  150. package/esm2022/drag-drop/sorting/mixed-sort-strategy.mjs +0 -246
  151. package/esm2022/drag-drop/sorting/single-axis-sort-strategy.mjs +0 -343
  152. package/esm2022/index.mjs +0 -9
  153. package/esm2022/keycodes/index.mjs +0 -9
  154. package/esm2022/keycodes/keycodes.mjs +0 -127
  155. package/esm2022/keycodes/keycodes_public_index.mjs +0 -5
  156. package/esm2022/keycodes/modifiers.mjs +0 -18
  157. package/esm2022/keycodes/public-api.mjs +0 -10
  158. package/esm2022/layout/breakpoints-observer.mjs +0 -105
  159. package/esm2022/layout/breakpoints.mjs +0 -29
  160. package/esm2022/layout/index.mjs +0 -9
  161. package/esm2022/layout/layout-module.mjs +0 -19
  162. package/esm2022/layout/layout_public_index.mjs +0 -5
  163. package/esm2022/layout/media-matcher.mjs +0 -94
  164. package/esm2022/layout/public-api.mjs +0 -12
  165. package/esm2022/listbox/index.mjs +0 -9
  166. package/esm2022/listbox/listbox-module.mjs +0 -24
  167. package/esm2022/listbox/listbox.mjs +0 -888
  168. package/esm2022/listbox/listbox_public_index.mjs +0 -5
  169. package/esm2022/listbox/public-api.mjs +0 -10
  170. package/esm2022/menu/context-menu-trigger.mjs +0 -221
  171. package/esm2022/menu/event-detection.mjs +0 -28
  172. package/esm2022/menu/index.mjs +0 -9
  173. package/esm2022/menu/menu-aim.mjs +0 -204
  174. package/esm2022/menu/menu-bar.mjs +0 -134
  175. package/esm2022/menu/menu-base.mjs +0 -192
  176. package/esm2022/menu/menu-errors.mjs +0 -22
  177. package/esm2022/menu/menu-group.mjs +0 -31
  178. package/esm2022/menu/menu-interface.mjs +0 -11
  179. package/esm2022/menu/menu-item-checkbox.mjs +0 -50
  180. package/esm2022/menu/menu-item-radio.mjs +0 -72
  181. package/esm2022/menu/menu-item-selectable.mjs +0 -36
  182. package/esm2022/menu/menu-item.mjs +0 -270
  183. package/esm2022/menu/menu-module.mjs +0 -60
  184. package/esm2022/menu/menu-stack.mjs +0 -163
  185. package/esm2022/menu/menu-trigger-base.mjs +0 -119
  186. package/esm2022/menu/menu-trigger.mjs +0 -313
  187. package/esm2022/menu/menu.mjs +0 -135
  188. package/esm2022/menu/menu_public_index.mjs +0 -5
  189. package/esm2022/menu/pointer-focus-tracker.mjs +0 -51
  190. package/esm2022/menu/public-api.mjs +0 -24
  191. package/esm2022/observers/index.mjs +0 -9
  192. package/esm2022/observers/observe-content.mjs +0 -216
  193. package/esm2022/observers/observers_public_index.mjs +0 -5
  194. package/esm2022/observers/private/index.mjs +0 -9
  195. package/esm2022/observers/private/private_public_index.mjs +0 -5
  196. package/esm2022/observers/private/shared-resize-observer.mjs +0 -125
  197. package/esm2022/observers/public-api.mjs +0 -9
  198. package/esm2022/overlay/dispatchers/base-overlay-dispatcher.mjs +0 -52
  199. package/esm2022/overlay/dispatchers/index.mjs +0 -10
  200. package/esm2022/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +0 -81
  201. package/esm2022/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +0 -151
  202. package/esm2022/overlay/fullscreen-overlay-container.mjs +0 -94
  203. package/esm2022/overlay/index.mjs +0 -9
  204. package/esm2022/overlay/overlay-config.mjs +0 -45
  205. package/esm2022/overlay/overlay-container.mjs +0 -81
  206. package/esm2022/overlay/overlay-directives.mjs +0 -432
  207. package/esm2022/overlay/overlay-module.mjs +0 -28
  208. package/esm2022/overlay/overlay-ref.mjs +0 -437
  209. package/esm2022/overlay/overlay.mjs +0 -126
  210. package/esm2022/overlay/overlay_public_index.mjs +0 -5
  211. package/esm2022/overlay/position/connected-position.mjs +0 -88
  212. package/esm2022/overlay/position/flexible-connected-position-strategy.mjs +0 -1002
  213. package/esm2022/overlay/position/global-position-strategy.mjs +0 -237
  214. package/esm2022/overlay/position/overlay-position-builder.mjs +0 -50
  215. package/esm2022/overlay/position/position-strategy.mjs +0 -9
  216. package/esm2022/overlay/position/scroll-clip.mjs +0 -40
  217. package/esm2022/overlay/public-api.mjs +0 -22
  218. package/esm2022/overlay/scroll/block-scroll-strategy.mjs +0 -80
  219. package/esm2022/overlay/scroll/close-scroll-strategy.mjs +0 -65
  220. package/esm2022/overlay/scroll/index.mjs +0 -14
  221. package/esm2022/overlay/scroll/noop-scroll-strategy.mjs +0 -17
  222. package/esm2022/overlay/scroll/reposition-scroll-strategy.mjs +0 -61
  223. package/esm2022/overlay/scroll/scroll-strategy-options.mjs +0 -55
  224. package/esm2022/overlay/scroll/scroll-strategy.mjs +0 -14
  225. package/esm2022/platform/features/input-types.mjs +0 -59
  226. package/esm2022/platform/features/passive-listeners.mjs +0 -36
  227. package/esm2022/platform/features/scrolling.mjs +0 -104
  228. package/esm2022/platform/features/shadow-dom.mjs +0 -54
  229. package/esm2022/platform/features/test-environment.mjs +0 -24
  230. package/esm2022/platform/index.mjs +0 -9
  231. package/esm2022/platform/platform-module.mjs +0 -19
  232. package/esm2022/platform/platform.mjs +0 -82
  233. package/esm2022/platform/platform_public_index.mjs +0 -5
  234. package/esm2022/platform/public-api.mjs +0 -15
  235. package/esm2022/portal/dom-portal-outlet.mjs +0 -158
  236. package/esm2022/portal/index.mjs +0 -9
  237. package/esm2022/portal/portal-directives.mjs +0 -251
  238. package/esm2022/portal/portal-errors.mjs +0 -51
  239. package/esm2022/portal/portal-injector.mjs +0 -28
  240. package/esm2022/portal/portal.mjs +0 -189
  241. package/esm2022/portal/portal_public_index.mjs +0 -5
  242. package/esm2022/portal/public-api.mjs +0 -12
  243. package/esm2022/private/index.mjs +0 -9
  244. package/esm2022/private/private_public_index.mjs +0 -5
  245. package/esm2022/private/public-api.mjs +0 -9
  246. package/esm2022/private/style-loader.mjs +0 -50
  247. package/esm2022/public-api.mjs +0 -9
  248. package/esm2022/scrolling/fixed-size-virtual-scroll.mjs +0 -218
  249. package/esm2022/scrolling/index.mjs +0 -9
  250. package/esm2022/scrolling/public-api.mjs +0 -20
  251. package/esm2022/scrolling/scroll-dispatcher.mjs +0 -163
  252. package/esm2022/scrolling/scrollable.mjs +0 -177
  253. package/esm2022/scrolling/scrolling-module.mjs +0 -69
  254. package/esm2022/scrolling/scrolling_public_index.mjs +0 -5
  255. package/esm2022/scrolling/viewport-ruler.mjs +0 -146
  256. package/esm2022/scrolling/virtual-for-of.mjs +0 -299
  257. package/esm2022/scrolling/virtual-scroll-repeater.mjs +0 -9
  258. package/esm2022/scrolling/virtual-scroll-strategy.mjs +0 -11
  259. package/esm2022/scrolling/virtual-scroll-viewport.mjs +0 -445
  260. package/esm2022/scrolling/virtual-scrollable-element.mjs +0 -42
  261. package/esm2022/scrolling/virtual-scrollable-window.mjs +0 -41
  262. package/esm2022/scrolling/virtual-scrollable.mjs +0 -40
  263. package/esm2022/stepper/index.mjs +0 -9
  264. package/esm2022/stepper/public-api.mjs +0 -13
  265. package/esm2022/stepper/step-header.mjs +0 -31
  266. package/esm2022/stepper/step-label.mjs +0 -24
  267. package/esm2022/stepper/stepper-button.mjs +0 -58
  268. package/esm2022/stepper/stepper-module.mjs +0 -41
  269. package/esm2022/stepper/stepper.mjs +0 -452
  270. package/esm2022/stepper/stepper_public_index.mjs +0 -5
  271. package/esm2022/table/can-stick.mjs +0 -46
  272. package/esm2022/table/cell.mjs +0 -245
  273. package/esm2022/table/coalesced-style-scheduler.mjs +0 -79
  274. package/esm2022/table/index.mjs +0 -9
  275. package/esm2022/table/public-api.mjs +0 -20
  276. package/esm2022/table/row.mjs +0 -317
  277. package/esm2022/table/sticky-position-listener.mjs +0 -11
  278. package/esm2022/table/sticky-styler.mjs +0 -347
  279. package/esm2022/table/table-errors.mjs +0 -67
  280. package/esm2022/table/table-module.mjs +0 -93
  281. package/esm2022/table/table.mjs +0 -1148
  282. package/esm2022/table/table_public_index.mjs +0 -5
  283. package/esm2022/table/text-column.mjs +0 -154
  284. package/esm2022/table/tokens.mjs +0 -16
  285. package/esm2022/testing/change-detection.mjs +0 -102
  286. package/esm2022/testing/component-harness.mjs +0 -328
  287. package/esm2022/testing/element-dimensions.mjs +0 -9
  288. package/esm2022/testing/harness-environment.mjs +0 -220
  289. package/esm2022/testing/index.mjs +0 -9
  290. package/esm2022/testing/public-api.mjs +0 -15
  291. package/esm2022/testing/selenium-webdriver/index.mjs +0 -9
  292. package/esm2022/testing/selenium-webdriver/public-api.mjs +0 -10
  293. package/esm2022/testing/selenium-webdriver/selenium-web-driver-element.mjs +0 -216
  294. package/esm2022/testing/selenium-webdriver/selenium-web-driver-harness-environment.mjs +0 -88
  295. package/esm2022/testing/selenium-webdriver/selenium-webdriver-keys.mjs +0 -64
  296. package/esm2022/testing/test-element-errors.mjs +0 -15
  297. package/esm2022/testing/test-element.mjs +0 -49
  298. package/esm2022/testing/testbed/fake-events/dispatch-events.mjs +0 -53
  299. package/esm2022/testing/testbed/fake-events/element-focus.mjs +0 -39
  300. package/esm2022/testing/testbed/fake-events/event-objects.mjs +0 -127
  301. package/esm2022/testing/testbed/fake-events/index.mjs +0 -14
  302. package/esm2022/testing/testbed/fake-events/type-in-element.mjs +0 -97
  303. package/esm2022/testing/testbed/index.mjs +0 -9
  304. package/esm2022/testing/testbed/public-api.mjs +0 -10
  305. package/esm2022/testing/testbed/task-state-zone-interceptor.mjs +0 -83
  306. package/esm2022/testing/testbed/testbed-harness-environment.mjs +0 -165
  307. package/esm2022/testing/testbed/unit-test-element.mjs +0 -258
  308. package/esm2022/testing/text-filtering.mjs +0 -21
  309. package/esm2022/text-field/autofill.mjs +0 -114
  310. package/esm2022/text-field/autosize.mjs +0 -309
  311. package/esm2022/text-field/index.mjs +0 -9
  312. package/esm2022/text-field/public-api.mjs +0 -11
  313. package/esm2022/text-field/text-field-module.mjs +0 -24
  314. package/esm2022/text-field/text-field_public_index.mjs +0 -5
  315. package/esm2022/tree/control/base-tree-control.mjs +0 -62
  316. package/esm2022/tree/control/flat-tree-control.mjs +0 -57
  317. package/esm2022/tree/control/nested-tree-control.mjs +0 -67
  318. package/esm2022/tree/control/tree-control.mjs +0 -2
  319. package/esm2022/tree/index.mjs +0 -9
  320. package/esm2022/tree/nested-node.mjs +0 -103
  321. package/esm2022/tree/node.mjs +0 -36
  322. package/esm2022/tree/outlet.mjs +0 -40
  323. package/esm2022/tree/padding.mjs +0 -129
  324. package/esm2022/tree/public-api.mjs +0 -20
  325. package/esm2022/tree/toggle.mjs +0 -51
  326. package/esm2022/tree/tree-errors.mjs +0 -44
  327. package/esm2022/tree/tree-module.mjs +0 -49
  328. package/esm2022/tree/tree.mjs +0 -1123
  329. package/esm2022/tree/tree_public_index.mjs +0 -5
  330. package/esm2022/version.mjs +0 -11
@@ -1,15 +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
- export * from './platform';
9
- export * from './platform-module';
10
- export * from './features/input-types';
11
- export * from './features/passive-listeners';
12
- export * from './features/scrolling';
13
- export * from './features/shadow-dom';
14
- export * from './features/test-environment';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvcGxhdGZvcm0vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3BsYXRmb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vcGxhdGZvcm0tbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZXMvaW5wdXQtdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy9wYXNzaXZlLWxpc3RlbmVycyc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmVzL3Njcm9sbGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2ZlYXR1cmVzL3NoYWRvdy1kb20nO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlcy90ZXN0LWVudmlyb25tZW50JztcbiJdfQ==
@@ -1,158 +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 { Injector, } from '@angular/core';
9
- import { BasePortalOutlet } from './portal';
10
- /**
11
- * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular
12
- * application context.
13
- */
14
- export class DomPortalOutlet extends BasePortalOutlet {
15
- /**
16
- * @param outletElement Element into which the content is projected.
17
- * @param _componentFactoryResolver Used to resolve the component factory.
18
- * Only required when attaching component portals.
19
- * @param _appRef Reference to the application. Only used in component portals when there
20
- * is no `ViewContainerRef` available.
21
- * @param _defaultInjector Injector to use as a fallback when the portal being attached doesn't
22
- * have one. Only used for component portals.
23
- * @param _document Reference to the document. Used when attaching a DOM portal. Will eventually
24
- * become a required parameter.
25
- */
26
- constructor(
27
- /** Element into which the content is projected. */
28
- outletElement, _componentFactoryResolver, _appRef, _defaultInjector,
29
- /**
30
- * @deprecated `_document` Parameter to be made required.
31
- * @breaking-change 10.0.0
32
- */
33
- _document) {
34
- super();
35
- this.outletElement = outletElement;
36
- this._componentFactoryResolver = _componentFactoryResolver;
37
- this._appRef = _appRef;
38
- this._defaultInjector = _defaultInjector;
39
- /**
40
- * Attaches a DOM portal by transferring its content into the outlet.
41
- * @param portal Portal to be attached.
42
- * @deprecated To be turned into a method.
43
- * @breaking-change 10.0.0
44
- */
45
- this.attachDomPortal = (portal) => {
46
- // @breaking-change 10.0.0 Remove check and error once the
47
- // `_document` constructor parameter is required.
48
- if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {
49
- throw Error('Cannot attach DOM portal without _document constructor parameter');
50
- }
51
- const element = portal.element;
52
- if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {
53
- throw Error('DOM portal content must be attached to a parent node.');
54
- }
55
- // Anchor used to save the element's previous position so
56
- // that we can restore it when the portal is detached.
57
- const anchorNode = this._document.createComment('dom-portal');
58
- element.parentNode.insertBefore(anchorNode, element);
59
- this.outletElement.appendChild(element);
60
- this._attachedPortal = portal;
61
- super.setDisposeFn(() => {
62
- // We can't use `replaceWith` here because IE doesn't support it.
63
- if (anchorNode.parentNode) {
64
- anchorNode.parentNode.replaceChild(element, anchorNode);
65
- }
66
- });
67
- };
68
- this._document = _document;
69
- }
70
- /**
71
- * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.
72
- * @param portal Portal to be attached
73
- * @returns Reference to the created component.
74
- */
75
- attachComponentPortal(portal) {
76
- const resolver = (portal.componentFactoryResolver || this._componentFactoryResolver);
77
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && !resolver) {
78
- throw Error('Cannot attach component portal to outlet without a ComponentFactoryResolver.');
79
- }
80
- const componentFactory = resolver.resolveComponentFactory(portal.component);
81
- let componentRef;
82
- // If the portal specifies a ViewContainerRef, we will use that as the attachment point
83
- // for the component (in terms of Angular's component tree, not rendering).
84
- // When the ViewContainerRef is missing, we use the factory to create the component directly
85
- // and then manually attach the view to the application.
86
- if (portal.viewContainerRef) {
87
- componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector, portal.projectableNodes || undefined);
88
- this.setDisposeFn(() => componentRef.destroy());
89
- }
90
- else {
91
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && !this._appRef) {
92
- throw Error('Cannot attach component portal to outlet without an ApplicationRef.');
93
- }
94
- componentRef = componentFactory.create(portal.injector || this._defaultInjector || Injector.NULL);
95
- this._appRef.attachView(componentRef.hostView);
96
- this.setDisposeFn(() => {
97
- // Verify that the ApplicationRef has registered views before trying to detach a host view.
98
- // This check also protects the `detachView` from being called on a destroyed ApplicationRef.
99
- if (this._appRef.viewCount > 0) {
100
- this._appRef.detachView(componentRef.hostView);
101
- }
102
- componentRef.destroy();
103
- });
104
- }
105
- // At this point the component has been instantiated, so we move it to the location in the DOM
106
- // where we want it to be rendered.
107
- this.outletElement.appendChild(this._getComponentRootNode(componentRef));
108
- this._attachedPortal = portal;
109
- return componentRef;
110
- }
111
- /**
112
- * Attaches a template portal to the DOM as an embedded view.
113
- * @param portal Portal to be attached.
114
- * @returns Reference to the created embedded view.
115
- */
116
- attachTemplatePortal(portal) {
117
- let viewContainer = portal.viewContainerRef;
118
- let viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context, {
119
- injector: portal.injector,
120
- });
121
- // The method `createEmbeddedView` will add the view as a child of the viewContainer.
122
- // But for the DomPortalOutlet the view can be added everywhere in the DOM
123
- // (e.g Overlay Container) To move the view to the specified host element. We just
124
- // re-append the existing root nodes.
125
- viewRef.rootNodes.forEach(rootNode => this.outletElement.appendChild(rootNode));
126
- // Note that we want to detect changes after the nodes have been moved so that
127
- // any directives inside the portal that are looking at the DOM inside a lifecycle
128
- // hook won't be invoked too early.
129
- viewRef.detectChanges();
130
- this.setDisposeFn(() => {
131
- let index = viewContainer.indexOf(viewRef);
132
- if (index !== -1) {
133
- viewContainer.remove(index);
134
- }
135
- });
136
- this._attachedPortal = portal;
137
- // TODO(jelbourn): Return locals from view.
138
- return viewRef;
139
- }
140
- /**
141
- * Clears out a portal from the DOM.
142
- */
143
- dispose() {
144
- super.dispose();
145
- this.outletElement.remove();
146
- }
147
- /** Gets the root HTMLElement for an instantiated component. */
148
- _getComponentRootNode(componentRef) {
149
- return componentRef.hostView.rootNodes[0];
150
- }
151
- }
152
- /**
153
- * @deprecated Use `DomPortalOutlet` instead.
154
- * @breaking-change 9.0.0
155
- */
156
- export class DomPortalHost extends DomPortalOutlet {
157
- }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXBvcnRhbC1vdXRsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3BvcnRhbC9kb20tcG9ydGFsLW91dGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBS0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBNkMsTUFBTSxVQUFVLENBQUM7QUFFdEY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZ0JBQWdCO0lBR25EOzs7Ozs7Ozs7O09BVUc7SUFDSDtJQUNFLG1EQUFtRDtJQUM1QyxhQUFzQixFQUNyQix5QkFBb0QsRUFDcEQsT0FBd0IsRUFDeEIsZ0JBQTJCO0lBRW5DOzs7T0FHRztJQUNILFNBQWU7UUFFZixLQUFLLEVBQUUsQ0FBQztRQVhELGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQ3JCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFXO1FBcUdyQzs7Ozs7V0FLRztRQUNNLG9CQUFlLEdBQUcsQ0FBQyxNQUFpQixFQUFFLEVBQUU7WUFDL0MsMERBQTBEO1lBQzFELGlEQUFpRDtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN2RSxNQUFNLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLE1BQU0sS0FBSyxD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LEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCwrREFBK0Q7SUFDdkQscUJBQXFCLENBQUMsWUFBK0I7UUFDM0QsT0FBUSxZQUFZLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO0lBQ3JGLENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsZUFBZTtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUmVmLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsLCBUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnLi9wb3J0YWwnO1xuXG4vKipcbiAqIEEgUG9ydGFsT3V0bGV0IGZvciBhdHRhY2hpbmcgcG9ydGFscyB0byBhbiBhcmJpdHJhcnkgRE9NIGVsZW1lbnQgb3V0c2lkZSBvZiB0aGUgQW5ndWxhclxuICogYXBwbGljYXRpb24gY29udGV4dC5cbiAqL1xuZXhwb3J0IGNsYXNzIERvbVBvcnRhbE91dGxldCBleHRlbmRzIEJhc2VQb3J0YWxPdXRsZXQge1xuICBwcml2YXRlIF9kb2N1bWVudDogRG9jdW1lbnQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvdXRsZXRFbGVtZW50IEVsZW1lbnQgaW50byB3aGljaCB0aGUgY29udGVudCBpcyBwcm9qZWN0ZWQuXG4gICAqIEBwYXJhbSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyIFVzZWQgdG8gcmVzb2x2ZSB0aGUgY29tcG9uZW50IGZhY3RvcnkuXG4gICAqICAgT25seSByZXF1aXJlZCB3aGVuIGF0dGFjaGluZyBjb21wb25lbnQgcG9ydGFscy5cbiAgICogQHBhcmFtIF9hcHBSZWYgUmVmZXJlbmNlIHRvIHRoZSBhcHBsaWNhdGlvbi4gT25seSB1c2VkIGluIGNvbXBvbmVudCBwb3J0YWxzIHdoZW4gdGhlcmVcbiAgICogICBpcyBubyBgVmlld0NvbnRhaW5lclJlZmAgYXZhaWxhYmxlLlxuICAgKiBAcGFyYW0gX2RlZmF1bHRJbmplY3RvciBJbmplY3RvciB0byB1c2UgYXMgYSBmYWxsYmFjayB3aGVuIHRoZSBwb3J0YWwgYmVpbmcgYXR0YWNoZWQgZG9lc24ndFxuICAgKiAgIGhhdmUgb25lLiBPbmx5IHVzZWQgZm9yIGNvbXBvbmVudCBwb3J0YWxzLlxuICAgKiBAcGFyYW0gX2RvY3VtZW50IFJlZmVyZW5jZSB0byB0aGUgZG9jdW1lbnQuIFVzZWQgd2hlbiBhdHRhY2hpbmcgYSBET00gcG9ydGFsLiBXaWxsIGV2ZW50dWFsbHlcbiAgICogICBiZWNvbWUgYSByZXF1aXJlZCBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogRWxlbWVudCBpbnRvIHdoaWNoIHRoZSBjb250ZW50IGlzIHByb2plY3RlZC4gKi9cbiAgICBwdWJsaWMgb3V0bGV0RWxlbWVudDogRWxlbWVudCxcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI/OiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfYXBwUmVmPzogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBfZGVmYXVsdEluamVjdG9yPzogSW5qZWN0b3IsXG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBgX2RvY3VtZW50YCBQYXJhbWV0ZXIgdG8gYmUgbWFkZSByZXF1aXJlZC5cbiAgICAgKiBAYnJlYWtpbmctY2hhbmdlIDEwLjAuMFxuICAgICAqL1xuICAgIF9kb2N1bWVudD86IGFueSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9kb2N1bWVudCA9IF9kb2N1bWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggdGhlIGdpdmVuIENvbXBvbmVudFBvcnRhbCB0byBET00gZWxlbWVudCB1c2luZyB0aGUgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZFxuICAgKiBAcmV0dXJucyBSZWZlcmVuY2UgdG8gdGhlIGNyZWF0ZWQgY29tcG9uZW50LlxuICAgKi9cbiAgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBjb25zdCByZXNvbHZlciA9IChwb3J0YWwuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHx8IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikhO1xuXG4gICAgaWYgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmICFyZXNvbHZlcikge1xuICAgICAgdGhyb3cgRXJyb3IoJ0Nhbm5vdCBhdHRhY2ggY29tcG9uZW50IHBvcnRhbCB0byBvdXRsZXQgd2l0aG91dCBhIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlci4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gcmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkocG9ydGFsLmNvbXBvbmVudCk7XG4gICAgbGV0IGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFQ+O1xuXG4gICAgLy8gSWYgdGhlIHBvcnRhbCBzcGVjaWZpZXMgYSBWaWV3Q29udGFpbmVyUmVmLCB3ZSB3aWxsIHVzZSB0aGF0IGFzIHRoZSBhdHRhY2htZW50IHBvaW50XG4gICAgLy8gZm9yIHRoZSBjb21wb25lbnQgKGluIHRlcm1zIG9mIEFuZ3VsYXIncyBjb21wb25lbnQgdHJlZSwgbm90IHJlbmRlcmluZykuXG4gICAgLy8gV2hlbiB0aGUgVmlld0NvbnRhaW5lclJlZiBpcyBtaXNzaW5nLCB3ZSB1c2UgdGhlIGZhY3RvcnkgdG8gY3JlYXRlIHRoZSBjb21wb25lbnQgZGlyZWN0bHlcbiAgICAvLyBhbmQgdGhlbiBtYW51YWxseSBhdHRhY2ggdGhlIHZpZXcgdG8gdGhlIGFwcGxpY2F0aW9uLlxuICAgIGlmIChwb3J0YWwudmlld0NvbnRhaW5lclJlZikge1xuICAgICAgY29tcG9uZW50UmVmID0gcG9ydGFsLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgICBjb21wb25lbnRGYWN0b3J5LFxuICAgICAgICBwb3J0YWwudmlld0NvbnRhaW5lclJlZi5sZW5ndGgsXG4gICAgICAgIHBvcnRhbC5pbmplY3RvciB8fCBwb3J0YWwudmlld0NvbnRhaW5lclJlZi5pbmplY3RvcixcbiAgICAgICAgcG9ydGFsLnByb2plY3RhYmxlTm9kZXMgfHwgdW5kZWZpbmVkLFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zZXREaXNwb3NlRm4oKCkgPT4gY29tcG9uZW50UmVmLmRlc3Ryb3koKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICgodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJiAhdGhpcy5fYXBwUmVmKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdDYW5ub3QgYXR0YWNoIGNvbXBvbmVudCBwb3J0YWwgdG8gb3V0bGV0IHdpdGhvdXQgYW4gQXBwbGljYXRpb25SZWYuJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICBwb3J0YWwuaW5qZWN0b3IgfHwgdGhpcy5fZGVmYXVsdEluamVjdG9yIHx8IEluamVjdG9yLk5VTEwsXG4gICAgICApO1xuICAgICAgdGhpcy5fYXBwUmVmIS5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICB0aGlzLnNldERpc3Bvc2VGbigoKSA9PiB7XG4gICAgICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBBcHBsaWNhdGlvblJlZiBoYXMgcmVnaXN0ZXJlZCB2aWV3cyBiZWZvcmUgdHJ5aW5nIHRvIGRldGFjaCBhIGhvc3Qgdmlldy5cbiAgICAgICAgLy8gVGhpcyBjaGVjayBhbHNvIHByb3RlY3RzIHRoZSBgZGV0YWNoVmlld2AgZnJvbSBiZWluZyBjYWxsZWQgb24gYSBkZXN0cm95ZWQgQXBwbGljYXRpb25SZWYuXG4gICAgICAgIGlmICh0aGlzLl9hcHBSZWYhLnZpZXdDb3VudCA+IDApIHtcbiAgICAgICAgICB0aGlzLl9hcHBSZWYhLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgfVxuICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIEF0IHRoaXMgcG9pbnQgdGhlIGNvbXBvbmVudCBoYXMgYmVlbiBpbnN0YW50aWF0ZWQsIHNvIHdlIG1vdmUgaXQgdG8gdGhlIGxvY2F0aW9uIGluIHRoZSBET01cbiAgICAvLyB3aGVyZSB3ZSB3YW50IGl0IHRvIGJlIHJlbmRlcmVkLlxuICAgIHRoaXMub3V0bGV0RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9nZXRDb21wb25lbnRSb290Tm9kZShjb21wb25lbnRSZWYpKTtcbiAgICB0aGlzLl9hdHRhY2hlZFBvcnRhbCA9IHBvcnRhbDtcblxuICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSB0ZW1wbGF0ZSBwb3J0YWwgdG8gdGhlIERPTSBhcyBhbiBlbWJlZGRlZCB2aWV3LlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIGVtYmVkZGVkIHZpZXcuXG4gICAqL1xuICBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+KTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICBsZXQgdmlld0NvbnRhaW5lciA9IHBvcnRhbC52aWV3Q29udGFpbmVyUmVmO1xuICAgIGxldCB2aWV3UmVmID0gdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcocG9ydGFsLnRlbXBsYXRlUmVmLCBwb3J0YWwuY29udGV4dCwge1xuICAgICAgaW5qZWN0b3I6IHBvcnRhbC5pbmplY3RvcixcbiAgICB9KTtcblxuICAgIC8vIFRoZSBtZXRob2QgYGNyZWF0ZUVtYmVkZGVkVmlld2Agd2lsbCBhZGQgdGhlIHZpZXcgYXMgYSBjaGlsZCBvZiB0aGUgdmlld0NvbnRhaW5lci5cbiAgICAvLyBCdXQgZm9yIHRoZSBEb21Qb3J0YWxPdXRsZXQgdGhlIHZpZXcgY2FuIGJlIGFkZGVkIGV2ZXJ5d2hlcmUgaW4gdGhlIERPTVxuICAgIC8vIChlLmcgT3ZlcmxheSBDb250YWluZXIpIFRvIG1vdmUgdGhlIHZpZXcgdG8gdGhlIHNwZWNpZmllZCBob3N0IGVsZW1lbnQuIFdlIGp1c3RcbiAgICAvLyByZS1hcHBlbmQgdGhlIGV4aXN0aW5nIHJvb3Qgbm9kZXMuXG4gICAgdmlld1JlZi5yb290Tm9kZXMuZm9yRWFjaChyb290Tm9kZSA9PiB0aGlzLm91dGxldEVsZW1lbnQuYXBwZW5kQ2hpbGQocm9vdE5vZGUpKTtcblxuICAgIC8vIE5vdGUgdGhhdCB3ZSB3YW50IHRvIGRldGVjdCBjaGFuZ2VzIGFmdGVyIHRoZSBub2RlcyBoYXZlIGJlZW4gbW92ZWQgc28gdGhhdFxuICAgIC8vIGFueSBkaXJlY3RpdmVzIGluc2lkZSB0aGUgcG9ydGFsIHRoYXQgYXJlIGxvb2tpbmcgYXQgdGhlIERPTSBpbnNpZGUgYSBsaWZlY3ljbGVcbiAgICAvLyBob29rIHdvbid0IGJlIGludm9rZWQgdG9vIGVhcmx5LlxuICAgIHZpZXdSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5zZXREaXNwb3NlRm4oKCkgPT4ge1xuICAgICAgbGV0IGluZGV4ID0gdmlld0NvbnRhaW5lci5pbmRleE9mKHZpZXdSZWYpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICB2aWV3Q29udGFpbmVyLnJlbW92ZShpbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hdHRhY2hlZFBvcnRhbCA9IHBvcnRhbDtcblxuICAgIC8vIFRPRE8oamVsYm91cm4pOiBSZXR1cm4gbG9jYWxzIGZyb20gdmlldy5cbiAgICByZXR1cm4gdmlld1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIERPTSBwb3J0YWwgYnkgdHJhbnNmZXJyaW5nIGl0cyBjb250ZW50IGludG8gdGhlIG91dGxldC5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQuXG4gICAqIEBkZXByZWNhdGVkIFRvIGJlIHR1cm5lZCBpbnRvIGEgbWV0aG9kLlxuICAgKiBAYnJlYWtpbmctY2hhbmdlIDEwLjAuMFxuICAgKi9cbiAgb3ZlcnJpZGUgYXR0YWNoRG9tUG9ydGFsID0gKHBvcnRhbDogRG9tUG9ydGFsKSA9PiB7XG4gICAgLy8gQGJyZWFraW5nLWNoYW5nZSAxMC4wLjAgUmVtb3ZlIGNoZWNrIGFuZCBlcnJvciBvbmNlIHRoZVxuICAgIC8vIGBfZG9jdW1lbnRgIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAgICBpZiAoIXRoaXMuX2RvY3VtZW50ICYmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ2Fubm90IGF0dGFjaCBET00gcG9ydGFsIHdpdGhvdXQgX2RvY3VtZW50IGNvbnN0cnVjdG9yIHBhcmFtZXRlcicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBwb3J0YWwuZWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnQucGFyZW50Tm9kZSAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0RPTSBwb3J0YWwgY29udGVudCBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgcGFyZW50IG5vZGUuJyk7XG4gICAgfVxuXG4gICAgLy8gQW5jaG9yIHVzZWQgdG8gc2F2ZSB0aGUgZWxlbWVudCdzIHByZXZpb3VzIHBvc2l0aW9uIHNvXG4gICAgLy8gdGhhdCB3ZSBjYW4gcmVzdG9yZSBpdCB3aGVuIHRoZSBwb3J0YWwgaXMgZGV0YWNoZWQuXG4gICAgY29uc3QgYW5jaG9yTm9kZSA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUNvbW1lbnQoJ2RvbS1wb3J0YWwnKTtcblxuICAgIGVsZW1lbnQucGFyZW50Tm9kZSEuaW5zZXJ0QmVmb3JlKGFuY2hvck5vZGUsIGVsZW1lbnQpO1xuICAgIHRoaXMub3V0bGV0RWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICB0aGlzLl9hdHRhY2hlZFBvcnRhbCA9IHBvcnRhbDtcblxuICAgIHN1cGVyLnNldERpc3Bvc2VGbigoKSA9PiB7XG4gICAgICAvLyBXZSBjYW4ndCB1c2UgYHJlcGxhY2VXaXRoYCBoZXJlIGJlY2F1c2UgSUUgZG9lc24ndCBzdXBwb3J0IGl0LlxuICAgICAgaWYgKGFuY2hvck5vZGUucGFyZW50Tm9kZSkge1xuICAgICAgICBhbmNob3JOb2RlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGVsZW1lbnQsIGFuY2hvck5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDbGVhcnMgb3V0IGEgcG9ydGFsIGZyb20gdGhlIERPTS5cbiAgICovXG4gIG92ZXJyaWRlIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzcG9zZSgpO1xuICAgIHRoaXMub3V0bGV0RWxlbWVudC5yZW1vdmUoKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSByb290IEhUTUxFbGVtZW50IGZvciBhbiBpbnN0YW50aWF0ZWQgY29tcG9uZW50LiAqL1xuICBwcml2YXRlIF9nZXRDb21wb25lbnRSb290Tm9kZShjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+KTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYERvbVBvcnRhbE91dGxldGAgaW5zdGVhZC5cbiAqIEBicmVha2luZy1jaGFuZ2UgOS4wLjBcbiAqL1xuZXhwb3J0IGNsYXNzIERvbVBvcnRhbEhvc3QgZXh0ZW5kcyBEb21Qb3J0YWxPdXRsZXQge31cbiJdfQ==
@@ -1,9 +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
- export * from './public-api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3BvcnRhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,251 +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 { ComponentFactoryResolver, Directive, EventEmitter, NgModule, Output, TemplateRef, ViewContainerRef, Inject, Input, } from '@angular/core';
9
- import { DOCUMENT } from '@angular/common';
10
- import { BasePortalOutlet, TemplatePortal } from './portal';
11
- import * as i0 from "@angular/core";
12
- /**
13
- * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,
14
- * the directive instance itself can be attached to a host, enabling declarative use of portals.
15
- */
16
- export class CdkPortal extends TemplatePortal {
17
- constructor(templateRef, viewContainerRef) {
18
- super(templateRef, viewContainerRef);
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkPortal, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkPortal, isStandalone: true, selector: "[cdkPortal]", exportAs: ["cdkPortal"], usesInheritance: true, ngImport: i0 }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkPortal, decorators: [{
24
- type: Directive,
25
- args: [{
26
- selector: '[cdkPortal]',
27
- exportAs: 'cdkPortal',
28
- standalone: true,
29
- }]
30
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
31
- /**
32
- * @deprecated Use `CdkPortal` instead.
33
- * @breaking-change 9.0.0
34
- */
35
- export class TemplatePortalDirective extends CdkPortal {
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: TemplatePortalDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: TemplatePortalDirective, isStandalone: true, selector: "[cdk-portal], [portal]", providers: [
38
- {
39
- provide: CdkPortal,
40
- useExisting: TemplatePortalDirective,
41
- },
42
- ], exportAs: ["cdkPortal"], usesInheritance: true, ngImport: i0 }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: TemplatePortalDirective, decorators: [{
45
- type: Directive,
46
- args: [{
47
- selector: '[cdk-portal], [portal]',
48
- exportAs: 'cdkPortal',
49
- providers: [
50
- {
51
- provide: CdkPortal,
52
- useExisting: TemplatePortalDirective,
53
- },
54
- ],
55
- standalone: true,
56
- }]
57
- }] });
58
- /**
59
- * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be
60
- * directly attached to it, enabling declarative use.
61
- *
62
- * Usage:
63
- * `<ng-template [cdkPortalOutlet]="greeting"></ng-template>`
64
- */
65
- export class CdkPortalOutlet extends BasePortalOutlet {
66
- constructor(_componentFactoryResolver, _viewContainerRef,
67
- /**
68
- * @deprecated `_document` parameter to be made required.
69
- * @breaking-change 9.0.0
70
- */
71
- _document) {
72
- super();
73
- this._componentFactoryResolver = _componentFactoryResolver;
74
- this._viewContainerRef = _viewContainerRef;
75
- /** Whether the portal component is initialized. */
76
- this._isInitialized = false;
77
- /** Emits when a portal is attached to the outlet. */
78
- this.attached = new EventEmitter();
79
- /**
80
- * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.
81
- * @param portal Portal to be attached.
82
- * @deprecated To be turned into a method.
83
- * @breaking-change 10.0.0
84
- */
85
- this.attachDomPortal = (portal) => {
86
- // @breaking-change 9.0.0 Remove check and error once the
87
- // `_document` constructor parameter is required.
88
- if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {
89
- throw Error('Cannot attach DOM portal without _document constructor parameter');
90
- }
91
- const element = portal.element;
92
- if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {
93
- throw Error('DOM portal content must be attached to a parent node.');
94
- }
95
- // Anchor used to save the element's previous position so
96
- // that we can restore it when the portal is detached.
97
- const anchorNode = this._document.createComment('dom-portal');
98
- portal.setAttachedHost(this);
99
- element.parentNode.insertBefore(anchorNode, element);
100
- this._getRootNode().appendChild(element);
101
- this._attachedPortal = portal;
102
- super.setDisposeFn(() => {
103
- if (anchorNode.parentNode) {
104
- anchorNode.parentNode.replaceChild(element, anchorNode);
105
- }
106
- });
107
- };
108
- this._document = _document;
109
- }
110
- /** Portal associated with the Portal outlet. */
111
- get portal() {
112
- return this._attachedPortal;
113
- }
114
- set portal(portal) {
115
- // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have
116
- // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`
117
- // and attach a portal programmatically in the parent component. When Angular does the first CD
118
- // round, it will fire the setter with empty string, causing the user's content to be cleared.
119
- if (this.hasAttached() && !portal && !this._isInitialized) {
120
- return;
121
- }
122
- if (this.hasAttached()) {
123
- super.detach();
124
- }
125
- if (portal) {
126
- super.attach(portal);
127
- }
128
- this._attachedPortal = portal || null;
129
- }
130
- /** Component or view reference that is attached to the portal. */
131
- get attachedRef() {
132
- return this._attachedRef;
133
- }
134
- ngOnInit() {
135
- this._isInitialized = true;
136
- }
137
- ngOnDestroy() {
138
- super.dispose();
139
- this._attachedRef = this._attachedPortal = null;
140
- }
141
- /**
142
- * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.
143
- *
144
- * @param portal Portal to be attached to the portal outlet.
145
- * @returns Reference to the created component.
146
- */
147
- attachComponentPortal(portal) {
148
- portal.setAttachedHost(this);
149
- // If the portal specifies an origin, use that as the logical location of the component
150
- // in the application tree. Otherwise use the location of this PortalOutlet.
151
- const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;
152
- const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;
153
- const componentFactory = resolver.resolveComponentFactory(portal.component);
154
- const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector, portal.projectableNodes || undefined);
155
- // If we're using a view container that's different from the injected one (e.g. when the portal
156
- // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered
157
- // inside of the alternate view container.
158
- if (viewContainerRef !== this._viewContainerRef) {
159
- this._getRootNode().appendChild(ref.hostView.rootNodes[0]);
160
- }
161
- super.setDisposeFn(() => ref.destroy());
162
- this._attachedPortal = portal;
163
- this._attachedRef = ref;
164
- this.attached.emit(ref);
165
- return ref;
166
- }
167
- /**
168
- * Attach the given TemplatePortal to this PortalHost as an embedded View.
169
- * @param portal Portal to be attached.
170
- * @returns Reference to the created embedded view.
171
- */
172
- attachTemplatePortal(portal) {
173
- portal.setAttachedHost(this);
174
- const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {
175
- injector: portal.injector,
176
- });
177
- super.setDisposeFn(() => this._viewContainerRef.clear());
178
- this._attachedPortal = portal;
179
- this._attachedRef = viewRef;
180
- this.attached.emit(viewRef);
181
- return viewRef;
182
- }
183
- /** Gets the root node of the portal outlet. */
184
- _getRootNode() {
185
- const nativeElement = this._viewContainerRef.element.nativeElement;
186
- // The directive could be set on a template which will result in a comment
187
- // node being the root. Use the comment's parent node if that is the case.
188
- return (nativeElement.nodeType === nativeElement.ELEMENT_NODE
189
- ? nativeElement
190
- : nativeElement.parentNode);
191
- }
192
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkPortalOutlet, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
193
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkPortalOutlet, isStandalone: true, selector: "[cdkPortalOutlet]", inputs: { portal: ["cdkPortalOutlet", "portal"] }, outputs: { attached: "attached" }, exportAs: ["cdkPortalOutlet"], usesInheritance: true, ngImport: i0 }); }
194
- }
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkPortalOutlet, decorators: [{
196
- type: Directive,
197
- args: [{
198
- selector: '[cdkPortalOutlet]',
199
- exportAs: 'cdkPortalOutlet',
200
- standalone: true,
201
- }]
202
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
203
- type: Inject,
204
- args: [DOCUMENT]
205
- }] }], propDecorators: { portal: [{
206
- type: Input,
207
- args: ['cdkPortalOutlet']
208
- }], attached: [{
209
- type: Output
210
- }] } });
211
- /**
212
- * @deprecated Use `CdkPortalOutlet` instead.
213
- * @breaking-change 9.0.0
214
- */
215
- export class PortalHostDirective extends CdkPortalOutlet {
216
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: PortalHostDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
217
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: PortalHostDirective, isStandalone: true, selector: "[cdkPortalHost], [portalHost]", inputs: { portal: ["cdkPortalHost", "portal"] }, providers: [
218
- {
219
- provide: CdkPortalOutlet,
220
- useExisting: PortalHostDirective,
221
- },
222
- ], exportAs: ["cdkPortalHost"], usesInheritance: true, ngImport: i0 }); }
223
- }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: PortalHostDirective, decorators: [{
225
- type: Directive,
226
- args: [{
227
- selector: '[cdkPortalHost], [portalHost]',
228
- exportAs: 'cdkPortalHost',
229
- inputs: [{ name: 'portal', alias: 'cdkPortalHost' }],
230
- providers: [
231
- {
232
- provide: CdkPortalOutlet,
233
- useExisting: PortalHostDirective,
234
- },
235
- ],
236
- standalone: true,
237
- }]
238
- }] });
239
- export class PortalModule {
240
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: PortalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
241
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0-next.2", ngImport: i0, type: PortalModule, imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective], exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective] }); }
242
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: PortalModule }); }
243
- }
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: PortalModule, decorators: [{
245
- type: NgModule,
246
- args: [{
247
- imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
248
- exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
249
- }]
250
- }] });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3BvcnRhbC9wb3J0YWwtZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQ0wsd0JBQXdCLEVBRXhCLFNBQVMsRUFFVCxZQUFZLEVBQ1osUUFBUSxFQUdSLE1BQU0sRUFDTixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBMkIsY0FBYyxFQUFZLE1BQU0sVUFBVSxDQUFDOztBQUU5Rjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sU0FBVSxTQUFRLGNBQWM7SUFDM0MsWUFBWSxXQUE2QixFQUFFLGdCQUFrQztRQUMzRSxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDdkMsQ0FBQztxSEFIVSxTQUFTO3lHQUFULFNBQVM7O2tHQUFULFNBQVM7a0JBTHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRSxXQUFXO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBT0Q7OztHQUdHO0FBWUgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFNBQVM7cUhBQXpDLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLHFFQVJ2QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixXQUFXLEVBQUUsdUJBQXVCO2FBQ3JDO1NBQ0Y7O2tHQUdVLHVCQUF1QjtrQkFYbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsV0FBVztvQkFDckIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxTQUFT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QUM7aUJBQ3BGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgQ29tcG9uZW50UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBOZ01vZHVsZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmFzZVBvcnRhbE91dGxldCwgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwsIFRlbXBsYXRlUG9ydGFsLCBEb21Qb3J0YWx9IGZyb20gJy4vcG9ydGFsJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdmVyc2lvbiBvZiBhIGBUZW1wbGF0ZVBvcnRhbGAuIEJlY2F1c2UgdGhlIGRpcmVjdGl2ZSAqaXMqIGEgVGVtcGxhdGVQb3J0YWwsXG4gKiB0aGUgZGlyZWN0aXZlIGluc3RhbmNlIGl0c2VsZiBjYW4gYmUgYXR0YWNoZWQgdG8gYSBob3N0LCBlbmFibGluZyBkZWNsYXJhdGl2ZSB1c2Ugb2YgcG9ydGFscy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nka1BvcnRhbF0nLFxuICBleHBvcnRBczogJ2Nka1BvcnRhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENka1BvcnRhbCBleHRlbmRzIFRlbXBsYXRlUG9ydGFsIHtcbiAgY29uc3RydWN0b3IodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcih0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lclJlZik7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYENka1BvcnRhbGAgaW5zdGVhZC5cbiAqIEBicmVha2luZy1jaGFuZ2UgOS4wLjBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nkay1wb3J0YWxdLCBbcG9ydGFsXScsXG4gIGV4cG9ydEFzOiAnY2RrUG9ydGFsJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ2RrUG9ydGFsLFxuICAgICAgdXNlRXhpc3Rpbmc6IFRlbXBsYXRlUG9ydGFsRGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlUG9ydGFsRGlyZWN0aXZlIGV4dGVuZHMgQ2RrUG9ydGFsIHt9XG5cbi8qKlxuICogUG9zc2libGUgYXR0YWNoZWQgcmVmZXJlbmNlcyB0byB0aGUgQ2RrUG9ydGFsT3V0bGV0LlxuICovXG5leHBvcnQgdHlwZSBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiA9IENvbXBvbmVudFJlZjxhbnk+IHwgRW1iZWRkZWRWaWV3UmVmPGFueT4gfCBudWxsO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB2ZXJzaW9uIG9mIGEgUG9ydGFsT3V0bGV0LiBCZWNhdXNlIHRoZSBkaXJlY3RpdmUgKmlzKiBhIFBvcnRhbE91dGxldCwgcG9ydGFscyBjYW4gYmVcbiAqIGRpcmVjdGx5IGF0dGFjaGVkIHRvIGl0LCBlbmFibGluZyBkZWNsYXJhdGl2ZSB1c2UuXG4gKlxuICogVXNhZ2U6XG4gKiBgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiZ3JlZXRpbmdcIj48L25nLXRlbXBsYXRlPmBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nka1BvcnRhbE91dGxldF0nLFxuICBleHBvcnRBczogJ2Nka1BvcnRhbE91dGxldCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENka1BvcnRhbE91dGxldCBleHRlbmRzIEJhc2VQb3J0YWxPdXRsZXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudDtcblxuICAvKiogV2hldGhlciB0aGUgcG9ydGFsIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZC4gKi9cbiAgcHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnRseS1hdHRhY2hlZCBjb21wb25lbnQvdmlldyByZWYuICovXG4gIHByaXZhdGUgX2F0dGFjaGVkUmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgYF9kb2N1bWVudGAgcGFyYW1ldGVyIHRvIGJlIG1hZGUgcmVxdWlyZWQuXG4gICAgICogQGJyZWFraW5nLWNoYW5nZSA5LjAuMFxuICAgICAqL1xuICAgIEBJbmplY3QoRE9DVU1FTlQpIF9kb2N1bWVudD86IGFueSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9kb2N1bWVudCA9IF9kb2N1bWVudDtcbiAgfVxuXG4gIC8qKiBQb3J0YWwgYXNzb2NpYXRlZCB3aXRoIHRoZSBQb3J0YWwgb3V0bGV0LiAqL1xuICBASW5wdXQoJ2Nka1BvcnRhbE91dGxldCcpXG4gIGdldCBwb3J0YWwoKTogUG9ydGFsPGFueT4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0YWNoZWRQb3J0YWw7XG4gIH1cblxuICBzZXQgcG9ydGFsKHBvcnRhbDogUG9ydGFsPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkIHwgJycpIHtcbiAgICAvLyBJZ25vcmUgdGhlIGNhc2VzIHdoZXJlIHRoZSBgcG9ydGFsYCBpcyBzZXQgdG8gYSBmYWxzeSB2YWx1ZSBiZWZvcmUgdGhlIGxpZmVjeWNsZSBob29rcyBoYXZlXG4gICAgLy8gcnVuLiBUaGlzIGhhbmRsZXMgdGhlIGNhc2VzIHdoZXJlIHRoZSB1c2VyIG1pZ2h0IGRvIHNvbWV0aGluZyBsaWtlIGA8ZGl2IGNka1BvcnRhbE91dGxldD5gXG4gICAgLy8gYW5kIGF0dGFjaCBhIHBvcnRhbCBwcm9ncmFtbWF0aWNhbGx5IGluIHRoZSBwYXJlbnQgY29tcG9uZW50LiBXaGVuIEFuZ3VsYXIgZG9lcyB0aGUgZmlyc3QgQ0RcbiAgICAvLyByb3VuZCwgaXQgd2lsbCBmaXJlIHRoZSBzZXR0ZXIgd2l0aCBlbXB0eSBzdHJpbmcsIGNhdXNpbmcgdGhlIHVzZXIncyBjb250ZW50IHRvIGJlIGNsZWFyZWQuXG4gICAgaWYgKHRoaXMuaGFzQXR0YWNoZWQoKSAmJiAhcG9ydGFsICYmICF0aGlzLl9pc0luaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgc3VwZXIuZGV0YWNoKCk7XG4gICAgfVxuXG4gICAgaWYgKHBvcnRhbCkge1xuICAgICAgc3VwZXIuYXR0YWNoKHBvcnRhbCk7XG4gICAgfVxuXG4gICAgdGhpcy5fYXR0YWNoZWRQb3J0YWwgPSBwb3J0YWwgfHwgbnVsbDtcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuIGEgcG9ydGFsIGlzIGF0dGFjaGVkIHRvIHRoZSBvdXRsZXQuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBhdHRhY2hlZDogRXZlbnRFbWl0dGVyPENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZj4oKTtcblxuICAvKiogQ29tcG9uZW50IG9yIHZpZXcgcmVmZXJlbmNlIHRoYXQgaXMgYXR0YWNoZWQgdG8gdGhlIHBvcnRhbC4gKi9cbiAgZ2V0IGF0dGFjaGVkUmVmKCk6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0YWNoZWRSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLmRpc3Bvc2UoKTtcbiAgICB0aGlzLl9hdHRhY2hlZFJlZiA9IHRoaXMuX2F0dGFjaGVkUG9ydGFsID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggdGhlIGdpdmVuIENvbXBvbmVudFBvcnRhbCB0byB0aGlzIFBvcnRhbE91dGxldCB1c2luZyB0aGUgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLlxuICAgKlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCB0byB0aGUgcG9ydGFsIG91dGxldC5cbiAgICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIGNvbXBvbmVudC5cbiAgICovXG4gIGF0dGFjaENvbXBvbmVudFBvcnRhbDxUPihwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxUPik6IENvbXBvbmVudFJlZjxUPiB7XG4gICAgcG9ydGFsLnNldEF0dGFjaGVkSG9zdCh0aGlzKTtcblxuICAgIC8vIElmIHRoZSBwb3J0YWwgc3BlY2lmaWVzIGFuIG9yaWdpbiwgdXNlIHRoYXQgYXMgdGhlIGxvZ2ljYWwgbG9jYXRpb24gb2YgdGhlIGNvbXBvbmVudFxuICAgIC8vIGluIHRoZSBhcHBsaWNhdGlvbiB0cmVlLiBPdGhlcndpc2UgdXNlIHRoZSBsb2NhdGlvbiBvZiB0aGlzIFBvcnRhbE91dGxldC5cbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID1cbiAgICAgIHBvcnRhbC52aWV3Q29udGFpbmVyUmVmICE9IG51bGwgPyBwb3J0YWwudmlld0NvbnRhaW5lclJlZiA6IHRoaXMuX3ZpZXdDb250YWluZXJSZWY7XG5cbiAgICBjb25zdCByZXNvbHZlciA9IHBvcnRhbC5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfHwgdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xuICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShwb3J0YWwuY29tcG9uZW50KTtcbiAgICBjb25zdCByZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudEZhY3RvcnksXG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmxlbmd0aCxcbiAgICAgIHBvcnRhbC5pbmplY3RvciB8fCB2aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLFxuICAgICAgcG9ydGFsLnByb2plY3RhYmxlTm9kZXMgfHwgdW5kZWZpbmVkLFxuICAgICk7XG5cbiAgICAvLyBJZiB3ZSdyZSB1c2luZyBhIHZpZXcgY29udGFpbmVyIHRoYXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgaW5qZWN0ZWQgb25lIChlLmcuIHdoZW4gdGhlIHBvcnRhbFxuICAgIC8vIHNwZWNpZmllcyBpdHMgb3duKSB3ZSBuZWVkIHRvIG1vdmUgdGhlIGNvbXBvbmVudCBpbnRvIHRoZSBvdXRsZXQsIG90aGVyd2lzZSBpdCdsbCBiZSByZW5kZXJlZFxuICAgIC8vIGluc2lkZSBvZiB0aGUgYWx0ZXJuYXRlIHZpZXcgY29udGFpbmVyLlxuICAgIGlmICh2aWV3Q29udGFpbmVyUmVmICE9PSB0aGlzLl92aWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICB0aGlzLl9nZXRSb290Tm9kZSgpLmFwcGVuZENoaWxkKChyZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSk7XG4gICAgfVxuXG4gICAgc3VwZXIuc2V0RGlzcG9zZUZuKCgpID0+IHJlZi5kZXN0cm95KCkpO1xuICAgIHRoaXMuX2F0dGFjaGVkUG9ydGFsID0gcG9ydGFsO1xuICAgIHRoaXMuX2F0dGFjaGVkUmVmID0gcmVmO1xuICAgIHRoaXMuYXR0YWNoZWQuZW1pdChyZWYpO1xuXG4gICAgcmV0dXJuIHJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggdGhlIGdpdmVuIFRlbXBsYXRlUG9ydGFsIHRvIHRoaXMgUG9ydGFsSG9zdCBhcyBhbiBlbWJlZGRlZCBWaWV3LlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZC5cbiAgICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoZSBjcmVhdGVkIGVtYmVkZGVkIHZpZXcuXG4gICAqL1xuICBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+KTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICBwb3J0YWwuc2V0QXR0YWNoZWRIb3N0KHRoaXMpO1xuICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhwb3J0YWwudGVtcGxhdGVSZWYsIHBvcnRhbC5jb250ZXh0LCB7XG4gICAgICBpbmplY3RvcjogcG9ydGFsLmluamVjdG9yLFxuICAgIH0pO1xuICAgIHN1cGVyLnNldERpc3Bvc2VGbigoKSA9PiB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCkpO1xuXG4gICAgdGhpcy5fYXR0YWNoZWRQb3J0YWwgPSBwb3J0YWw7XG4gICAgdGhpcy5fYXR0YWNoZWRSZWYgPSB2aWV3UmVmO1xuICAgIHRoaXMuYXR0YWNoZWQuZW1pdCh2aWV3UmVmKTtcblxuICAgIHJldHVybiB2aWV3UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoZSBnaXZlbiBEb21Qb3J0YWwgdG8gdGhpcyBQb3J0YWxIb3N0IGJ5IG1vdmluZyBhbGwgb2YgdGhlIHBvcnRhbCBjb250ZW50IGludG8gaXQuXG4gICAqIEBwYXJhbSBwb3J0YWwgUG9ydGFsIHRvIGJlIGF0dGFjaGVkLlxuICAgKiBAZGVwcmVjYXRlZCBUbyBiZSB0dXJuZWQgaW50byBhIG1ldGhvZC5cbiAgICogQGJyZWFraW5nLWNoYW5nZSAxMC4wLjBcbiAgICovXG4gIG92ZXJyaWRlIGF0dGFjaERvbVBvcnRhbCA9IChwb3J0YWw6IERvbVBvcnRhbCkgPT4ge1xuICAgIC8vIEBicmVha2luZy1jaGFuZ2UgOS4wLjAgUmVtb3ZlIGNoZWNrIGFuZCBlcnJvciBvbmNlIHRoZVxuICAgIC8vIGBfZG9jdW1lbnRgIGNvbnN0cnVjdG9yIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAgICBpZiAoIXRoaXMuX2RvY3VtZW50ICYmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignQ2Fubm90IGF0dGFjaCBET00gcG9ydGFsIHdpdGhvdXQgX2RvY3VtZW50IGNvbnN0cnVjdG9yIHBhcmFtZXRlcicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBwb3J0YWwuZWxlbWVudDtcbiAgICBpZiAoIWVsZW1lbnQucGFyZW50Tm9kZSAmJiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0RPTSBwb3J0YWwgY29udGVudCBtdXN0IGJlIGF0dGFjaGVkIHRvIGEgcGFyZW50IG5vZGUuJyk7XG4gICAgfVxuXG4gICAgLy8gQW5jaG9yIHVzZWQgdG8gc2F2ZSB0aGUgZWxlbWVudCdzIHByZXZpb3VzIHBvc2l0aW9uIHNvXG4gICAgLy8gdGhhdCB3ZSBjYW4gcmVzdG9yZSBpdCB3aGVuIHRoZSBwb3J0YWwgaXMgZGV0YWNoZWQuXG4gICAgY29uc3QgYW5jaG9yTm9kZSA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUNvbW1lbnQoJ2RvbS1wb3J0YWwnKTtcblxuICAgIHBvcnRhbC5zZXRBdHRhY2hlZEhvc3QodGhpcyk7XG4gICAgZWxlbWVudC5wYXJlbnROb2RlIS5pbnNlcnRCZWZvcmUoYW5jaG9yTm9kZSwgZWxlbWVudCk7XG4gICAgdGhpcy5fZ2V0Um9vdE5vZGUoKS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICB0aGlzLl9hdHRhY2hlZFBvcnRhbCA9IHBvcnRhbDtcblxuICAgIHN1cGVyLnNldERpc3Bvc2VGbigoKSA9PiB7XG4gICAgICBpZiAoYW5jaG9yTm9kZS5wYXJlbnROb2RlKSB7XG4gICAgICAgIGFuY2hvck5vZGUucGFyZW50Tm9kZSEucmVwbGFjZUNoaWxkKGVsZW1lbnQsIGFuY2hvck5vZGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIC8qKiBHZXRzIHRoZSByb290IG5vZGUgb2YgdGhlIHBvcnRhbCBvdXRsZXQuICovXG4gIHByaXZhdGUgX2dldFJvb3ROb2RlKCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50OiBOb2RlID0gdGhpcy5fdmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBUaGUgZGlyZWN0aXZlIGNvdWxkIGJlIHNldCBvbiBhIHRlbXBsYXRlIHdoaWNoIHdpbGwgcmVzdWx0IGluIGEgY29tbWVudFxuICAgIC8vIG5vZGUgYmVpbmcgdGhlIHJvb3QuIFVzZSB0aGUgY29tbWVudCdzIHBhcmVudCBub2RlIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgcmV0dXJuIChcbiAgICAgIG5hdGl2ZUVsZW1lbnQubm9kZVR5cGUgPT09IG5hdGl2ZUVsZW1lbnQuRUxFTUVOVF9OT0RFXG4gICAgICAgID8gbmF0aXZlRWxlbWVudFxuICAgICAgICA6IG5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZSFcbiAgICApIGFzIEhUTUxFbGVtZW50O1xuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGBDZGtQb3J0YWxPdXRsZXRgIGluc3RlYWQuXG4gKiBAYnJlYWtpbmctY2hhbmdlIDkuMC4wXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtQb3J0YWxIb3N0XSwgW3BvcnRhbEhvc3RdJyxcbiAgZXhwb3J0QXM6ICdjZGtQb3J0YWxIb3N0JyxcbiAgaW5wdXRzOiBbe25hbWU6ICdwb3J0YWwnLCBhbGlhczogJ2Nka1BvcnRhbEhvc3QnfV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENka1BvcnRhbE91dGxldCxcbiAgICAgIHVzZUV4aXN0aW5nOiBQb3J0YWxIb3N0RGlyZWN0aXZlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFBvcnRhbEhvc3REaXJlY3RpdmUgZXh0ZW5kcyBDZGtQb3J0YWxPdXRsZXQge31cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Nka1BvcnRhbCwgQ2RrUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbERpcmVjdGl2ZSwgUG9ydGFsSG9zdERpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtDZGtQb3J0YWwsIENka1BvcnRhbE91dGxldCwgVGVtcGxhdGVQb3J0YWxEaXJlY3RpdmUsIFBvcnRhbEhvc3REaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBQb3J0YWxNb2R1bGUge31cbiJdfQ==
@@ -1,51 +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
- * Throws an exception when attempting to attach a null portal to a host.
10
- * @docs-private
11
- */
12
- export function throwNullPortalError() {
13
- throw Error('Must provide a portal to attach');
14
- }
15
- /**
16
- * Throws an exception when attempting to attach a portal to a host that is already attached.
17
- * @docs-private
18
- */
19
- export function throwPortalAlreadyAttachedError() {
20
- throw Error('Host already has a portal attached');
21
- }
22
- /**
23
- * Throws an exception when attempting to attach a portal to an already-disposed host.
24
- * @docs-private
25
- */
26
- export function throwPortalOutletAlreadyDisposedError() {
27
- throw Error('This PortalOutlet has already been disposed');
28
- }
29
- /**
30
- * Throws an exception when attempting to attach an unknown portal type.
31
- * @docs-private
32
- */
33
- export function throwUnknownPortalTypeError() {
34
- throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +
35
- 'a ComponentPortal or a TemplatePortal.');
36
- }
37
- /**
38
- * Throws an exception when attempting to attach a portal to a null host.
39
- * @docs-private
40
- */
41
- export function throwNullPortalOutletError() {
42
- throw Error('Attempting to attach a portal to a null PortalOutlet');
43
- }
44
- /**
45
- * Throws an exception when attempting to detach a portal that is not attached.
46
- * @docs-private
47
- */
48
- export function throwNoPortalAttachedError() {
49
- throw Error('Attempting to detach a portal that is not attached to a host');
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvcG9ydGFsL3BvcnRhbC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsK0JBQStCO0lBQzdDLE1BQU0sS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQ0FBcUM7SUFDbkQsTUFBTSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxNQUFNLEtBQUssQ0FDVCwrRUFBK0U7UUFDN0Usd0NBQXdDLENBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQjtJQUN4QyxNQUFNLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIFRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhdHRlbXB0aW5nIHRvIGF0dGFjaCBhIG51bGwgcG9ydGFsIHRvIGEgaG9zdC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRocm93TnVsbFBvcnRhbEVycm9yKCkge1xuICB0aHJvdyBFcnJvcignTXVzdCBwcm92aWRlIGEgcG9ydGFsIHRvIGF0dGFjaCcpO1xufVxuXG4vKipcbiAqIFRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhdHRlbXB0aW5nIHRvIGF0dGFjaCBhIHBvcnRhbCB0byBhIGhvc3QgdGhhdCBpcyBhbHJlYWR5IGF0dGFjaGVkLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQb3J0YWxBbHJlYWR5QXR0YWNoZWRFcnJvcigpIHtcbiAgdGhyb3cgRXJyb3IoJ0hvc3QgYWxyZWFkeSBoYXMgYSBwb3J0YWwgYXR0YWNoZWQnKTtcbn1cblxuLyoqXG4gKiBUaHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gYXR0ZW1wdGluZyB0byBhdHRhY2ggYSBwb3J0YWwgdG8gYW4gYWxyZWFkeS1kaXNwb3NlZCBob3N0LlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQb3J0YWxPdXRsZXRBbHJlYWR5RGlzcG9zZWRFcnJvcigpIHtcbiAgdGhyb3cgRXJyb3IoJ1RoaXMgUG9ydGFsT3V0bGV0IGhhcyBhbHJlYWR5IGJlZW4gZGlzcG9zZWQnKTtcbn1cblxuLyoqXG4gKiBUaHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gYXR0ZW1wdGluZyB0byBhdHRhY2ggYW4gdW5rbm93biBwb3J0YWwgdHlwZS5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRocm93VW5rbm93blBvcnRhbFR5cGVFcnJvcigpIHtcbiAgdGhyb3cgRXJyb3IoXG4gICAgJ0F0dGVtcHRpbmcgdG8gYXR0YWNoIGFuIHVua25vd24gUG9ydGFsIHR5cGUuIEJhc2VQb3J0YWxPdXRsZXQgYWNjZXB0cyBlaXRoZXIgJyArXG4gICAgICAnYSBDb21wb25lbnRQb3J0YWwgb3IgYSBUZW1wbGF0ZVBvcnRhbC4nLFxuICApO1xufVxuXG4vKipcbiAqIFRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhdHRlbXB0aW5nIHRvIGF0dGFjaCBhIHBvcnRhbCB0byBhIG51bGwgaG9zdC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRocm93TnVsbFBvcnRhbE91dGxldEVycm9yKCkge1xuICB0aHJvdyBFcnJvcignQXR0ZW1wdGluZyB0byBhdHRhY2ggYSBwb3J0YWwgdG8gYSBudWxsIFBvcnRhbE91dGxldCcpO1xufVxuXG4vKipcbiAqIFRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhdHRlbXB0aW5nIHRvIGRldGFjaCBhIHBvcnRhbCB0aGF0IGlzIG5vdCBhdHRhY2hlZC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRocm93Tm9Qb3J0YWxBdHRhY2hlZEVycm9yKCkge1xuICB0aHJvdyBFcnJvcignQXR0ZW1wdGluZyB0byBkZXRhY2ggYSBwb3J0YWwgdGhhdCBpcyBub3QgYXR0YWNoZWQgdG8gYSBob3N0Jyk7XG59XG4iXX0=
@@ -1,28 +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
- * Custom injector to be used when providing custom
10
- * injection tokens to components inside a portal.
11
- * @docs-private
12
- * @deprecated Use `Injector.create` instead.
13
- * @breaking-change 11.0.0
14
- */
15
- export class PortalInjector {
16
- constructor(_parentInjector, _customTokens) {
17
- this._parentInjector = _parentInjector;
18
- this._customTokens = _customTokens;
19
- }
20
- get(token, notFoundValue) {
21
- const value = this._customTokens.get(token);
22
- if (typeof value !== 'undefined') {
23
- return value;
24
- }
25
- return this._parentInjector.get(token, notFoundValue);
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWluamVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9wb3J0YWwvcG9ydGFsLWluamVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUlIOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ1UsZUFBeUIsRUFDekIsYUFBZ0M7UUFEaEMsb0JBQWUsR0FBZixlQUFlLENBQVU7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQW1CO0lBQ3ZDLENBQUM7SUFFSixHQUFHLENBQUMsS0FBVSxFQUFFLGFBQW1CO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBTSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEN1c3RvbSBpbmplY3RvciB0byBiZSB1c2VkIHdoZW4gcHJvdmlkaW5nIGN1c3RvbVxuICogaW5qZWN0aW9uIHRva2VucyB0byBjb21wb25lbnRzIGluc2lkZSBhIHBvcnRhbC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqIEBkZXByZWNhdGVkIFVzZSBgSW5qZWN0b3IuY3JlYXRlYCBpbnN0ZWFkLlxuICogQGJyZWFraW5nLWNoYW5nZSAxMS4wLjBcbiAqL1xuZXhwb3J0IGNsYXNzIFBvcnRhbEluamVjdG9yIGltcGxlbWVudHMgSW5qZWN0b3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9wYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfY3VzdG9tVG9rZW5zOiBXZWFrTWFwPGFueSwgYW55PixcbiAgKSB7fVxuXG4gIGdldCh0b2tlbjogYW55LCBub3RGb3VuZFZhbHVlPzogYW55KTogYW55IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2N1c3RvbVRva2Vucy5nZXQodG9rZW4pO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcGFyZW50SW5qZWN0b3IuZ2V0PGFueT4odG9rZW4sIG5vdEZvdW5kVmFsdWUpO1xuICB9XG59XG4iXX0=