@angular/cdk 13.0.0-next.7 → 13.0.0-rc.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 (855) hide show
  1. package/a11y/a11y-module.d.ts +9 -7
  2. package/a11y/a11y_public_index.d.ts +4 -0
  3. package/a11y/aria-describer/aria-describer.d.ts +3 -7
  4. package/a11y/focus-monitor/focus-monitor.d.ts +5 -0
  5. package/a11y/focus-trap/configurable-focus-trap-factory.d.ts +3 -7
  6. package/a11y/focus-trap/focus-trap-manager.d.ts +3 -7
  7. package/a11y/focus-trap/focus-trap.d.ts +5 -0
  8. package/a11y/high-contrast-mode/high-contrast-mode-detector.d.ts +3 -0
  9. package/a11y/index.d.ts +5 -2
  10. package/a11y/input-modality/input-modality-detector.d.ts +3 -7
  11. package/a11y/interactivity-checker/interactivity-checker.d.ts +3 -0
  12. package/a11y/live-announcer/live-announcer.d.ts +6 -1
  13. package/a11y/package.json +6 -6
  14. package/accordion/accordion-item.d.ts +3 -0
  15. package/accordion/accordion-module.d.ts +6 -7
  16. package/accordion/accordion.d.ts +3 -0
  17. package/accordion/accordion_public_index.d.ts +4 -0
  18. package/accordion/index.d.ts +5 -2
  19. package/accordion/package.json +6 -6
  20. package/bidi/bidi-module.d.ts +5 -7
  21. package/bidi/bidi_public_index.d.ts +4 -0
  22. package/bidi/dir.d.ts +3 -0
  23. package/bidi/directionality.d.ts +3 -0
  24. package/bidi/index.d.ts +5 -2
  25. package/bidi/package.json +6 -6
  26. package/clipboard/clipboard-module.d.ts +5 -7
  27. package/clipboard/clipboard.d.ts +3 -7
  28. package/clipboard/clipboard_public_index.d.ts +4 -0
  29. package/clipboard/copy-to-clipboard.d.ts +3 -0
  30. package/clipboard/index.d.ts +5 -1
  31. package/clipboard/package.json +6 -6
  32. package/coercion/package.json +5 -5
  33. package/collections/collections_public_index.d.ts +4 -0
  34. package/collections/index.d.ts +5 -1
  35. package/collections/package.json +6 -6
  36. package/collections/unique-selection-dispatcher.d.ts +3 -0
  37. package/drag-drop/client-rect.d.ts +8 -1
  38. package/drag-drop/directives/drag-handle.d.ts +3 -0
  39. package/drag-drop/directives/drag-placeholder.d.ts +3 -0
  40. package/drag-drop/directives/drag-preview.d.ts +3 -0
  41. package/drag-drop/directives/drag.d.ts +3 -0
  42. package/drag-drop/directives/drop-list-group.d.ts +3 -0
  43. package/drag-drop/directives/drop-list.d.ts +3 -0
  44. package/drag-drop/drag-drop-module.d.ts +11 -7
  45. package/drag-drop/drag-drop-registry.d.ts +3 -0
  46. package/drag-drop/drag-drop.d.ts +3 -0
  47. package/drag-drop/drag-drop_public_index.d.ts +4 -0
  48. package/drag-drop/index.d.ts +5 -2
  49. package/drag-drop/package.json +6 -6
  50. package/esm2020/a11y/a11y-module.mjs +33 -0
  51. package/esm2020/a11y/a11y_public_index.mjs +5 -0
  52. package/esm2020/a11y/aria-describer/aria-describer.mjs +208 -0
  53. package/{esm2015/a11y/aria-describer/aria-reference.js → esm2020/a11y/aria-describer/aria-reference.mjs} +1 -1
  54. package/esm2020/a11y/fake-event-detection.mjs +29 -0
  55. package/esm2020/a11y/focus-monitor/focus-monitor.mjs +400 -0
  56. package/{esm2015/a11y/focus-trap/configurable-focus-trap-config.js → esm2020/a11y/focus-trap/configurable-focus-trap-config.mjs} +0 -0
  57. package/esm2020/a11y/focus-trap/configurable-focus-trap-factory.mjs +53 -0
  58. package/esm2020/a11y/focus-trap/configurable-focus-trap.mjs +51 -0
  59. package/esm2020/a11y/focus-trap/event-listener-inert-strategy.mjs +61 -0
  60. package/esm2020/a11y/focus-trap/focus-trap-inert-strategy.mjs +11 -0
  61. package/esm2020/a11y/focus-trap/focus-trap-manager.mjs +53 -0
  62. package/esm2020/a11y/focus-trap/focus-trap.mjs +399 -0
  63. package/esm2020/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +95 -0
  64. package/esm2020/a11y/index.mjs +9 -0
  65. package/esm2020/a11y/input-modality/input-modality-detector.mjs +176 -0
  66. package/esm2020/a11y/interactivity-checker/interactivity-checker.mjs +238 -0
  67. package/{esm2015/a11y/key-manager/activedescendant-key-manager.js → esm2020/a11y/key-manager/activedescendant-key-manager.mjs} +1 -1
  68. package/{esm2015/a11y/key-manager/focus-key-manager.js → esm2020/a11y/key-manager/focus-key-manager.mjs} +0 -0
  69. package/esm2020/a11y/key-manager/list-key-manager.mjs +321 -0
  70. package/esm2020/a11y/live-announcer/live-announcer-tokens.mjs +19 -0
  71. package/esm2020/a11y/live-announcer/live-announcer.mjs +170 -0
  72. package/{esm2015/a11y/public-api.js → esm2020/a11y/public-api.mjs} +0 -0
  73. package/esm2020/accordion/accordion-item.mjs +167 -0
  74. package/esm2020/accordion/accordion-module.mjs +24 -0
  75. package/esm2020/accordion/accordion.mjs +70 -0
  76. package/esm2020/accordion/accordion_public_index.mjs +5 -0
  77. package/esm2020/accordion/index.mjs +9 -0
  78. package/{esm2015/accordion/public-api.js → esm2020/accordion/public-api.mjs} +0 -0
  79. package/esm2020/bidi/bidi-module.mjs +23 -0
  80. package/esm2020/bidi/bidi_public_index.mjs +5 -0
  81. package/{esm2015/bidi/dir-document-token.js → esm2020/bidi/dir-document-token.mjs} +1 -1
  82. package/esm2020/bidi/dir.mjs +67 -0
  83. package/esm2020/bidi/directionality.mjs +47 -0
  84. package/esm2020/bidi/index.mjs +9 -0
  85. package/{esm2015/bidi/public-api.js → esm2020/bidi/public-api.mjs} +1 -1
  86. package/esm2020/clipboard/clipboard-module.mjs +23 -0
  87. package/esm2020/clipboard/clipboard.mjs +53 -0
  88. package/esm2020/clipboard/clipboard_public_index.mjs +5 -0
  89. package/esm2020/clipboard/copy-to-clipboard.mjs +99 -0
  90. package/esm2020/clipboard/index.mjs +9 -0
  91. package/esm2020/clipboard/pending-copy.mjs +67 -0
  92. package/{esm2015/clipboard/public-api.js → esm2020/clipboard/public-api.mjs} +0 -0
  93. package/{esm2015/coercion/array.js → esm2020/coercion/array.mjs} +0 -0
  94. package/{esm2015/coercion/boolean-property.js → esm2020/coercion/boolean-property.mjs} +0 -0
  95. package/{esm2015/coercion/css-pixel-value.js → esm2020/coercion/css-pixel-value.mjs} +0 -0
  96. package/{esm2015/coercion/element.js → esm2020/coercion/element.mjs} +0 -0
  97. package/{esm2015/coercion/index.js → esm2020/coercion/index.mjs} +0 -0
  98. package/{esm2015/coercion/number-property.js → esm2020/coercion/number-property.mjs} +0 -0
  99. package/{esm2015/coercion/public-api.js → esm2020/coercion/public-api.mjs} +0 -0
  100. package/{esm2015/coercion/string-array.js → esm2020/coercion/string-array.mjs} +0 -0
  101. package/{esm2015/collections/array-data-source.js → esm2020/collections/array-data-source.mjs} +1 -1
  102. package/esm2020/collections/collection-viewer.mjs +9 -0
  103. package/esm2020/collections/collections_public_index.mjs +5 -0
  104. package/{esm2015/collections/data-source.js → esm2020/collections/data-source.mjs} +0 -0
  105. package/esm2020/collections/dispose-view-repeater-strategy.mjs +47 -0
  106. package/esm2020/collections/index.mjs +9 -0
  107. package/{esm2015/collections/public-api.js → esm2020/collections/public-api.mjs} +0 -0
  108. package/esm2020/collections/recycle-view-repeater-strategy.mjs +128 -0
  109. package/{esm2015/collections/selection-model.js → esm2020/collections/selection-model.mjs} +2 -2
  110. package/esm2020/collections/tree-adapter.mjs +9 -0
  111. package/esm2020/collections/unique-selection-dispatcher.mjs +55 -0
  112. package/esm2020/collections/view-repeater.mjs +14 -0
  113. package/esm2020/drag-drop/client-rect.mjs +64 -0
  114. package/esm2020/drag-drop/clone-node.mjs +65 -0
  115. package/esm2020/drag-drop/directives/assertions.mjs +18 -0
  116. package/{esm2015/drag-drop/directives/config.js → esm2020/drag-drop/directives/config.mjs} +1 -1
  117. package/esm2020/drag-drop/directives/drag-handle.mjs +66 -0
  118. package/esm2020/drag-drop/directives/drag-placeholder.mjs +36 -0
  119. package/esm2020/drag-drop/directives/drag-preview.mjs +47 -0
  120. package/esm2020/drag-drop/directives/drag.mjs +483 -0
  121. package/esm2020/drag-drop/directives/drop-list-group.mjs +53 -0
  122. package/esm2020/drag-drop/directives/drop-list.mjs +344 -0
  123. package/esm2020/drag-drop/drag-drop-module.mjs +57 -0
  124. package/esm2020/drag-drop/drag-drop-registry.mjs +231 -0
  125. package/esm2020/drag-drop/drag-drop.mjs +57 -0
  126. package/esm2020/drag-drop/drag-drop_public_index.mjs +5 -0
  127. package/esm2020/drag-drop/drag-events.mjs +9 -0
  128. package/{esm2015/drag-drop/drag-parent.js → esm2020/drag-drop/drag-parent.mjs} +0 -0
  129. package/esm2020/drag-drop/drag-ref.mjs +1108 -0
  130. package/esm2020/drag-drop/drag-styling.mjs +69 -0
  131. package/esm2020/drag-drop/drag-utils.mjs +60 -0
  132. package/esm2020/drag-drop/drop-list-ref.mjs +830 -0
  133. package/esm2020/drag-drop/index.mjs +9 -0
  134. package/{esm2015/drag-drop/parent-position-tracker.js → esm2020/drag-drop/parent-position-tracker.mjs} +2 -2
  135. package/{esm2015/drag-drop/public-api.js → esm2020/drag-drop/public-api.mjs} +0 -0
  136. package/esm2020/drag-drop/transition-duration.mjs +36 -0
  137. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  138. package/esm2020/keycodes/index.mjs +9 -0
  139. package/{esm2015/keycodes/keycodes.js → esm2020/keycodes/keycodes.mjs} +1 -1
  140. package/esm2020/keycodes/keycodes_public_index.mjs +5 -0
  141. package/{esm2015/keycodes/modifiers.js → esm2020/keycodes/modifiers.mjs} +0 -0
  142. package/{esm2015/keycodes/public-api.js → esm2020/keycodes/public-api.mjs} +0 -0
  143. package/esm2020/layout/breakpoints-observer.mjs +105 -0
  144. package/{esm2015/layout/breakpoints.js → esm2020/layout/breakpoints.mjs} +1 -1
  145. package/esm2020/layout/index.mjs +9 -0
  146. package/esm2020/layout/layout-module.mjs +19 -0
  147. package/esm2020/layout/layout_public_index.mjs +5 -0
  148. package/esm2020/layout/media-matcher.mjs +85 -0
  149. package/{esm2015/layout/public-api.js → esm2020/layout/public-api.mjs} +0 -0
  150. package/esm2020/observers/index.mjs +9 -0
  151. package/esm2020/observers/observe-content.mjs +187 -0
  152. package/esm2020/observers/observers_public_index.mjs +5 -0
  153. package/{esm2015/observers/public-api.js → esm2020/observers/public-api.mjs} +0 -0
  154. package/esm2020/overlay/dispatchers/base-overlay-dispatcher.mjs +52 -0
  155. package/{esm2015/overlay/dispatchers/index.js → esm2020/overlay/dispatchers/index.mjs} +0 -0
  156. package/esm2020/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +63 -0
  157. package/esm2020/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +116 -0
  158. package/esm2020/overlay/fullscreen-overlay-container.mjs +94 -0
  159. package/esm2020/overlay/index.mjs +9 -0
  160. package/esm2020/overlay/overlay-config.mjs +45 -0
  161. package/esm2020/overlay/overlay-container.mjs +81 -0
  162. package/esm2020/overlay/overlay-directives.mjs +427 -0
  163. package/esm2020/overlay/overlay-module.mjs +29 -0
  164. package/esm2020/overlay/overlay-ref.mjs +402 -0
  165. package/{esm2015/overlay/overlay-reference.js → esm2020/overlay/overlay-reference.mjs} +0 -0
  166. package/esm2020/overlay/overlay.mjs +119 -0
  167. package/esm2020/overlay/overlay_public_index.mjs +5 -0
  168. package/esm2020/overlay/position/connected-position.mjs +97 -0
  169. package/esm2020/overlay/position/flexible-connected-position-strategy.mjs +959 -0
  170. package/esm2020/overlay/position/global-position-strategy.mjs +203 -0
  171. package/esm2020/overlay/position/overlay-position-builder.mjs +50 -0
  172. package/{esm2015/overlay/position/position-strategy.js → esm2020/overlay/position/position-strategy.mjs} +0 -0
  173. package/esm2020/overlay/position/scroll-clip.mjs +40 -0
  174. package/{esm2015/overlay/public-api.js → esm2020/overlay/public-api.mjs} +0 -0
  175. package/{esm2015/overlay/scroll/block-scroll-strategy.js → esm2020/overlay/scroll/block-scroll-strategy.mjs} +1 -1
  176. package/esm2020/overlay/scroll/close-scroll-strategy.mjs +61 -0
  177. package/{esm2015/overlay/scroll/index.js → esm2020/overlay/scroll/index.mjs} +2 -2
  178. package/{esm2015/overlay/scroll/noop-scroll-strategy.js → esm2020/overlay/scroll/noop-scroll-strategy.mjs} +1 -1
  179. package/{esm2015/overlay/scroll/reposition-scroll-strategy.js → esm2020/overlay/scroll/reposition-scroll-strategy.mjs} +1 -1
  180. package/esm2020/overlay/scroll/scroll-strategy-options.mjs +55 -0
  181. package/{esm2015/overlay/scroll/scroll-strategy.js → esm2020/overlay/scroll/scroll-strategy.mjs} +0 -0
  182. package/{esm2015/platform/features/input-types.js → esm2020/platform/features/input-types.mjs} +1 -1
  183. package/esm2020/platform/features/passive-listeners.mjs +36 -0
  184. package/esm2020/platform/features/scrolling.mjs +85 -0
  185. package/{esm2015/platform/features/shadow-dom.js → esm2020/platform/features/shadow-dom.mjs} +4 -3
  186. package/esm2020/platform/features/test-environment.mjs +27 -0
  187. package/esm2020/platform/index.mjs +9 -0
  188. package/esm2020/platform/platform-module.mjs +19 -0
  189. package/esm2020/platform/platform.mjs +85 -0
  190. package/esm2020/platform/platform_public_index.mjs +5 -0
  191. package/{esm2015/platform/public-api.js → esm2020/platform/public-api.mjs} +0 -0
  192. package/esm2020/portal/dom-portal-outlet.mjs +134 -0
  193. package/esm2020/portal/index.mjs +9 -0
  194. package/esm2020/portal/portal-directives.mjs +244 -0
  195. package/{esm2015/portal/portal-errors.js → esm2020/portal/portal-errors.mjs} +1 -1
  196. package/esm2020/portal/portal-injector.mjs +28 -0
  197. package/esm2020/portal/portal.mjs +179 -0
  198. package/esm2020/portal/portal_public_index.mjs +5 -0
  199. package/{esm2015/portal/public-api.js → esm2020/portal/public-api.mjs} +0 -0
  200. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  201. package/esm2020/scrolling/fixed-size-virtual-scroll.mjs +217 -0
  202. package/esm2020/scrolling/index.mjs +9 -0
  203. package/{esm2015/scrolling/public-api.js → esm2020/scrolling/public-api.mjs} +0 -0
  204. package/esm2020/scrolling/scroll-dispatcher.mjs +163 -0
  205. package/esm2020/scrolling/scrollable.mjs +176 -0
  206. package/esm2020/scrolling/scrolling-module.mjs +52 -0
  207. package/esm2020/scrolling/scrolling_public_index.mjs +5 -0
  208. package/esm2020/scrolling/viewport-ruler.mjs +146 -0
  209. package/esm2020/scrolling/virtual-for-of.mjs +296 -0
  210. package/{esm2015/scrolling/virtual-scroll-repeater.js → esm2020/scrolling/virtual-scroll-repeater.mjs} +0 -0
  211. package/esm2020/scrolling/virtual-scroll-strategy.mjs +11 -0
  212. package/esm2020/scrolling/virtual-scroll-viewport.mjs +378 -0
  213. package/esm2020/stepper/index.mjs +9 -0
  214. package/{esm2015/stepper/public-api.js → esm2020/stepper/public-api.mjs} +0 -0
  215. package/esm2020/stepper/step-header.mjs +30 -0
  216. package/esm2020/stepper/step-label.mjs +23 -0
  217. package/esm2020/stepper/stepper-button.mjs +76 -0
  218. package/esm2020/stepper/stepper-module.mjs +40 -0
  219. package/esm2020/stepper/stepper.mjs +471 -0
  220. package/esm2020/stepper/stepper_public_index.mjs +5 -0
  221. package/esm2020/table/can-stick.mjs +44 -0
  222. package/esm2020/table/cell.mjs +222 -0
  223. package/esm2020/table/coalesced-style-scheduler.mjs +91 -0
  224. package/esm2020/table/index.mjs +9 -0
  225. package/{esm2015/table/public-api.js → esm2020/table/public-api.mjs} +0 -0
  226. package/esm2020/table/row.mjs +254 -0
  227. package/esm2020/table/sticky-position-listener.mjs +11 -0
  228. package/esm2020/table/sticky-styler.mjs +345 -0
  229. package/{esm2015/table/table-errors.js → esm2020/table/table-errors.mjs} +1 -1
  230. package/esm2020/table/table-module.mjs +94 -0
  231. package/esm2020/table/table.mjs +1023 -0
  232. package/esm2020/table/table_public_index.mjs +5 -0
  233. package/esm2020/table/text-column.mjs +153 -0
  234. package/{esm2015/table/tokens.js → esm2020/table/tokens.mjs} +1 -1
  235. package/esm2020/testing/change-detection.mjs +102 -0
  236. package/esm2020/testing/component-harness.mjs +322 -0
  237. package/{esm2015/testing/element-dimensions.js → esm2020/testing/element-dimensions.mjs} +1 -1
  238. package/esm2020/testing/harness-environment.mjs +202 -0
  239. package/{esm2015/testing/index.js → esm2020/testing/index.mjs} +0 -0
  240. package/{esm2015/testing/protractor/index.js → esm2020/testing/protractor/index.mjs} +0 -0
  241. package/esm2020/testing/protractor/protractor-element.mjs +234 -0
  242. package/esm2020/testing/protractor/protractor-harness-environment.mjs +72 -0
  243. package/{esm2015/testing/protractor/public-api.js → esm2020/testing/protractor/public-api.mjs} +0 -0
  244. package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +0 -0
  245. package/{esm2015/testing/selenium-webdriver/index.js → esm2020/testing/selenium-webdriver/index.mjs} +0 -0
  246. package/{esm2015/testing/selenium-webdriver/public-api.js → esm2020/testing/selenium-webdriver/public-api.mjs} +0 -0
  247. package/esm2020/testing/selenium-webdriver/selenium-web-driver-element.mjs +199 -0
  248. package/esm2020/testing/selenium-webdriver/selenium-web-driver-harness-environment.mjs +87 -0
  249. package/{esm2015/testing/selenium-webdriver/selenium-webdriver-keys.js → esm2020/testing/selenium-webdriver/selenium-webdriver-keys.mjs} +2 -2
  250. package/esm2020/testing/test-element.mjs +48 -0
  251. package/esm2020/testing/testbed/fake-events/dispatch-events.mjs +53 -0
  252. package/esm2020/testing/testbed/fake-events/element-focus.mjs +39 -0
  253. package/esm2020/testing/testbed/fake-events/event-objects.mjs +113 -0
  254. package/{esm2015/testing/testbed/fake-events/index.js → esm2020/testing/testbed/fake-events/index.mjs} +0 -0
  255. package/esm2020/testing/testbed/fake-events/type-in-element.mjs +88 -0
  256. package/{esm2015/testing/testbed/index.js → esm2020/testing/testbed/index.mjs} +0 -0
  257. package/{esm2015/testing/testbed/public-api.js → esm2020/testing/testbed/public-api.mjs} +0 -0
  258. package/esm2020/testing/testbed/task-state-zone-interceptor.mjs +82 -0
  259. package/esm2020/testing/testbed/testbed-harness-environment.mjs +162 -0
  260. package/esm2020/testing/testbed/unit-test-element.mjs +224 -0
  261. package/esm2020/testing/text-filtering.mjs +21 -0
  262. package/esm2020/text-field/autofill.mjs +113 -0
  263. package/esm2020/text-field/autosize.mjs +310 -0
  264. package/esm2020/text-field/index.mjs +9 -0
  265. package/{esm2015/text-field/public-api.js → esm2020/text-field/public-api.mjs} +0 -0
  266. package/esm2020/text-field/text-field-module.mjs +26 -0
  267. package/esm2020/text-field/text-field_public_index.mjs +5 -0
  268. package/{esm2015/tree/control/base-tree-control.js → esm2020/tree/control/base-tree-control.mjs} +4 -4
  269. package/{esm2015/tree/control/flat-tree-control.js → esm2020/tree/control/flat-tree-control.mjs} +1 -1
  270. package/esm2020/tree/control/nested-tree-control.mjs +58 -0
  271. package/{esm2015/tree/control/tree-control.js → esm2020/tree/control/tree-control.mjs} +0 -0
  272. package/esm2020/tree/index.mjs +9 -0
  273. package/esm2020/tree/nested-node.mjs +117 -0
  274. package/esm2020/tree/node.mjs +35 -0
  275. package/esm2020/tree/outlet.mjs +39 -0
  276. package/esm2020/tree/padding.mjs +131 -0
  277. package/{esm2015/tree/public-api.js → esm2020/tree/public-api.mjs} +0 -0
  278. package/esm2020/tree/toggle.mjs +53 -0
  279. package/{esm2015/tree/tree-errors.js → esm2020/tree/tree-errors.mjs} +0 -0
  280. package/esm2020/tree/tree-module.mjs +49 -0
  281. package/esm2020/tree/tree.mjs +361 -0
  282. package/esm2020/tree/tree_public_index.mjs +5 -0
  283. package/{esm2015/version.js → esm2020/version.mjs} +1 -1
  284. package/fesm2015/{a11y.js → a11y.mjs} +289 -254
  285. package/fesm2015/a11y.mjs.map +1 -0
  286. package/fesm2015/accordion.mjs +275 -0
  287. package/fesm2015/accordion.mjs.map +1 -0
  288. package/fesm2015/bidi.mjs +187 -0
  289. package/fesm2015/bidi.mjs.map +1 -0
  290. package/fesm2015/{cdk.js → cdk.mjs} +2 -2
  291. package/fesm2015/cdk.mjs.map +1 -0
  292. package/fesm2015/clipboard.mjs +261 -0
  293. package/fesm2015/clipboard.mjs.map +1 -0
  294. package/fesm2015/{coercion.js → coercion.mjs} +1 -1
  295. package/fesm2015/coercion.mjs.map +1 -0
  296. package/fesm2015/{collections.js → collections.mjs} +20 -24
  297. package/fesm2015/collections.mjs.map +1 -0
  298. package/fesm2015/drag-drop.mjs +3675 -0
  299. package/fesm2015/drag-drop.mjs.map +1 -0
  300. package/fesm2015/{keycodes.js → keycodes.mjs} +9 -1
  301. package/fesm2015/keycodes.mjs.map +1 -0
  302. package/fesm2015/{layout.js → layout.mjs} +38 -28
  303. package/fesm2015/layout.mjs.map +1 -0
  304. package/fesm2015/{observers.js → observers.mjs} +58 -41
  305. package/fesm2015/observers.mjs.map +1 -0
  306. package/fesm2015/overlay.mjs +3012 -0
  307. package/fesm2015/overlay.mjs.map +1 -0
  308. package/fesm2015/platform.mjs +388 -0
  309. package/fesm2015/platform.mjs.map +1 -0
  310. package/fesm2015/portal.mjs +657 -0
  311. package/fesm2015/portal.mjs.map +1 -0
  312. package/fesm2015/scrolling.mjs +1402 -0
  313. package/fesm2015/scrolling.mjs.map +1 -0
  314. package/fesm2015/{stepper.js → stepper.mjs} +194 -133
  315. package/fesm2015/stepper.mjs.map +1 -0
  316. package/fesm2015/{table.js → table.mjs} +508 -359
  317. package/fesm2015/table.mjs.map +1 -0
  318. package/fesm2015/testing/{protractor.js → protractor.mjs} +12 -25
  319. package/fesm2015/testing/protractor.mjs.map +1 -0
  320. package/fesm2015/testing/{selenium-webdriver.js → selenium-webdriver.mjs} +14 -28
  321. package/fesm2015/testing/selenium-webdriver.mjs.map +1 -0
  322. package/fesm2015/testing/{testbed.js → testbed.mjs} +23 -29
  323. package/fesm2015/testing/testbed.mjs.map +1 -0
  324. package/fesm2015/{testing.js → testing.mjs} +19 -45
  325. package/fesm2015/testing.mjs.map +1 -0
  326. package/fesm2015/text-field.mjs +463 -0
  327. package/fesm2015/text-field.mjs.map +1 -0
  328. package/fesm2015/{tree.js → tree.mjs} +206 -152
  329. package/fesm2015/tree.mjs.map +1 -0
  330. package/fesm2020/a11y.mjs +2376 -0
  331. package/fesm2020/a11y.mjs.map +1 -0
  332. package/{fesm2015/accordion.js → fesm2020/accordion.mjs} +95 -57
  333. package/fesm2020/accordion.mjs.map +1 -0
  334. package/{fesm2015/bidi.js → fesm2020/bidi.mjs} +55 -31
  335. package/fesm2020/bidi.mjs.map +1 -0
  336. package/fesm2020/cdk.mjs +30 -0
  337. package/fesm2020/cdk.mjs.map +1 -0
  338. package/{fesm2015/clipboard.js → fesm2020/clipboard.mjs} +59 -40
  339. package/fesm2020/clipboard.mjs.map +1 -0
  340. package/fesm2020/coercion.mjs +132 -0
  341. package/fesm2020/coercion.mjs.map +1 -0
  342. package/fesm2020/collections.mjs +480 -0
  343. package/fesm2020/collections.mjs.map +1 -0
  344. package/{fesm2015/drag-drop.js → fesm2020/drag-drop.mjs} +528 -369
  345. package/fesm2020/drag-drop.mjs.map +1 -0
  346. package/fesm2020/keycodes.mjs +167 -0
  347. package/fesm2020/keycodes.mjs.map +1 -0
  348. package/fesm2020/layout.mjs +254 -0
  349. package/fesm2020/layout.mjs.map +1 -0
  350. package/fesm2020/observers.mjs +210 -0
  351. package/fesm2020/observers.mjs.map +1 -0
  352. package/{fesm2015/overlay.js → fesm2020/overlay.mjs} +320 -228
  353. package/fesm2020/overlay.mjs.map +1 -0
  354. package/{fesm2015/platform.js → fesm2020/platform.mjs} +60 -28
  355. package/fesm2020/platform.mjs.map +1 -0
  356. package/{fesm2015/portal.js → fesm2020/portal.mjs} +93 -64
  357. package/fesm2020/portal.mjs.map +1 -0
  358. package/{fesm2015/scrolling.js → fesm2020/scrolling.mjs} +221 -170
  359. package/fesm2020/scrolling.mjs.map +1 -0
  360. package/fesm2020/stepper.mjs +646 -0
  361. package/fesm2020/stepper.mjs.map +1 -0
  362. package/fesm2020/table.mjs +2303 -0
  363. package/fesm2020/table.mjs.map +1 -0
  364. package/fesm2020/testing/protractor.mjs +322 -0
  365. package/fesm2020/testing/protractor.mjs.map +1 -0
  366. package/fesm2020/testing/selenium-webdriver.mjs +362 -0
  367. package/fesm2020/testing/selenium-webdriver.mjs.map +1 -0
  368. package/fesm2020/testing/testbed.mjs +780 -0
  369. package/fesm2020/testing/testbed.mjs.map +1 -0
  370. package/fesm2020/testing.mjs +719 -0
  371. package/fesm2020/testing.mjs.map +1 -0
  372. package/{fesm2015/text-field.js → fesm2020/text-field.mjs} +91 -68
  373. package/fesm2020/text-field.mjs.map +1 -0
  374. package/fesm2020/tree.mjs +975 -0
  375. package/fesm2020/tree.mjs.map +1 -0
  376. package/keycodes/index.d.ts +5 -1
  377. package/keycodes/keycodes_public_index.d.ts +4 -0
  378. package/keycodes/package.json +6 -6
  379. package/layout/breakpoints-observer.d.ts +3 -7
  380. package/layout/index.d.ts +5 -1
  381. package/layout/layout-module.d.ts +4 -0
  382. package/layout/layout_public_index.d.ts +4 -0
  383. package/layout/media-matcher.d.ts +3 -0
  384. package/layout/package.json +6 -6
  385. package/observers/index.d.ts +5 -1
  386. package/observers/observe-content.d.ts +10 -0
  387. package/observers/observers_public_index.d.ts +4 -0
  388. package/observers/package.json +6 -6
  389. package/overlay/dispatchers/base-overlay-dispatcher.d.ts +3 -7
  390. package/overlay/dispatchers/overlay-keyboard-dispatcher.d.ts +3 -7
  391. package/overlay/dispatchers/overlay-outside-click-dispatcher.d.ts +6 -7
  392. package/overlay/fullscreen-overlay-container.d.ts +3 -0
  393. package/overlay/index.d.ts +5 -3
  394. package/overlay/overlay-container.d.ts +3 -7
  395. package/overlay/overlay-directives.d.ts +5 -0
  396. package/overlay/overlay-module.d.ts +8 -7
  397. package/overlay/overlay.d.ts +3 -0
  398. package/overlay/overlay_public_index.d.ts +4 -0
  399. package/overlay/package.json +6 -6
  400. package/overlay/position/flexible-connected-position-strategy.d.ts +2 -2
  401. package/overlay/position/overlay-position-builder.d.ts +3 -0
  402. package/overlay/position/scroll-clip.d.ts +5 -2
  403. package/overlay/scroll/index.d.ts +1 -1
  404. package/overlay/scroll/scroll-strategy-options.d.ts +3 -0
  405. package/package.json +219 -7
  406. package/platform/index.d.ts +5 -1
  407. package/platform/package.json +6 -6
  408. package/platform/platform-module.d.ts +4 -7
  409. package/platform/platform.d.ts +3 -7
  410. package/platform/platform_public_index.d.ts +4 -0
  411. package/portal/index.d.ts +5 -1
  412. package/portal/package.json +6 -6
  413. package/portal/portal-directives.d.ts +12 -0
  414. package/portal/portal_public_index.d.ts +4 -0
  415. package/schematics/ng-add/index.js +3 -3
  416. package/schematics/ng-add/index.mjs +3 -3
  417. package/schematics/ng-add/package-config.js +4 -2
  418. package/schematics/ng-add/package-config.mjs +4 -2
  419. package/schematics/ng-add/schema.js +1 -1
  420. package/schematics/ng-add/schema.mjs +1 -1
  421. package/schematics/ng-generate/drag-drop/index.js +6 -6
  422. package/schematics/ng-generate/drag-drop/index.mjs +6 -6
  423. package/schematics/ng-update/data/attribute-selectors.js +7 -5
  424. package/schematics/ng-update/data/attribute-selectors.mjs +7 -5
  425. package/schematics/ng-update/data/class-names.js +13 -11
  426. package/schematics/ng-update/data/class-names.mjs +13 -11
  427. package/schematics/ng-update/data/constructor-checks.js +28 -20
  428. package/schematics/ng-update/data/constructor-checks.mjs +28 -20
  429. package/schematics/ng-update/data/css-selectors.js +2 -2
  430. package/schematics/ng-update/data/css-selectors.mjs +2 -2
  431. package/schematics/ng-update/data/element-selectors.js +2 -2
  432. package/schematics/ng-update/data/element-selectors.mjs +2 -2
  433. package/schematics/ng-update/data/input-names.js +40 -16
  434. package/schematics/ng-update/data/input-names.mjs +40 -16
  435. package/schematics/ng-update/data/method-call-checks.js +32 -18
  436. package/schematics/ng-update/data/method-call-checks.mjs +32 -18
  437. package/schematics/ng-update/data/output-names.js +8 -6
  438. package/schematics/ng-update/data/output-names.mjs +8 -6
  439. package/schematics/ng-update/data/property-names.js +40 -32
  440. package/schematics/ng-update/data/property-names.mjs +40 -32
  441. package/schematics/ng-update/devkit-file-system.js +2 -2
  442. package/schematics/ng-update/devkit-file-system.mjs +2 -2
  443. package/schematics/ng-update/devkit-migration-rule.js +8 -7
  444. package/schematics/ng-update/devkit-migration-rule.mjs +8 -7
  445. package/schematics/ng-update/devkit-migration.d.ts +3 -2
  446. package/schematics/ng-update/devkit-migration.js +1 -1
  447. package/schematics/ng-update/devkit-migration.mjs +1 -1
  448. package/schematics/ng-update/find-stylesheets.js +3 -3
  449. package/schematics/ng-update/find-stylesheets.mjs +3 -3
  450. package/schematics/ng-update/html-parsing/angular.js +7 -7
  451. package/schematics/ng-update/html-parsing/angular.mjs +7 -7
  452. package/schematics/ng-update/html-parsing/elements.js +2 -2
  453. package/schematics/ng-update/html-parsing/elements.mjs +2 -2
  454. package/schematics/ng-update/index.js +11 -9
  455. package/schematics/ng-update/index.mjs +11 -9
  456. package/schematics/ng-update/migrations/attribute-selectors.js +11 -7
  457. package/schematics/ng-update/migrations/attribute-selectors.mjs +11 -7
  458. package/schematics/ng-update/migrations/class-inheritance.js +3 -3
  459. package/schematics/ng-update/migrations/class-inheritance.mjs +3 -3
  460. package/schematics/ng-update/migrations/class-names.js +7 -6
  461. package/schematics/ng-update/migrations/class-names.mjs +7 -6
  462. package/schematics/ng-update/migrations/constructor-signature.js +16 -13
  463. package/schematics/ng-update/migrations/constructor-signature.mjs +16 -13
  464. package/schematics/ng-update/migrations/css-selectors.js +7 -6
  465. package/schematics/ng-update/migrations/css-selectors.mjs +7 -6
  466. package/schematics/ng-update/migrations/element-selectors.js +7 -6
  467. package/schematics/ng-update/migrations/element-selectors.mjs +7 -6
  468. package/schematics/ng-update/migrations/input-names.js +8 -9
  469. package/schematics/ng-update/migrations/input-names.mjs +8 -9
  470. package/schematics/ng-update/migrations/method-call-arguments.js +4 -3
  471. package/schematics/ng-update/migrations/method-call-arguments.mjs +4 -3
  472. package/schematics/ng-update/migrations/misc-template.js +3 -3
  473. package/schematics/ng-update/migrations/misc-template.mjs +3 -3
  474. package/schematics/ng-update/migrations/output-names.js +7 -8
  475. package/schematics/ng-update/migrations/output-names.mjs +7 -8
  476. package/schematics/ng-update/migrations/property-names.js +4 -3
  477. package/schematics/ng-update/migrations/property-names.mjs +4 -3
  478. package/schematics/ng-update/migrations/symbol-removal.js +2 -2
  479. package/schematics/ng-update/migrations/symbol-removal.mjs +2 -2
  480. package/schematics/ng-update/migrations/tilde-import-v13/tilde-import-migration.d.ts +14 -0
  481. package/schematics/ng-update/migrations/tilde-import-v13/tilde-import-migration.js +38 -0
  482. package/schematics/ng-update/migrations/tilde-import-v13/tilde-import-migration.mjs +38 -0
  483. package/schematics/ng-update/typescript/base-types.js +1 -1
  484. package/schematics/ng-update/typescript/base-types.mjs +1 -1
  485. package/schematics/ng-update/typescript/literal.d.ts +1 -1
  486. package/schematics/ng-update/typescript/literal.js +1 -1
  487. package/schematics/ng-update/typescript/literal.mjs +1 -1
  488. package/schematics/ng-update/typescript/module-specifiers.js +5 -5
  489. package/schematics/ng-update/typescript/module-specifiers.mjs +5 -5
  490. package/schematics/ng-update/upgrade-data.js +2 -2
  491. package/schematics/ng-update/upgrade-data.mjs +2 -2
  492. package/schematics/package.json +3 -0
  493. package/schematics/paths.js +3 -3
  494. package/schematics/paths.mjs +3 -3
  495. package/schematics/update-tool/component-resource-collector.js +10 -10
  496. package/schematics/update-tool/component-resource-collector.mjs +10 -10
  497. package/schematics/update-tool/file-system.js +1 -1
  498. package/schematics/update-tool/file-system.mjs +1 -1
  499. package/schematics/update-tool/index.d.ts +4 -1
  500. package/schematics/update-tool/index.js +9 -5
  501. package/schematics/update-tool/index.mjs +9 -5
  502. package/schematics/update-tool/migration.d.ts +1 -1
  503. package/schematics/update-tool/migration.js +1 -1
  504. package/schematics/update-tool/migration.mjs +1 -1
  505. package/schematics/update-tool/target-version.js +1 -1
  506. package/schematics/update-tool/target-version.mjs +1 -1
  507. package/schematics/update-tool/utils/decorators.js +8 -4
  508. package/schematics/update-tool/utils/decorators.mjs +8 -4
  509. package/schematics/update-tool/utils/functions.js +1 -1
  510. package/schematics/update-tool/utils/functions.mjs +1 -1
  511. package/schematics/update-tool/utils/imports.js +2 -2
  512. package/schematics/update-tool/utils/imports.mjs +2 -2
  513. package/schematics/update-tool/utils/line-mappings.js +1 -1
  514. package/schematics/update-tool/utils/line-mappings.mjs +1 -1
  515. package/schematics/update-tool/utils/parse-tsconfig.js +2 -2
  516. package/schematics/update-tool/utils/parse-tsconfig.mjs +2 -2
  517. package/schematics/update-tool/utils/property-name.js +1 -1
  518. package/schematics/update-tool/utils/property-name.mjs +1 -1
  519. package/schematics/update-tool/utils/virtual-host.d.ts +1 -1
  520. package/schematics/update-tool/utils/virtual-host.js +3 -3
  521. package/schematics/update-tool/utils/virtual-host.mjs +3 -3
  522. package/schematics/update-tool/version-changes.js +1 -1
  523. package/schematics/update-tool/version-changes.mjs +1 -1
  524. package/schematics/utils/ast/ng-module-imports.js +5 -3
  525. package/schematics/utils/ast/ng-module-imports.mjs +5 -3
  526. package/schematics/utils/ast.js +5 -5
  527. package/schematics/utils/ast.mjs +5 -5
  528. package/schematics/utils/build-component.js +32 -38
  529. package/schematics/utils/build-component.mjs +32 -38
  530. package/schematics/utils/get-project.js +1 -1
  531. package/schematics/utils/get-project.mjs +1 -1
  532. package/schematics/utils/html-manipulation.js +8 -7
  533. package/schematics/utils/html-manipulation.mjs +8 -7
  534. package/schematics/utils/parse5-element.js +9 -10
  535. package/schematics/utils/parse5-element.mjs +9 -10
  536. package/schematics/utils/project-index-file.js +2 -2
  537. package/schematics/utils/project-index-file.mjs +2 -2
  538. package/schematics/utils/project-main-file.js +2 -2
  539. package/schematics/utils/project-main-file.mjs +2 -2
  540. package/schematics/utils/project-style-file.js +7 -9
  541. package/schematics/utils/project-style-file.mjs +7 -9
  542. package/schematics/utils/project-targets.js +1 -1
  543. package/schematics/utils/project-targets.mjs +1 -1
  544. package/schematics/utils/project-tsconfig-paths.js +4 -4
  545. package/schematics/utils/project-tsconfig-paths.mjs +4 -4
  546. package/schematics/utils/schematic-options.js +7 -5
  547. package/schematics/utils/schematic-options.mjs +7 -5
  548. package/schematics/utils/vendored-ast-utils/index.js +17 -18
  549. package/schematics/utils/vendored-ast-utils/index.mjs +17 -18
  550. package/scrolling/fixed-size-virtual-scroll.d.ts +3 -0
  551. package/scrolling/index.d.ts +5 -1
  552. package/scrolling/package.json +6 -6
  553. package/scrolling/scroll-dispatcher.d.ts +3 -7
  554. package/scrolling/scrollable.d.ts +3 -0
  555. package/scrolling/scrolling-module.d.ts +13 -7
  556. package/scrolling/scrolling_public_index.d.ts +4 -0
  557. package/scrolling/viewport-ruler.d.ts +11 -1
  558. package/scrolling/virtual-for-of.d.ts +3 -0
  559. package/scrolling/virtual-scroll-viewport.d.ts +3 -0
  560. package/stepper/index.d.ts +5 -1
  561. package/stepper/package.json +6 -6
  562. package/stepper/step-header.d.ts +3 -0
  563. package/stepper/step-label.d.ts +3 -0
  564. package/stepper/stepper-button.d.ts +5 -7
  565. package/stepper/stepper-module.d.ts +9 -7
  566. package/stepper/stepper.d.ts +5 -7
  567. package/stepper/stepper_public_index.d.ts +4 -0
  568. package/table/cell.d.ts +15 -0
  569. package/table/coalesced-style-scheduler.d.ts +3 -0
  570. package/table/index.d.ts +5 -1
  571. package/table/package.json +6 -6
  572. package/table/row.d.ts +19 -0
  573. package/table/table-module.d.ts +9 -7
  574. package/table/table.d.ts +13 -0
  575. package/table/table_public_index.d.ts +4 -0
  576. package/table/text-column.d.ts +3 -0
  577. package/testing/package.json +5 -5
  578. package/testing/protractor/package.json +5 -5
  579. package/testing/selenium-webdriver/package.json +5 -5
  580. package/testing/testbed/package.json +5 -5
  581. package/testing/testbed/proxy-zone-types.d.ts +1 -1
  582. package/testing/testbed/zone-types.d.ts +1 -1
  583. package/text-field/autofill.d.ts +5 -0
  584. package/text-field/autosize.d.ts +3 -0
  585. package/text-field/index.d.ts +5 -1
  586. package/text-field/package.json +6 -6
  587. package/text-field/text-field-module.d.ts +7 -7
  588. package/text-field/text-field_public_index.d.ts +4 -0
  589. package/tree/control/base-tree-control.d.ts +1 -1
  590. package/tree/control/nested-tree-control.d.ts +2 -2
  591. package/tree/index.d.ts +5 -1
  592. package/tree/nested-node.d.ts +3 -0
  593. package/tree/node.d.ts +3 -0
  594. package/tree/outlet.d.ts +3 -0
  595. package/tree/package.json +6 -6
  596. package/tree/padding.d.ts +3 -0
  597. package/tree/toggle.d.ts +3 -0
  598. package/tree/tree-module.d.ts +10 -7
  599. package/tree/tree.d.ts +5 -0
  600. package/tree/tree_public_index.d.ts +4 -0
  601. package/a11y/index.metadata.json +0 -1
  602. package/accordion/index.metadata.json +0 -1
  603. package/bidi/index.metadata.json +0 -1
  604. package/bundles/cdk-a11y.umd.js +0 -2752
  605. package/bundles/cdk-a11y.umd.js.map +0 -1
  606. package/bundles/cdk-accordion.umd.js +0 -262
  607. package/bundles/cdk-accordion.umd.js.map +0 -1
  608. package/bundles/cdk-bidi.umd.js +0 -206
  609. package/bundles/cdk-bidi.umd.js.map +0 -1
  610. package/bundles/cdk-clipboard.umd.js +0 -278
  611. package/bundles/cdk-clipboard.umd.js.map +0 -1
  612. package/bundles/cdk-coercion.umd.js +0 -477
  613. package/bundles/cdk-coercion.umd.js.map +0 -1
  614. package/bundles/cdk-collections.umd.js +0 -846
  615. package/bundles/cdk-collections.umd.js.map +0 -1
  616. package/bundles/cdk-drag-drop.umd.js +0 -3921
  617. package/bundles/cdk-drag-drop.umd.js.map +0 -1
  618. package/bundles/cdk-keycodes.umd.js +0 -292
  619. package/bundles/cdk-keycodes.umd.js.map +0 -1
  620. package/bundles/cdk-layout.umd.js +0 -284
  621. package/bundles/cdk-layout.umd.js.map +0 -1
  622. package/bundles/cdk-observers.umd.js +0 -242
  623. package/bundles/cdk-observers.umd.js.map +0 -1
  624. package/bundles/cdk-overlay.umd.js +0 -3417
  625. package/bundles/cdk-overlay.umd.js.map +0 -1
  626. package/bundles/cdk-platform.umd.js +0 -397
  627. package/bundles/cdk-platform.umd.js.map +0 -1
  628. package/bundles/cdk-portal.umd.js +0 -1008
  629. package/bundles/cdk-portal.umd.js.map +0 -1
  630. package/bundles/cdk-scrolling.umd.js +0 -1787
  631. package/bundles/cdk-scrolling.umd.js.map +0 -1
  632. package/bundles/cdk-stepper.umd.js +0 -648
  633. package/bundles/cdk-stepper.umd.js.map +0 -1
  634. package/bundles/cdk-table.umd.js +0 -2730
  635. package/bundles/cdk-table.umd.js.map +0 -1
  636. package/bundles/cdk-testing-protractor.umd.js +0 -833
  637. package/bundles/cdk-testing-protractor.umd.js.map +0 -1
  638. package/bundles/cdk-testing-selenium-webdriver.umd.js +0 -1002
  639. package/bundles/cdk-testing-selenium-webdriver.umd.js.map +0 -1
  640. package/bundles/cdk-testing-testbed.umd.js +0 -1396
  641. package/bundles/cdk-testing-testbed.umd.js.map +0 -1
  642. package/bundles/cdk-testing.umd.js +0 -1285
  643. package/bundles/cdk-testing.umd.js.map +0 -1
  644. package/bundles/cdk-text-field.umd.js +0 -494
  645. package/bundles/cdk-text-field.umd.js.map +0 -1
  646. package/bundles/cdk-tree.umd.js +0 -1308
  647. package/bundles/cdk-tree.umd.js.map +0 -1
  648. package/bundles/cdk.umd.js +0 -38
  649. package/bundles/cdk.umd.js.map +0 -1
  650. package/clipboard/index.metadata.json +0 -1
  651. package/collections/index.metadata.json +0 -1
  652. package/drag-drop/index.metadata.json +0 -1
  653. package/esm2015/a11y/a11y-module.js +0 -30
  654. package/esm2015/a11y/a11y.externs.js +0 -6
  655. package/esm2015/a11y/aria-describer/aria-describer.js +0 -213
  656. package/esm2015/a11y/fake-event-detection.js +0 -28
  657. package/esm2015/a11y/focus-monitor/focus-monitor.js +0 -394
  658. package/esm2015/a11y/focus-trap/configurable-focus-trap-factory.js +0 -52
  659. package/esm2015/a11y/focus-trap/configurable-focus-trap.js +0 -49
  660. package/esm2015/a11y/focus-trap/event-listener-inert-strategy.js +0 -62
  661. package/esm2015/a11y/focus-trap/focus-trap-inert-strategy.js +0 -11
  662. package/esm2015/a11y/focus-trap/focus-trap-manager.js +0 -51
  663. package/esm2015/a11y/focus-trap/focus-trap.js +0 -391
  664. package/esm2015/a11y/high-contrast-mode/high-contrast-mode-detector.js +0 -92
  665. package/esm2015/a11y/index.js +0 -6
  666. package/esm2015/a11y/input-modality/input-modality-detector.js +0 -171
  667. package/esm2015/a11y/interactivity-checker/interactivity-checker.js +0 -237
  668. package/esm2015/a11y/key-manager/list-key-manager.js +0 -317
  669. package/esm2015/a11y/live-announcer/live-announcer-tokens.js +0 -19
  670. package/esm2015/a11y/live-announcer/live-announcer.js +0 -167
  671. package/esm2015/accordion/accordion-item.js +0 -146
  672. package/esm2015/accordion/accordion-module.js +0 -19
  673. package/esm2015/accordion/accordion.externs.js +0 -6
  674. package/esm2015/accordion/accordion.js +0 -63
  675. package/esm2015/accordion/index.js +0 -6
  676. package/esm2015/bidi/bidi-module.js +0 -18
  677. package/esm2015/bidi/bidi.externs.js +0 -6
  678. package/esm2015/bidi/dir.js +0 -58
  679. package/esm2015/bidi/directionality.js +0 -44
  680. package/esm2015/bidi/index.js +0 -6
  681. package/esm2015/cdk.externs.js +0 -0
  682. package/esm2015/clipboard/clipboard-module.js +0 -18
  683. package/esm2015/clipboard/clipboard.externs.js +0 -6
  684. package/esm2015/clipboard/clipboard.js +0 -52
  685. package/esm2015/clipboard/copy-to-clipboard.js +0 -90
  686. package/esm2015/clipboard/index.js +0 -5
  687. package/esm2015/clipboard/pending-copy.js +0 -68
  688. package/esm2015/coercion/coercion.externs.js +0 -0
  689. package/esm2015/collections/collection-viewer.js +0 -9
  690. package/esm2015/collections/collections.externs.js +0 -6
  691. package/esm2015/collections/dispose-view-repeater-strategy.js +0 -48
  692. package/esm2015/collections/index.js +0 -5
  693. package/esm2015/collections/recycle-view-repeater-strategy.js +0 -125
  694. package/esm2015/collections/tree-adapter.js +0 -9
  695. package/esm2015/collections/unique-selection-dispatcher.js +0 -53
  696. package/esm2015/collections/view-repeater.js +0 -14
  697. package/esm2015/drag-drop/client-rect.js +0 -60
  698. package/esm2015/drag-drop/clone-node.js +0 -65
  699. package/esm2015/drag-drop/directives/assertions.js +0 -19
  700. package/esm2015/drag-drop/directives/drag-handle.js +0 -57
  701. package/esm2015/drag-drop/directives/drag-placeholder.js +0 -36
  702. package/esm2015/drag-drop/directives/drag-preview.js +0 -42
  703. package/esm2015/drag-drop/directives/drag.js +0 -413
  704. package/esm2015/drag-drop/directives/drop-list-group.js +0 -47
  705. package/esm2015/drag-drop/directives/drop-list.js +0 -301
  706. package/esm2015/drag-drop/drag-drop-module.js +0 -43
  707. package/esm2015/drag-drop/drag-drop-registry.js +0 -231
  708. package/esm2015/drag-drop/drag-drop.externs.js +0 -6
  709. package/esm2015/drag-drop/drag-drop.js +0 -59
  710. package/esm2015/drag-drop/drag-events.js +0 -9
  711. package/esm2015/drag-drop/drag-ref.js +0 -1110
  712. package/esm2015/drag-drop/drag-styling.js +0 -69
  713. package/esm2015/drag-drop/drag-utils.js +0 -60
  714. package/esm2015/drag-drop/drop-list-ref.js +0 -813
  715. package/esm2015/drag-drop/index.js +0 -5
  716. package/esm2015/drag-drop/transition-duration.js +0 -36
  717. package/esm2015/keycodes/index.js +0 -5
  718. package/esm2015/keycodes/keycodes.externs.js +0 -6
  719. package/esm2015/layout/breakpoints-observer.js +0 -106
  720. package/esm2015/layout/index.js +0 -5
  721. package/esm2015/layout/layout-module.js +0 -14
  722. package/esm2015/layout/layout.externs.js +0 -6
  723. package/esm2015/layout/media-matcher.js +0 -85
  724. package/esm2015/observers/index.js +0 -5
  725. package/esm2015/observers/observe-content.js +0 -179
  726. package/esm2015/observers/observers.externs.js +0 -6
  727. package/esm2015/overlay/dispatchers/base-overlay-dispatcher.js +0 -51
  728. package/esm2015/overlay/dispatchers/overlay-keyboard-dispatcher.js +0 -62
  729. package/esm2015/overlay/dispatchers/overlay-outside-click-dispatcher.js +0 -97
  730. package/esm2015/overlay/fullscreen-overlay-container.js +0 -94
  731. package/esm2015/overlay/index.js +0 -7
  732. package/esm2015/overlay/overlay-config.js +0 -45
  733. package/esm2015/overlay/overlay-container.js +0 -85
  734. package/esm2015/overlay/overlay-directives.js +0 -352
  735. package/esm2015/overlay/overlay-module.js +0 -27
  736. package/esm2015/overlay/overlay-ref.js +0 -409
  737. package/esm2015/overlay/overlay.externs.js +0 -6
  738. package/esm2015/overlay/overlay.js +0 -119
  739. package/esm2015/overlay/position/connected-position.js +0 -94
  740. package/esm2015/overlay/position/flexible-connected-position-strategy.js +0 -960
  741. package/esm2015/overlay/position/global-position-strategy.js +0 -197
  742. package/esm2015/overlay/position/overlay-position-builder.js +0 -52
  743. package/esm2015/overlay/position/scroll-clip.js +0 -42
  744. package/esm2015/overlay/scroll/close-scroll-strategy.js +0 -61
  745. package/esm2015/overlay/scroll/scroll-strategy-options.js +0 -57
  746. package/esm2015/platform/features/passive-listeners.js +0 -36
  747. package/esm2015/platform/features/scrolling.js +0 -85
  748. package/esm2015/platform/features/test-environment.js +0 -16
  749. package/esm2015/platform/index.js +0 -5
  750. package/esm2015/platform/platform-module.js +0 -14
  751. package/esm2015/platform/platform.externs.js +0 -6
  752. package/esm2015/platform/platform.js +0 -77
  753. package/esm2015/portal/dom-portal-outlet.js +0 -136
  754. package/esm2015/portal/index.js +0 -5
  755. package/esm2015/portal/portal-directives.js +0 -221
  756. package/esm2015/portal/portal-injector.js +0 -28
  757. package/esm2015/portal/portal.externs.js +0 -6
  758. package/esm2015/portal/portal.js +0 -179
  759. package/esm2015/scrolling/fixed-size-virtual-scroll.js +0 -188
  760. package/esm2015/scrolling/index.js +0 -5
  761. package/esm2015/scrolling/scroll-dispatcher.js +0 -163
  762. package/esm2015/scrolling/scrollable.js +0 -173
  763. package/esm2015/scrolling/scrolling-module.js +0 -49
  764. package/esm2015/scrolling/scrolling.externs.js +0 -6
  765. package/esm2015/scrolling/viewport-ruler.js +0 -139
  766. package/esm2015/scrolling/virtual-for-of.js +0 -293
  767. package/esm2015/scrolling/virtual-scroll-strategy.js +0 -11
  768. package/esm2015/scrolling/virtual-scroll-viewport.js +0 -371
  769. package/esm2015/stepper/index.js +0 -5
  770. package/esm2015/stepper/step-header.js +0 -29
  771. package/esm2015/stepper/step-label.js +0 -22
  772. package/esm2015/stepper/stepper-button.js +0 -72
  773. package/esm2015/stepper/stepper-module.js +0 -37
  774. package/esm2015/stepper/stepper.externs.js +0 -6
  775. package/esm2015/stepper/stepper.js +0 -428
  776. package/esm2015/table/can-stick.js +0 -42
  777. package/esm2015/table/cell.js +0 -211
  778. package/esm2015/table/coalesced-style-scheduler.js +0 -89
  779. package/esm2015/table/index.js +0 -5
  780. package/esm2015/table/row.js +0 -244
  781. package/esm2015/table/sticky-position-listener.js +0 -11
  782. package/esm2015/table/sticky-styler.js +0 -336
  783. package/esm2015/table/table-module.js +0 -47
  784. package/esm2015/table/table.externs.js +0 -6
  785. package/esm2015/table/table.js +0 -987
  786. package/esm2015/table/text-column.js +0 -127
  787. package/esm2015/testing/change-detection.js +0 -110
  788. package/esm2015/testing/component-harness.js +0 -344
  789. package/esm2015/testing/harness-environment.js +0 -219
  790. package/esm2015/testing/protractor/protractor-element.js +0 -274
  791. package/esm2015/testing/protractor/protractor-harness-environment.js +0 -79
  792. package/esm2015/testing/protractor/protractor.externs.js +0 -0
  793. package/esm2015/testing/selenium-webdriver/selenium-web-driver-element.js +0 -241
  794. package/esm2015/testing/selenium-webdriver/selenium-web-driver-harness-environment.js +0 -97
  795. package/esm2015/testing/selenium-webdriver/selenium-webdriver.externs.js +0 -0
  796. package/esm2015/testing/test-element.js +0 -48
  797. package/esm2015/testing/testbed/fake-events/dispatch-events.js +0 -53
  798. package/esm2015/testing/testbed/fake-events/element-focus.js +0 -39
  799. package/esm2015/testing/testbed/fake-events/event-objects.js +0 -107
  800. package/esm2015/testing/testbed/fake-events/type-in-element.js +0 -79
  801. package/esm2015/testing/testbed/task-state-zone-interceptor.js +0 -82
  802. package/esm2015/testing/testbed/testbed-harness-environment.js +0 -173
  803. package/esm2015/testing/testbed/testbed.externs.js +0 -0
  804. package/esm2015/testing/testbed/unit-test-element.js +0 -266
  805. package/esm2015/testing/testing.externs.js +0 -0
  806. package/esm2015/testing/text-filtering.js +0 -23
  807. package/esm2015/text-field/autofill.js +0 -117
  808. package/esm2015/text-field/autosize.js +0 -293
  809. package/esm2015/text-field/index.js +0 -5
  810. package/esm2015/text-field/text-field-module.js +0 -21
  811. package/esm2015/text-field/text-field.externs.js +0 -6
  812. package/esm2015/tree/control/nested-tree-control.js +0 -59
  813. package/esm2015/tree/index.js +0 -5
  814. package/esm2015/tree/nested-node.js +0 -112
  815. package/esm2015/tree/node.js +0 -36
  816. package/esm2015/tree/outlet.js +0 -34
  817. package/esm2015/tree/padding.js +0 -119
  818. package/esm2015/tree/toggle.js +0 -46
  819. package/esm2015/tree/tree-module.js +0 -32
  820. package/esm2015/tree/tree.externs.js +0 -6
  821. package/esm2015/tree/tree.js +0 -345
  822. package/fesm2015/a11y.js.map +0 -1
  823. package/fesm2015/accordion.js.map +0 -1
  824. package/fesm2015/bidi.js.map +0 -1
  825. package/fesm2015/cdk.js.map +0 -1
  826. package/fesm2015/clipboard.js.map +0 -1
  827. package/fesm2015/coercion.js.map +0 -1
  828. package/fesm2015/collections.js.map +0 -1
  829. package/fesm2015/drag-drop.js.map +0 -1
  830. package/fesm2015/keycodes.js.map +0 -1
  831. package/fesm2015/layout.js.map +0 -1
  832. package/fesm2015/observers.js.map +0 -1
  833. package/fesm2015/overlay.js.map +0 -1
  834. package/fesm2015/platform.js.map +0 -1
  835. package/fesm2015/portal.js.map +0 -1
  836. package/fesm2015/scrolling.js.map +0 -1
  837. package/fesm2015/stepper.js.map +0 -1
  838. package/fesm2015/table.js.map +0 -1
  839. package/fesm2015/testing/protractor.js.map +0 -1
  840. package/fesm2015/testing/selenium-webdriver.js.map +0 -1
  841. package/fesm2015/testing/testbed.js.map +0 -1
  842. package/fesm2015/testing.js.map +0 -1
  843. package/fesm2015/text-field.js.map +0 -1
  844. package/fesm2015/tree.js.map +0 -1
  845. package/keycodes/index.metadata.json +0 -1
  846. package/layout/index.metadata.json +0 -1
  847. package/observers/index.metadata.json +0 -1
  848. package/overlay/index.metadata.json +0 -1
  849. package/platform/index.metadata.json +0 -1
  850. package/portal/index.metadata.json +0 -1
  851. package/scrolling/index.metadata.json +0 -1
  852. package/stepper/index.metadata.json +0 -1
  853. package/table/index.metadata.json +0 -1
  854. package/text-field/index.metadata.json +0 -1
  855. package/tree/index.metadata.json +0 -1
