@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,317 +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 { ChangeDetectionStrategy, Component, Directive, IterableDiffers, TemplateRef, ViewContainerRef, ViewEncapsulation, Inject, Optional, Input, booleanAttribute, } from '@angular/core';
9
- import { CDK_TABLE } from './tokens';
10
- import * as i0 from "@angular/core";
11
- /**
12
- * The row template that can be used by the mat-table. Should not be used outside of the
13
- * material library.
14
- */
15
- export const CDK_ROW_TEMPLATE = `<ng-container cdkCellOutlet></ng-container>`;
16
- /**
17
- * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs
18
- * for changes and notifying the table.
19
- */
20
- export class BaseRowDef {
21
- constructor(
22
- /** @docs-private */ template, _differs) {
23
- this.template = template;
24
- this._differs = _differs;
25
- }
26
- ngOnChanges(changes) {
27
- // Create a new columns differ if one does not yet exist. Initialize it based on initial value
28
- // of the columns property or an empty array if none is provided.
29
- if (!this._columnsDiffer) {
30
- const columns = (changes['columns'] && changes['columns'].currentValue) || [];
31
- this._columnsDiffer = this._differs.find(columns).create();
32
- this._columnsDiffer.diff(columns);
33
- }
34
- }
35
- /**
36
- * Returns the difference between the current columns and the columns from the last diff, or null
37
- * if there is no difference.
38
- */
39
- getColumnsDiff() {
40
- return this._columnsDiffer.diff(this.columns);
41
- }
42
- /** Gets this row def's relevant cell template from the provided column def. */
43
- extractCellTemplate(column) {
44
- if (this instanceof CdkHeaderRowDef) {
45
- return column.headerCell.template;
46
- }
47
- if (this instanceof CdkFooterRowDef) {
48
- return column.footerCell.template;
49
- }
50
- else {
51
- return column.cell.template;
52
- }
53
- }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: BaseRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
55
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: BaseRowDef, usesOnChanges: true, ngImport: i0 }); }
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: BaseRowDef, decorators: [{
58
- type: Directive
59
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }] });
60
- /**
61
- * Header row definition for the CDK table.
62
- * Captures the header row's template and other header properties such as the columns to display.
63
- */
64
- export class CdkHeaderRowDef extends BaseRowDef {
65
- /** Whether the row is sticky. */
66
- get sticky() {
67
- return this._sticky;
68
- }
69
- set sticky(value) {
70
- if (value !== this._sticky) {
71
- this._sticky = value;
72
- this._hasStickyChanged = true;
73
- }
74
- }
75
- constructor(template, _differs, _table) {
76
- super(template, _differs);
77
- this._table = _table;
78
- this._hasStickyChanged = false;
79
- this._sticky = false;
80
- }
81
- // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.
82
- // Explicitly define it so that the method is called as part of the Angular lifecycle.
83
- ngOnChanges(changes) {
84
- super.ngOnChanges(changes);
85
- }
86
- /** Whether the sticky state has changed. */
87
- hasStickyChanged() {
88
- const hasStickyChanged = this._hasStickyChanged;
89
- this.resetStickyChanged();
90
- return hasStickyChanged;
91
- }
92
- /** Resets the sticky changed state. */
93
- resetStickyChanged() {
94
- this._hasStickyChanged = false;
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkHeaderRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
97
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0-next.2", type: CdkHeaderRowDef, isStandalone: true, selector: "[cdkHeaderRowDef]", inputs: { columns: ["cdkHeaderRowDef", "columns"], sticky: ["cdkHeaderRowDefSticky", "sticky", booleanAttribute] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkHeaderRowDef, decorators: [{
100
- type: Directive,
101
- args: [{
102
- selector: '[cdkHeaderRowDef]',
103
- inputs: [{ name: 'columns', alias: 'cdkHeaderRowDef' }],
104
- standalone: true,
105
- }]
106
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{
107
- type: Inject,
108
- args: [CDK_TABLE]
109
- }, {
110
- type: Optional
111
- }] }], propDecorators: { sticky: [{
112
- type: Input,
113
- args: [{ alias: 'cdkHeaderRowDefSticky', transform: booleanAttribute }]
114
- }] } });
115
- /**
116
- * Footer row definition for the CDK table.
117
- * Captures the footer row's template and other footer properties such as the columns to display.
118
- */
119
- export class CdkFooterRowDef extends BaseRowDef {
120
- /** Whether the row is sticky. */
121
- get sticky() {
122
- return this._sticky;
123
- }
124
- set sticky(value) {
125
- if (value !== this._sticky) {
126
- this._sticky = value;
127
- this._hasStickyChanged = true;
128
- }
129
- }
130
- constructor(template, _differs, _table) {
131
- super(template, _differs);
132
- this._table = _table;
133
- this._hasStickyChanged = false;
134
- this._sticky = false;
135
- }
136
- // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.
137
- // Explicitly define it so that the method is called as part of the Angular lifecycle.
138
- ngOnChanges(changes) {
139
- super.ngOnChanges(changes);
140
- }
141
- /** Whether the sticky state has changed. */
142
- hasStickyChanged() {
143
- const hasStickyChanged = this._hasStickyChanged;
144
- this.resetStickyChanged();
145
- return hasStickyChanged;
146
- }
147
- /** Resets the sticky changed state. */
148
- resetStickyChanged() {
149
- this._hasStickyChanged = false;
150
- }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkFooterRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
152
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0-next.2", type: CdkFooterRowDef, isStandalone: true, selector: "[cdkFooterRowDef]", inputs: { columns: ["cdkFooterRowDef", "columns"], sticky: ["cdkFooterRowDefSticky", "sticky", booleanAttribute] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
153
- }
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkFooterRowDef, decorators: [{
155
- type: Directive,
156
- args: [{
157
- selector: '[cdkFooterRowDef]',
158
- inputs: [{ name: 'columns', alias: 'cdkFooterRowDef' }],
159
- standalone: true,
160
- }]
161
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{
162
- type: Inject,
163
- args: [CDK_TABLE]
164
- }, {
165
- type: Optional
166
- }] }], propDecorators: { sticky: [{
167
- type: Input,
168
- args: [{ alias: 'cdkFooterRowDefSticky', transform: booleanAttribute }]
169
- }] } });
170
- /**
171
- * Data row definition for the CDK table.
172
- * Captures the header row's template and other row properties such as the columns to display and
173
- * a when predicate that describes when this row should be used.
174
- */
175
- export class CdkRowDef extends BaseRowDef {
176
- // TODO(andrewseguin): Add an input for providing a switch function to determine
177
- // if this template should be used.
178
- constructor(template, _differs, _table) {
179
- super(template, _differs);
180
- this._table = _table;
181
- }
182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkRowDef, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
183
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkRowDef, isStandalone: true, selector: "[cdkRowDef]", inputs: { columns: ["cdkRowDefColumns", "columns"], when: ["cdkRowDefWhen", "when"] }, usesInheritance: true, ngImport: i0 }); }
184
- }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkRowDef, decorators: [{
186
- type: Directive,
187
- args: [{
188
- selector: '[cdkRowDef]',
189
- inputs: [
190
- { name: 'columns', alias: 'cdkRowDefColumns' },
191
- { name: 'when', alias: 'cdkRowDefWhen' },
192
- ],
193
- standalone: true,
194
- }]
195
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{
196
- type: Inject,
197
- args: [CDK_TABLE]
198
- }, {
199
- type: Optional
200
- }] }] });
201
- /**
202
- * Outlet for rendering cells inside of a row or header row.
203
- * @docs-private
204
- */
205
- export class CdkCellOutlet {
206
- /**
207
- * Static property containing the latest constructed instance of this class.
208
- * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using
209
- * createEmbeddedView. After one of these components are created, this property will provide
210
- * a handle to provide that component's cells and context. After init, the CdkCellOutlet will
211
- * construct the cells with the provided context.
212
- */
213
- static { this.mostRecentCellOutlet = null; }
214
- constructor(_viewContainer) {
215
- this._viewContainer = _viewContainer;
216
- CdkCellOutlet.mostRecentCellOutlet = this;
217
- }
218
- ngOnDestroy() {
219
- // If this was the last outlet being rendered in the view, remove the reference
220
- // from the static property after it has been destroyed to avoid leaking memory.
221
- if (CdkCellOutlet.mostRecentCellOutlet === this) {
222
- CdkCellOutlet.mostRecentCellOutlet = null;
223
- }
224
- }
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkCellOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
226
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkCellOutlet, isStandalone: true, selector: "[cdkCellOutlet]", ngImport: i0 }); }
227
- }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkCellOutlet, decorators: [{
229
- type: Directive,
230
- args: [{
231
- selector: '[cdkCellOutlet]',
232
- standalone: true,
233
- }]
234
- }], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
235
- /** Header template container that contains the cell outlet. Adds the right class and role. */
236
- export class CdkHeaderRow {
237
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkHeaderRow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
238
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkHeaderRow, isStandalone: true, selector: "cdk-header-row, tr[cdk-header-row]", host: { attributes: { "role": "row" }, classAttribute: "cdk-header-row" }, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
239
- }
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkHeaderRow, decorators: [{
241
- type: Component,
242
- args: [{
243
- selector: 'cdk-header-row, tr[cdk-header-row]',
244
- template: CDK_ROW_TEMPLATE,
245
- host: {
246
- 'class': 'cdk-header-row',
247
- 'role': 'row',
248
- },
249
- // See note on CdkTable for explanation on why this uses the default change detection strategy.
250
- // tslint:disable-next-line:validate-decorators
251
- changeDetection: ChangeDetectionStrategy.Default,
252
- encapsulation: ViewEncapsulation.None,
253
- standalone: true,
254
- imports: [CdkCellOutlet],
255
- }]
256
- }] });
257
- /** Footer template container that contains the cell outlet. Adds the right class and role. */
258
- export class CdkFooterRow {
259
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkFooterRow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
260
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkFooterRow, isStandalone: true, selector: "cdk-footer-row, tr[cdk-footer-row]", host: { attributes: { "role": "row" }, classAttribute: "cdk-footer-row" }, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
261
- }
262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkFooterRow, decorators: [{
263
- type: Component,
264
- args: [{
265
- selector: 'cdk-footer-row, tr[cdk-footer-row]',
266
- template: CDK_ROW_TEMPLATE,
267
- host: {
268
- 'class': 'cdk-footer-row',
269
- 'role': 'row',
270
- },
271
- // See note on CdkTable for explanation on why this uses the default change detection strategy.
272
- // tslint:disable-next-line:validate-decorators
273
- changeDetection: ChangeDetectionStrategy.Default,
274
- encapsulation: ViewEncapsulation.None,
275
- standalone: true,
276
- imports: [CdkCellOutlet],
277
- }]
278
- }] });
279
- /** Data row template container that contains the cell outlet. Adds the right class and role. */
280
- export class CdkRow {
281
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkRow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
282
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkRow, isStandalone: true, selector: "cdk-row, tr[cdk-row]", host: { attributes: { "role": "row" }, classAttribute: "cdk-row" }, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "directive", type: CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
283
- }
284
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkRow, decorators: [{
285
- type: Component,
286
- args: [{
287
- selector: 'cdk-row, tr[cdk-row]',
288
- template: CDK_ROW_TEMPLATE,
289
- host: {
290
- 'class': 'cdk-row',
291
- 'role': 'row',
292
- },
293
- // See note on CdkTable for explanation on why this uses the default change detection strategy.
294
- // tslint:disable-next-line:validate-decorators
295
- changeDetection: ChangeDetectionStrategy.Default,
296
- encapsulation: ViewEncapsulation.None,
297
- standalone: true,
298
- imports: [CdkCellOutlet],
299
- }]
300
- }] });
301
- /** Row that can be used to display a message when no data is shown in the table. */
302
- export class CdkNoDataRow {
303
- constructor(templateRef) {
304
- this.templateRef = templateRef;
305
- this._contentClassName = 'cdk-no-data-row';
306
- }
307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkNoDataRow, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
308
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkNoDataRow, isStandalone: true, selector: "ng-template[cdkNoDataRow]", ngImport: i0 }); }
309
- }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkNoDataRow, decorators: [{
311
- type: Directive,
312
- args: [{
313
- selector: 'ng-template[cdkNoDataRow]',
314
- standalone: true,
315
- }]
316
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay90YWJsZS9yb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUdULGVBQWUsRUFJZixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQzs7QUFFbkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsNkNBQTZDLENBQUM7QUFFOUU7OztHQUdHO0FBRUgsTUFBTSxPQUFnQixVQUFVO0lBTzlCO0lBQ0Usb0JBQW9CLENBQVEsUUFBMEIsRUFDNUMsUUFBeUI7UUFEUCxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUNsQyxDQUFDO0lBRUosV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLDhGQUE4RjtRQUM5RixpRUFBaUU7UUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjO1FBQ1os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QyxJQUFJO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6Qjs7QUFHRCxvRkFBb0Y7QUFLcEYsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBRGhELHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQ2EsQ0FBQztxSEFGekMsWUFBWTt5R0FBWixZQUFZOztrR0FBWixZQUFZO2tCQUp4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgSXRlcmFibGVEaWZmZXIsXG4gIEl0ZXJhYmxlRGlmZmVycyxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5qZWN0LFxuICBPcHRpb25hbCxcbiAgSW5wdXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDYW5TdGlja30gZnJvbSAnLi9jYW4tc3RpY2snO1xuaW1wb3J0IHtDZGtDZWxsRGVmLCBDZGtDb2x1bW5EZWZ9IGZyb20gJy4vY2VsbCc7XG5pbXBvcnQge0NES19UQUJMRX0gZnJvbSAnLi90b2tlbnMnO1xuXG4vKipcbiAqIFRoZSByb3cgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXNlZCBieSB0aGUgbWF0LXRhYmxlLiBTaG91bGQgbm90IGJlIHVzZWQgb3V0c2lkZSBvZiB0aGVcbiAqIG1hdGVyaWFsIGxpYnJhcnkuXG4gKi9cbmV4cG9ydCBjb25zdCBDREtfUk9XX1RFTVBMQVRFID0gYDxuZy1jb250YWluZXIgY2RrQ2VsbE91dGxldD48L25nLWNvbnRhaW5lcj5gO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIHRoZSBDZGtIZWFkZXJSb3dEZWYgYW5kIENka1Jvd0RlZiB0aGF0IGhhbmRsZXMgY2hlY2tpbmcgdGhlaXIgY29sdW1ucyBpbnB1dHNcbiAqIGZvciBjaGFuZ2VzIGFuZCBub3RpZnlpbmcgdGhlIHRhYmxlLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUm93RGVmIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgLyoqIFRoZSBjb2x1bW5zIHRvIGJlIGRpc3BsYXllZCBvbiB0aGlzIHJvdy4gKi9cbiAgY29sdW1uczogSXRlcmFibGU8c3RyaW5nPjtcblxuICAvKiogRGlmZmVyIHVzZWQgdG8gY2hlY2sgaWYgYW55IGNoYW5nZXMgd2VyZSBtYWRlIHRvIHRoZSBjb2x1bW5zLiAqL1xuICBwcm90ZWN0ZWQgX2NvbHVtbnNEaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqIEBkb2NzLXByaXZhdGUgKi8gcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByb3RlY3RlZCBfZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBhIG5ldyBjb2x1bW5zIGRpZmZlciBpZiBvbmUgZG9lcyBub3QgeWV0IGV4aXN0LiBJbml0aWFsaXplIGl0IGJhc2VkIG9uIGluaXRpYWwgdmFsdWVcbiAgICAvLyBvZiB0aGUgY29sdW1ucyBwcm9wZXJ0eSBvciBhbiBlbXB0eSBhcnJheSBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgIGlmICghdGhpcy5fY29sdW1uc0RpZmZlcikge1xuICAgICAgY29uc3QgY29sdW1ucyA9IChjaGFuZ2VzWydjb2x1bW5zJ10gJiYgY2hhbmdlc1snY29sdW1ucyddLmN1cnJlbnRWYWx1ZSkgfHwgW107XG4gICAgICB0aGlzLl9jb2x1bW5zRGlmZmVyID0gdGhpcy5fZGlmZmVycy5maW5kKGNvbHVtbnMpLmNyZWF0ZSgpO1xuICAgICAgdGhpcy5fY29sdW1uc0RpZmZlci5kaWZmKGNvbHVtbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGN1cnJlbnQgY29sdW1ucyBhbmQgdGhlIGNvbHVtbnMgZnJvbSB0aGUgbGFzdCBkaWZmLCBvciBudWxsXG4gICAqIGlmIHRoZXJlIGlzIG5vIGRpZmZlcmVuY2UuXG4gICAqL1xuICBnZXRDb2x1bW5zRGlmZigpOiBJdGVyYWJsZUNoYW5nZXM8YW55PiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zRGlmZmVyLmRpZmYodGhpcy5jb2x1bW5zKTtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoaXMgcm93IGRlZidzIHJlbGV2YW50IGNlbGwgdGVtcGxhdGUgZnJvbSB0aGUgcHJvdmlkZWQgY29sdW1uIGRlZi4gKi9cbiAgZXh0cmFjdENlbGxUZW1wbGF0ZShjb2x1bW46IENka0NvbHVtbkRlZik6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ2RrSGVhZGVyUm93RGVmKSB7XG4gICAgICByZXR1cm4gY29sdW1uLmhlYWRlckNlbGwudGVtcGxhdGU7XG4gICAgfVxuICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ2RrRm9vdGVyUm93RGVmKSB7XG4gICAgICByZXR1cm4gY29sdW1uLmZvb3RlckNlbGwudGVtcGxhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjb2x1bW4uY2VsbC50ZW1wbGF0ZTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBIZWFkZXIgcm93IGRlZmluaXRpb24gZm9yIHRoZSBDREsgdGFibGUuXG4gKiBDYXB0dXJlcyB0aGUgaGVhZGVyIHJvdydzIHRlbXBsYXRlIGFuZCBvdGhlciBoZWFkZXIgcHJvcGVydGllcyBzdWNoIGFzIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtIZWFkZXJSb3dEZWZdJyxcbiAgaW5wdXRzOiBbe25hbWU6ICdjb2x1bW5zJywgYWxpYXM6ICdjZGtIZWFkZXJSb3dEZWYnfV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENka0hlYWRlclJvd0RlZiBleHRlbmRzIEJhc2VSb3dEZWYgaW1wbGVtZW50cyBDYW5TdGljaywgT25DaGFuZ2VzIHtcbiAgcHJpdmF0ZSBfaGFzU3RpY2t5Q2hhbmdlZCA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSByb3cgaXMgc3RpY2t5LiAqL1xuICBASW5wdXQoe2FsaWFzOiAnY2RrSGVhZGVyUm93RGVmU3RpY2t5JywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSlcbiAgZ2V0IHN0aWNreSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RpY2t5O1xuICB9XG4gIHNldCBzdGlja3kodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3N0aWNreSkge1xuICAgICAgdGhpcy5fc3RpY2t5ID0gdmFsdWU7XG4gICAgICB0aGlzLl9oYXNTdGlja3lDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc3RpY2t5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgX2RpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICBASW5qZWN0KENES19UQUJMRSkgQE9wdGlvbmFsKCkgcHVibGljIF90YWJsZT86IGFueSxcbiAgKSB7XG4gICAgc3VwZXIodGVtcGxhdGUsIF9kaWZmZXJzKTtcbiAgfVxuXG4gIC8vIFByZXJlbmRlciBmYWlscyB0byByZWNvZ25pemUgdGhhdCBuZ09uQ2hhbmdlcyBpbiBhIHBhcnQgb2YgdGhpcyBjbGFzcyB0aHJvdWdoIGluaGVyaXRhbmNlLlxuICAvLyBFeHBsaWNpdGx5IGRlZmluZSBpdCBzbyB0aGF0IHRoZSBtZXRob2QgaXMgY2FsbGVkIGFzIHBhcnQgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICBvdmVycmlkZSBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgc3RpY2t5IHN0YXRlIGhhcyBjaGFuZ2VkLiAqL1xuICBoYXNTdGlja3lDaGFuZ2VkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhhc1N0aWNreUNoYW5nZWQgPSB0aGlzLl9oYXNTdGlja3lDaGFuZ2VkO1xuICAgIHRoaXMucmVzZXRTdGlja3lDaGFuZ2VkKCk7XG4gICAgcmV0dXJuIGhhc1N0aWNreUNoYW5nZWQ7XG4gIH1cblxuICAvKiogUmVzZXRzIHRoZSBzdGlja3kgY2hhbmdlZCBzdGF0ZS4gKi9cbiAgcmVzZXRTdGlja3lDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuX2hhc1N0aWNreUNoYW5nZWQgPSBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEZvb3RlciByb3cgZGVmaW5pdGlvbiBmb3IgdGhlIENESyB0YWJsZS5cbiAqIENhcHR1cmVzIHRoZSBmb290ZXIgcm93J3MgdGVtcGxhdGUgYW5kIG90aGVyIGZvb3RlciBwcm9wZXJ0aWVzIHN1Y2ggYXMgdGhlIGNvbHVtbnMgdG8gZGlzcGxheS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nka0Zvb3RlclJvd0RlZl0nLFxuICBpbnB1dHM6IFt7bmFtZTogJ2NvbHVtbnMnLCBhbGlhczogJ2Nka0Zvb3RlclJvd0RlZid9XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrRm9vdGVyUm93RGVmIGV4dGVuZHMgQmFzZVJvd0RlZiBpbXBsZW1lbnRzIENhblN0aWNrLCBPbkNoYW5nZXMge1xuICBwcml2YXRlIF9oYXNTdGlja3lDaGFuZ2VkID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHJvdyBpcyBzdGlja3kuICovXG4gIEBJbnB1dCh7YWxpYXM6ICdjZGtGb290ZXJSb3dEZWZTdGlja3knLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KVxuICBnZXQgc3RpY2t5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGlja3k7XG4gIH1cbiAgc2V0IHN0aWNreSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fc3RpY2t5KSB7XG4gICAgICB0aGlzLl9zdGlja3kgPSB2YWx1ZTtcbiAgICAgIHRoaXMuX2hhc1N0aWNreUNoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9zdGlja3kgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBfZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgIEBJbmplY3QoQ0RLX1RBQkxFKSBAT3B0aW9uYWwoKSBwdWJsaWMgX3RhYmxlPzogYW55LFxuICApIHtcbiAgICBzdXBlcih0ZW1wbGF0ZSwgX2RpZmZlcnMpO1xuICB9XG5cbiAgLy8gUHJlcmVuZGVyIGZhaWxzIHRvIHJlY29nbml6ZSB0aGF0IG5nT25DaGFuZ2VzIGluIGEgcGFydCBvZiB0aGlzIGNsYXNzIHRocm91Z2ggaW5oZXJpdGFuY2UuXG4gIC8vIEV4cGxpY2l0bHkgZGVmaW5lIGl0IHNvIHRoYXQgdGhlIG1ldGhvZCBpcyBjYWxsZWQgYXMgcGFydCBvZiB0aGUgQW5ndWxhciBsaWZlY3ljbGUuXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBzdGlja3kgc3RhdGUgaGFzIGNoYW5nZWQuICovXG4gIGhhc1N0aWNreUNoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaGFzU3RpY2t5Q2hhbmdlZCA9IHRoaXMuX2hhc1N0aWNreUNoYW5nZWQ7XG4gICAgdGhpcy5yZXNldFN0aWNreUNoYW5nZWQoKTtcbiAgICByZXR1cm4gaGFzU3RpY2t5Q2hhbmdlZDtcbiAgfVxuXG4gIC8qKiBSZXNldHMgdGhlIHN0aWNreSBjaGFuZ2VkIHN0YXRlLiAqL1xuICByZXNldFN0aWNreUNoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5faGFzU3RpY2t5Q2hhbmdlZCA9IGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogRGF0YSByb3cgZGVmaW5pdGlvbiBmb3IgdGhlIENESyB0YWJsZS5cbiAqIENhcHR1cmVzIHRoZSBoZWFkZXIgcm93J3MgdGVtcGxhdGUgYW5kIG90aGVyIHJvdyBwcm9wZXJ0aWVzIHN1Y2ggYXMgdGhlIGNvbHVtbnMgdG8gZGlzcGxheSBhbmRcbiAqIGEgd2hlbiBwcmVkaWNhdGUgdGhhdCBkZXNjcmliZXMgd2hlbiB0aGlzIHJvdyBzaG91bGQgYmUgdXNlZC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nka1Jvd0RlZl0nLFxuICBpbnB1dHM6IFtcbiAgICB7bmFtZTogJ2NvbHVtbnMnLCBhbGlhczogJ2Nka1Jvd0RlZkNvbHVtbnMnfSxcbiAgICB7bmFtZTogJ3doZW4nLCBhbGlhczogJ2Nka1Jvd0RlZldoZW4nfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrUm93RGVmPFQ+IGV4dGVuZHMgQmFzZVJvd0RlZiB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IHNob3VsZCByZXR1cm4gdHJ1ZSBpZiB0aGlzIHJvdyB0ZW1wbGF0ZSBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHByb3ZpZGVkIGluZGV4XG4gICAqIGFuZCByb3cgZGF0YS4gSWYgbGVmdCB1bmRlZmluZWQsIHRoaXMgcm93IHdpbGwgYmUgY29uc2lkZXJlZCB0aGUgZGVmYXVsdCByb3cgdGVtcGxhdGUgdG8gdXNlXG4gICAqIHdoZW4gbm8gb3RoZXIgd2hlbiBmdW5jdGlvbnMgcmV0dXJuIHRydWUgZm9yIHRoZSBkYXRhLlxuICAgKiBGb3IgZXZlcnkgcm93LCB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSB3aGVuIGZ1bmN0aW9uIHRoYXQgcGFzc2VzIG9yIGFuIHVuZGVmaW5lZCB0byBkZWZhdWx0LlxuICAgKi9cbiAgd2hlbjogKGluZGV4OiBudW1iZXIsIHJvd0RhdGE6IFQpID0+IGJvb2xlYW47XG5cbiAgLy8gVE9ETyhhbmRyZXdzZWd1aW4pOiBBZGQgYW4gaW5wdXQgZm9yIHByb3ZpZGluZyBhIHN3aXRjaCBmdW5jdGlvbiB0byBkZXRlcm1pbmVcbiAgLy8gICBpZiB0aGlzIHRlbXBsYXRlIHNob3VsZCBiZSB1c2VkLlxuICBjb25zdHJ1Y3RvcihcbiAgICB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcbiAgICBfZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLFxuICAgIEBJbmplY3QoQ0RLX1RBQkxFKSBAT3B0aW9uYWwoKSBwdWJsaWMgX3RhYmxlPzogYW55LFxuICApIHtcbiAgICBzdXBlcih0ZW1wbGF0ZSwgX2RpZmZlcnMpO1xuICB9XG59XG5cbi8qKiBDb250ZXh0IHByb3ZpZGVkIHRvIHRoZSByb3cgY2VsbHMgd2hlbiBgbXVsdGlUZW1wbGF0ZURhdGFSb3dzYCBpcyBmYWxzZSAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtDZWxsT3V0bGV0Um93Q29udGV4dDxUPiB7XG4gIC8qKiBEYXRhIGZvciB0aGUgcm93IHRoYXQgdGhpcyBjZWxsIGlzIGxvY2F0ZWQgd2l0aGluLiAqL1xuICAkaW1wbGljaXQ/OiBUO1xuXG4gIC8qKiBJbmRleCBvZiB0aGUgZGF0YSBvYmplY3QgaW4gdGhlIHByb3ZpZGVkIGRhdGEgYXJyYXkuICovXG4gIGluZGV4PzogbnVtYmVyO1xuXG4gIC8qKiBMZW5ndGggb2YgdGhlIG51bWJlciBvZiB0b3RhbCByb3dzLiAqL1xuICBjb3VudD86IG51bWJlcjtcblxuICAvKiogVHJ1ZSBpZiB0aGlzIGNlbGwgaXMgY29udGFpbmVkIGluIHRoZSBmaXJzdCByb3cuICovXG4gIGZpcnN0PzogYm9vbGVhbjtcblxuICAvKiogVHJ1ZSBpZiB0aGlzIGNlbGwgaXMgY29udGFpbmVkIGluIHRoZSBsYXN0IHJvdy4gKi9cbiAgbGFzdD86IGJvb2xlYW47XG5cbiAgLyoqIFRydWUgaWYgdGhpcyBjZWxsIGlzIGNvbnRhaW5lZCBpbiBhIHJvdyB3aXRoIGFuIGV2ZW4tbnVtYmVyZWQgaW5kZXguICovXG4gIGV2ZW4/OiBib29sZWFuO1xuXG4gIC8qKiBUcnVlIGlmIHRoaXMgY2VsbCBpcyBjb250YWluZWQgaW4gYSByb3cgd2l0aCBhbiBvZGQtbnVtYmVyZWQgaW5kZXguICovXG4gIG9kZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udGV4dCBwcm92aWRlZCB0byB0aGUgcm93IGNlbGxzIHdoZW4gYG11bHRpVGVtcGxhdGVEYXRhUm93c2AgaXMgdHJ1ZS4gVGhpcyBjb250ZXh0IGlzIHRoZSBzYW1lXG4gKiBhcyBDZGtDZWxsT3V0bGV0Um93Q29udGV4dCBleGNlcHQgdGhhdCB0aGUgc2luZ2xlIGBpbmRleGAgdmFsdWUgaXMgcmVwbGFjZWQgYnkgYGRhdGFJbmRleGAgYW5kXG4gKiBgcmVuZGVySW5kZXhgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0NlbGxPdXRsZXRNdWx0aVJvd0NvbnRleHQ8VD4ge1xuICAvKiogRGF0YSBmb3IgdGhlIHJvdyB0aGF0IHRoaXMgY2VsbCBpcyBsb2NhdGVkIHdpdGhpbi4gKi9cbiAgJGltcGxpY2l0PzogVDtcblxuICAvKiogSW5kZXggb2YgdGhlIGRhdGEgb2JqZWN0IGluIHRoZSBwcm92aWRlZCBkYXRhIGFycmF5LiAqL1xuICBkYXRhSW5kZXg/OiBudW1iZXI7XG5cbiAgLyoqIEluZGV4IGxvY2F0aW9uIG9mIHRoZSByZW5kZXJlZCByb3cgdGhhdCB0aGlzIGNlbGwgaXMgbG9jYXRlZCB3aXRoaW4uICovXG4gIHJlbmRlckluZGV4PzogbnVtYmVyO1xuXG4gIC8qKiBMZW5ndGggb2YgdGhlIG51bWJlciBvZiB0b3RhbCByb3dzLiAqL1xuICBjb3VudD86IG51bWJlcjtcblxuICAvKiogVHJ1ZSBpZiB0aGlzIGNlbGwgaXMgY29udGFpbmVkIGluIHRoZSBmaXJzdCByb3cuICovXG4gIGZpcnN0PzogYm9vbGVhbjtcblxuICAvKiogVHJ1ZSBpZiB0aGlzIGNlbGwgaXMgY29udGFpbmVkIGluIHRoZSBsYXN0IHJvdy4gKi9cbiAgbGFzdD86IGJvb2xlYW47XG5cbiAgLyoqIFRydWUgaWYgdGhpcyBjZWxsIGlzIGNvbnRhaW5lZCBpbiBhIHJvdyB3aXRoIGFuIGV2ZW4tbnVtYmVyZWQgaW5kZXguICovXG4gIGV2ZW4/OiBib29sZWFuO1xuXG4gIC8qKiBUcnVlIGlmIHRoaXMgY2VsbCBpcyBjb250YWluZWQgaW4gYSByb3cgd2l0aCBhbiBvZGQtbnVtYmVyZWQgaW5kZXguICovXG4gIG9kZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3V0bGV0IGZvciByZW5kZXJpbmcgY2VsbHMgaW5zaWRlIG9mIGEgcm93IG9yIGhlYWRlciByb3cuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtDZWxsT3V0bGV0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENka0NlbGxPdXRsZXQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAvKiogVGhlIG9yZGVyZWQgbGlzdCBvZiBjZWxscyB0byByZW5kZXIgd2l0aGluIHRoaXMgb3V0bGV0J3MgdmlldyBjb250YWluZXIgKi9cbiAgY2VsbHM6IENka0NlbGxEZWZbXTtcblxuICAvKiogVGhlIGRhdGEgY29udGV4dCB0byBiZSBwcm92aWRlZCB0byBlYWNoIGNlbGwgKi9cbiAgY29udGV4dDogYW55O1xuXG4gIC8qKlxuICAgKiBTdGF0aWMgcHJvcGVydHkgY29udGFpbmluZyB0aGUgbGF0ZXN0IGNvbnN0cnVjdGVkIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuXG4gICAqIFVzZWQgYnkgdGhlIENESyB0YWJsZSB3aGVuIGVhY2ggQ2RrSGVhZGVyUm93IGFuZCBDZGtSb3cgY29tcG9uZW50IGlzIGNyZWF0ZWQgdXNpbmdcbiAgICogY3JlYXRlRW1iZWRkZWRWaWV3LiBBZnRlciBvbmUgb2YgdGhlc2UgY29tcG9uZW50cyBhcmUgY3JlYXRlZCwgdGhpcyBwcm9wZXJ0eSB3aWxsIHByb3ZpZGVcbiAgICogYSBoYW5kbGUgdG8gcHJvdmlkZSB0aGF0IGNvbXBvbmVudCdzIGNlbGxzIGFuZCBjb250ZXh0LiBBZnRlciBpbml0LCB0aGUgQ2RrQ2VsbE91dGxldCB3aWxsXG4gICAqIGNvbnN0cnVjdCB0aGUgY2VsbHMgd2l0aCB0aGUgcHJvdmlkZWQgY29udGV4dC5cbiAgICovXG4gIHN0YXRpYyBtb3N0UmVjZW50Q2VsbE91dGxldDogQ2RrQ2VsbE91dGxldCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICAgIENka0NlbGxPdXRsZXQubW9zdFJlY2VudENlbGxPdXRsZXQgPSB0aGlzO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gSWYgdGhpcyB3YXMgdGhlIGxhc3Qgb3V0bGV0IGJlaW5nIHJlbmRlcmVkIGluIHRoZSB2aWV3LCByZW1vdmUgdGhlIHJlZmVyZW5jZVxuICAgIC8vIGZyb20gdGhlIHN0YXRpYyBwcm9wZXJ0eSBhZnRlciBpdCBoYXMgYmVlbiBkZXN0cm95ZWQgdG8gYXZvaWQgbGVha2luZyBtZW1vcnkuXG4gICAgaWYgKENka0NlbGxPdXRsZXQubW9zdFJlY2VudENlbGxPdXRsZXQgPT09IHRoaXMpIHtcbiAgICAgIENka0NlbGxPdXRsZXQubW9zdFJlY2VudENlbGxPdXRsZXQgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG4vKiogSGVhZGVyIHRlbXBsYXRlIGNvbnRhaW5lciB0aGF0IGNvbnRhaW5zIHRoZSBjZWxsIG91dGxldC4gQWRkcyB0aGUgcmlnaHQgY2xhc3MgYW5kIHJvbGUuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZGstaGVhZGVyLXJvdywgdHJbY2RrLWhlYWRlci1yb3ddJyxcbiAgdGVtcGxhdGU6IENES19ST1dfVEVNUExBVEUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnY2RrLWhlYWRlci1yb3cnLFxuICAgICdyb2xlJzogJ3JvdycsXG4gIH0sXG4gIC8vIFNlZSBub3RlIG9uIENka1RhYmxlIGZvciBleHBsYW5hdGlvbiBvbiB3aHkgdGhpcyB1c2VzIHRoZSBkZWZhdWx0IGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YWxpZGF0ZS1kZWNvcmF0b3JzXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0Nka0NlbGxPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBDZGtIZWFkZXJSb3cge31cblxuLyoqIEZvb3RlciB0ZW1wbGF0ZSBjb250YWluZXIgdGhhdCBjb250YWlucyB0aGUgY2VsbCBvdXRsZXQuIEFkZHMgdGhlIHJpZ2h0IGNsYXNzIGFuZCByb2xlLiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2RrLWZvb3Rlci1yb3csIHRyW2Nkay1mb290ZXItcm93XScsXG4gIHRlbXBsYXRlOiBDREtfUk9XX1RFTVBMQVRFLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2Nkay1mb290ZXItcm93JyxcbiAgICAncm9sZSc6ICdyb3cnLFxuICB9LFxuICAvLyBTZWUgbm90ZSBvbiBDZGtUYWJsZSBmb3IgZXhwbGFuYXRpb24gb24gd2h5IHRoaXMgdXNlcyB0aGUgZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5LlxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFsaWRhdGUtZGVjb3JhdG9yc1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDZGtDZWxsT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrRm9vdGVyUm93IHt9XG5cbi8qKiBEYXRhIHJvdyB0ZW1wbGF0ZSBjb250YWluZXIgdGhhdCBjb250YWlucyB0aGUgY2VsbCBvdXRsZXQuIEFkZHMgdGhlIHJpZ2h0IGNsYXNzIGFuZCByb2xlLiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2RrLXJvdywgdHJbY2RrLXJvd10nLFxuICB0ZW1wbGF0ZTogQ0RLX1JPV19URU1QTEFURSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdjZGstcm93JyxcbiAgICAncm9sZSc6ICdyb3cnLFxuICB9LFxuICAvLyBTZWUgbm90ZSBvbiBDZGtUYWJsZSBmb3IgZXhwbGFuYXRpb24gb24gd2h5IHRoaXMgdXNlcyB0aGUgZGVmYXVsdCBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5LlxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFsaWRhdGUtZGVjb3JhdG9yc1xuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDZGtDZWxsT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrUm93IHt9XG5cbi8qKiBSb3cgdGhhdCBjYW4gYmUgdXNlZCB0byBkaXNwbGF5IGEgbWVzc2FnZSB3aGVuIG5vIGRhdGEgaXMgc2hvd24gaW4gdGhlIHRhYmxlLiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbY2RrTm9EYXRhUm93XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENka05vRGF0YVJvdyB7XG4gIF9jb250ZW50Q2xhc3NOYW1lID0gJ2Nkay1uby1kYXRhLXJvdyc7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cbiJdfQ==
@@ -1,11 +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 { InjectionToken } from '@angular/core';
9
- /** The injection token used to specify the StickyPositioningListener. */
10
- export const STICKY_POSITIONING_LISTENER = new InjectionToken('CDK_SPL');
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LXBvc2l0aW9uLWxpc3RlbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay90YWJsZS9zdGlja3ktcG9zaXRpb24tbGlzdGVuZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3Qyx5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQTRCLFNBQVMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogVGhlIGluamVjdGlvbiB0b2tlbiB1c2VkIHRvIHNwZWNpZnkgdGhlIFN0aWNreVBvc2l0aW9uaW5nTGlzdGVuZXIuICovXG5leHBvcnQgY29uc3QgU1RJQ0tZX1BPU0lUSU9OSU5HX0xJU1RFTkVSID0gbmV3IEluamVjdGlvblRva2VuPFN0aWNreVBvc2l0aW9uaW5nTGlzdGVuZXI+KCdDREtfU1BMJyk7XG5cbmV4cG9ydCB0eXBlIFN0aWNreVNpemUgPSBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuZXhwb3J0IHR5cGUgU3RpY2t5T2Zmc2V0ID0gbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBTdGlja3lVcGRhdGUge1xuICBlbGVtZW50cz86IHJlYWRvbmx5IChIVE1MRWxlbWVudFtdIHwgdW5kZWZpbmVkKVtdO1xuICBvZmZzZXRzPzogU3RpY2t5T2Zmc2V0W107XG4gIHNpemVzOiBTdGlja3lTaXplW107XG59XG5cbi8qKlxuICogSWYgcHJvdmlkZWQsIENka1RhYmxlIHdpbGwgY2FsbCB0aGUgbWV0aG9kcyBiZWxvdyB3aGVuIGl0IHVwZGF0ZXMgdGhlIHNpemUvXG4gKiBwb3NpdGlvbi9ldGMgb2YgaXRzIHN0aWNreSByb3dzIGFuZCBjb2x1bW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0aWNreVBvc2l0aW9uaW5nTGlzdGVuZXIge1xuICAvKiogQ2FsbGVkIHdoZW4gQ2RrVGFibGUgdXBkYXRlcyBpdHMgc3RpY2t5IHN0YXJ0IGNvbHVtbnMuICovXG4gIHN0aWNreUNvbHVtbnNVcGRhdGVkKHVwZGF0ZTogU3RpY2t5VXBkYXRlKTogdm9pZDtcblxuICAvKiogQ2FsbGVkIHdoZW4gQ2RrVGFibGUgdXBkYXRlcyBpdHMgc3RpY2t5IGVuZCBjb2x1bW5zLiAqL1xuICBzdGlja3lFbmRDb2x1bW5zVXBkYXRlZCh1cGRhdGU6IFN0aWNreVVwZGF0ZSk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIENka1RhYmxlIHVwZGF0ZXMgaXRzIHN0aWNreSBoZWFkZXIgcm93cy4gKi9cbiAgc3RpY2t5SGVhZGVyUm93c1VwZGF0ZWQodXBkYXRlOiBTdGlja3lVcGRhdGUpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBDZGtUYWJsZSB1cGRhdGVzIGl0cyBzdGlja3kgZm9vdGVyIHJvd3MuICovXG4gIHN0aWNreUZvb3RlclJvd3NVcGRhdGVkKHVwZGF0ZTogU3RpY2t5VXBkYXRlKTogdm9pZDtcbn1cbiJdfQ==