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

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 (311) hide show
  1. package/a11y/index.d.ts +5 -1
  2. package/fesm2022/a11y.mjs +21 -11
  3. package/fesm2022/a11y.mjs.map +1 -1
  4. package/fesm2022/cdk.mjs +1 -1
  5. package/fesm2022/cdk.mjs.map +1 -1
  6. package/fesm2022/drag-drop.mjs +2 -1
  7. package/fesm2022/drag-drop.mjs.map +1 -1
  8. package/fesm2022/overlay.mjs +20 -1
  9. package/fesm2022/overlay.mjs.map +1 -1
  10. package/fesm2022/private.mjs +9 -7
  11. package/fesm2022/private.mjs.map +1 -1
  12. package/fesm2022/text-field.mjs +17 -2
  13. package/fesm2022/text-field.mjs.map +1 -1
  14. package/fesm2022/tree.mjs +13 -7
  15. package/fesm2022/tree.mjs.map +1 -1
  16. package/overlay/_index.scss +15 -13
  17. package/overlay/index.d.ts +5 -0
  18. package/overlay-prebuilt.css +1 -1
  19. package/package.json +1 -57
  20. package/private/index.d.ts +1 -0
  21. package/schematics/ng-add/index.js +1 -1
  22. package/schematics/ng-add/index.mjs +1 -1
  23. package/text-field/index.d.ts +1 -0
  24. package/tree/index.d.ts +3 -1
  25. package/esm2022/a11y/a11y-module.mjs +0 -31
  26. package/esm2022/a11y/a11y_public_index.mjs +0 -5
  27. package/esm2022/a11y/aria-describer/aria-describer.mjs +0 -232
  28. package/esm2022/a11y/aria-describer/aria-reference.mjs +0 -47
  29. package/esm2022/a11y/fake-event-detection.mjs +0 -29
  30. package/esm2022/a11y/focus-monitor/focus-monitor.mjs +0 -468
  31. package/esm2022/a11y/focus-trap/configurable-focus-trap-config.mjs +0 -9
  32. package/esm2022/a11y/focus-trap/configurable-focus-trap-factory.mjs +0 -54
  33. package/esm2022/a11y/focus-trap/configurable-focus-trap.mjs +0 -51
  34. package/esm2022/a11y/focus-trap/event-listener-inert-strategy.mjs +0 -61
  35. package/esm2022/a11y/focus-trap/focus-trap-inert-strategy.mjs +0 -11
  36. package/esm2022/a11y/focus-trap/focus-trap-manager.mjs +0 -53
  37. package/esm2022/a11y/focus-trap/focus-trap.mjs +0 -396
  38. package/esm2022/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +0 -116
  39. package/esm2022/a11y/index.mjs +0 -9
  40. package/esm2022/a11y/input-modality/input-modality-detector.mjs +0 -176
  41. package/esm2022/a11y/interactivity-checker/interactivity-checker.mjs +0 -238
  42. package/esm2022/a11y/key-manager/activedescendant-key-manager.mjs +0 -20
  43. package/esm2022/a11y/key-manager/focus-key-manager.mjs +0 -29
  44. package/esm2022/a11y/key-manager/list-key-manager.mjs +0 -357
  45. package/esm2022/a11y/key-manager/noop-tree-key-manager.mjs +0 -94
  46. package/esm2022/a11y/key-manager/tree-key-manager-strategy.mjs +0 -9
  47. package/esm2022/a11y/key-manager/tree-key-manager.mjs +0 -345
  48. package/esm2022/a11y/key-manager/typeahead.mjs +0 -91
  49. package/esm2022/a11y/live-announcer/live-announcer-tokens.mjs +0 -19
  50. package/esm2022/a11y/live-announcer/live-announcer.mjs +0 -210
  51. package/esm2022/a11y/public-api.mjs +0 -30
  52. package/esm2022/accordion/accordion-item.mjs +0 -162
  53. package/esm2022/accordion/accordion-module.mjs +0 -24
  54. package/esm2022/accordion/accordion.mjs +0 -65
  55. package/esm2022/accordion/accordion_public_index.mjs +0 -5
  56. package/esm2022/accordion/index.mjs +0 -9
  57. package/esm2022/accordion/public-api.mjs +0 -11
  58. package/esm2022/bidi/bidi-module.mjs +0 -23
  59. package/esm2022/bidi/bidi_public_index.mjs +0 -5
  60. package/esm2022/bidi/dir-document-token.mjs +0 -33
  61. package/esm2022/bidi/dir.mjs +0 -70
  62. package/esm2022/bidi/directionality.mjs +0 -52
  63. package/esm2022/bidi/index.mjs +0 -9
  64. package/esm2022/bidi/public-api.mjs +0 -12
  65. package/esm2022/clipboard/clipboard-module.mjs +0 -23
  66. package/esm2022/clipboard/clipboard.mjs +0 -53
  67. package/esm2022/clipboard/clipboard_public_index.mjs +0 -5
  68. package/esm2022/clipboard/copy-to-clipboard.mjs +0 -100
  69. package/esm2022/clipboard/index.mjs +0 -9
  70. package/esm2022/clipboard/pending-copy.mjs +0 -71
  71. package/esm2022/clipboard/public-api.mjs +0 -12
  72. package/esm2022/coercion/array.mjs +0 -11
  73. package/esm2022/coercion/boolean-property.mjs +0 -12
  74. package/esm2022/coercion/css-pixel-value.mjs +0 -15
  75. package/esm2022/coercion/element.mjs +0 -16
  76. package/esm2022/coercion/index.mjs +0 -9
  77. package/esm2022/coercion/number-property.mjs +0 -24
  78. package/esm2022/coercion/private/index.mjs +0 -9
  79. package/esm2022/coercion/private/observable.mjs +0 -19
  80. package/esm2022/coercion/private/private_public_index.mjs +0 -5
  81. package/esm2022/coercion/public-api.mjs +0 -14
  82. package/esm2022/coercion/string-array.mjs +0 -38
  83. package/esm2022/collections/array-data-source.mjs +0 -21
  84. package/esm2022/collections/collection-viewer.mjs +0 -9
  85. package/esm2022/collections/collections_public_index.mjs +0 -5
  86. package/esm2022/collections/data-source.mjs +0 -19
  87. package/esm2022/collections/dispose-view-repeater-strategy.mjs +0 -48
  88. package/esm2022/collections/index.mjs +0 -9
  89. package/esm2022/collections/public-api.mjs +0 -17
  90. package/esm2022/collections/recycle-view-repeater-strategy.mjs +0 -129
  91. package/esm2022/collections/selection-model.mjs +0 -225
  92. package/esm2022/collections/tree-adapter.mjs +0 -9
  93. package/esm2022/collections/unique-selection-dispatcher.mjs +0 -55
  94. package/esm2022/collections/view-repeater.mjs +0 -26
  95. package/esm2022/dialog/dialog-config.mjs +0 -70
  96. package/esm2022/dialog/dialog-container.mjs +0 -308
  97. package/esm2022/dialog/dialog-injectors.mjs +0 -40
  98. package/esm2022/dialog/dialog-module.mjs +0 -40
  99. package/esm2022/dialog/dialog-ref.mjs +0 -85
  100. package/esm2022/dialog/dialog.mjs +0 -303
  101. package/esm2022/dialog/dialog_public_index.mjs +0 -5
  102. package/esm2022/dialog/index.mjs +0 -9
  103. package/esm2022/dialog/public-api.mjs +0 -14
  104. package/esm2022/drag-drop/directives/assertions.mjs +0 -18
  105. package/esm2022/drag-drop/directives/config.mjs +0 -14
  106. package/esm2022/drag-drop/directives/drag-handle.mjs +0 -68
  107. package/esm2022/drag-drop/directives/drag-placeholder.mjs +0 -43
  108. package/esm2022/drag-drop/directives/drag-preview.mjs +0 -48
  109. package/esm2022/drag-drop/directives/drag.mjs +0 -520
  110. package/esm2022/drag-drop/directives/drop-list-group.mjs +0 -47
  111. package/esm2022/drag-drop/directives/drop-list.mjs +0 -352
  112. package/esm2022/drag-drop/dom/clone-node.mjs +0 -65
  113. package/esm2022/drag-drop/dom/dom-rect.mjs +0 -64
  114. package/esm2022/drag-drop/dom/parent-position-tracker.mjs +0 -76
  115. package/esm2022/drag-drop/dom/root-node.mjs +0 -21
  116. package/esm2022/drag-drop/dom/styling.mjs +0 -89
  117. package/esm2022/drag-drop/dom/transition-duration.mjs +0 -36
  118. package/esm2022/drag-drop/drag-drop-module.mjs +0 -49
  119. package/esm2022/drag-drop/drag-drop-registry.mjs +0 -248
  120. package/esm2022/drag-drop/drag-drop.mjs +0 -57
  121. package/esm2022/drag-drop/drag-drop_public_index.mjs +0 -5
  122. package/esm2022/drag-drop/drag-events.mjs +0 -9
  123. package/esm2022/drag-drop/drag-parent.mjs +0 -16
  124. package/esm2022/drag-drop/drag-ref.mjs +0 -1097
  125. package/esm2022/drag-drop/drag-utils.mjs +0 -60
  126. package/esm2022/drag-drop/drop-list-ref.mjs +0 -672
  127. package/esm2022/drag-drop/index.mjs +0 -9
  128. package/esm2022/drag-drop/preview-ref.mjs +0 -125
  129. package/esm2022/drag-drop/public-api.mjs +0 -23
  130. package/esm2022/drag-drop/sorting/drop-list-sort-strategy.mjs +0 -9
  131. package/esm2022/drag-drop/sorting/mixed-sort-strategy.mjs +0 -246
  132. package/esm2022/drag-drop/sorting/single-axis-sort-strategy.mjs +0 -343
  133. package/esm2022/index.mjs +0 -9
  134. package/esm2022/keycodes/index.mjs +0 -9
  135. package/esm2022/keycodes/keycodes.mjs +0 -127
  136. package/esm2022/keycodes/keycodes_public_index.mjs +0 -5
  137. package/esm2022/keycodes/modifiers.mjs +0 -18
  138. package/esm2022/keycodes/public-api.mjs +0 -10
  139. package/esm2022/layout/breakpoints-observer.mjs +0 -105
  140. package/esm2022/layout/breakpoints.mjs +0 -29
  141. package/esm2022/layout/index.mjs +0 -9
  142. package/esm2022/layout/layout-module.mjs +0 -19
  143. package/esm2022/layout/layout_public_index.mjs +0 -5
  144. package/esm2022/layout/media-matcher.mjs +0 -94
  145. package/esm2022/layout/public-api.mjs +0 -12
  146. package/esm2022/listbox/index.mjs +0 -9
  147. package/esm2022/listbox/listbox-module.mjs +0 -24
  148. package/esm2022/listbox/listbox.mjs +0 -888
  149. package/esm2022/listbox/listbox_public_index.mjs +0 -5
  150. package/esm2022/listbox/public-api.mjs +0 -10
  151. package/esm2022/menu/context-menu-trigger.mjs +0 -221
  152. package/esm2022/menu/event-detection.mjs +0 -28
  153. package/esm2022/menu/index.mjs +0 -9
  154. package/esm2022/menu/menu-aim.mjs +0 -204
  155. package/esm2022/menu/menu-bar.mjs +0 -134
  156. package/esm2022/menu/menu-base.mjs +0 -192
  157. package/esm2022/menu/menu-errors.mjs +0 -22
  158. package/esm2022/menu/menu-group.mjs +0 -31
  159. package/esm2022/menu/menu-interface.mjs +0 -11
  160. package/esm2022/menu/menu-item-checkbox.mjs +0 -50
  161. package/esm2022/menu/menu-item-radio.mjs +0 -72
  162. package/esm2022/menu/menu-item-selectable.mjs +0 -36
  163. package/esm2022/menu/menu-item.mjs +0 -270
  164. package/esm2022/menu/menu-module.mjs +0 -60
  165. package/esm2022/menu/menu-stack.mjs +0 -163
  166. package/esm2022/menu/menu-trigger-base.mjs +0 -119
  167. package/esm2022/menu/menu-trigger.mjs +0 -313
  168. package/esm2022/menu/menu.mjs +0 -135
  169. package/esm2022/menu/menu_public_index.mjs +0 -5
  170. package/esm2022/menu/pointer-focus-tracker.mjs +0 -51
  171. package/esm2022/menu/public-api.mjs +0 -24
  172. package/esm2022/observers/index.mjs +0 -9
  173. package/esm2022/observers/observe-content.mjs +0 -216
  174. package/esm2022/observers/observers_public_index.mjs +0 -5
  175. package/esm2022/observers/private/index.mjs +0 -9
  176. package/esm2022/observers/private/private_public_index.mjs +0 -5
  177. package/esm2022/observers/private/shared-resize-observer.mjs +0 -125
  178. package/esm2022/observers/public-api.mjs +0 -9
  179. package/esm2022/overlay/dispatchers/base-overlay-dispatcher.mjs +0 -52
  180. package/esm2022/overlay/dispatchers/index.mjs +0 -10
  181. package/esm2022/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +0 -81
  182. package/esm2022/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +0 -151
  183. package/esm2022/overlay/fullscreen-overlay-container.mjs +0 -94
  184. package/esm2022/overlay/index.mjs +0 -9
  185. package/esm2022/overlay/overlay-config.mjs +0 -45
  186. package/esm2022/overlay/overlay-container.mjs +0 -81
  187. package/esm2022/overlay/overlay-directives.mjs +0 -432
  188. package/esm2022/overlay/overlay-module.mjs +0 -28
  189. package/esm2022/overlay/overlay-ref.mjs +0 -437
  190. package/esm2022/overlay/overlay.mjs +0 -126
  191. package/esm2022/overlay/overlay_public_index.mjs +0 -5
  192. package/esm2022/overlay/position/connected-position.mjs +0 -88
  193. package/esm2022/overlay/position/flexible-connected-position-strategy.mjs +0 -1002
  194. package/esm2022/overlay/position/global-position-strategy.mjs +0 -237
  195. package/esm2022/overlay/position/overlay-position-builder.mjs +0 -50
  196. package/esm2022/overlay/position/position-strategy.mjs +0 -9
  197. package/esm2022/overlay/position/scroll-clip.mjs +0 -40
  198. package/esm2022/overlay/public-api.mjs +0 -22
  199. package/esm2022/overlay/scroll/block-scroll-strategy.mjs +0 -80
  200. package/esm2022/overlay/scroll/close-scroll-strategy.mjs +0 -65
  201. package/esm2022/overlay/scroll/index.mjs +0 -14
  202. package/esm2022/overlay/scroll/noop-scroll-strategy.mjs +0 -17
  203. package/esm2022/overlay/scroll/reposition-scroll-strategy.mjs +0 -61
  204. package/esm2022/overlay/scroll/scroll-strategy-options.mjs +0 -55
  205. package/esm2022/overlay/scroll/scroll-strategy.mjs +0 -14
  206. package/esm2022/platform/features/input-types.mjs +0 -59
  207. package/esm2022/platform/features/passive-listeners.mjs +0 -36
  208. package/esm2022/platform/features/scrolling.mjs +0 -104
  209. package/esm2022/platform/features/shadow-dom.mjs +0 -54
  210. package/esm2022/platform/features/test-environment.mjs +0 -24
  211. package/esm2022/platform/index.mjs +0 -9
  212. package/esm2022/platform/platform-module.mjs +0 -19
  213. package/esm2022/platform/platform.mjs +0 -82
  214. package/esm2022/platform/platform_public_index.mjs +0 -5
  215. package/esm2022/platform/public-api.mjs +0 -15
  216. package/esm2022/portal/dom-portal-outlet.mjs +0 -158
  217. package/esm2022/portal/index.mjs +0 -9
  218. package/esm2022/portal/portal-directives.mjs +0 -251
  219. package/esm2022/portal/portal-errors.mjs +0 -51
  220. package/esm2022/portal/portal-injector.mjs +0 -28
  221. package/esm2022/portal/portal.mjs +0 -189
  222. package/esm2022/portal/portal_public_index.mjs +0 -5
  223. package/esm2022/portal/public-api.mjs +0 -12
  224. package/esm2022/private/index.mjs +0 -9
  225. package/esm2022/private/private_public_index.mjs +0 -5
  226. package/esm2022/private/public-api.mjs +0 -9
  227. package/esm2022/private/style-loader.mjs +0 -50
  228. package/esm2022/public-api.mjs +0 -9
  229. package/esm2022/scrolling/fixed-size-virtual-scroll.mjs +0 -218
  230. package/esm2022/scrolling/index.mjs +0 -9
  231. package/esm2022/scrolling/public-api.mjs +0 -20
  232. package/esm2022/scrolling/scroll-dispatcher.mjs +0 -163
  233. package/esm2022/scrolling/scrollable.mjs +0 -177
  234. package/esm2022/scrolling/scrolling-module.mjs +0 -69
  235. package/esm2022/scrolling/scrolling_public_index.mjs +0 -5
  236. package/esm2022/scrolling/viewport-ruler.mjs +0 -146
  237. package/esm2022/scrolling/virtual-for-of.mjs +0 -299
  238. package/esm2022/scrolling/virtual-scroll-repeater.mjs +0 -9
  239. package/esm2022/scrolling/virtual-scroll-strategy.mjs +0 -11
  240. package/esm2022/scrolling/virtual-scroll-viewport.mjs +0 -445
  241. package/esm2022/scrolling/virtual-scrollable-element.mjs +0 -42
  242. package/esm2022/scrolling/virtual-scrollable-window.mjs +0 -41
  243. package/esm2022/scrolling/virtual-scrollable.mjs +0 -40
  244. package/esm2022/stepper/index.mjs +0 -9
  245. package/esm2022/stepper/public-api.mjs +0 -13
  246. package/esm2022/stepper/step-header.mjs +0 -31
  247. package/esm2022/stepper/step-label.mjs +0 -24
  248. package/esm2022/stepper/stepper-button.mjs +0 -58
  249. package/esm2022/stepper/stepper-module.mjs +0 -41
  250. package/esm2022/stepper/stepper.mjs +0 -452
  251. package/esm2022/stepper/stepper_public_index.mjs +0 -5
  252. package/esm2022/table/can-stick.mjs +0 -46
  253. package/esm2022/table/cell.mjs +0 -245
  254. package/esm2022/table/coalesced-style-scheduler.mjs +0 -79
  255. package/esm2022/table/index.mjs +0 -9
  256. package/esm2022/table/public-api.mjs +0 -20
  257. package/esm2022/table/row.mjs +0 -317
  258. package/esm2022/table/sticky-position-listener.mjs +0 -11
  259. package/esm2022/table/sticky-styler.mjs +0 -347
  260. package/esm2022/table/table-errors.mjs +0 -67
  261. package/esm2022/table/table-module.mjs +0 -93
  262. package/esm2022/table/table.mjs +0 -1148
  263. package/esm2022/table/table_public_index.mjs +0 -5
  264. package/esm2022/table/text-column.mjs +0 -154
  265. package/esm2022/table/tokens.mjs +0 -16
  266. package/esm2022/testing/change-detection.mjs +0 -102
  267. package/esm2022/testing/component-harness.mjs +0 -328
  268. package/esm2022/testing/element-dimensions.mjs +0 -9
  269. package/esm2022/testing/harness-environment.mjs +0 -220
  270. package/esm2022/testing/index.mjs +0 -9
  271. package/esm2022/testing/public-api.mjs +0 -15
  272. package/esm2022/testing/selenium-webdriver/index.mjs +0 -9
  273. package/esm2022/testing/selenium-webdriver/public-api.mjs +0 -10
  274. package/esm2022/testing/selenium-webdriver/selenium-web-driver-element.mjs +0 -216
  275. package/esm2022/testing/selenium-webdriver/selenium-web-driver-harness-environment.mjs +0 -88
  276. package/esm2022/testing/selenium-webdriver/selenium-webdriver-keys.mjs +0 -64
  277. package/esm2022/testing/test-element-errors.mjs +0 -15
  278. package/esm2022/testing/test-element.mjs +0 -49
  279. package/esm2022/testing/testbed/fake-events/dispatch-events.mjs +0 -53
  280. package/esm2022/testing/testbed/fake-events/element-focus.mjs +0 -39
  281. package/esm2022/testing/testbed/fake-events/event-objects.mjs +0 -127
  282. package/esm2022/testing/testbed/fake-events/index.mjs +0 -14
  283. package/esm2022/testing/testbed/fake-events/type-in-element.mjs +0 -97
  284. package/esm2022/testing/testbed/index.mjs +0 -9
  285. package/esm2022/testing/testbed/public-api.mjs +0 -10
  286. package/esm2022/testing/testbed/task-state-zone-interceptor.mjs +0 -83
  287. package/esm2022/testing/testbed/testbed-harness-environment.mjs +0 -165
  288. package/esm2022/testing/testbed/unit-test-element.mjs +0 -258
  289. package/esm2022/testing/text-filtering.mjs +0 -21
  290. package/esm2022/text-field/autofill.mjs +0 -114
  291. package/esm2022/text-field/autosize.mjs +0 -309
  292. package/esm2022/text-field/index.mjs +0 -9
  293. package/esm2022/text-field/public-api.mjs +0 -11
  294. package/esm2022/text-field/text-field-module.mjs +0 -24
  295. package/esm2022/text-field/text-field_public_index.mjs +0 -5
  296. package/esm2022/tree/control/base-tree-control.mjs +0 -62
  297. package/esm2022/tree/control/flat-tree-control.mjs +0 -57
  298. package/esm2022/tree/control/nested-tree-control.mjs +0 -67
  299. package/esm2022/tree/control/tree-control.mjs +0 -2
  300. package/esm2022/tree/index.mjs +0 -9
  301. package/esm2022/tree/nested-node.mjs +0 -103
  302. package/esm2022/tree/node.mjs +0 -36
  303. package/esm2022/tree/outlet.mjs +0 -40
  304. package/esm2022/tree/padding.mjs +0 -129
  305. package/esm2022/tree/public-api.mjs +0 -20
  306. package/esm2022/tree/toggle.mjs +0 -51
  307. package/esm2022/tree/tree-errors.mjs +0 -44
  308. package/esm2022/tree/tree-module.mjs +0 -49
  309. package/esm2022/tree/tree.mjs +0 -1123
  310. package/esm2022/tree/tree_public_index.mjs +0 -5
  311. package/esm2022/version.mjs +0 -11
