@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,231 @@
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 { Injectable, NgZone, Inject } from '@angular/core';
9
+ import { DOCUMENT } from '@angular/common';
10
+ import { normalizePassiveListenerOptions } from '@angular/cdk/platform';
11
+ import { merge, Observable, Subject } from 'rxjs';
12
+ import * as i0 from "@angular/core";
13
+ /** Event options that can be used to bind an active, capturing event. */
14
+ const activeCapturingEventOptions = normalizePassiveListenerOptions({
15
+ passive: false,
16
+ capture: true,
17
+ });
18
+ /**
19
+ * Service that keeps track of all the drag item and drop container
20
+ * instances, and manages global event listeners on the `document`.
21
+ * @docs-private
22
+ */
23
+ // Note: this class is generic, rather than referencing CdkDrag and CdkDropList directly, in order
24
+ // to avoid circular imports. If we were to reference them here, importing the registry into the
25
+ // classes that are registering themselves will introduce a circular import.
26
+ export class DragDropRegistry {
27
+ constructor(_ngZone, _document) {
28
+ this._ngZone = _ngZone;
29
+ /** Registered drop container instances. */
30
+ this._dropInstances = new Set();
31
+ /** Registered drag item instances. */
32
+ this._dragInstances = new Set();
33
+ /** Drag item instances that are currently being dragged. */
34
+ this._activeDragInstances = [];
35
+ /** Keeps track of the event listeners that we've bound to the `document`. */
36
+ this._globalListeners = new Map();
37
+ /**
38
+ * Predicate function to check if an item is being dragged. Moved out into a property,
39
+ * because it'll be called a lot and we don't want to create a new function every time.
40
+ */
41
+ this._draggingPredicate = (item) => item.isDragging();
42
+ /**
43
+ * Emits the `touchmove` or `mousemove` events that are dispatched
44
+ * while the user is dragging a drag item instance.
45
+ */
46
+ this.pointerMove = new Subject();
47
+ /**
48
+ * Emits the `touchend` or `mouseup` events that are dispatched
49
+ * while the user is dragging a drag item instance.
50
+ */
51
+ this.pointerUp = new Subject();
52
+ /**
53
+ * Emits when the viewport has been scrolled while the user is dragging an item.
54
+ * @deprecated To be turned into a private member. Use the `scrolled` method instead.
55
+ * @breaking-change 13.0.0
56
+ */
57
+ this.scroll = new Subject();
58
+ /**
59
+ * Event listener that will prevent the default browser action while the user is dragging.
60
+ * @param event Event whose default action should be prevented.
61
+ */
62
+ this._preventDefaultWhileDragging = (event) => {
63
+ if (this._activeDragInstances.length > 0) {
64
+ event.preventDefault();
65
+ }
66
+ };
67
+ /** Event listener for `touchmove` that is bound even if no dragging is happening. */
68
+ this._persistentTouchmoveListener = (event) => {
69
+ if (this._activeDragInstances.length > 0) {
70
+ // Note that we only want to prevent the default action after dragging has actually started.
71
+ // Usually this is the same time at which the item is added to the `_activeDragInstances`,
72
+ // but it could be pushed back if the user has set up a drag delay or threshold.
73
+ if (this._activeDragInstances.some(this._draggingPredicate)) {
74
+ event.preventDefault();
75
+ }
76
+ this.pointerMove.next(event);
77
+ }
78
+ };
79
+ this._document = _document;
80
+ }
81
+ /** Adds a drop container to the registry. */
82
+ registerDropContainer(drop) {
83
+ if (!this._dropInstances.has(drop)) {
84
+ this._dropInstances.add(drop);
85
+ }
86
+ }
87
+ /** Adds a drag item instance to the registry. */
88
+ registerDragItem(drag) {
89
+ this._dragInstances.add(drag);
90
+ // The `touchmove` event gets bound once, ahead of time, because WebKit
91
+ // won't preventDefault on a dynamically-added `touchmove` listener.
92
+ // See https://bugs.webkit.org/show_bug.cgi?id=184250.
93
+ if (this._dragInstances.size === 1) {
94
+ this._ngZone.runOutsideAngular(() => {
95
+ // The event handler has to be explicitly active,
96
+ // because newer browsers make it passive by default.
97
+ this._document.addEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);
98
+ });
99
+ }
100
+ }
101
+ /** Removes a drop container from the registry. */
102
+ removeDropContainer(drop) {
103
+ this._dropInstances.delete(drop);
104
+ }
105
+ /** Removes a drag item instance from the registry. */
106
+ removeDragItem(drag) {
107
+ this._dragInstances.delete(drag);
108
+ this.stopDragging(drag);
109
+ if (this._dragInstances.size === 0) {
110
+ this._document.removeEventListener('touchmove', this._persistentTouchmoveListener, activeCapturingEventOptions);
111
+ }
112
+ }
113
+ /**
114
+ * Starts the dragging sequence for a drag instance.
115
+ * @param drag Drag instance which is being dragged.
116
+ * @param event Event that initiated the dragging.
117
+ */
118
+ startDragging(drag, event) {
119
+ // Do not process the same drag twice to avoid memory leaks and redundant listeners
120
+ if (this._activeDragInstances.indexOf(drag) > -1) {
121
+ return;
122
+ }
123
+ this._activeDragInstances.push(drag);
124
+ if (this._activeDragInstances.length === 1) {
125
+ const isTouchEvent = event.type.startsWith('touch');
126
+ // We explicitly bind __active__ listeners here, because newer browsers will default to
127
+ // passive ones for `mousemove` and `touchmove`. The events need to be active, because we
128
+ // use `preventDefault` to prevent the page from scrolling while the user is dragging.
129
+ this._globalListeners
130
+ .set(isTouchEvent ? 'touchend' : 'mouseup', {
131
+ handler: (e) => this.pointerUp.next(e),
132
+ options: true,
133
+ })
134
+ .set('scroll', {
135
+ handler: (e) => this.scroll.next(e),
136
+ // Use capturing so that we pick up scroll changes in any scrollable nodes that aren't
137
+ // the document. See https://github.com/angular/components/issues/17144.
138
+ options: true,
139
+ })
140
+ // Preventing the default action on `mousemove` isn't enough to disable text selection
141
+ // on Safari so we need to prevent the selection event as well. Alternatively this can
142
+ // be done by setting `user-select: none` on the `body`, however it has causes a style
143
+ // recalculation which can be expensive on pages with a lot of elements.
144
+ .set('selectstart', {
145
+ handler: this._preventDefaultWhileDragging,
146
+ options: activeCapturingEventOptions,
147
+ });
148
+ // We don't have to bind a move event for touch drag sequences, because
149
+ // we already have a persistent global one bound from `registerDragItem`.
150
+ if (!isTouchEvent) {
151
+ this._globalListeners.set('mousemove', {
152
+ handler: (e) => this.pointerMove.next(e),
153
+ options: activeCapturingEventOptions,
154
+ });
155
+ }
156
+ this._ngZone.runOutsideAngular(() => {
157
+ this._globalListeners.forEach((config, name) => {
158
+ this._document.addEventListener(name, config.handler, config.options);
159
+ });
160
+ });
161
+ }
162
+ }
163
+ /** Stops dragging a drag item instance. */
164
+ stopDragging(drag) {
165
+ const index = this._activeDragInstances.indexOf(drag);
166
+ if (index > -1) {
167
+ this._activeDragInstances.splice(index, 1);
168
+ if (this._activeDragInstances.length === 0) {
169
+ this._clearGlobalListeners();
170
+ }
171
+ }
172
+ }
173
+ /** Gets whether a drag item instance is currently being dragged. */
174
+ isDragging(drag) {
175
+ return this._activeDragInstances.indexOf(drag) > -1;
176
+ }
177
+ /**
178
+ * Gets a stream that will emit when any element on the page is scrolled while an item is being
179
+ * dragged.
180
+ * @param shadowRoot Optional shadow root that the current dragging sequence started from.
181
+ * Top-level listeners won't pick up events coming from the shadow DOM so this parameter can
182
+ * be used to include an additional top-level listener at the shadow root level.
183
+ */
184
+ scrolled(shadowRoot) {
185
+ const streams = [this.scroll];
186
+ if (shadowRoot && shadowRoot !== this._document) {
187
+ // Note that this is basically the same as `fromEvent` from rjxs, but we do it ourselves,
188
+ // because we want to guarantee that the event is bound outside of the `NgZone`. With
189
+ // `fromEvent` it'll only happen if the subscription is outside the `NgZone`.
190
+ streams.push(new Observable((observer) => {
191
+ return this._ngZone.runOutsideAngular(() => {
192
+ const eventOptions = true;
193
+ const callback = (event) => {
194
+ if (this._activeDragInstances.length) {
195
+ observer.next(event);
196
+ }
197
+ };
198
+ shadowRoot.addEventListener('scroll', callback, eventOptions);
199
+ return () => {
200
+ shadowRoot.removeEventListener('scroll', callback, eventOptions);
201
+ };
202
+ });
203
+ }));
204
+ }
205
+ return merge(...streams);
206
+ }
207
+ ngOnDestroy() {
208
+ this._dragInstances.forEach(instance => this.removeDragItem(instance));
209
+ this._dropInstances.forEach(instance => this.removeDropContainer(instance));
210
+ this._clearGlobalListeners();
211
+ this.pointerMove.complete();
212
+ this.pointerUp.complete();
213
+ }
214
+ /** Clears out the global event listeners from the `document`. */
215
+ _clearGlobalListeners() {
216
+ this._globalListeners.forEach((config, name) => {
217
+ this._document.removeEventListener(name, config.handler, config.options);
218
+ });
219
+ this._globalListeners.clear();
220
+ }
221
+ }
222
+ DragDropRegistry.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: DragDropRegistry, deps: [{ token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
223
+ DragDropRegistry.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: DragDropRegistry, providedIn: 'root' });
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: DragDropRegistry, decorators: [{
225
+ type: Injectable,
226
+ args: [{ providedIn: 'root' }]
227
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{
228
+ type: Inject,
229
+ args: [DOCUMENT]
230
+ }] }]; } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9kcmFnLWRyb3AvZHJhZy1kcm9wLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLEtBQUssRUFBRSxVQUFVLEVBQVksT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUUxRCx5RUFBeUU7QUFDekUsTUFBTSwyQkFBMkIsR0FBRywrQkFBK0IsQ0FBQztJQUNsRSxPQUFPLEVBQUUsS0FBSztJQUNkLE9BQU8sRUFBRSxJQUFJO0NBQ2QsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILGtHQUFrRztBQUNsRyxnR0FBZ0c7QUFDaEcsNEVBQTRFO0FBRTVFLE1BQU0sT0FBTyxnQkFBZ0I7SUE4QzNCLFlBQW9CLE9BQWUsRUFBb0IsU0FBYztRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBM0NuQywyQ0FBMkM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBSyxDQUFDO1FBRXRDLHNDQUFzQztRQUM5QixtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFLLENBQUM7UUFFdEMsNERBQTREO1FBQ3BELHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUV2Qyw2RUFBNkU7UUFDckUscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBTS9CLENBQUM7UUFFSjs7O1dBR0c7UUFDSyx1QkFBa0IsR0FBRyxDQUFDLElBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRTVEOzs7V0FHRztR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QUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7cUhBdFBVLGdCQUFnQix3Q0E4Q2tCLFFBQVE7eUhBOUMxQyxnQkFBZ0IsY0FESixNQUFNO21HQUNsQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkErQ1EsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtub3JtYWxpemVQYXNzaXZlTGlzdGVuZXJPcHRpb25zfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHttZXJnZSwgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG4vKiogRXZlbnQgb3B0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGJpbmQgYW4gYWN0aXZlLCBjYXB0dXJpbmcgZXZlbnQuICovXG5jb25zdCBhY3RpdmVDYXB0dXJpbmdFdmVudE9wdGlvbnMgPSBub3JtYWxpemVQYXNzaXZlTGlzdGVuZXJPcHRpb25zKHtcbiAgcGFzc2l2ZTogZmFsc2UsXG4gIGNhcHR1cmU6IHRydWUsXG59KTtcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQga2VlcHMgdHJhY2sgb2YgYWxsIHRoZSBkcmFnIGl0ZW0gYW5kIGRyb3AgY29udGFpbmVyXG4gKiBpbnN0YW5jZXMsIGFuZCBtYW5hZ2VzIGdsb2JhbCBldmVudCBsaXN0ZW5lcnMgb24gdGhlIGBkb2N1bWVudGAuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbi8vIE5vdGU6IHRoaXMgY2xhc3MgaXMgZ2VuZXJpYywgcmF0aGVyIHRoYW4gcmVmZXJlbmNpbmcgQ2RrRHJhZyBhbmQgQ2RrRHJvcExpc3QgZGlyZWN0bHksIGluIG9yZGVyXG4vLyB0byBhdm9pZCBjaXJjdWxhciBpbXBvcnRzLiBJZiB3ZSB3ZXJlIHRvIHJlZmVyZW5jZSB0aGVtIGhlcmUsIGltcG9ydGluZyB0aGUgcmVnaXN0cnkgaW50byB0aGVcbi8vIGNsYXNzZXMgdGhhdCBhcmUgcmVnaXN0ZXJpbmcgdGhlbXNlbHZlcyB3aWxsIGludHJvZHVjZSBhIGNpcmN1bGFyIGltcG9ydC5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIERyYWdEcm9wUmVnaXN0cnk8SSBleHRlbmRzIHtpc0RyYWdnaW5nKCk6IGJvb2xlYW59LCBDPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudDtcblxuICAvKiogUmVnaXN0ZXJlZCBkcm9wIGNvbnRhaW5lciBpbnN0YW5jZXMuICovXG4gIHByaXZhdGUgX2Ryb3BJbnN0YW5jZXMgPSBuZXcgU2V0PEM+KCk7XG5cbiAgLyoqIFJlZ2lzdGVyZWQgZHJhZyBpdGVtIGluc3RhbmNlcy4gKi9cbiAgcHJpdmF0ZSBfZHJhZ0luc3RhbmNlcyA9IG5ldyBTZXQ8ST4oKTtcblxuICAvKiogRHJhZyBpdGVtIGluc3RhbmNlcyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZC4gKi9cbiAgcHJpdmF0ZSBfYWN0aXZlRHJhZ0luc3RhbmNlczogSVtdID0gW107XG5cbiAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBldmVudCBsaXN0ZW5lcnMgdGhhdCB3ZSd2ZSBib3VuZCB0byB0aGUgYGRvY3VtZW50YC4gKi9cbiAgcHJpdmF0ZSBfZ2xvYmFsTGlzdGVuZXJzID0gbmV3IE1hcDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgaGFuZGxlcjogKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcbiAgICAgIG9wdGlvbnM/OiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyB8IGJvb2xlYW47XG4gICAgfVxuICA+KCk7XG5cbiAgLyoqXG4gICAqIFByZWRpY2F0ZSBmdW5jdGlvbiB0byBjaGVjayBpZiBhbiBpdGVtIGlzIGJlaW5nIGRyYWdnZWQuICBNb3ZlZCBvdXQgaW50byBhIHByb3BlcnR5LFxuICAgKiBiZWNhdXNlIGl0J2xsIGJlIGNhbGxlZCBhIGxvdCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBjcmVhdGUgYSBuZXcgZnVuY3Rpb24gZXZlcnkgdGltZS5cbiAgICovXG4gIHByaXZhdGUgX2RyYWdnaW5nUHJlZGljYXRlID0gKGl0ZW06IEkpID0+IGl0ZW0uaXNEcmFnZ2luZygpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgYHRvdWNobW92ZWAgb3IgYG1vdXNlbW92ZWAgZXZlbnRzIHRoYXQgYXJlIGRpc3BhdGNoZWRcbiAgICogd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcgYSBkcmFnIGl0ZW0gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBwb2ludGVyTW92ZTogU3ViamVjdDxUb3VjaEV2ZW50IHwgTW91c2VFdmVudD4gPSBuZXcgU3ViamVjdDxUb3VjaEV2ZW50IHwgTW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGB0b3VjaGVuZGAgb3IgYG1vdXNldXBgIGV2ZW50cyB0aGF0IGFyZSBkaXNwYXRjaGVkXG4gICAqIHdoaWxlIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGEgZHJhZyBpdGVtIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9pbnRlclVwOiBTdWJqZWN0PFRvdWNoRXZlbnQgfCBNb3VzZUV2ZW50PiA9IG5ldyBTdWJqZWN0PFRvdWNoRXZlbnQgfCBNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSB2aWV3cG9ydCBoYXMgYmVlbiBzY3JvbGxlZCB3aGlsZSB0aGUgdXNlciBpcyBkcmFnZ2luZyBhbiBpdGVtLlxuICAgKiBAZGVwcmVjYXRlZCBUbyBiZSB0dXJuZWQgaW50byBhIHByaXZhdGUgbWVtYmVyLiBVc2UgdGhlIGBzY3JvbGxlZGAgbWV0aG9kIGluc3RlYWQuXG4gICAqIEBicmVha2luZy1jaGFuZ2UgMTMuMC4wXG4gICAqL1xuICByZWFkb25seSBzY3JvbGw6IFN1YmplY3Q8RXZlbnQ+ID0gbmV3IFN1YmplY3Q8RXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsIEBJbmplY3QoRE9DVU1FTlQpIF9kb2N1bWVudDogYW55KSB7XG4gICAgdGhpcy5fZG9jdW1lbnQgPSBfZG9jdW1lbnQ7XG4gIH1cblxuICAvKiogQWRkcyBhIGRyb3AgY29udGFpbmVyIHRvIHRoZSByZWdpc3RyeS4gKi9cbiAgcmVnaXN0ZXJEcm9wQ29udGFpbmVyKGRyb3A6IEMpIHtcbiAgICBpZiAoIXRoaXMuX2Ryb3BJbnN0YW5jZXMuaGFzKGRyb3ApKSB7XG4gICAgICB0aGlzLl9kcm9wSW5zdGFuY2VzLmFkZChkcm9wKTtcbiAgICB9XG4gIH1cblxuICAvKiogQWRkcyBhIGRyYWcgaXRlbSBpbnN0YW5jZSB0byB0aGUgcmVnaXN0cnkuICovXG4gIHJlZ2lzdGVyRHJhZ0l0ZW0oZHJhZzogSSkge1xuICAgIHRoaXMuX2RyYWdJbnN0YW5jZXMuYWRkKGRyYWcpO1xuXG4gICAgLy8gVGhlIGB0b3VjaG1vdmVgIGV2ZW50IGdldHMgYm91bmQgb25jZSwgYWhlYWQgb2YgdGltZSwgYmVjYXVzZSBXZWJLaXRcbiAgICAvLyB3b24ndCBwcmV2ZW50RGVmYXVsdCBvbiBhIGR5bmFtaWNhbGx5LWFkZGVkIGB0b3VjaG1vdmVgIGxpc3RlbmVyLlxuICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MjUwLlxuICAgIGlmICh0aGlzLl9kcmFnSW5zdGFuY2VzLnNpemUgPT09IDEpIHtcbiAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIC8vIFRoZSBldmVudCBoYW5kbGVyIGhhcyB0byBiZSBleHBsaWNpdGx5IGFjdGl2ZSxcbiAgICAgICAgLy8gYmVjYXVzZSBuZXdlciBicm93c2VycyBtYWtlIGl0IHBhc3NpdmUgYnkgZGVmYXVsdC5cbiAgICAgICAgdGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAndG91Y2htb3ZlJyxcbiAgICAgICAgICB0aGlzLl9wZXJzaXN0ZW50VG91Y2htb3ZlTGlzdGVuZXIsXG4gICAgICAgICAgYWN0aXZlQ2FwdHVyaW5nRXZlbnRPcHRpb25zLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlbW92ZXMgYSBkcm9wIGNvbnRhaW5lciBmcm9tIHRoZSByZWdpc3RyeS4gKi9cbiAgcmVtb3ZlRHJvcENvbnRhaW5lcihkcm9wOiBDKSB7XG4gICAgdGhpcy5fZHJvcEluc3RhbmNlcy5kZWxldGUoZHJvcCk7XG4gIH1cblxuICAvKiogUmVtb3ZlcyBhIGRyYWcgaXRlbSBpbnN0YW5jZSBmcm9tIHRoZSByZWdpc3RyeS4gKi9cbiAgcmVtb3ZlRHJhZ0l0ZW0oZHJhZzogSSkge1xuICAgIHRoaXMuX2RyYWdJbnN0YW5jZXMuZGVsZXRlKGRyYWcpO1xuICAgIHRoaXMuc3RvcERyYWdnaW5nKGRyYWcpO1xuXG4gICAgaWYgKHRoaXMuX2RyYWdJbnN0YW5jZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgdGhpcy5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ3RvdWNobW92ZScsXG4gICAgICAgIHRoaXMuX3BlcnNpc3RlbnRUb3VjaG1vdmVMaXN0ZW5lcixcbiAgICAgICAgYWN0aXZlQ2FwdHVyaW5nRXZlbnRPcHRpb25zLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIHRoZSBkcmFnZ2luZyBzZXF1ZW5jZSBmb3IgYSBkcmFnIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gZHJhZyBEcmFnIGluc3RhbmNlIHdoaWNoIGlzIGJlaW5nIGRyYWdnZWQuXG4gICAqIEBwYXJhbSBldmVudCBFdmVudCB0aGF0IGluaXRpYXRlZCB0aGUgZHJhZ2dpbmcuXG4gICAqL1xuICBzdGFydERyYWdnaW5nKGRyYWc6IEksIGV2ZW50OiBUb3VjaEV2ZW50IHwgTW91c2VFdmVudCkge1xuICAgIC8vIERvIG5vdCBwcm9jZXNzIHRoZSBzYW1lIGRyYWcgdHdpY2UgdG8gYXZvaWQgbWVtb3J5IGxlYWtzIGFuZCByZWR1bmRhbnQgbGlzdGVuZXJzXG4gICAgaWYgKHRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMuaW5kZXhPZihkcmFnKSA+IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5wdXNoKGRyYWcpO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBpc1RvdWNoRXZlbnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJyk7XG5cbiAgICAgIC8vIFdlIGV4cGxpY2l0bHkgYmluZCBfX2FjdGl2ZV9fIGxpc3RlbmVycyBoZXJlLCBiZWNhdXNlIG5ld2VyIGJyb3dzZXJzIHdpbGwgZGVmYXVsdCB0b1xuICAgICAgLy8gcGFzc2l2ZSBvbmVzIGZvciBgbW91c2Vtb3ZlYCBhbmQgYHRvdWNobW92ZWAuIFRoZSBldmVudHMgbmVlZCB0byBiZSBhY3RpdmUsIGJlY2F1c2Ugd2VcbiAgICAgIC8vIHVzZSBgcHJldmVudERlZmF1bHRgIHRvIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBzY3JvbGxpbmcgd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcuXG4gICAgICB0aGlzLl9nbG9iYWxMaXN0ZW5lcnNcbiAgICAgICAgLnNldChpc1RvdWNoRXZlbnQgPyAndG91Y2hlbmQnIDogJ21vdXNldXAnLCB7XG4gICAgICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB0aGlzLnBvaW50ZXJVcC5uZXh0KGUgYXMgVG91Y2hFdmVudCB8IE1vdXNlRXZlbnQpLFxuICAgICAgICAgIG9wdGlvbnM6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIC5zZXQoJ3Njcm9sbCcsIHtcbiAgICAgICAgICBoYW5kbGVyOiAoZTogRXZlbnQpID0+IHRoaXMuc2Nyb2xsLm5leHQoZSksXG4gICAgICAgICAgLy8gVXNlIGNhcHR1cmluZyBzbyB0aGF0IHdlIHBpY2sgdXAgc2Nyb2xsIGNoYW5nZXMgaW4gYW55IHNjcm9sbGFibGUgbm9kZXMgdGhhdCBhcmVuJ3RcbiAgICAgICAgICAvLyB0aGUgZG9jdW1lbnQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNzE0NC5cbiAgICAgICAgICBvcHRpb25zOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAvLyBQcmV2ZW50aW5nIHRoZSBkZWZhdWx0IGFjdGlvbiBvbiBgbW91c2Vtb3ZlYCBpc24ndCBlbm91Z2ggdG8gZGlzYWJsZSB0ZXh0IHNlbGVjdGlvblxuICAgICAgICAvLyBvbiBTYWZhcmkgc28gd2UgbmVlZCB0byBwcmV2ZW50IHRoZSBzZWxlY3Rpb24gZXZlbnQgYXMgd2VsbC4gQWx0ZXJuYXRpdmVseSB0aGlzIGNhblxuICAgICAgICAvLyBiZSBkb25lIGJ5IHNldHRpbmcgYHVzZXItc2VsZWN0OiBub25lYCBvbiB0aGUgYGJvZHlgLCBob3dldmVyIGl0IGhhcyBjYXVzZXMgYSBzdHlsZVxuICAgICAgICAvLyByZWNhbGN1bGF0aW9uIHdoaWNoIGNhbiBiZSBleHBlbnNpdmUgb24gcGFnZXMgd2l0aCBhIGxvdCBvZiBlbGVtZW50cy5cbiAgICAgICAgLnNldCgnc2VsZWN0c3RhcnQnLCB7XG4gICAgICAgICAgaGFuZGxlcjogdGhpcy5fcHJldmVudERlZmF1bHRXaGlsZURyYWdnaW5nLFxuICAgICAgICAgIG9wdGlvbnM6IGFjdGl2ZUNhcHR1cmluZ0V2ZW50T3B0aW9ucyxcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIFdlIGRvbid0IGhhdmUgdG8gYmluZCBhIG1vdmUgZXZlbnQgZm9yIHRvdWNoIGRyYWcgc2VxdWVuY2VzLCBiZWNhdXNlXG4gICAgICAvLyB3ZSBhbHJlYWR5IGhhdmUgYSBwZXJzaXN0ZW50IGdsb2JhbCBvbmUgYm91bmQgZnJvbSBgcmVnaXN0ZXJEcmFnSXRlbWAuXG4gICAgICBpZiAoIWlzVG91Y2hFdmVudCkge1xuICAgICAgICB0aGlzLl9nbG9iYWxMaXN0ZW5lcnMuc2V0KCdtb3VzZW1vdmUnLCB7XG4gICAgICAgICAgaGFuZGxlcjogKGU6IEV2ZW50KSA9PiB0aGlzLnBvaW50ZXJNb3ZlLm5leHQoZSBhcyBNb3VzZUV2ZW50KSxcbiAgICAgICAgICBvcHRpb25zOiBhY3RpdmVDYXB0dXJpbmdFdmVudE9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLl9nbG9iYWxMaXN0ZW5lcnMuZm9yRWFjaCgoY29uZmlnLCBuYW1lKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBjb25maWcuaGFuZGxlciwgY29uZmlnLm9wdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTdG9wcyBkcmFnZ2luZyBhIGRyYWcgaXRlbSBpbnN0YW5jZS4gKi9cbiAgc3RvcERyYWdnaW5nKGRyYWc6IEkpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMuaW5kZXhPZihkcmFnKTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGlmICh0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLl9jbGVhckdsb2JhbExpc3RlbmVycygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBHZXRzIHdoZXRoZXIgYSBkcmFnIGl0ZW0gaW5zdGFuY2UgaXMgY3VycmVudGx5IGJlaW5nIGRyYWdnZWQuICovXG4gIGlzRHJhZ2dpbmcoZHJhZzogSSkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmluZGV4T2YoZHJhZykgPiAtMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3RyZWFtIHRoYXQgd2lsbCBlbWl0IHdoZW4gYW55IGVsZW1lbnQgb24gdGhlIHBhZ2UgaXMgc2Nyb2xsZWQgd2hpbGUgYW4gaXRlbSBpcyBiZWluZ1xuICAgKiBkcmFnZ2VkLlxuICAgKiBAcGFyYW0gc2hhZG93Um9vdCBPcHRpb25hbCBzaGFkb3cgcm9vdCB0aGF0IHRoZSBjdXJyZW50IGRyYWdnaW5nIHNlcXVlbmNlIHN0YXJ0ZWQgZnJvbS5cbiAgICogICBUb3AtbGV2ZWwgbGlzdGVuZXJzIHdvbid0IHBpY2sgdXAgZXZlbnRzIGNvbWluZyBmcm9tIHRoZSBzaGFkb3cgRE9NIHNvIHRoaXMgcGFyYW1ldGVyIGNhblxuICAgKiAgIGJlIHVzZWQgdG8gaW5jbHVkZSBhbiBhZGRpdGlvbmFsIHRvcC1sZXZlbCBsaXN0ZW5lciBhdCB0aGUgc2hhZG93IHJvb3QgbGV2ZWwuXG4gICAqL1xuICBzY3JvbGxlZChzaGFkb3dSb290PzogRG9jdW1lbnRPclNoYWRvd1Jvb3QgfCBudWxsKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xuICAgIGNvbnN0IHN0cmVhbXM6IE9ic2VydmFibGU8RXZlbnQ+W10gPSBbdGhpcy5zY3JvbGxdO1xuXG4gICAgaWYgKHNoYWRvd1Jvb3QgJiYgc2hhZG93Um9vdCAhPT0gdGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgIC8vIE5vdGUgdGhhdCB0aGlzIGlzIGJhc2ljYWxseSB0aGUgc2FtZSBhcyBgZnJvbUV2ZW50YCBmcm9tIHJqeHMsIGJ1dCB3ZSBkbyBpdCBvdXJzZWx2ZXMsXG4gICAgICAvLyBiZWNhdXNlIHdlIHdhbnQgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGV2ZW50IGlzIGJvdW5kIG91dHNpZGUgb2YgdGhlIGBOZ1pvbmVgLiBXaXRoXG4gICAgICAvLyBgZnJvbUV2ZW50YCBpdCdsbCBvbmx5IGhhcHBlbiBpZiB0aGUgc3Vic2NyaXB0aW9uIGlzIG91dHNpZGUgdGhlIGBOZ1pvbmVgLlxuICAgICAgc3RyZWFtcy5wdXNoKFxuICAgICAgICBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPEV2ZW50PikgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXZlbnRPcHRpb25zID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGNhbGxiYWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlRHJhZ0luc3RhbmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgKHNoYWRvd1Jvb3QgYXMgU2hhZG93Um9vdCkuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgY2FsbGJhY2ssIGV2ZW50T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgIChzaGFkb3dSb290IGFzIFNoYWRvd1Jvb3QpLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNhbGxiYWNrLCBldmVudE9wdGlvbnMpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZSguLi5zdHJlYW1zKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2RyYWdJbnN0YW5jZXMuZm9yRWFjaChpbnN0YW5jZSA9PiB0aGlzLnJlbW92ZURyYWdJdGVtKGluc3RhbmNlKSk7XG4gICAgdGhpcy5fZHJvcEluc3RhbmNlcy5mb3JFYWNoKGluc3RhbmNlID0+IHRoaXMucmVtb3ZlRHJvcENvbnRhaW5lcihpbnN0YW5jZSkpO1xuICAgIHRoaXMuX2NsZWFyR2xvYmFsTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5wb2ludGVyTW92ZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMucG9pbnRlclVwLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgbGlzdGVuZXIgdGhhdCB3aWxsIHByZXZlbnQgdGhlIGRlZmF1bHQgYnJvd3NlciBhY3Rpb24gd2hpbGUgdGhlIHVzZXIgaXMgZHJhZ2dpbmcuXG4gICAqIEBwYXJhbSBldmVudCBFdmVudCB3aG9zZSBkZWZhdWx0IGFjdGlvbiBzaG91bGQgYmUgcHJldmVudGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfcHJldmVudERlZmF1bHRXaGlsZURyYWdnaW5nID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKiBFdmVudCBsaXN0ZW5lciBmb3IgYHRvdWNobW92ZWAgdGhhdCBpcyBib3VuZCBldmVuIGlmIG5vIGRyYWdnaW5nIGlzIGhhcHBlbmluZy4gKi9cbiAgcHJpdmF0ZSBfcGVyc2lzdGVudFRvdWNobW92ZUxpc3RlbmVyID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZURyYWdJbnN0YW5jZXMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gTm90ZSB0aGF0IHdlIG9ubHkgd2FudCB0byBwcmV2ZW50IHRoZSBkZWZhdWx0IGFjdGlvbiBhZnRlciBkcmFnZ2luZyBoYXMgYWN0dWFsbHkgc3RhcnRlZC5cbiAgICAgIC8vIFVzdWFsbHkgdGhpcyBpcyB0aGUgc2FtZSB0aW1lIGF0IHdoaWNoIHRoZSBpdGVtIGlzIGFkZGVkIHRvIHRoZSBgX2FjdGl2ZURyYWdJbnN0YW5jZXNgLFxuICAgICAgLy8gYnV0IGl0IGNvdWxkIGJlIHB1c2hlZCBiYWNrIGlmIHRoZSB1c2VyIGhhcyBzZXQgdXAgYSBkcmFnIGRlbGF5IG9yIHRocmVzaG9sZC5cbiAgICAgIGlmICh0aGlzLl9hY3RpdmVEcmFnSW5zdGFuY2VzLnNvbWUodGhpcy5fZHJhZ2dpbmdQcmVkaWNhdGUpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9pbnRlck1vdmUubmV4dChldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKiBDbGVhcnMgb3V0IHRoZSBnbG9iYWwgZXZlbnQgbGlzdGVuZXJzIGZyb20gdGhlIGBkb2N1bWVudGAuICovXG4gIHByaXZhdGUgX2NsZWFyR2xvYmFsTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuX2dsb2JhbExpc3RlbmVycy5mb3JFYWNoKChjb25maWcsIG5hbWUpID0+IHtcbiAgICAgIHRoaXMuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIobmFtZSwgY29uZmlnLmhhbmRsZXIsIGNvbmZpZy5vcHRpb25zKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2dsb2JhbExpc3RlbmVycy5jbGVhcigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,57 @@
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 { Injectable, Inject, NgZone } from '@angular/core';
9
+ import { DOCUMENT } from '@angular/common';
10
+ import { ViewportRuler } from '@angular/cdk/scrolling';
11
+ import { DragRef } from './drag-ref';
12
+ import { DropListRef } from './drop-list-ref';
13
+ import { DragDropRegistry } from './drag-drop-registry';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/cdk/scrolling";
16
+ import * as i2 from "./drag-drop-registry";
17
+ /** Default configuration to be used when creating a `DragRef`. */
18
+ const DEFAULT_CONFIG = {
19
+ dragStartThreshold: 5,
20
+ pointerDirectionChangeThreshold: 5,
21
+ };
22
+ /**
23
+ * Service that allows for drag-and-drop functionality to be attached to DOM elements.
24
+ */
25
+ export class DragDrop {
26
+ constructor(_document, _ngZone, _viewportRuler, _dragDropRegistry) {
27
+ this._document = _document;
28
+ this._ngZone = _ngZone;
29
+ this._viewportRuler = _viewportRuler;
30
+ this._dragDropRegistry = _dragDropRegistry;
31
+ }
32
+ /**
33
+ * Turns an element into a draggable item.
34
+ * @param element Element to which to attach the dragging functionality.
35
+ * @param config Object used to configure the dragging behavior.
36
+ */
37
+ createDrag(element, config = DEFAULT_CONFIG) {
38
+ return new DragRef(element, config, this._document, this._ngZone, this._viewportRuler, this._dragDropRegistry);
39
+ }
40
+ /**
41
+ * Turns an element into a drop list.
42
+ * @param element Element to which to attach the drop list functionality.
43
+ */
44
+ createDropList(element) {
45
+ return new DropListRef(element, this._dragDropRegistry, this._document, this._ngZone, this._viewportRuler);
46
+ }
47
+ }
48
+ DragDrop.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: DragDrop, deps: [{ token: DOCUMENT }, { token: i0.NgZone }, { token: i1.ViewportRuler }, { token: i2.DragDropRegistry }], target: i0.ɵɵFactoryTarget.Injectable });
49
+ DragDrop.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: DragDrop, providedIn: 'root' });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-next.15", ngImport: i0, type: DragDrop, decorators: [{
51
+ type: Injectable,
52
+ args: [{ providedIn: 'root' }]
53
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
54
+ type: Inject,
55
+ args: [DOCUMENT]
56
+ }] }, { type: i0.NgZone }, { type: i1.ViewportRuler }, { type: i2.DragDropRegistry }]; } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9kcmFnLWRyb3AvZHJhZy1kcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxPQUFPLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUV0RCxrRUFBa0U7QUFDbEUsTUFBTSxjQUFjLEdBQUc7SUFDckIsa0JBQWtCLEVBQUUsQ0FBQztJQUNyQiwrQkFBK0IsRUFBRSxDQUFDO0NBQ25DLENBQUM7QUFFRjs7R0FFRztBQUVILE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQzRCLFNBQWMsRUFDaEMsT0FBZSxFQUNmLGNBQTZCLEVBQzdCLGlCQUF5RDtRQUh2QyxjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXdDO0lBQ2hFLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsVUFBVSxDQUNSLE9BQThDLEVBQzlDLFNBQXdCLGNBQWM7UUFFdEMsT0FBTyxJQUFJLE9BQU8sQ0FDaEIsT0FBTyxFQUNQLE1BQU0sRUFDTixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBVSxPQUE4QztRQUNwRSxPQUFPLElBQUksV0FBVyxDQUNwQixPQUFPLEVBQ1AsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLGNBQWMsQ0FDcEIsQ0FBQztJQUNKLENBQUM7OzZHQXZDVSxRQUFRLGtCQUVULFFBQVE7aUhBRlAsUUFBUSxjQURJLE1BQU07bUdBQ2xCLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzswQkFHM0IsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0LCBOZ1pvbmUsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Vmlld3BvcnRSdWxlcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQge0RyYWdSZWYsIERyYWdSZWZDb25maWd9IGZyb20gJy4vZHJhZy1yZWYnO1xuaW1wb3J0IHtEcm9wTGlzdFJlZn0gZnJvbSAnLi9kcm9wLWxpc3QtcmVmJztcbmltcG9ydCB7RHJhZ0Ryb3BSZWdpc3RyeX0gZnJvbSAnLi9kcmFnLWRyb3AtcmVnaXN0cnknO1xuXG4vKiogRGVmYXVsdCBjb25maWd1cmF0aW9uIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhIGBEcmFnUmVmYC4gKi9cbmNvbnN0IERFRkFVTFRfQ09ORklHID0ge1xuICBkcmFnU3RhcnRUaHJlc2hvbGQ6IDUsXG4gIHBvaW50ZXJEaXJlY3Rpb25DaGFuZ2VUaHJlc2hvbGQ6IDUsXG59O1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBhbGxvd3MgZm9yIGRyYWctYW5kLWRyb3AgZnVuY3Rpb25hbGl0eSB0byBiZSBhdHRhY2hlZCB0byBET00gZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIERyYWdEcm9wIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueSxcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgIHByaXZhdGUgX2RyYWdEcm9wUmVnaXN0cnk6IERyYWdEcm9wUmVnaXN0cnk8RHJhZ1JlZiwgRHJvcExpc3RSZWY+LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFR1cm5zIGFuIGVsZW1lbnQgaW50byBhIGRyYWdnYWJsZSBpdGVtLlxuICAgKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHRvIHdoaWNoIHRvIGF0dGFjaCB0aGUgZHJhZ2dpbmcgZnVuY3Rpb25hbGl0eS5cbiAgICogQHBhcmFtIGNvbmZpZyBPYmplY3QgdXNlZCB0byBjb25maWd1cmUgdGhlIGRyYWdnaW5nIGJlaGF2aW9yLlxuICAgKi9cbiAgY3JlYXRlRHJhZzxUID0gYW55PihcbiAgICBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IEhUTUxFbGVtZW50LFxuICAgIGNvbmZpZzogRHJhZ1JlZkNvbmZpZyA9IERFRkFVTFRfQ09ORklHLFxuICApOiBEcmFnUmVmPFQ+IHtcbiAgICByZXR1cm4gbmV3IERyYWdSZWY8VD4oXG4gICAgICBlbGVtZW50LFxuICAgICAgY29uZmlnLFxuICAgICAgdGhpcy5fZG9jdW1lbnQsXG4gICAgICB0aGlzLl9uZ1pvbmUsXG4gICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyLFxuICAgICAgdGhpcy5fZHJhZ0Ryb3BSZWdpc3RyeSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFR1cm5zIGFuIGVsZW1lbnQgaW50byBhIGRyb3AgbGlzdC5cbiAgICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCB0byB3aGljaCB0byBhdHRhY2ggdGhlIGRyb3AgbGlzdCBmdW5jdGlvbmFsaXR5LlxuICAgKi9cbiAgY3JlYXRlRHJvcExpc3Q8VCA9IGFueT4oZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBIVE1MRWxlbWVudCk6IERyb3BMaXN0UmVmPFQ+IHtcbiAgICByZXR1cm4gbmV3IERyb3BMaXN0UmVmPFQ+KFxuICAgICAgZWxlbWVudCxcbiAgICAgIHRoaXMuX2RyYWdEcm9wUmVnaXN0cnksXG4gICAgICB0aGlzLl9kb2N1bWVudCxcbiAgICAgIHRoaXMuX25nWm9uZSxcbiAgICAgIHRoaXMuX3ZpZXdwb3J0UnVsZXIsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wX3B1YmxpY19pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvZHJhZy1kcm9wL2RyYWctZHJvcF9wdWJsaWNfaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL2RyYWctZHJvcC9kcmFnLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDZGtEcmFnfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHJhZyc7XG5pbXBvcnQge0Nka0Ryb3BMaXN0fSBmcm9tICcuL2RpcmVjdGl2ZXMvZHJvcC1saXN0JztcblxuLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgYSBkcmFnZ2FibGUuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0RyYWdTdGFydDxUID0gYW55PiB7XG4gIC8qKiBEcmFnZ2FibGUgdGhhdCBlbWl0dGVkIHRoZSBldmVudC4gKi9cbiAgc291cmNlOiBDZGtEcmFnPFQ+O1xufVxuXG4vKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIHJlbGVhc2VzIGFuIGl0ZW0sIGJlZm9yZSBhbnkgYW5pbWF0aW9ucyBoYXZlIHN0YXJ0ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0RyYWdSZWxlYXNlPFQgPSBhbnk+IHtcbiAgLyoqIERyYWdnYWJsZSB0aGF0IGVtaXR0ZWQgdGhlIGV2ZW50LiAqL1xuICBzb3VyY2U6IENka0RyYWc8VD47XG59XG5cbi8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3RvcHMgZHJhZ2dpbmcgYSBkcmFnZ2FibGUuICovXG5leHBvcnQgaW50ZXJmYWNlIENka0RyYWdFbmQ8VCA9IGFueT4ge1xuICAvKiogRHJhZ2dhYmxlIHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gIHNvdXJjZTogQ2RrRHJhZzxUPjtcbiAgLyoqIERpc3RhbmNlIGluIHBpeGVscyB0aGF0IHRoZSB1c2VyIGhhcyBkcmFnZ2VkIHNpbmNlIHRoZSBkcmFnIHNlcXVlbmNlIHN0YXJ0ZWQuICovXG4gIGRpc3RhbmNlOiB7eDogbnVtYmVyOyB5OiBudW1iZXJ9O1xuICAvKiogUG9zaXRpb24gd2hlcmUgdGhlIHBvaW50ZXIgd2FzIHdoZW4gdGhlIGl0ZW0gd2FzIGRyb3BwZWQgKi9cbiAgZHJvcFBvaW50OiB7eDogbnVtYmVyOyB5OiBudW1iZXJ9O1xufVxuXG4vKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIG1vdmVzIGFuIGl0ZW0gaW50byBhIG5ldyBkcm9wIGNvbnRhaW5lci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrRHJhZ0VudGVyPFQgPSBhbnksIEkgPSBUPiB7XG4gIC8qKiBDb250YWluZXIgaW50byB3aGljaCB0aGUgdXNlciBoYXMgbW92ZWQgdGhlIGl0ZW0uICovXG4gIGNvbnRhaW5lcjogQ2RrRHJvcExpc3Q8VD47XG4gIC8qKiBJdGVtIHRoYXQgd2FzIG1vdmVkIGludG8gdGhlIGNvbnRhaW5lci4gKi9cbiAgaXRlbTogQ2RrRHJhZzxJPjtcbiAgLyoqIEluZGV4IGF0IHdoaWNoIHRoZSBpdGVtIGhhcyBlbnRlcmVkIHRoZSBjb250YWluZXIuICovXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciByZW1vdmVzIGFuIGl0ZW0gZnJvbSBhXG4gKiBkcm9wIGNvbnRhaW5lciBieSBtb3ZpbmcgaXQgaW50byBhbm90aGVyIG9uZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtEcmFnRXhpdDxUID0gYW55LCBJID0gVD4ge1xuICAvKiogQ29udGFpbmVyIGZyb20gd2hpY2ggdGhlIHVzZXIgaGFzIGEgcmVtb3ZlZCBhbiBpdGVtLiAqL1xuICBjb250YWluZXI6IENka0Ryb3BMaXN0PFQ+O1xuICAvKiogSXRlbSB0aGF0IHdhcyByZW1vdmVkIGZyb20gdGhlIGNvbnRhaW5lci4gKi9cbiAgaXRlbTogQ2RrRHJhZzxJPjtcbn1cblxuLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBkcm9wcyBhIGRyYWdnYWJsZSBpdGVtIGluc2lkZSBhIGRyb3AgY29udGFpbmVyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtEcmFnRHJvcDxULCBPID0gVCwgSSA9IGFueT4ge1xuICAvKiogSW5kZXggb2YgdGhlIGl0ZW0gd2hlbiBpdCB3YXMgcGlja2VkIHVwLiAqL1xuICBwcmV2aW91c0luZGV4OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IGluZGV4IG9mIHRoZSBpdGVtLiAqL1xuICBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIEl0ZW0gdGhhdCBpcyBiZWluZyBkcm9wcGVkLiAqL1xuICBpdGVtOiBDZGtEcmFnPEk+O1xuICAvKiogQ29udGFpbmVyIGluIHdoaWNoIHRoZSBpdGVtIHdhcyBkcm9wcGVkLiAqL1xuICBjb250YWluZXI6IENka0Ryb3BMaXN0PFQ+O1xuICAvKiogQ29udGFpbmVyIGZyb20gd2hpY2ggdGhlIGl0ZW0gd2FzIHBpY2tlZCB1cC4gQ2FuIGJlIHRoZSBzYW1lIGFzIHRoZSBgY29udGFpbmVyYC4gKi9cbiAgcHJldmlvdXNDb250YWluZXI6IENka0Ryb3BMaXN0PE8+O1xuICAvKiogV2hldGhlciB0aGUgdXNlcidzIHBvaW50ZXIgd2FzIG92ZXIgdGhlIGNvbnRhaW5lciB3aGVuIHRoZSBpdGVtIHdhcyBkcm9wcGVkLiAqL1xuICBpc1BvaW50ZXJPdmVyQ29udGFpbmVyOiBib29sZWFuO1xuICAvKiogRGlzdGFuY2UgaW4gcGl4ZWxzIHRoYXQgdGhlIHVzZXIgaGFzIGRyYWdnZWQgc2luY2UgdGhlIGRyYWcgc2VxdWVuY2Ugc3RhcnRlZC4gKi9cbiAgZGlzdGFuY2U6IHt4OiBudW1iZXI7IHk6IG51bWJlcn07XG4gIC8qKiBQb3NpdGlvbiB3aGVyZSB0aGUgcG9pbnRlciB3YXMgd2hlbiB0aGUgaXRlbSB3YXMgZHJvcHBlZCAqL1xuICBkcm9wUG9pbnQ6IHt4OiBudW1iZXI7IHk6IG51bWJlcn07XG59XG5cbi8qKiBFdmVudCBlbWl0dGVkIGFzIHRoZSB1c2VyIGlzIGRyYWdnaW5nIGEgZHJhZ2dhYmxlIGl0ZW0uICovXG5leHBvcnQgaW50ZXJmYWNlIENka0RyYWdNb3ZlPFQgPSBhbnk+IHtcbiAgLyoqIEl0ZW0gdGhhdCBpcyBiZWluZyBkcmFnZ2VkLiAqL1xuICBzb3VyY2U6IENka0RyYWc8VD47XG4gIC8qKiBQb3NpdGlvbiBvZiB0aGUgdXNlcidzIHBvaW50ZXIgb24gdGhlIHBhZ2UuICovXG4gIHBvaW50ZXJQb3NpdGlvbjoge3g6IG51bWJlcjsgeTogbnVtYmVyfTtcbiAgLyoqIE5hdGl2ZSBldmVudCB0aGF0IGlzIGNhdXNpbmcgdGhlIGRyYWdnaW5nLiAqL1xuICBldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQ7XG4gIC8qKiBEaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdXNlciBoYXMgZHJhZ2dlZCBzaW5jZSB0aGUgZHJhZyBzZXF1ZW5jZSBzdGFydGVkLiAqL1xuICBkaXN0YW5jZToge3g6IG51bWJlcjsgeTogbnVtYmVyfTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgZGlyZWN0aW9uIGluIHdoaWNoIHRoZSB1c2VyIGlzIGRyYWdnaW5nIHRoZSBlbGVtZW50IGFsb25nIGVhY2ggYXhpcy5cbiAgICogYDFgIG1lYW5zIHRoYXQgdGhlIHBvc2l0aW9uIGlzIGluY3JlYXNpbmcgKGUuZy4gdGhlIHVzZXIgaXMgbW92aW5nIHRvIHRoZSByaWdodCBvciBkb3dud2FyZHMpLFxuICAgKiB3aGVyZWFzIGAtMWAgbWVhbnMgdGhhdCBpdCdzIGRlY3JlYXNpbmcgKHRoZXkncmUgbW92aW5nIHRvIHRoZSBsZWZ0IG9yIHVwd2FyZHMpLiBgMGAgbWVhbnNcbiAgICogdGhhdCB0aGUgcG9zaXRpb24gaGFzbid0IGNoYW5nZWQuXG4gICAqL1xuICBkZWx0YToge3g6IC0xIHwgMCB8IDE7IHk6IC0xIHwgMCB8IDF9O1xufVxuXG4vKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIHN3YXBzIHRoZSBwb3NpdGlvbiBvZiB0d28gZHJhZyBpdGVtcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrRHJhZ1NvcnRFdmVudDxUID0gYW55LCBJID0gVD4ge1xuICAvKiogSW5kZXggZnJvbSB3aGljaCB0aGUgaXRlbSB3YXMgc29ydGVkIHByZXZpb3VzbHkuICovXG4gIHByZXZpb3VzSW5kZXg6IG51bWJlcjtcbiAgLyoqIEluZGV4IHRoYXQgdGhlIGl0ZW0gaXMgY3VycmVudGx5IGluLiAqL1xuICBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIENvbnRhaW5lciB0aGF0IHRoZSBpdGVtIGJlbG9uZ3MgdG8uICovXG4gIGNvbnRhaW5lcjogQ2RrRHJvcExpc3Q8VD47XG4gIC8qKiBJdGVtIHRoYXQgaXMgYmVpbmcgc29ydGVkLiAqL1xuICBpdGVtOiBDZGtEcmFnPEk+O1xufVxuIl19