@@ -0,0 +1,176 @@
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 { Directionality } from '@angular/cdk/bidi';
9
+ import { getRtlScrollAxisType, supportsScrollBehavior, } from '@angular/cdk/platform';
10
+ import { Directive, ElementRef, NgZone, Optional } from '@angular/core';
11
+ import { fromEvent, Observable, Subject } from 'rxjs';
12
+ import { takeUntil } from 'rxjs/operators';
13
+ import { ScrollDispatcher } from './scroll-dispatcher';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "./scroll-dispatcher";
16
+ import * as i2 from "@angular/cdk/bidi";
17
+ /**
18
+ * Sends an event when the directive's element is scrolled. Registers itself with the
19
+ * ScrollDispatcher service to include itself as part of its collection of scrolling events that it
20
+ * can be listened to through the service.
21
+ */
22
+ export class CdkScrollable {
23
+ constructor(elementRef, scrollDispatcher, ngZone, dir) {
24
+ this.elementRef = elementRef;
25
+ this.scrollDispatcher = scrollDispatcher;
26
+ this.ngZone = ngZone;
27
+ this.dir = dir;
28
+ this._destroyed = new Subject();
29
+ this._elementScrolled = new Observable((observer) => this.ngZone.runOutsideAngular(() => fromEvent(this.elementRef.nativeElement, 'scroll')
30
+ .pipe(takeUntil(this._destroyed))
31
+ .subscribe(observer)));
32
+ }
33
+ ngOnInit() {
34
+ this.scrollDispatcher.register(this);
35
+ }
36
+ ngOnDestroy() {
37
+ this.scrollDispatcher.deregister(this);
38
+ this._destroyed.next();
39
+ this._destroyed.complete();
40
+ }
41
+ /** Returns observable that emits when a scroll event is fired on the host element. */
42
+ elementScrolled() {
43
+ return this._elementScrolled;
44
+ }
45
+ /** Gets the ElementRef for the viewport. */
46
+ getElementRef() {
47
+ return this.elementRef;
48
+ }
49
+ /**
50
+ * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo
51
+ * method, since browsers are not consistent about what scrollLeft means in RTL. For this method
52
+ * left and right always refer to the left and right side of the scrolling container irrespective
53
+ * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
54
+ * in an RTL context.
55
+ * @param options specified the offsets to scroll to.
56
+ */
57
+ scrollTo(options) {
58
+ const el = this.elementRef.nativeElement;
59
+ const isRtl = this.dir && this.dir.value == 'rtl';
60
+ // Rewrite start & end offsets as right or left offsets.
61
+ if (options.left == null) {
62
+ options.left = isRtl ? options.end : options.start;
63
+ }
64
+ if (options.right == null) {
65
+ options.right = isRtl ? options.start : options.end;
66
+ }
67
+ // Rewrite the bottom offset as a top offset.
68
+ if (options.bottom != null) {
69
+ options.top =
70
+ el.scrollHeight - el.clientHeight - options.bottom;
71
+ }
72
+ // Rewrite the right offset as a left offset.
73
+ if (isRtl && getRtlScrollAxisType() != 0 /* NORMAL */) {
74
+ if (options.left != null) {
75
+ options.right =
76
+ el.scrollWidth - el.clientWidth - options.left;
77
+ }
78
+ if (getRtlScrollAxisType() == 2 /* INVERTED */) {
79
+ options.left = options.right;
80
+ }
81
+ else if (getRtlScrollAxisType() == 1 /* NEGATED */) {
82
+ options.left = options.right ? -options.right : options.right;
83
+ }
84
+ }
85
+ else {
86
+ if (options.right != null) {
87
+ options.left =
88
+ el.scrollWidth - el.clientWidth - options.right;
89
+ }
90
+ }
91
+ this._applyScrollToOptions(options);
92
+ }
93
+ _applyScrollToOptions(options) {
94
+ const el = this.elementRef.nativeElement;
95
+ if (supportsScrollBehavior()) {
96
+ el.scrollTo(options);
97
+ }
98
+ else {
99
+ if (options.top != null) {
100
+ el.scrollTop = options.top;
101
+ }
102
+ if (options.left != null) {
103
+ el.scrollLeft = options.left;
104
+ }
105
+ }
106
+ }
107
+ /**
108
+ * Measures the scroll offset relative to the specified edge of the viewport. This method can be
109
+ * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent
110
+ * about what scrollLeft means in RTL. The values returned by this method are normalized such that
111
+ * left and right always refer to the left and right side of the scrolling container irrespective
112
+ * of the layout direction. start and end refer to left and right in an LTR context and vice-versa
113
+ * in an RTL context.
114
+ * @param from The edge to measure from.
115
+ */
116
+ measureScrollOffset(from) {
117
+ const LEFT = 'left';
118
+ const RIGHT = 'right';
119
+ const el = this.elementRef.nativeElement;
120
+ if (from == 'top') {
121
+ return el.scrollTop;
122
+ }
123
+ if (from == 'bottom') {
124
+ return el.scrollHeight - el.clientHeight - el.scrollTop;
125
+ }
126
+ // Rewrite start & end as left or right offsets.
127
+ const isRtl = this.dir && this.dir.value == 'rtl';
128
+ if (from == 'start') {
129
+ from = isRtl ? RIGHT : LEFT;
130
+ }
131
+ else if (from == 'end') {
132
+ from = isRtl ? LEFT : RIGHT;
133
+ }
134
+ if (isRtl && getRtlScrollAxisType() == 2 /* INVERTED */) {
135
+ // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and
136
+ // 0 when scrolled all the way right.
137
+ if (from == LEFT) {
138
+ return el.scrollWidth - el.clientWidth - el.scrollLeft;
139
+ }
140
+ else {
141
+ return el.scrollLeft;
142
+ }
143
+ }
144
+ else if (isRtl && getRtlScrollAxisType() == 1 /* NEGATED */) {
145
+ // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and
146
+ // 0 when scrolled all the way right.
147
+ if (from == LEFT) {
148
+ return el.scrollLeft + el.scrollWidth - el.clientWidth;
149
+ }
150
+ else {
151
+ return -el.scrollLeft;
152
+ }
153
+ }
154
+ else {
155
+ // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and
156
+ // (scrollWidth - clientWidth) when scrolled all the way right.
157
+ if (from == LEFT) {
158
+ return el.scrollLeft;
159
+ }
160
+ else {
161
+ return el.scrollWidth - el.clientWidth - el.scrollLeft;
162
+ }
163
+ }
164
+ }
165
+ }
166
+ CdkScrollable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: CdkScrollable, deps: [{ token: i0.ElementRef }, { token: i1.ScrollDispatcher }, { token: i0.NgZone }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
167
+ CdkScrollable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-next.15", type: CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]", ngImport: i0 });
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: CdkScrollable, decorators: [{
169
+ type: Directive,
170
+ args: [{
171
+ selector: '[cdk-scrollable], [cdkScrollable]',
172
+ }]
173
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ScrollDispatcher }, { type: i0.NgZone }, { type: i2.Directionality, decorators: [{
174
+ type: Optional
175
+ }] }]; } });
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2Nyb2xsaW5nL3Njcm9sbGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQXFCckQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBV3hCLFlBQ1ksVUFBbUMsRUFDbkMsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDRixHQUFvQjtRQUhoQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDRixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQWQzQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUxQyxxQkFBZ0IsR0FBc0IsSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUF5QixFQUFFLEVBQUUsQ0FDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzthQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElB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QkFBOEIsRUFBRTtZQUNqRSw2RkFBNkY7WUFDN0YscUNBQXFDO1lBQ3JDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN4RDtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7YUFDdEI7U0FDRjthQUFNLElBQUksS0FBSyxJQUFJLG9CQUFvQixFQUFFLG1CQUE2QixFQUFFO1lBQ3ZFLDZGQUE2RjtZQUM3RixxQ0FBcUM7WUFDckMsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO2FBQ3ZCO1NBQ0Y7YUFBTTtZQUNMLDhGQUE4RjtZQUM5RiwrREFBK0Q7WUFDL0QsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO2dCQUNoQixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0wsT0FBTyxFQUFFLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQzthQUN4RDtTQUNGO0lBQ0gsQ0FBQzs7a0hBM0pVLGFBQWE7c0dBQWIsYUFBYTttR0FBYixhQUFhO2tCQUh6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7aUJBQzlDOzswQkFnQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge1xuICBnZXRSdGxTY3JvbGxBeGlzVHlwZSxcbiAgUnRsU2Nyb2xsQXhpc1R5cGUsXG4gIHN1cHBvcnRzU2Nyb2xsQmVoYXZpb3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSc7XG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgTmdab25lLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3QsIE9ic2VydmVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Njcm9sbERpc3BhdGNoZXJ9IGZyb20gJy4vc2Nyb2xsLWRpc3BhdGNoZXInO1xuXG5leHBvcnQgdHlwZSBfV2l0aG91dDxUPiA9IHtbUCBpbiBrZXlvZiBUXT86IG5ldmVyfTtcbmV4cG9ydCB0eXBlIF9YT1I8VCwgVT4gPSAoX1dpdGhvdXQ8VD4gJiBVKSB8IChfV2l0aG91dDxVPiAmIFQpO1xuZXhwb3J0IHR5cGUgX1RvcCA9IHt0b3A/OiBudW1iZXJ9O1xuZXhwb3J0IHR5cGUgX0JvdHRvbSA9IHtib3R0b20/OiBudW1iZXJ9O1xuZXhwb3J0IHR5cGUgX0xlZnQgPSB7bGVmdD86IG51bWJlcn07XG5leHBvcnQgdHlwZSBfUmlnaHQgPSB7cmlnaHQ/OiBudW1iZXJ9O1xuZXhwb3J0IHR5cGUgX1N0YXJ0ID0ge3N0YXJ0PzogbnVtYmVyfTtcbmV4cG9ydCB0eXBlIF9FbmQgPSB7ZW5kPzogbnVtYmVyfTtcbmV4cG9ydCB0eXBlIF9YQXhpcyA9IF9YT1I8X1hPUjxfTGVmdCwgX1JpZ2h0PiwgX1hPUjxfU3RhcnQsIF9FbmQ+PjtcbmV4cG9ydCB0eXBlIF9ZQXhpcyA9IF9YT1I8X1RvcCwgX0JvdHRvbT47XG5cbi8qKlxuICogQW4gZXh0ZW5kZWQgdmVyc2lvbiBvZiBTY3JvbGxUb09wdGlvbnMgdGhhdCBhbGxvd3MgZXhwcmVzc2luZyBzY3JvbGwgb2Zmc2V0cyByZWxhdGl2ZSB0byB0aGVcbiAqIHRvcCwgYm90dG9tLCBsZWZ0LCByaWdodCwgc3RhcnQsIG9yIGVuZCBvZiB0aGUgdmlld3BvcnQgcmF0aGVyIHRoYW4ganVzdCB0aGUgdG9wIGFuZCBsZWZ0LlxuICogUGxlYXNlIG5vdGU6IHRoZSB0b3AgYW5kIGJvdHRvbSBwcm9wZXJ0aWVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUsIGFzIGFyZSB0aGUgbGVmdCwgcmlnaHQsXG4gKiBzdGFydCwgYW5kIGVuZCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgdHlwZSBFeHRlbmRlZFNjcm9sbFRvT3B0aW9ucyA9IF9YQXhpcyAmIF9ZQXhpcyAmIFNjcm9sbE9wdGlvbnM7XG5cbi8qKlxuICogU2VuZHMgYW4gZXZlbnQgd2hlbiB0aGUgZGlyZWN0aXZlJ3MgZWxlbWVudCBpcyBzY3JvbGxlZC4gUmVnaXN0ZXJzIGl0c2VsZiB3aXRoIHRoZVxuICogU2Nyb2xsRGlzcGF0Y2hlciBzZXJ2aWNlIHRvIGluY2x1ZGUgaXRzZWxmIGFzIHBhcnQgb2YgaXRzIGNvbGxlY3Rpb24gb2Ygc2Nyb2xsaW5nIGV2ZW50cyB0aGF0IGl0XG4gKiBjYW4gYmUgbGlzdGVuZWQgdG8gdGhyb3VnaCB0aGUgc2VydmljZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nkay1zY3JvbGxhYmxlXSwgW2Nka1Njcm9sbGFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2RrU2Nyb2xsYWJsZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9lbGVtZW50U2Nyb2xsZWQ6IE9ic2VydmFibGU8RXZlbnQ+ID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxFdmVudD4pID0+XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKVxuICAgICAgICAuc3Vic2NyaWJlKG9ic2VydmVyKSxcbiAgICApLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcm90ZWN0ZWQgc2Nyb2xsRGlzcGF0Y2hlcjogU2Nyb2xsRGlzcGF0Y2hlcixcbiAgICBwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGRpcj86IERpcmVjdGlvbmFsaXR5LFxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zY3JvbGxEaXNwYXRjaGVyLmRlcmVnaXN0ZXIodGhpcyk7XG4gICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGEgc2Nyb2xsIGV2ZW50IGlzIGZpcmVkIG9uIHRoZSBob3N0IGVsZW1lbnQuICovXG4gIGVsZW1lbnRTY3JvbGxlZCgpOiBPYnNlcnZhYmxlPEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRTY3JvbGxlZDtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBFbGVtZW50UmVmIGZvciB0aGUgdmlld3BvcnQuICovXG4gIGdldEVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWY7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0byB0aGUgc3BlY2lmaWVkIG9mZnNldHMuIFRoaXMgaXMgYSBub3JtYWxpemVkIHZlcnNpb24gb2YgdGhlIGJyb3dzZXIncyBuYXRpdmUgc2Nyb2xsVG9cbiAgICogbWV0aG9kLCBzaW5jZSBicm93c2VycyBhcmUgbm90IGNvbnNpc3RlbnQgYWJvdXQgd2hhdCBzY3JvbGxMZWZ0IG1lYW5zIGluIFJUTC4gRm9yIHRoaXMgbWV0aG9kXG4gICAqIGxlZnQgYW5kIHJpZ2h0IGFsd2F5cyByZWZlciB0byB0aGUgbGVmdCBhbmQgcmlnaHQgc2lkZSBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciBpcnJlc3BlY3RpdmVcbiAgICogb2YgdGhlIGxheW91dCBkaXJlY3Rpb24uIHN0YXJ0IGFuZCBlbmQgcmVmZXIgdG8gbGVmdCBhbmQgcmlnaHQgaW4gYW4gTFRSIGNvbnRleHQgYW5kIHZpY2UtdmVyc2FcbiAgICogaW4gYW4gUlRMIGNvbnRleHQuXG4gICAqIEBwYXJhbSBvcHRpb25zIHNwZWNpZmllZCB0aGUgb2Zmc2V0cyB0byBzY3JvbGwgdG8uXG4gICAqL1xuICBzY3JvbGxUbyhvcHRpb25zOiBFeHRlbmRlZFNjcm9sbFRvT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaXNSdGwgPSB0aGlzLmRpciAmJiB0aGlzLmRpci52YWx1ZSA9PSAncnRsJztcblxuICAgIC8vIFJld3JpdGUgc3RhcnQgJiBlbmQgb2Zmc2V0cyBhcyByaWdodCBvciBsZWZ0IG9mZnNldHMuXG4gICAgaWYgKG9wdGlvbnMubGVmdCA9PSBudWxsKSB7XG4gICAgICBvcHRpb25zLmxlZnQgPSBpc1J0bCA/IG9wdGlvbnMuZW5kIDogb3B0aW9ucy5zdGFydDtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5yaWdodCA9PSBudWxsKSB7XG4gICAgICBvcHRpb25zLnJpZ2h0ID0gaXNSdGwgPyBvcHRpb25zLnN0YXJ0IDogb3B0aW9ucy5lbmQ7XG4gICAgfVxuXG4gICAgLy8gUmV3cml0ZSB0aGUgYm90dG9tIG9mZnNldCBhcyBhIHRvcCBvZmZzZXQuXG4gICAgaWYgKG9wdGlvbnMuYm90dG9tICE9IG51bGwpIHtcbiAgICAgIChvcHRpb25zIGFzIF9XaXRob3V0PF9Cb3R0b20+ICYgX1RvcCkudG9wID1cbiAgICAgICAgZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuY2xpZW50SGVpZ2h0IC0gb3B0aW9ucy5ib3R0b207XG4gICAgfVxuXG4gICAgLy8gUmV3cml0ZSB0aGUgcmlnaHQgb2Zmc2V0IGFzIGEgbGVmdCBvZmZzZXQuXG4gICAgaWYgKGlzUnRsICYmIGdldFJ0bFNjcm9sbEF4aXNUeXBlKCkgIT0gUnRsU2Nyb2xsQXhpc1R5cGUuTk9STUFMKSB7XG4gICAgICBpZiAob3B0aW9ucy5sZWZ0ICE9IG51bGwpIHtcbiAgICAgICAgKG9wdGlvbnMgYXMgX1dpdGhvdXQ8X0xlZnQ+ICYgX1JpZ2h0KS5yaWdodCA9XG4gICAgICAgICAgZWwuc2Nyb2xsV2lkdGggLSBlbC5jbGllbnRXaWR0aCAtIG9wdGlvbnMubGVmdDtcbiAgICAgIH1cblxuICAgICAgaWYgKGdldFJ0bFNjcm9sbEF4aXNUeXBlKCkgPT0gUnRsU2Nyb2xsQXhpc1R5cGUuSU5WRVJURUQpIHtcbiAgICAgICAgb3B0aW9ucy5sZWZ0ID0gb3B0aW9ucy5yaWdodDtcbiAgICAgIH0gZWxzZSBpZiAoZ2V0UnRsU2Nyb2xsQXhpc1R5cGUoKSA9PSBSdGxTY3JvbGxBeGlzVHlwZS5ORUdBVEVEKSB7XG4gICAgICAgIG9wdGlvbnMubGVmdCA9IG9wdGlvbnMucmlnaHQgPyAtb3B0aW9ucy5yaWdodCA6IG9wdGlvbnMucmlnaHQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChvcHRpb25zLnJpZ2h0ICE9IG51bGwpIHtcbiAgICAgICAgKG9wdGlvbnMgYXMgX1dpdGhvdXQ8X1JpZ2h0PiAmIF9MZWZ0KS5sZWZ0ID1cbiAgICAgICAgICBlbC5zY3JvbGxXaWR0aCAtIGVsLmNsaWVudFdpZHRoIC0gb3B0aW9ucy5yaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9hcHBseVNjcm9sbFRvT3B0aW9ucyhvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5U2Nyb2xsVG9PcHRpb25zKG9wdGlvbnM6IFNjcm9sbFRvT3B0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoc3VwcG9ydHNTY3JvbGxCZWhhdmlvcigpKSB7XG4gICAgICBlbC5zY3JvbGxUbyhvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnMudG9wICE9IG51bGwpIHtcbiAgICAgICAgZWwuc2Nyb2xsVG9wID0gb3B0aW9ucy50b3A7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5sZWZ0ICE9IG51bGwpIHtcbiAgICAgICAgZWwuc2Nyb2xsTGVmdCA9IG9wdGlvbnMubGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVhc3VyZXMgdGhlIHNjcm9sbCBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIHNwZWNpZmllZCBlZGdlIG9mIHRoZSB2aWV3cG9ydC4gVGhpcyBtZXRob2QgY2FuIGJlXG4gICAqIHVzZWQgaW5zdGVhZCBvZiBkaXJlY3RseSBjaGVja2luZyBzY3JvbGxMZWZ0IG9yIHNjcm9sbFRvcCwgc2luY2UgYnJvd3NlcnMgYXJlIG5vdCBjb25zaXN0ZW50XG4gICAqIGFib3V0IHdoYXQgc2Nyb2xsTGVmdCBtZWFucyBpbiBSVEwuIFRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgdGhpcyBtZXRob2QgYXJlIG5vcm1hbGl6ZWQgc3VjaCB0aGF0XG4gICAqIGxlZnQgYW5kIHJpZ2h0IGFsd2F5cyByZWZlciB0byB0aGUgbGVmdCBhbmQgcmlnaHQgc2lkZSBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciBpcnJlc3BlY3RpdmVcbiAgICogb2YgdGhlIGxheW91dCBkaXJlY3Rpb24uIHN0YXJ0IGFuZCBlbmQgcmVmZXIgdG8gbGVmdCBhbmQgcmlnaHQgaW4gYW4gTFRSIGNvbnRleHQgYW5kIHZpY2UtdmVyc2FcbiAgICogaW4gYW4gUlRMIGNvbnRleHQuXG4gICAqIEBwYXJhbSBmcm9tIFRoZSBlZGdlIHRvIG1lYXN1cmUgZnJvbS5cbiAgICovXG4gIG1lYXN1cmVTY3JvbGxPZmZzZXQoZnJvbTogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnc3RhcnQnIHwgJ2VuZCcpOiBudW1iZXIge1xuICAgIGNvbnN0IExFRlQgPSAnbGVmdCc7XG4gICAgY29uc3QgUklHSFQgPSAncmlnaHQnO1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGZyb20gPT0gJ3RvcCcpIHtcbiAgICAgIHJldHVybiBlbC5zY3JvbGxUb3A7XG4gICAgfVxuICAgIGlmIChmcm9tID09ICdib3R0b20nKSB7XG4gICAgICByZXR1cm4gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuY2xpZW50SGVpZ2h0IC0gZWwuc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8vIFJld3JpdGUgc3RhcnQgJiBlbmQgYXMgbGVmdCBvciByaWdodCBvZmZzZXRzLlxuICAgIGNvbnN0IGlzUnRsID0gdGhpcy5kaXIgJiYgdGhpcy5kaXIudmFsdWUgPT0gJ3J0bCc7XG4gICAgaWYgKGZyb20gPT0gJ3N0YXJ0Jykge1xuICAgICAgZnJvbSA9IGlzUnRsID8gUklHSFQgOiBMRUZUO1xuICAgIH0gZWxzZSBpZiAoZnJvbSA9PSAnZW5kJykge1xuICAgICAgZnJvbSA9IGlzUnRsID8gTEVGVCA6IFJJR0hUO1xuICAgIH1cblxuICAgIGlmIChpc1J0bCAmJiBnZXRSdGxTY3JvbGxBeGlzVHlwZSgpID09IFJ0bFNjcm9sbEF4aXNUeXBlLklOVkVSVEVEKSB7XG4gICAgICAvLyBGb3IgSU5WRVJURUQsIHNjcm9sbExlZnQgaXMgKHNjcm9sbFdpZHRoIC0gY2xpZW50V2lkdGgpIHdoZW4gc2Nyb2xsZWQgYWxsIHRoZSB3YXkgbGVmdCBhbmRcbiAgICAgIC8vIDAgd2hlbiBzY3JvbGxlZCBhbGwgdGhlIHdheSByaWdodC5cbiAgICAgIGlmIChmcm9tID09IExFRlQpIHtcbiAgICAgICAgcmV0dXJuIGVsLnNjcm9sbFdpZHRoIC0gZWwuY2xpZW50V2lkdGggLSBlbC5zY3JvbGxMZWZ0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVsLnNjcm9sbExlZnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1J0bCAmJiBnZXRSdGxTY3JvbGxBeGlzVHlwZSgpID09IFJ0bFNjcm9sbEF4aXNUeXBlLk5FR0FURUQpIHtcbiAgICAgIC8vIEZvciBORUdBVEVELCBzY3JvbGxMZWZ0IGlzIC0oc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCkgd2hlbiBzY3JvbGxlZCBhbGwgdGhlIHdheSBsZWZ0IGFuZFxuICAgICAgLy8gMCB3aGVuIHNjcm9sbGVkIGFsbCB0aGUgd2F5IHJpZ2h0LlxuICAgICAgaWYgKGZyb20gPT0gTEVGVCkge1xuICAgICAgICByZXR1cm4gZWwuc2Nyb2xsTGVmdCArIGVsLnNjcm9sbFdpZHRoIC0gZWwuY2xpZW50V2lkdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gLWVsLnNjcm9sbExlZnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBOT1JNQUwsIGFzIHdlbGwgYXMgbm9uLVJUTCBjb250ZXh0cywgc2Nyb2xsTGVmdCBpcyAwIHdoZW4gc2Nyb2xsZWQgYWxsIHRoZSB3YXkgbGVmdCBhbmRcbiAgICAgIC8vIChzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoKSB3aGVuIHNjcm9sbGVkIGFsbCB0aGUgd2F5IHJpZ2h0LlxuICAgICAgaWYgKGZyb20gPT0gTEVGVCkge1xuICAgICAgICByZXR1cm4gZWwuc2Nyb2xsTGVmdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBlbC5zY3JvbGxXaWR0aCAtIGVsLmNsaWVudFdpZHRoIC0gZWwuc2Nyb2xsTGVmdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,52 @@
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 { BidiModule } from '@angular/cdk/bidi';
9
+ import { PlatformModule } from '@angular/cdk/platform';
10
+ import { NgModule } from '@angular/core';
11
+ import { CdkFixedSizeVirtualScroll } from './fixed-size-virtual-scroll';
12
+ import { CdkScrollable } from './scrollable';
13
+ import { CdkVirtualForOf } from './virtual-for-of';
14
+ import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
15
+ import * as i0 from "@angular/core";
16
+ export class CdkScrollableModule {
17
+ }
18
+ CdkScrollableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: CdkScrollableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ CdkScrollableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: CdkScrollableModule, declarations: [CdkScrollable], exports: [CdkScrollable] });
20
+ CdkScrollableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: CdkScrollableModule });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: CdkScrollableModule, decorators: [{
22
+ type: NgModule,
23
+ args: [{
24
+ exports: [CdkScrollable],
25
+ declarations: [CdkScrollable],
26
+ }]
27
+ }] });
28
+ /**
29
+ * @docs-primary-export
30
+ */
31
+ export class ScrollingModule {
32
+ }
33
+ ScrollingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ScrollingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
34
+ ScrollingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ScrollingModule, declarations: [CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport], imports: [BidiModule, PlatformModule, CdkScrollableModule], exports: [BidiModule, CdkScrollableModule, CdkFixedSizeVirtualScroll,
35
+ CdkVirtualForOf,
36
+ CdkVirtualScrollViewport] });
37
+ ScrollingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ScrollingModule, imports: [[BidiModule, PlatformModule, CdkScrollableModule], BidiModule, CdkScrollableModule] });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ScrollingModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ imports: [BidiModule, PlatformModule, CdkScrollableModule],
42
+ exports: [
43
+ BidiModule,
44
+ CdkScrollableModule,
45
+ CdkFixedSizeVirtualScroll,
46
+ CdkVirtualForOf,
47
+ CdkVirtualScrollViewport,
48
+ ],
49
+ declarations: [CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport],
50
+ }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsaW5nLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2Nyb2xsaW5nL3Njcm9sbGluZy1tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQU1uRSxNQUFNLE9BQU8sbUJBQW1COzt3SEFBbkIsbUJBQW1CO3lIQUFuQixtQkFBbUIsaUJBRmYsYUFBYSxhQURsQixhQUFhO3lIQUdaLG1CQUFtQjttR0FBbkIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUM5Qjs7QUFHRDs7R0FFRztBQVlILE1BQU0sT0FBTyxlQUFlOztvSEFBZixlQUFlO3FIQUFmLGVBQWUsaUJBRlgseUJBQXlCLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixhQVJ6RSxVQUFVLEVBQUUsY0FBYyxFQU56QixtQkFBbUIsYUFRNUIsVUFBVSxFQVJELG1CQUFtQixFQVU1Qix5QkFBeUI7UUFDekIsZUFBZTtRQUNmLHdCQUF3QjtxSEFJZixlQUFlLFlBVmpCLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxFQUV4RCxVQUFVLEVBUkQsbUJBQW1CO21HQWdCbkIsZUFBZTtrQkFYM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDO29CQUMxRCxPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZix3QkFBd0I7cUJBQ3pCO29CQUNELFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLGVBQWUsRUFBRSx3QkFBd0IsQ0FBQztpQkFDckYiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtCaWRpTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge1BsYXRmb3JtTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Nka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGx9IGZyb20gJy4vZml4ZWQtc2l6ZS12aXJ0dWFsLXNjcm9sbCc7XG5pbXBvcnQge0Nka1Njcm9sbGFibGV9IGZyb20gJy4vc2Nyb2xsYWJsZSc7XG5pbXBvcnQge0Nka1ZpcnR1YWxGb3JPZn0gZnJvbSAnLi92aXJ0dWFsLWZvci1vZic7XG5pbXBvcnQge0Nka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydH0gZnJvbSAnLi92aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtDZGtTY3JvbGxhYmxlXSxcbiAgZGVjbGFyYXRpb25zOiBbQ2RrU2Nyb2xsYWJsZV0sXG59KVxuZXhwb3J0IGNsYXNzIENka1Njcm9sbGFibGVNb2R1bGUge31cblxuLyoqXG4gKiBAZG9jcy1wcmltYXJ5LWV4cG9ydFxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQmlkaU1vZHVsZSwgUGxhdGZvcm1Nb2R1bGUsIENka1Njcm9sbGFibGVNb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgQmlkaU1vZHVsZSxcbiAgICBDZGtTY3JvbGxhYmxlTW9kdWxlLFxuICAgIENka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGwsXG4gICAgQ2RrVmlydHVhbEZvck9mLFxuICAgIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCwgQ2RrVmlydHVhbEZvck9mLCBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxpbmdNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsaW5nX3B1YmxpY19pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvc2Nyb2xsaW5nL3Njcm9sbGluZ19wdWJsaWNfaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,146 @@
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 { Platform } from '@angular/cdk/platform';
9
+ import { Injectable, NgZone, Optional, Inject } from '@angular/core';
10
+ import { Subject } from 'rxjs';
11
+ import { auditTime } from 'rxjs/operators';
12
+ import { DOCUMENT } from '@angular/common';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/cdk/platform";
15
+ /** Time in ms to throttle the resize events by default. */
16
+ export const DEFAULT_RESIZE_TIME = 20;
17
+ /**
18
+ * Simple utility for getting the bounds of the browser viewport.
19
+ * @docs-private
20
+ */
21
+ export class ViewportRuler {
22
+ constructor(_platform, ngZone, document) {
23
+ this._platform = _platform;
24
+ /** Stream of viewport change events. */
25
+ this._change = new Subject();
26
+ /** Event listener that will be used to handle the viewport change events. */
27
+ this._changeListener = (event) => {
28
+ this._change.next(event);
29
+ };
30
+ this._document = document;
31
+ ngZone.runOutsideAngular(() => {
32
+ if (_platform.isBrowser) {
33
+ const window = this._getWindow();
34
+ // Note that bind the events ourselves, rather than going through something like RxJS's
35
+ // `fromEvent` so that we can ensure that they're bound outside of the NgZone.
36
+ window.addEventListener('resize', this._changeListener);
37
+ window.addEventListener('orientationchange', this._changeListener);
38
+ }
39
+ // Clear the cached position so that the viewport is re-measured next time it is required.
40
+ // We don't need to keep track of the subscription, because it is completed on destroy.
41
+ this.change().subscribe(() => (this._viewportSize = null));
42
+ });
43
+ }
44
+ ngOnDestroy() {
45
+ if (this._platform.isBrowser) {
46
+ const window = this._getWindow();
47
+ window.removeEventListener('resize', this._changeListener);
48
+ window.removeEventListener('orientationchange', this._changeListener);
49
+ }
50
+ this._change.complete();
51
+ }
52
+ /** Returns the viewport's width and height. */
53
+ getViewportSize() {
54
+ if (!this._viewportSize) {
55
+ this._updateViewportSize();
56
+ }
57
+ const output = { width: this._viewportSize.width, height: this._viewportSize.height };
58
+ // If we're not on a browser, don't cache the size since it'll be mocked out anyway.
59
+ if (!this._platform.isBrowser) {
60
+ this._viewportSize = null;
61
+ }
62
+ return output;
63
+ }
64
+ /** Gets a ClientRect for the viewport's bounds. */
65
+ getViewportRect() {
66
+ // Use the document element's bounding rect rather than the window scroll properties
67
+ // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll
68
+ // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different
69
+ // conceptual viewports. Under most circumstances these viewports are equivalent, but they
70
+ // can disagree when the page is pinch-zoomed (on devices that support touch).
71
+ // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4
72
+ // We use the documentElement instead of the body because, by default (without a css reset)
73
+ // browsers typically give the document body an 8px margin, which is not included in
74
+ // getBoundingClientRect().
75
+ const scrollPosition = this.getViewportScrollPosition();
76
+ const { width, height } = this.getViewportSize();
77
+ return {
78
+ top: scrollPosition.top,
79
+ left: scrollPosition.left,
80
+ bottom: scrollPosition.top + height,
81
+ right: scrollPosition.left + width,
82
+ height,
83
+ width,
84
+ };
85
+ }
86
+ /** Gets the (top, left) scroll position of the viewport. */
87
+ getViewportScrollPosition() {
88
+ // While we can get a reference to the fake document
89
+ // during SSR, it doesn't have getBoundingClientRect.
90
+ if (!this._platform.isBrowser) {
91
+ return { top: 0, left: 0 };
92
+ }
93
+ // The top-left-corner of the viewport is determined by the scroll position of the document
94
+ // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about
95
+ // whether `document.body` or `document.documentElement` is the scrolled element, so reading
96
+ // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of
97
+ // `document.documentElement` works consistently, where the `top` and `left` values will
98
+ // equal negative the scroll position.
99
+ const document = this._document;
100
+ const window = this._getWindow();
101
+ const documentElement = document.documentElement;
102
+ const documentRect = documentElement.getBoundingClientRect();
103
+ const top = -documentRect.top ||
104
+ document.body.scrollTop ||
105
+ window.scrollY ||
106
+ documentElement.scrollTop ||
107
+ 0;
108
+ const left = -documentRect.left ||
109
+ document.body.scrollLeft ||
110
+ window.scrollX ||
111
+ documentElement.scrollLeft ||
112
+ 0;
113
+ return { top, left };
114
+ }
115
+ /**
116
+ * Returns a stream that emits whenever the size of the viewport changes.
117
+ * This stream emits outside of the Angular zone.
118
+ * @param throttleTime Time in milliseconds to throttle the stream.
119
+ */
120
+ change(throttleTime = DEFAULT_RESIZE_TIME) {
121
+ return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;
122
+ }
123
+ /** Use defaultView of injected document if available or fallback to global window reference */
124
+ _getWindow() {
125
+ return this._document.defaultView || window;
126
+ }
127
+ /** Updates the cached viewport size. */
128
+ _updateViewportSize() {
129
+ const window = this._getWindow();
130
+ this._viewportSize = this._platform.isBrowser
131
+ ? { width: window.innerWidth, height: window.innerHeight }
132
+ : { width: 0, height: 0 };
133
+ }
134
+ }
135
+ ViewportRuler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ViewportRuler, deps: [{ token: i1.Platform }, { token: i0.NgZone }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
136
+ ViewportRuler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ViewportRuler, providedIn: 'root' });
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: ViewportRuler, decorators: [{
138
+ type: Injectable,
139
+ args: [{ providedIn: 'root' }]
140
+ }], ctorParameters: function () { return [{ type: i1.Platform }, { type: i0.NgZone }, { type: undefined, decorators: [{
141
+ type: Optional
142
+ }, {
143
+ type: Inject,
144
+ args: [DOCUMENT]
145
+ }] }]; } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQtcnVsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3Njcm9sbGluZy92aWV3cG9ydC1ydWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQWEsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQUV6QywyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO0FBUXRDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBZXhCLFlBQ1UsU0FBbUIsRUFDM0IsTUFBYyxFQUNnQixRQUFhO1FBRm5DLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFaN0Isd0NBQXdDO1FBQ3ZCLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO1FBRWhELDZFQUE2RTtRQUNyRSxvQkFBZSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDO1FBVUEsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFFMUIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM1QixJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUU7Z0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFFakMsdUZBQXVGO2dCQUN2Riw4RUFB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QUR6QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7MEJBbUIzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7YXVkaXRUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKiogVGltZSBpbiBtcyB0byB0aHJvdHRsZSB0aGUgcmVzaXplIGV2ZW50cyBieSBkZWZhdWx0LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVTSVpFX1RJTUUgPSAyMDtcblxuLyoqIE9iamVjdCB0aGF0IGhvbGRzIHRoZSBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIHZpZXdwb3J0IGluIGVhY2ggZGlyZWN0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaWV3cG9ydFNjcm9sbFBvc2l0aW9uIHtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTaW1wbGUgdXRpbGl0eSBmb3IgZ2V0dGluZyB0aGUgYm91bmRzIG9mIHRoZSBicm93c2VyIHZpZXdwb3J0LlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBWaWV3cG9ydFJ1bGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqIENhY2hlZCB2aWV3cG9ydCBkaW1lbnNpb25zLiAqL1xuICBwcml2YXRlIF92aWV3cG9ydFNpemU6IHt3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlcn0gfCBudWxsO1xuXG4gIC8qKiBTdHJlYW0gb2Ygdmlld3BvcnQgY2hhbmdlIGV2ZW50cy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGxpc3RlbmVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGhhbmRsZSB0aGUgdmlld3BvcnQgY2hhbmdlIGV2ZW50cy4gKi9cbiAgcHJpdmF0ZSBfY2hhbmdlTGlzdGVuZXIgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgdGhpcy5fY2hhbmdlLm5leHQoZXZlbnQpO1xuICB9O1xuXG4gIC8qKiBVc2VkIHRvIHJlZmVyZW5jZSBjb3JyZWN0IGRvY3VtZW50L3dpbmRvdyAqL1xuICBwcm90ZWN0ZWQgX2RvY3VtZW50OiBEb2N1bWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9wbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IGFueSxcbiAgKSB7XG4gICAgdGhpcy5fZG9jdW1lbnQgPSBkb2N1bWVudDtcblxuICAgIG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAoX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl9nZXRXaW5kb3coKTtcblxuICAgICAgICAvLyBOb3RlIHRoYXQgYmluZCB0aGUgZXZlbnRzIG91cnNlbHZlcywgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCBzb21ldGhpbmcgbGlrZSBSeEpTJ3NcbiAgICAgICAgLy8gYGZyb21FdmVudGAgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIHRoYXQgdGhleSdyZSBib3VuZCBvdXRzaWRlIG9mIHRoZSBOZ1pvbmUuXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLl9jaGFuZ2VMaXN0ZW5lcik7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuX2NoYW5nZUxpc3RlbmVyKTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2xlYXIgdGhlIGNhY2hlZCBwb3NpdGlvbiBzbyB0aGF0IHRoZSB2aWV3cG9ydCBpcyByZS1tZWFzdXJlZCBuZXh0IHRpbWUgaXQgaXMgcmVxdWlyZWQuXG4gICAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHN1YnNjcmlwdGlvbiwgYmVjYXVzZSBpdCBpcyBjb21wbGV0ZWQgb24gZGVzdHJveS5cbiAgICAgIHRoaXMuY2hhbmdlKCkuc3Vic2NyaWJlKCgpID0+ICh0aGlzLl92aWV3cG9ydFNpemUgPSBudWxsKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyKSB7XG4gICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl9nZXRXaW5kb3coKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLl9jaGFuZ2VMaXN0ZW5lcik7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCB0aGlzLl9jaGFuZ2VMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgdGhpcy5fY2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgdmlld3BvcnQncyB3aWR0aCBhbmQgaGVpZ2h0LiAqL1xuICBnZXRWaWV3cG9ydFNpemUoKTogUmVhZG9ubHk8e3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfT4ge1xuICAgIGlmICghdGhpcy5fdmlld3BvcnRTaXplKSB7XG4gICAgICB0aGlzLl91cGRhdGVWaWV3cG9ydFNpemUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBvdXRwdXQgPSB7d2lkdGg6IHRoaXMuX3ZpZXdwb3J0U2l6ZSEud2lkdGgsIGhlaWdodDogdGhpcy5fdmlld3BvcnRTaXplIS5oZWlnaHR9O1xuXG4gICAgLy8gSWYgd2UncmUgbm90IG9uIGEgYnJvd3NlciwgZG9uJ3QgY2FjaGUgdGhlIHNpemUgc2luY2UgaXQnbGwgYmUgbW9ja2VkIG91dCBhbnl3YXkuXG4gICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgIHRoaXMuX3ZpZXdwb3J0U2l6ZSA9IG51bGwhO1xuICAgIH1cblxuICAgIHJldHVybiBvdXRwdXQ7XG4gIH1cblxuICAvKiogR2V0cyBhIENsaWVudFJlY3QgZm9yIHRoZSB2aWV3cG9ydCdzIGJvdW5kcy4gKi9cbiAgZ2V0Vmlld3BvcnRSZWN0KCkge1xuICAgIC8vIFVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGJvdW5kaW5nIHJlY3QgcmF0aGVyIHRoYW4gdGhlIHdpbmRvdyBzY3JvbGwgcHJvcGVydGllc1xuICAgIC8vIChlLmcuIHBhZ2VZT2Zmc2V0LCBzY3JvbGxZKSBkdWUgdG8gaW4gaXNzdWUgaW4gQ2hyb21lIGFuZCBJRSB3aGVyZSB3aW5kb3cgc2Nyb2xsXG4gICAgLy8gcHJvcGVydGllcyBhbmQgY2xpZW50IGNvb3JkaW5hdGVzIChib3VuZGluZ0NsaWVudFJlY3QsIGNsaWVudFgvWSwgZXRjLikgYXJlIGluIGRpZmZlcmVudFxuICAgIC8vIGNvbmNlcHR1YWwgdmlld3BvcnRzLiBVbmRlciBtb3N0IGNpcmN1bXN0YW5jZXMgdGhlc2Ugdmlld3BvcnRzIGFyZSBlcXVpdmFsZW50LCBidXQgdGhleVxuICAgIC8vIGNhbiBkaXNhZ3JlZSB3aGVuIHRoZSBwYWdlIGlzIHBpbmNoLXpvb21lZCAob24gZGV2aWNlcyB0aGF0IHN1cHBvcnQgdG91Y2gpLlxuICAgIC8vIFNlZSBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD00ODkyMDYjYzRcbiAgICAvLyBXZSB1c2UgdGhlIGRvY3VtZW50RWxlbWVudCBpbnN0ZWFkIG9mIHRoZSBib2R5IGJlY2F1c2UsIGJ5IGRlZmF1bHQgKHdpdGhvdXQgYSBjc3MgcmVzZXQpXG4gICAgLy8gYnJvd3NlcnMgdHlwaWNhbGx5IGdpdmUgdGhlIGRvY3VtZW50IGJvZHkgYW4gOHB4IG1hcmdpbiwgd2hpY2ggaXMgbm90IGluY2x1ZGVkIGluXG4gICAgLy8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuXG4gICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLmdldFZpZXdwb3J0U2Nyb2xsUG9zaXRpb24oKTtcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLmdldFZpZXdwb3J0U2l6ZSgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvcDogc2Nyb2xsUG9zaXRpb24udG9wLFxuICAgICAgbGVmdDogc2Nyb2xsUG9zaXRpb24ubGVmdCxcbiAgICAgIGJvdHRvbTogc2Nyb2xsUG9zaXRpb24udG9wICsgaGVpZ2h0LFxuICAgICAgcmlnaHQ6IHNjcm9sbFBvc2l0aW9uLmxlZnQgKyB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHdpZHRoLFxuICAgIH07XG4gIH1cblxuICAvKiogR2V0cyB0aGUgKHRvcCwgbGVmdCkgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSB2aWV3cG9ydC4gKi9cbiAgZ2V0Vmlld3BvcnRTY3JvbGxQb3NpdGlvbigpOiBWaWV3cG9ydFNjcm9sbFBvc2l0aW9uIHtcbiAgICAvLyBXaGlsZSB3ZSBjYW4gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBmYWtlIGRvY3VtZW50XG4gICAgLy8gZHVyaW5nIFNTUiwgaXQgZG9lc24ndCBoYXZlIGdldEJvdW5kaW5nQ2xpZW50UmVjdC5cbiAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIHt0b3A6IDAsIGxlZnQ6IDB9O1xuICAgIH1cblxuICAgIC8vIFRoZSB0b3AtbGVmdC1jb3JuZXIgb2YgdGhlIHZpZXdwb3J0IGlzIGRldGVybWluZWQgYnkgdGhlIHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgZG9jdW1lbnRcbiAgICAvLyBib2R5LCBub3JtYWxseSBqdXN0IChzY3JvbGxMZWZ0LCBzY3JvbGxUb3ApLiBIb3dldmVyLCBDaHJvbWUgYW5kIEZpcmVmb3ggZGlzYWdyZWUgYWJvdXRcbiAgICAvLyB3aGV0aGVyIGBkb2N1bWVudC5ib2R5YCBvciBgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50YCBpcyB0aGUgc2Nyb2xsZWQgZWxlbWVudCwgc28gcmVhZGluZ1xuICAgIC8vIGBzY3JvbGxUb3BgIGFuZCBgc2Nyb2xsTGVmdGAgaXMgaW5jb25zaXN0ZW50LiBIb3dldmVyLCB1c2luZyB0aGUgYm91bmRpbmcgcmVjdCBvZlxuICAgIC8vIGBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRgIHdvcmtzIGNvbnNpc3RlbnRseSwgd2hlcmUgdGhlIGB0b3BgIGFuZCBgbGVmdGAgdmFsdWVzIHdpbGxcbiAgICAvLyBlcXVhbCBuZWdhdGl2ZSB0aGUgc2Nyb2xsIHBvc2l0aW9uLlxuICAgIGNvbnN0IGRvY3VtZW50ID0gdGhpcy5fZG9jdW1lbnQ7XG4gICAgY29uc3Qgd2luZG93ID0gdGhpcy5fZ2V0V2luZG93KCk7XG4gICAgY29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ITtcbiAgICBjb25zdCBkb2N1bWVudFJlY3QgPSBkb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCB0b3AgPVxuICAgICAgLWRvY3VtZW50UmVjdC50b3AgfHxcbiAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8XG4gICAgICB3aW5kb3cuc2Nyb2xsWSB8fFxuICAgICAgZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxuICAgICAgMDtcblxuICAgIGNvbnN0IGxlZnQgPVxuICAgICAgLWRvY3VtZW50UmVjdC5sZWZ0IHx8XG4gICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgfHxcbiAgICAgIHdpbmRvdy5zY3JvbGxYIHx8XG4gICAgICBkb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fFxuICAgICAgMDtcblxuICAgIHJldHVybiB7dG9wLCBsZWZ0fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyZWFtIHRoYXQgZW1pdHMgd2hlbmV2ZXIgdGhlIHNpemUgb2YgdGhlIHZpZXdwb3J0IGNoYW5nZXMuXG4gICAqIFRoaXMgc3RyZWFtIGVtaXRzIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICogQHBhcmFtIHRocm90dGxlVGltZSBUaW1lIGluIG1pbGxpc2Vjb25kcyB0byB0aHJvdHRsZSB0aGUgc3RyZWFtLlxuICAgKi9cbiAgY2hhbmdlKHRocm90dGxlVGltZTogbnVtYmVyID0gREVGQVVMVF9SRVNJWkVfVElNRSk6IE9ic2VydmFibGU8RXZlbnQ+IHtcbiAgICByZXR1cm4gdGhyb3R0bGVUaW1lID4gMCA/IHRoaXMuX2NoYW5nZS5waXBlKGF1ZGl0VGltZSh0aHJvdHRsZVRpbWUpKSA6IHRoaXMuX2NoYW5nZTtcbiAgfVxuXG4gIC8qKiBVc2UgZGVmYXVsdFZpZXcgb2YgaW5qZWN0ZWQgZG9jdW1lbnQgaWYgYXZhaWxhYmxlIG9yIGZhbGxiYWNrIHRvIGdsb2JhbCB3aW5kb3cgcmVmZXJlbmNlICovXG4gIHByaXZhdGUgX2dldFdpbmRvdygpOiBXaW5kb3cge1xuICAgIHJldHVybiB0aGlzLl9kb2N1bWVudC5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gIH1cblxuICAvKiogVXBkYXRlcyB0aGUgY2FjaGVkIHZpZXdwb3J0IHNpemUuICovXG4gIHByaXZhdGUgX3VwZGF0ZVZpZXdwb3J0U2l6ZSgpIHtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl9nZXRXaW5kb3coKTtcbiAgICB0aGlzLl92aWV3cG9ydFNpemUgPSB0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXJcbiAgICAgID8ge3dpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCwgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHR9XG4gICAgICA6IHt3aWR0aDogMCwgaGVpZ2h0OiAwfTtcbiAgfVxufVxuIl19