@@ -1,45 +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 { NoopScrollStrategy } from './scroll/index';
9
- /** Initial configuration used when creating an overlay. */
10
- export class OverlayConfig {
11
- constructor(config) {
12
- /** Strategy to be used when handling scroll events while the overlay is open. */
13
- this.scrollStrategy = new NoopScrollStrategy();
14
- /** Custom class to add to the overlay pane. */
15
- this.panelClass = '';
16
- /** Whether the overlay has a backdrop. */
17
- this.hasBackdrop = false;
18
- /** Custom class to add to the backdrop */
19
- this.backdropClass = 'cdk-overlay-dark-backdrop';
20
- /**
21
- * Whether the overlay should be disposed of when the user goes backwards/forwards in history.
22
- * Note that this usually doesn't include clicking on links (unless the user is using
23
- * the `HashLocationStrategy`).
24
- */
25
- this.disposeOnNavigation = false;
26
- if (config) {
27
- // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,
28
- // loses the array generic type in the `for of`. But we *also* have to use `Array` because
29
- // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`
30
- const configKeys = Object.keys(config);
31
- for (const key of configKeys) {
32
- if (config[key] !== undefined) {
33
- // TypeScript, as of version 3.5, sees the left-hand-side of this expression
34
- // as "I don't know *which* key this is, so the only valid value is the intersection
35
- // of all the possible values." In this case, that happens to be `undefined`. TypeScript
36
- // is not smart enough to see that the right-hand-side is actually an access of the same
37
- // exact type with the same exact key, meaning that the value type must be identical.
38
- // So we use `any` to work around this.
39
- this[key] = config[key];
40
- }
41
- }
42
- }
43
- }
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL292ZXJsYXkvb3ZlcmxheS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsT0FBTyxFQUFpQixrQkFBa0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLDJEQUEyRDtBQUMzRCxNQUFNLE9BQU8sYUFBYTtJQStDeEIsWUFBWSxNQUFzQjtRQTNDbEMsaUZBQWlGO1FBQ2pGLG1CQUFjLEdBQW9CLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUUzRCwrQ0FBK0M7UUFDL0MsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFFcEMsMENBQTBDO1FBQzFDLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBRTlCLDBDQUEwQztRQUMxQyxrQkFBYSxHQUF1QiwyQkFBMkIsQ0FBQztRQTBCaEU7Ozs7V0FJRztRQUNILHdCQUFtQixHQUFhLEtBQUssQ0FBQztRQUdwQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gscUVBQXFFO1lBQ3JFLDBGQUEwRjtZQUMxRiw2RkFBNkY7WUFDN0YsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ1osQ0FBQztZQUMxQixLQUFLLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUM3QixJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDOUIsNEVBQTRFO29CQUM1RSxvRkFBb0Y7b0JBQ3BGLHdGQUF3RjtvQkFDeEYsd0ZBQXdGO29CQUN4RixxRkFBcUY7b0JBQ3JGLHVDQUF1QztvQkFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQVEsQ0FBQztnQkFDakMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UG9zaXRpb25TdHJhdGVneX0gZnJvbSAnLi9wb3NpdGlvbi9wb3NpdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQge0RpcmVjdGlvbiwgRGlyZWN0aW9uYWxpdHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7U2Nyb2xsU3RyYXRlZ3ksIE5vb3BTY3JvbGxTdHJhdGVneX0gZnJvbSAnLi9zY3JvbGwvaW5kZXgnO1xuXG4vKiogSW5pdGlhbCBjb25maWd1cmF0aW9uIHVzZWQgd2hlbiBjcmVhdGluZyBhbiBvdmVybGF5LiAqL1xuZXhwb3J0IGNsYXNzIE92ZXJsYXlDb25maWcge1xuICAvKiogU3RyYXRlZ3kgd2l0aCB3aGljaCB0byBwb3NpdGlvbiB0aGUgb3ZlcmxheS4gKi9cbiAgcG9zaXRpb25TdHJhdGVneT86IFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqIFN0cmF0ZWd5IHRvIGJlIHVzZWQgd2hlbiBoYW5kbGluZyBzY3JvbGwgZXZlbnRzIHdoaWxlIHRoZSBvdmVybGF5IGlzIG9wZW4uICovXG4gIHNjcm9sbFN0cmF0ZWd5PzogU2Nyb2xsU3RyYXRlZ3kgPSBuZXcgTm9vcFNjcm9sbFN0cmF0ZWd5KCk7XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyB0byBhZGQgdG8gdGhlIG92ZXJsYXkgcGFuZS4gKi9cbiAgcGFuZWxDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG92ZXJsYXkgaGFzIGEgYmFja2Ryb3AuICovXG4gIGhhc0JhY2tkcm9wPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgdG8gYWRkIHRvIHRoZSBiYWNrZHJvcCAqL1xuICBiYWNrZHJvcENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW10gPSAnY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCc7XG5cbiAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgb3ZlcmxheSBwYW5lbC4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIHBpeGVsIHVuaXRzIGFyZSBhc3N1bWVkLiAqL1xuICB3aWR0aD86IG51bWJlciB8IHN0cmluZztcblxuICAvKiogVGhlIGhlaWdodCBvZiB0aGUgb3ZlcmxheSBwYW5lbC4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIHBpeGVsIHVuaXRzIGFyZSBhc3N1bWVkLiAqL1xuICBoZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIFRoZSBtaW4td2lkdGggb2YgdGhlIG92ZXJsYXkgcGFuZWwuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBwaXhlbCB1bml0cyBhcmUgYXNzdW1lZC4gKi9cbiAgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIFRoZSBtaW4taGVpZ2h0IG9mIHRoZSBvdmVybGF5IHBhbmVsLiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgcGl4ZWwgdW5pdHMgYXJlIGFzc3VtZWQuICovXG4gIG1pbkhlaWdodD86IG51bWJlciB8IHN0cmluZztcblxuICAvKiogVGhlIG1heC13aWR0aCBvZiB0aGUgb3ZlcmxheSBwYW5lbC4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIHBpeGVsIHVuaXRzIGFyZSBhc3N1bWVkLiAqL1xuICBtYXhXaWR0aD86IG51bWJlciB8IHN0cmluZztcblxuICAvKiogVGhlIG1heC1oZWlnaHQgb2YgdGhlIG92ZXJsYXkgcGFuZWwuIElmIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBwaXhlbCB1bml0cyBhcmUgYXNzdW1lZC4gKi9cbiAgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXJlY3Rpb24gb2YgdGhlIHRleHQgaW4gdGhlIG92ZXJsYXkgcGFuZWwuIElmIGEgYERpcmVjdGlvbmFsaXR5YCBpbnN0YW5jZVxuICAgKiBpcyBwYXNzZWQgaW4sIHRoZSBvdmVybGF5IHdpbGwgaGFuZGxlIGNoYW5nZXMgdG8gaXRzIHZhbHVlIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICBkaXJlY3Rpb24/OiBEaXJlY3Rpb24gfCBEaXJlY3Rpb25hbGl0eTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgYmUgZGlzcG9zZWQgb2Ygd2hlbiB0aGUgdXNlciBnb2VzIGJhY2t3YXJkcy9mb3J3YXJkcyBpbiBoaXN0b3J5LlxuICAgKiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzIHRoZSB1c2VyIGlzIHVzaW5nXG4gICAqIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICovXG4gIGRpc3Bvc2VPbk5hdmlnYXRpb24/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogT3ZlcmxheUNvbmZpZykge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIC8vIFVzZSBgSXRlcmFibGVgIGluc3RlYWQgb2YgYEFycmF5YCBiZWNhdXNlIFR5cGVTY3JpcHQsIGFzIG9mIDMuNi4zLFxuICAgICAgLy8gbG9zZXMgdGhlIGFycmF5IGdlbmVyaWMgdHlwZSBpbiB0aGUgYGZvciBvZmAuIEJ1dCB3ZSAqYWxzbyogaGF2ZSB0byB1c2UgYEFycmF5YCBiZWNhdXNlXG4gICAgICAvLyB0eXBlc2NyaXB0IHdvbid0IGl0ZXJhdGUgb3ZlciBhbiBgSXRlcmFibGVgIHVubGVzcyB5b3UgY29tcGlsZSB3aXRoIGAtLWRvd25sZXZlbEl0ZXJhdGlvbmBcbiAgICAgIGNvbnN0IGNvbmZpZ0tleXMgPSBPYmplY3Qua2V5cyhjb25maWcpIGFzIEl0ZXJhYmxlPGtleW9mIE92ZXJsYXlDb25maWc+ICZcbiAgICAgICAgKGtleW9mIE92ZXJsYXlDb25maWcpW107XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBjb25maWdLZXlzKSB7XG4gICAgICAgIGlmIChjb25maWdba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gVHlwZVNjcmlwdCwgYXMgb2YgdmVyc2lvbiAzLjUsIHNlZXMgdGhlIGxlZnQtaGFuZC1zaWRlIG9mIHRoaXMgZXhwcmVzc2lvblxuICAgICAgICAgIC8vIGFzIFwiSSBkb24ndCBrbm93ICp3aGljaCoga2V5IHRoaXMgaXMsIHNvIHRoZSBvbmx5IHZhbGlkIHZhbHVlIGlzIHRoZSBpbnRlcnNlY3Rpb25cbiAgICAgICAgICAvLyBvZiBhbGwgdGhlIHBvc3NpYmxlIHZhbHVlcy5cIiBJbiB0aGlzIGNhc2UsIHRoYXQgaGFwcGVucyB0byBiZSBgdW5kZWZpbmVkYC4gVHlwZVNjcmlwdFxuICAgICAgICAgIC8vIGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gc2VlIHRoYXQgdGhlIHJpZ2h0LWhhbmQtc2lkZSBpcyBhY3R1YWxseSBhbiBhY2Nlc3Mgb2YgdGhlIHNhbWVcbiAgICAgICAgICAvLyBleGFjdCB0eXBlIHdpdGggdGhlIHNhbWUgZXhhY3Qga2V5LCBtZWFuaW5nIHRoYXQgdGhlIHZhbHVlIHR5cGUgbXVzdCBiZSBpZGVudGljYWwuXG4gICAgICAgICAgLy8gU28gd2UgdXNlIGBhbnlgIHRvIHdvcmsgYXJvdW5kIHRoaXMuXG4gICAgICAgICAgdGhpc1trZXldID0gY29uZmlnW2tleV0gYXMgYW55O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,81 +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 { DOCUMENT } from '@angular/common';
9
- import { Inject, Injectable } from '@angular/core';
10
- import { Platform, _isTestEnvironment } from '@angular/cdk/platform';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/cdk/platform";
13
- /** Container inside which all overlays will render. */
14
- export class OverlayContainer {
15
- constructor(document, _platform) {
16
- this._platform = _platform;
17
- this._document = document;
18
- }
19
- ngOnDestroy() {
20
- this._containerElement?.remove();
21
- }
22
- /**
23
- * This method returns the overlay container element. It will lazily
24
- * create the element the first time it is called to facilitate using
25
- * the container in non-browser environments.
26
- * @returns the container element
27
- */
28
- getContainerElement() {
29
- if (!this._containerElement) {
30
- this._createContainer();
31
- }
32
- return this._containerElement;
33
- }
34
- /**
35
- * Create the overlay container element, which is simply a div
36
- * with the 'cdk-overlay-container' class on the document body.
37
- */
38
- _createContainer() {
39
- const containerClass = 'cdk-overlay-container';
40
- // TODO(crisbeto): remove the testing check once we have an overlay testing
41
- // module or Angular starts tearing down the testing `NgModule`. See:
42
- // https://github.com/angular/angular/issues/18831
43
- if (this._platform.isBrowser || _isTestEnvironment()) {
44
- const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform="server"], ` + `.${containerClass}[platform="test"]`);
45
- // Remove any old containers from the opposite platform.
46
- // This can happen when transitioning from the server to the client.
47
- for (let i = 0; i < oppositePlatformContainers.length; i++) {
48
- oppositePlatformContainers[i].remove();
49
- }
50
- }
51
- const container = this._document.createElement('div');
52
- container.classList.add(containerClass);
53
- // A long time ago we kept adding new overlay containers whenever a new app was instantiated,
54
- // but at some point we added logic which clears the duplicate ones in order to avoid leaks.
55
- // The new logic was a little too aggressive since it was breaking some legitimate use cases.
56
- // To mitigate the problem we made it so that only containers from a different platform are
57
- // cleared, but the side-effect was that people started depending on the overly-aggressive
58
- // logic to clean up their tests for them. Until we can introduce an overlay-specific testing
59
- // module which does the cleanup, we try to detect that we're in a test environment and we
60
- // always clear the container. See #17006.
61
- // TODO(crisbeto): remove the test environment check once we have an overlay testing module.
62
- if (_isTestEnvironment()) {
63
- container.setAttribute('platform', 'test');
64
- }
65
- else if (!this._platform.isBrowser) {
66
- container.setAttribute('platform', 'server');
67
- }
68
- this._document.body.appendChild(container);
69
- this._containerElement = container;
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: OverlayContainer, deps: [{ token: DOCUMENT }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
72
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: OverlayContainer, providedIn: 'root' }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: OverlayContainer, decorators: [{
75
- type: Injectable,
76
- args: [{ providedIn: 'root' }]
77
- }], ctorParameters: () => [{ type: undefined, decorators: [{
78
- type: Inject,
79
- args: [DOCUMENT]
80
- }] }, { type: i1.Platform }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL292ZXJsYXkvb3ZlcmxheS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBRW5FLHVEQUF1RDtBQUV2RCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ29CLFFBQWEsRUFDckIsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUU3QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sZ0JBQWdCO1FBQ3hCLE1BQU0sY0FBYyxHQUFHLHVCQUF1QixDQUFDO1FBRS9DLDJFQUEyRTtRQUMzRSxxRUFBcUU7UUFDckUsa0RBQWtEO1FBQ2xELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQ3JELE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDaEUsSUFBSSxjQUFjLHVCQUF1QixHQUFHLElBQUksY0FBYyxtQkFBbUIsQ0FDbEYsQ0FBQztZQUVGLHdEQUF3RDtZQUN4RCxvRUFBb0U7WUFDcEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUMzRCwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXhDLDZGQUE2RjtRQUM3Riw0RkFBNEY7UUFDNUYsNkZBQTZGO1FBQzdGLDJGQUEyRjtRQUMzRiwwRkFBMEY7UUFDMUYsNkZBQTZGO1FBQzdGLDBGQUEwRjtRQUMxRiwwQ0FBMEM7UUFDMUMsNEZBQTRGO1FBQzVGLElBQUksa0JBQWtCLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxTQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7SUFDckMsQ0FBQztxSEF2RVUsZ0JBQWdCLGtCQUtqQixRQUFRO3lIQUxQLGdCQUFnQixjQURKLE1BQU07O2tHQUNsQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFNM0IsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm0sIF9pc1Rlc3RFbnZpcm9ubWVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcblxuLyoqIENvbnRhaW5lciBpbnNpZGUgd2hpY2ggYWxsIG92ZXJsYXlzIHdpbGwgcmVuZGVyLiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgT3ZlcmxheUNvbnRhaW5lciBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBfY29udGFpbmVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHByb3RlY3RlZCBfZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBhbnksXG4gICAgcHJvdGVjdGVkIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICkge1xuICAgIHRoaXMuX2RvY3VtZW50ID0gZG9jdW1lbnQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9jb250YWluZXJFbGVtZW50Py5yZW1vdmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBvdmVybGF5IGNvbnRhaW5lciBlbGVtZW50LiBJdCB3aWxsIGxhemlseVxuICAgKiBjcmVhdGUgdGhlIGVsZW1lbnQgdGhlIGZpcnN0IHRpbWUgaXQgaXMgY2FsbGVkIHRvIGZhY2lsaXRhdGUgdXNpbmdcbiAgICogdGhlIGNvbnRhaW5lciBpbiBub24tYnJvd3NlciBlbnZpcm9ubWVudHMuXG4gICAqIEByZXR1cm5zIHRoZSBjb250YWluZXIgZWxlbWVudFxuICAgKi9cbiAgZ2V0Q29udGFpbmVyRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCF0aGlzLl9jb250YWluZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl9jcmVhdGVDb250YWluZXIoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyRWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIG92ZXJsYXkgY29udGFpbmVyIGVsZW1lbnQsIHdoaWNoIGlzIHNpbXBseSBhIGRpdlxuICAgKiB3aXRoIHRoZSAnY2RrLW92ZXJsYXktY29udGFpbmVyJyBjbGFzcyBvbiB0aGUgZG9jdW1lbnQgYm9keS5cbiAgICovXG4gIHByb3RlY3RlZCBfY3JlYXRlQ29udGFpbmVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckNsYXNzID0gJ2Nkay1vdmVybGF5LWNvbnRhaW5lcic7XG5cbiAgICAvLyBUT0RPKGNyaXNiZXRvKTogcmVtb3ZlIHRoZSB0ZXN0aW5nIGNoZWNrIG9uY2Ugd2UgaGF2ZSBhbiBvdmVybGF5IHRlc3RpbmdcbiAgICAvLyBtb2R1bGUgb3IgQW5ndWxhciBzdGFydHMgdGVhcmluZyBkb3duIHRoZSB0ZXN0aW5nIGBOZ01vZHVsZWAuIFNlZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xODgzMVxuICAgIGlmICh0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIgfHwgX2lzVGVzdEVudmlyb25tZW50KCkpIHtcbiAgICAgIGNvbnN0IG9wcG9zaXRlUGxhdGZvcm1Db250YWluZXJzID0gdGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgYC4ke2NvbnRhaW5lckNsYXNzfVtwbGF0Zm9ybT1cInNlcnZlclwiXSwgYCArIGAuJHtjb250YWluZXJDbGFzc31bcGxhdGZvcm09XCJ0ZXN0XCJdYCxcbiAgICAgICk7XG5cbiAgICAgIC8vIFJlbW92ZSBhbnkgb2xkIGNvbnRhaW5lcnMgZnJvbSB0aGUgb3Bwb3NpdGUgcGxhdGZvcm0uXG4gICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gdGhlIHNlcnZlciB0byB0aGUgY2xpZW50LlxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHBvc2l0ZVBsYXRmb3JtQ29udGFpbmVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBvcHBvc2l0ZVBsYXRmb3JtQ29udGFpbmVyc1tpXS5yZW1vdmUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChjb250YWluZXJDbGFzcyk7XG5cbiAgICAvLyBBIGxvbmcgdGltZSBhZ28gd2Uga2VwdCBhZGRpbmcgbmV3IG92ZXJsYXkgY29udGFpbmVycyB3aGVuZXZlciBhIG5ldyBhcHAgd2FzIGluc3RhbnRpYXRlZCxcbiAgICAvLyBidXQgYXQgc29tZSBwb2ludCB3ZSBhZGRlZCBsb2dpYyB3aGljaCBjbGVhcnMgdGhlIGR1cGxpY2F0ZSBvbmVzIGluIG9yZGVyIHRvIGF2b2lkIGxlYWtzLlxuICAgIC8vIFRoZSBuZXcgbG9naWMgd2FzIGEgbGl0dGxlIHRvbyBhZ2dyZXNzaXZlIHNpbmNlIGl0IHdhcyBicmVha2luZyBzb21lIGxlZ2l0aW1hdGUgdXNlIGNhc2VzLlxuICAgIC8vIFRvIG1pdGlnYXRlIHRoZSBwcm9ibGVtIHdlIG1hZGUgaXQgc28gdGhhdCBvbmx5IGNvbnRhaW5lcnMgZnJvbSBhIGRpZmZlcmVudCBwbGF0Zm9ybSBhcmVcbiAgICAvLyBjbGVhcmVkLCBidXQgdGhlIHNpZGUtZWZmZWN0IHdhcyB0aGF0IHBlb3BsZSBzdGFydGVkIGRlcGVuZGluZyBvbiB0aGUgb3Zlcmx5LWFnZ3Jlc3NpdmVcbiAgICAvLyBsb2dpYyB0byBjbGVhbiB1cCB0aGVpciB0ZXN0cyBmb3IgdGhlbS4gVW50aWwgd2UgY2FuIGludHJvZHVjZSBhbiBvdmVybGF5LXNwZWNpZmljIHRlc3RpbmdcbiAgICAvLyBtb2R1bGUgd2hpY2ggZG9lcyB0aGUgY2xlYW51cCwgd2UgdHJ5IHRvIGRldGVjdCB0aGF0IHdlJ3JlIGluIGEgdGVzdCBlbnZpcm9ubWVudCBhbmQgd2VcbiAgICAvLyBhbHdheXMgY2xlYXIgdGhlIGNvbnRhaW5lci4gU2VlICMxNzAwNi5cbiAgICAvLyBUT0RPKGNyaXNiZXRvKTogcmVtb3ZlIHRoZSB0ZXN0IGVudmlyb25tZW50IGNoZWNrIG9uY2Ugd2UgaGF2ZSBhbiBvdmVybGF5IHRlc3RpbmcgbW9kdWxlLlxuICAgIGlmIChfaXNUZXN0RW52aXJvbm1lbnQoKSkge1xuICAgICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZSgncGxhdGZvcm0nLCAndGVzdCcpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgY29udGFpbmVyLnNldEF0dHJpYnV0ZSgncGxhdGZvcm0nLCAnc2VydmVyJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQgPSBjb250YWluZXI7XG4gIH1cbn1cbiJdfQ==