@angular/cdk 19.0.0-next.0 → 19.0.0-next.10

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 (580) hide show
  1. package/a11y/_index.scss +12 -54
  2. package/a11y/index.d.ts +24 -38
  3. package/accordion/index.d.ts +5 -4
  4. package/bidi/index.d.ts +2 -2
  5. package/clipboard/index.d.ts +3 -4
  6. package/dialog/index.d.ts +12 -12
  7. package/drag-drop/index.d.ts +17 -37
  8. package/fesm2022/a11y.mjs +134 -181
  9. package/fesm2022/a11y.mjs.map +1 -1
  10. package/fesm2022/accordion.mjs +20 -27
  11. package/fesm2022/accordion.mjs.map +1 -1
  12. package/fesm2022/bidi.mjs +14 -19
  13. package/fesm2022/bidi.mjs.map +1 -1
  14. package/fesm2022/cdk.mjs +1 -1
  15. package/fesm2022/cdk.mjs.map +1 -1
  16. package/fesm2022/clipboard.mjs +19 -27
  17. package/fesm2022/clipboard.mjs.map +1 -1
  18. package/fesm2022/coercion/private.mjs.map +1 -1
  19. package/fesm2022/coercion.mjs.map +1 -1
  20. package/fesm2022/collections.mjs +3 -3
  21. package/fesm2022/collections.mjs.map +1 -1
  22. package/fesm2022/dialog.mjs +36 -56
  23. package/fesm2022/dialog.mjs.map +1 -1
  24. package/fesm2022/drag-drop.mjs +107 -181
  25. package/fesm2022/drag-drop.mjs.map +1 -1
  26. package/fesm2022/keycodes.mjs.map +1 -1
  27. package/fesm2022/layout.mjs +21 -26
  28. package/fesm2022/layout.mjs.map +1 -1
  29. package/fesm2022/listbox.mjs +17 -13
  30. package/fesm2022/listbox.mjs.map +1 -1
  31. package/fesm2022/menu.mjs +49 -61
  32. package/fesm2022/menu.mjs.map +1 -1
  33. package/fesm2022/observers/private.mjs +3 -3
  34. package/fesm2022/observers/private.mjs.map +1 -1
  35. package/fesm2022/observers.mjs +21 -22
  36. package/fesm2022/observers.mjs.map +1 -1
  37. package/fesm2022/overlay.mjs +120 -149
  38. package/fesm2022/overlay.mjs.map +1 -1
  39. package/fesm2022/platform.mjs +11 -14
  40. package/fesm2022/platform.mjs.map +1 -1
  41. package/fesm2022/portal.mjs +60 -63
  42. package/fesm2022/portal.mjs.map +1 -1
  43. package/fesm2022/private.mjs +65 -0
  44. package/fesm2022/private.mjs.map +1 -0
  45. package/fesm2022/scrolling.mjs +90 -132
  46. package/fesm2022/scrolling.mjs.map +1 -1
  47. package/fesm2022/stepper.mjs +69 -63
  48. package/fesm2022/stepper.mjs.map +1 -1
  49. package/fesm2022/table.mjs +171 -250
  50. package/fesm2022/table.mjs.map +1 -1
  51. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  52. package/fesm2022/testing/testbed.mjs +3 -2
  53. package/fesm2022/testing/testbed.mjs.map +1 -1
  54. package/fesm2022/testing.mjs.map +1 -1
  55. package/fesm2022/text-field.mjs +46 -40
  56. package/fesm2022/text-field.mjs.map +1 -1
  57. package/fesm2022/tree.mjs +90 -80
  58. package/fesm2022/tree.mjs.map +1 -1
  59. package/layout/index.d.ts +5 -7
  60. package/observers/index.d.ts +2 -2
  61. package/overlay/_index.scss +56 -21
  62. package/overlay/index.d.ts +24 -36
  63. package/overlay-prebuilt.css +1 -1
  64. package/package.json +5 -55
  65. package/platform/index.d.ts +2 -1
  66. package/portal/index.d.ts +22 -19
  67. package/private/index.d.ts +30 -0
  68. package/schematics/index.d.ts +1 -1
  69. package/schematics/index.js +2 -2
  70. package/schematics/index.mjs +2 -2
  71. package/schematics/ng-add/index.d.ts +1 -1
  72. package/schematics/ng-add/index.js +3 -3
  73. package/schematics/ng-add/index.mjs +3 -3
  74. package/schematics/ng-add/package-config.d.ts +1 -1
  75. package/schematics/ng-add/package-config.js +2 -2
  76. package/schematics/ng-add/package-config.mjs +2 -2
  77. package/schematics/ng-add/schema.d.ts +1 -1
  78. package/schematics/ng-add/schema.js +2 -2
  79. package/schematics/ng-add/schema.mjs +2 -2
  80. package/schematics/ng-generate/drag-drop/index.d.ts +1 -1
  81. package/schematics/ng-generate/drag-drop/index.js +2 -2
  82. package/schematics/ng-generate/drag-drop/index.mjs +2 -2
  83. package/schematics/ng-generate/drag-drop/schema.d.ts +1 -1
  84. package/schematics/ng-generate/drag-drop/schema.js +2 -2
  85. package/schematics/ng-generate/drag-drop/schema.mjs +2 -2
  86. package/schematics/ng-update/data/attribute-selectors.d.ts +1 -1
  87. package/schematics/ng-update/data/attribute-selectors.js +2 -2
  88. package/schematics/ng-update/data/attribute-selectors.mjs +2 -2
  89. package/schematics/ng-update/data/class-names.d.ts +1 -1
  90. package/schematics/ng-update/data/class-names.js +2 -2
  91. package/schematics/ng-update/data/class-names.mjs +2 -2
  92. package/schematics/ng-update/data/constructor-checks.d.ts +1 -1
  93. package/schematics/ng-update/data/constructor-checks.js +2 -2
  94. package/schematics/ng-update/data/constructor-checks.mjs +2 -2
  95. package/schematics/ng-update/data/css-selectors.d.ts +1 -1
  96. package/schematics/ng-update/data/css-selectors.js +2 -2
  97. package/schematics/ng-update/data/css-selectors.mjs +2 -2
  98. package/schematics/ng-update/data/css-tokens.d.ts +1 -1
  99. package/schematics/ng-update/data/css-tokens.js +2 -2
  100. package/schematics/ng-update/data/css-tokens.mjs +2 -2
  101. package/schematics/ng-update/data/element-selectors.d.ts +1 -1
  102. package/schematics/ng-update/data/element-selectors.js +2 -2
  103. package/schematics/ng-update/data/element-selectors.mjs +2 -2
  104. package/schematics/ng-update/data/index.d.ts +1 -1
  105. package/schematics/ng-update/data/index.js +2 -2
  106. package/schematics/ng-update/data/index.mjs +2 -2
  107. package/schematics/ng-update/data/input-names.d.ts +1 -1
  108. package/schematics/ng-update/data/input-names.js +2 -2
  109. package/schematics/ng-update/data/input-names.mjs +2 -2
  110. package/schematics/ng-update/data/method-call-checks.d.ts +1 -1
  111. package/schematics/ng-update/data/method-call-checks.js +2 -2
  112. package/schematics/ng-update/data/method-call-checks.mjs +2 -2
  113. package/schematics/ng-update/data/output-names.d.ts +1 -1
  114. package/schematics/ng-update/data/output-names.js +2 -2
  115. package/schematics/ng-update/data/output-names.mjs +2 -2
  116. package/schematics/ng-update/data/property-names.d.ts +1 -1
  117. package/schematics/ng-update/data/property-names.js +2 -2
  118. package/schematics/ng-update/data/property-names.mjs +2 -2
  119. package/schematics/ng-update/data/symbol-removal.d.ts +1 -1
  120. package/schematics/ng-update/data/symbol-removal.js +2 -2
  121. package/schematics/ng-update/data/symbol-removal.mjs +2 -2
  122. package/schematics/ng-update/devkit-file-system.d.ts +1 -1
  123. package/schematics/ng-update/devkit-file-system.js +2 -2
  124. package/schematics/ng-update/devkit-file-system.mjs +2 -2
  125. package/schematics/ng-update/devkit-migration-rule.d.ts +1 -1
  126. package/schematics/ng-update/devkit-migration-rule.js +2 -2
  127. package/schematics/ng-update/devkit-migration-rule.mjs +2 -2
  128. package/schematics/ng-update/devkit-migration.d.ts +1 -1
  129. package/schematics/ng-update/devkit-migration.js +2 -2
  130. package/schematics/ng-update/devkit-migration.mjs +2 -2
  131. package/schematics/ng-update/find-stylesheets.d.ts +1 -1
  132. package/schematics/ng-update/find-stylesheets.js +2 -2
  133. package/schematics/ng-update/find-stylesheets.mjs +2 -2
  134. package/schematics/ng-update/html-parsing/angular.d.ts +1 -1
  135. package/schematics/ng-update/html-parsing/angular.js +2 -2
  136. package/schematics/ng-update/html-parsing/angular.mjs +2 -2
  137. package/schematics/ng-update/html-parsing/elements.d.ts +1 -1
  138. package/schematics/ng-update/html-parsing/elements.js +2 -2
  139. package/schematics/ng-update/html-parsing/elements.mjs +2 -2
  140. package/schematics/ng-update/index.d.ts +1 -1
  141. package/schematics/ng-update/index.js +2 -2
  142. package/schematics/ng-update/index.mjs +2 -2
  143. package/schematics/ng-update/migrations/attribute-selectors.d.ts +1 -1
  144. package/schematics/ng-update/migrations/attribute-selectors.js +2 -2
  145. package/schematics/ng-update/migrations/attribute-selectors.mjs +2 -2
  146. package/schematics/ng-update/migrations/class-inheritance.d.ts +1 -1
  147. package/schematics/ng-update/migrations/class-inheritance.js +2 -2
  148. package/schematics/ng-update/migrations/class-inheritance.mjs +2 -2
  149. package/schematics/ng-update/migrations/class-names.d.ts +1 -1
  150. package/schematics/ng-update/migrations/class-names.js +2 -2
  151. package/schematics/ng-update/migrations/class-names.mjs +2 -2
  152. package/schematics/ng-update/migrations/constructor-signature.d.ts +1 -1
  153. package/schematics/ng-update/migrations/constructor-signature.js +2 -2
  154. package/schematics/ng-update/migrations/constructor-signature.mjs +2 -2
  155. package/schematics/ng-update/migrations/css-selectors.d.ts +1 -1
  156. package/schematics/ng-update/migrations/css-selectors.js +2 -2
  157. package/schematics/ng-update/migrations/css-selectors.mjs +2 -2
  158. package/schematics/ng-update/migrations/css-tokens.d.ts +1 -1
  159. package/schematics/ng-update/migrations/css-tokens.js +2 -2
  160. package/schematics/ng-update/migrations/css-tokens.mjs +2 -2
  161. package/schematics/ng-update/migrations/element-selectors.d.ts +1 -1
  162. package/schematics/ng-update/migrations/element-selectors.js +2 -2
  163. package/schematics/ng-update/migrations/element-selectors.mjs +2 -2
  164. package/schematics/ng-update/migrations/input-names.d.ts +1 -1
  165. package/schematics/ng-update/migrations/input-names.js +2 -2
  166. package/schematics/ng-update/migrations/input-names.mjs +2 -2
  167. package/schematics/ng-update/migrations/method-call-arguments.d.ts +1 -1
  168. package/schematics/ng-update/migrations/method-call-arguments.js +2 -2
  169. package/schematics/ng-update/migrations/method-call-arguments.mjs +2 -2
  170. package/schematics/ng-update/migrations/misc-template.d.ts +1 -1
  171. package/schematics/ng-update/migrations/misc-template.js +2 -2
  172. package/schematics/ng-update/migrations/misc-template.mjs +2 -2
  173. package/schematics/ng-update/migrations/output-names.d.ts +1 -1
  174. package/schematics/ng-update/migrations/output-names.js +2 -2
  175. package/schematics/ng-update/migrations/output-names.mjs +2 -2
  176. package/schematics/ng-update/migrations/property-names.d.ts +1 -1
  177. package/schematics/ng-update/migrations/property-names.js +2 -2
  178. package/schematics/ng-update/migrations/property-names.mjs +2 -2
  179. package/schematics/ng-update/migrations/symbol-removal.d.ts +1 -1
  180. package/schematics/ng-update/migrations/symbol-removal.js +2 -2
  181. package/schematics/ng-update/migrations/symbol-removal.mjs +2 -2
  182. package/schematics/ng-update/public-api.d.ts +1 -1
  183. package/schematics/ng-update/public-api.js +2 -2
  184. package/schematics/ng-update/public-api.mjs +2 -2
  185. package/schematics/ng-update/typescript/base-types.d.ts +1 -1
  186. package/schematics/ng-update/typescript/base-types.js +2 -2
  187. package/schematics/ng-update/typescript/base-types.mjs +2 -2
  188. package/schematics/ng-update/typescript/imports.d.ts +1 -1
  189. package/schematics/ng-update/typescript/imports.js +2 -2
  190. package/schematics/ng-update/typescript/imports.mjs +2 -2
  191. package/schematics/ng-update/typescript/literal.d.ts +1 -1
  192. package/schematics/ng-update/typescript/literal.js +2 -2
  193. package/schematics/ng-update/typescript/literal.mjs +2 -2
  194. package/schematics/ng-update/typescript/module-specifiers.d.ts +1 -1
  195. package/schematics/ng-update/typescript/module-specifiers.js +2 -2
  196. package/schematics/ng-update/typescript/module-specifiers.mjs +2 -2
  197. package/schematics/ng-update/upgrade-data.d.ts +1 -1
  198. package/schematics/ng-update/upgrade-data.js +2 -2
  199. package/schematics/ng-update/upgrade-data.mjs +2 -2
  200. package/schematics/paths.d.ts +1 -1
  201. package/schematics/paths.js +2 -2
  202. package/schematics/paths.mjs +2 -2
  203. package/schematics/update-tool/component-resource-collector.d.ts +1 -1
  204. package/schematics/update-tool/component-resource-collector.js +2 -2
  205. package/schematics/update-tool/component-resource-collector.mjs +2 -2
  206. package/schematics/update-tool/file-system.d.ts +1 -1
  207. package/schematics/update-tool/file-system.js +2 -2
  208. package/schematics/update-tool/file-system.mjs +2 -2
  209. package/schematics/update-tool/index.d.ts +1 -1
  210. package/schematics/update-tool/index.js +2 -2
  211. package/schematics/update-tool/index.mjs +2 -2
  212. package/schematics/update-tool/logger.d.ts +1 -1
  213. package/schematics/update-tool/logger.js +2 -2
  214. package/schematics/update-tool/logger.mjs +2 -2
  215. package/schematics/update-tool/migration.d.ts +1 -1
  216. package/schematics/update-tool/migration.js +2 -2
  217. package/schematics/update-tool/migration.mjs +2 -2
  218. package/schematics/update-tool/public-api.d.ts +1 -1
  219. package/schematics/update-tool/public-api.js +2 -2
  220. package/schematics/update-tool/public-api.mjs +2 -2
  221. package/schematics/update-tool/target-version.d.ts +1 -1
  222. package/schematics/update-tool/target-version.js +2 -2
  223. package/schematics/update-tool/target-version.mjs +2 -2
  224. package/schematics/update-tool/update-recorder.d.ts +1 -1
  225. package/schematics/update-tool/update-recorder.js +2 -2
  226. package/schematics/update-tool/update-recorder.mjs +2 -2
  227. package/schematics/update-tool/utils/decorators.d.ts +1 -1
  228. package/schematics/update-tool/utils/decorators.js +2 -2
  229. package/schematics/update-tool/utils/decorators.mjs +2 -2
  230. package/schematics/update-tool/utils/diagnostics.d.ts +1 -1
  231. package/schematics/update-tool/utils/diagnostics.js +2 -2
  232. package/schematics/update-tool/utils/diagnostics.mjs +2 -2
  233. package/schematics/update-tool/utils/functions.d.ts +1 -1
  234. package/schematics/update-tool/utils/functions.js +2 -2
  235. package/schematics/update-tool/utils/functions.mjs +2 -2
  236. package/schematics/update-tool/utils/imports.d.ts +1 -1
  237. package/schematics/update-tool/utils/imports.js +2 -2
  238. package/schematics/update-tool/utils/imports.mjs +2 -2
  239. package/schematics/update-tool/utils/line-mappings.d.ts +1 -1
  240. package/schematics/update-tool/utils/line-mappings.js +2 -2
  241. package/schematics/update-tool/utils/line-mappings.mjs +2 -2
  242. package/schematics/update-tool/utils/parse-tsconfig.d.ts +1 -1
  243. package/schematics/update-tool/utils/parse-tsconfig.js +2 -2
  244. package/schematics/update-tool/utils/parse-tsconfig.mjs +2 -2
  245. package/schematics/update-tool/utils/property-name.d.ts +1 -1
  246. package/schematics/update-tool/utils/property-name.js +2 -2
  247. package/schematics/update-tool/utils/property-name.mjs +2 -2
  248. package/schematics/update-tool/utils/virtual-host.d.ts +1 -1
  249. package/schematics/update-tool/utils/virtual-host.js +2 -2
  250. package/schematics/update-tool/utils/virtual-host.mjs +2 -2
  251. package/schematics/update-tool/version-changes.d.ts +1 -1
  252. package/schematics/update-tool/version-changes.js +2 -2
  253. package/schematics/update-tool/version-changes.mjs +2 -2
  254. package/schematics/utils/ast/ng-module-imports.d.ts +1 -1
  255. package/schematics/utils/ast/ng-module-imports.js +2 -2
  256. package/schematics/utils/ast/ng-module-imports.mjs +2 -2
  257. package/schematics/utils/ast.d.ts +1 -1
  258. package/schematics/utils/ast.js +2 -2
  259. package/schematics/utils/ast.mjs +2 -2
  260. package/schematics/utils/build-component.d.ts +1 -1
  261. package/schematics/utils/build-component.js +2 -2
  262. package/schematics/utils/build-component.mjs +2 -2
  263. package/schematics/utils/get-project.d.ts +1 -1
  264. package/schematics/utils/get-project.js +2 -2
  265. package/schematics/utils/get-project.mjs +2 -2
  266. package/schematics/utils/html-manipulation.d.ts +1 -1
  267. package/schematics/utils/html-manipulation.js +2 -2
  268. package/schematics/utils/html-manipulation.mjs +2 -2
  269. package/schematics/utils/index.d.ts +1 -1
  270. package/schematics/utils/index.js +2 -2
  271. package/schematics/utils/index.mjs +2 -2
  272. package/schematics/utils/parse5-element.d.ts +1 -1
  273. package/schematics/utils/parse5-element.js +2 -2
  274. package/schematics/utils/parse5-element.mjs +2 -2
  275. package/schematics/utils/project-index-file.d.ts +1 -1
  276. package/schematics/utils/project-index-file.js +2 -2
  277. package/schematics/utils/project-index-file.mjs +2 -2
  278. package/schematics/utils/project-main-file.d.ts +1 -1
  279. package/schematics/utils/project-main-file.js +2 -2
  280. package/schematics/utils/project-main-file.mjs +2 -2
  281. package/schematics/utils/project-style-file.d.ts +1 -1
  282. package/schematics/utils/project-style-file.js +2 -2
  283. package/schematics/utils/project-style-file.mjs +2 -2
  284. package/schematics/utils/project-targets.d.ts +1 -1
  285. package/schematics/utils/project-targets.js +4 -3
  286. package/schematics/utils/project-targets.mjs +4 -3
  287. package/schematics/utils/project-tsconfig-paths.d.ts +1 -1
  288. package/schematics/utils/project-tsconfig-paths.js +2 -2
  289. package/schematics/utils/project-tsconfig-paths.mjs +2 -2
  290. package/schematics/utils/schematic-options.d.ts +1 -1
  291. package/schematics/utils/schematic-options.js +2 -2
  292. package/schematics/utils/schematic-options.mjs +2 -2
  293. package/scrolling/index.d.ts +19 -38
  294. package/stepper/index.d.ts +16 -69
  295. package/table/index.d.ts +41 -56
  296. package/text-field/index.d.ts +6 -9
  297. package/tree/index.d.ts +17 -16
  298. package/esm2022/a11y/a11y-module.mjs +0 -31
  299. package/esm2022/a11y/a11y_public_index.mjs +0 -5
  300. package/esm2022/a11y/aria-describer/aria-describer.mjs +0 -232
  301. package/esm2022/a11y/aria-describer/aria-reference.mjs +0 -47
  302. package/esm2022/a11y/fake-event-detection.mjs +0 -29
  303. package/esm2022/a11y/focus-monitor/focus-monitor.mjs +0 -468
  304. package/esm2022/a11y/focus-trap/configurable-focus-trap-config.mjs +0 -9
  305. package/esm2022/a11y/focus-trap/configurable-focus-trap-factory.mjs +0 -54
  306. package/esm2022/a11y/focus-trap/configurable-focus-trap.mjs +0 -51
  307. package/esm2022/a11y/focus-trap/event-listener-inert-strategy.mjs +0 -61
  308. package/esm2022/a11y/focus-trap/focus-trap-inert-strategy.mjs +0 -11
  309. package/esm2022/a11y/focus-trap/focus-trap-manager.mjs +0 -53
  310. package/esm2022/a11y/focus-trap/focus-trap.mjs +0 -396
  311. package/esm2022/a11y/high-contrast-mode/high-contrast-mode-detector.mjs +0 -116
  312. package/esm2022/a11y/index.mjs +0 -9
  313. package/esm2022/a11y/input-modality/input-modality-detector.mjs +0 -176
  314. package/esm2022/a11y/interactivity-checker/interactivity-checker.mjs +0 -238
  315. package/esm2022/a11y/key-manager/activedescendant-key-manager.mjs +0 -20
  316. package/esm2022/a11y/key-manager/focus-key-manager.mjs +0 -29
  317. package/esm2022/a11y/key-manager/list-key-manager.mjs +0 -357
  318. package/esm2022/a11y/key-manager/noop-tree-key-manager.mjs +0 -94
  319. package/esm2022/a11y/key-manager/tree-key-manager-strategy.mjs +0 -9
  320. package/esm2022/a11y/key-manager/tree-key-manager.mjs +0 -345
  321. package/esm2022/a11y/key-manager/typeahead.mjs +0 -91
  322. package/esm2022/a11y/live-announcer/live-announcer-tokens.mjs +0 -19
  323. package/esm2022/a11y/live-announcer/live-announcer.mjs +0 -210
  324. package/esm2022/a11y/public-api.mjs +0 -30
  325. package/esm2022/accordion/accordion-item.mjs +0 -162
  326. package/esm2022/accordion/accordion-module.mjs +0 -24
  327. package/esm2022/accordion/accordion.mjs +0 -65
  328. package/esm2022/accordion/accordion_public_index.mjs +0 -5
  329. package/esm2022/accordion/index.mjs +0 -9
  330. package/esm2022/accordion/public-api.mjs +0 -11
  331. package/esm2022/bidi/bidi-module.mjs +0 -23
  332. package/esm2022/bidi/bidi_public_index.mjs +0 -5
  333. package/esm2022/bidi/dir-document-token.mjs +0 -33
  334. package/esm2022/bidi/dir.mjs +0 -70
  335. package/esm2022/bidi/directionality.mjs +0 -52
  336. package/esm2022/bidi/index.mjs +0 -9
  337. package/esm2022/bidi/public-api.mjs +0 -12
  338. package/esm2022/clipboard/clipboard-module.mjs +0 -23
  339. package/esm2022/clipboard/clipboard.mjs +0 -53
  340. package/esm2022/clipboard/clipboard_public_index.mjs +0 -5
  341. package/esm2022/clipboard/copy-to-clipboard.mjs +0 -100
  342. package/esm2022/clipboard/index.mjs +0 -9
  343. package/esm2022/clipboard/pending-copy.mjs +0 -71
  344. package/esm2022/clipboard/public-api.mjs +0 -12
  345. package/esm2022/coercion/array.mjs +0 -11
  346. package/esm2022/coercion/boolean-property.mjs +0 -12
  347. package/esm2022/coercion/css-pixel-value.mjs +0 -15
  348. package/esm2022/coercion/element.mjs +0 -16
  349. package/esm2022/coercion/index.mjs +0 -9
  350. package/esm2022/coercion/number-property.mjs +0 -24
  351. package/esm2022/coercion/private/index.mjs +0 -9
  352. package/esm2022/coercion/private/observable.mjs +0 -19
  353. package/esm2022/coercion/private/private_public_index.mjs +0 -5
  354. package/esm2022/coercion/public-api.mjs +0 -14
  355. package/esm2022/coercion/string-array.mjs +0 -38
  356. package/esm2022/collections/array-data-source.mjs +0 -21
  357. package/esm2022/collections/collection-viewer.mjs +0 -9
  358. package/esm2022/collections/collections_public_index.mjs +0 -5
  359. package/esm2022/collections/data-source.mjs +0 -19
  360. package/esm2022/collections/dispose-view-repeater-strategy.mjs +0 -48
  361. package/esm2022/collections/index.mjs +0 -9
  362. package/esm2022/collections/public-api.mjs +0 -17
  363. package/esm2022/collections/recycle-view-repeater-strategy.mjs +0 -129
  364. package/esm2022/collections/selection-model.mjs +0 -225
  365. package/esm2022/collections/tree-adapter.mjs +0 -9
  366. package/esm2022/collections/unique-selection-dispatcher.mjs +0 -55
  367. package/esm2022/collections/view-repeater.mjs +0 -26
  368. package/esm2022/dialog/dialog-config.mjs +0 -70
  369. package/esm2022/dialog/dialog-container.mjs +0 -308
  370. package/esm2022/dialog/dialog-injectors.mjs +0 -40
  371. package/esm2022/dialog/dialog-module.mjs +0 -40
  372. package/esm2022/dialog/dialog-ref.mjs +0 -85
  373. package/esm2022/dialog/dialog.mjs +0 -303
  374. package/esm2022/dialog/dialog_public_index.mjs +0 -5
  375. package/esm2022/dialog/index.mjs +0 -9
  376. package/esm2022/dialog/public-api.mjs +0 -14
  377. package/esm2022/drag-drop/directives/assertions.mjs +0 -18
  378. package/esm2022/drag-drop/directives/config.mjs +0 -14
  379. package/esm2022/drag-drop/directives/drag-handle.mjs +0 -68
  380. package/esm2022/drag-drop/directives/drag-placeholder.mjs +0 -43
  381. package/esm2022/drag-drop/directives/drag-preview.mjs +0 -48
  382. package/esm2022/drag-drop/directives/drag.mjs +0 -520
  383. package/esm2022/drag-drop/directives/drop-list-group.mjs +0 -47
  384. package/esm2022/drag-drop/directives/drop-list.mjs +0 -352
  385. package/esm2022/drag-drop/dom/clone-node.mjs +0 -65
  386. package/esm2022/drag-drop/dom/dom-rect.mjs +0 -64
  387. package/esm2022/drag-drop/dom/parent-position-tracker.mjs +0 -76
  388. package/esm2022/drag-drop/dom/root-node.mjs +0 -21
  389. package/esm2022/drag-drop/dom/styling.mjs +0 -89
  390. package/esm2022/drag-drop/dom/transition-duration.mjs +0 -36
  391. package/esm2022/drag-drop/drag-drop-module.mjs +0 -49
  392. package/esm2022/drag-drop/drag-drop-registry.mjs +0 -266
  393. package/esm2022/drag-drop/drag-drop.mjs +0 -57
  394. package/esm2022/drag-drop/drag-drop_public_index.mjs +0 -5
  395. package/esm2022/drag-drop/drag-events.mjs +0 -9
  396. package/esm2022/drag-drop/drag-parent.mjs +0 -16
  397. package/esm2022/drag-drop/drag-ref.mjs +0 -1097
  398. package/esm2022/drag-drop/drag-utils.mjs +0 -60
  399. package/esm2022/drag-drop/drop-list-ref.mjs +0 -672
  400. package/esm2022/drag-drop/index.mjs +0 -9
  401. package/esm2022/drag-drop/preview-ref.mjs +0 -117
  402. package/esm2022/drag-drop/public-api.mjs +0 -23
  403. package/esm2022/drag-drop/sorting/drop-list-sort-strategy.mjs +0 -9
  404. package/esm2022/drag-drop/sorting/mixed-sort-strategy.mjs +0 -246
  405. package/esm2022/drag-drop/sorting/single-axis-sort-strategy.mjs +0 -343
  406. package/esm2022/index.mjs +0 -9
  407. package/esm2022/keycodes/index.mjs +0 -9
  408. package/esm2022/keycodes/keycodes.mjs +0 -127
  409. package/esm2022/keycodes/keycodes_public_index.mjs +0 -5
  410. package/esm2022/keycodes/modifiers.mjs +0 -18
  411. package/esm2022/keycodes/public-api.mjs +0 -10
  412. package/esm2022/layout/breakpoints-observer.mjs +0 -105
  413. package/esm2022/layout/breakpoints.mjs +0 -29
  414. package/esm2022/layout/index.mjs +0 -9
  415. package/esm2022/layout/layout-module.mjs +0 -19
  416. package/esm2022/layout/layout_public_index.mjs +0 -5
  417. package/esm2022/layout/media-matcher.mjs +0 -94
  418. package/esm2022/layout/public-api.mjs +0 -12
  419. package/esm2022/listbox/index.mjs +0 -9
  420. package/esm2022/listbox/listbox-module.mjs +0 -24
  421. package/esm2022/listbox/listbox.mjs +0 -888
  422. package/esm2022/listbox/listbox_public_index.mjs +0 -5
  423. package/esm2022/listbox/public-api.mjs +0 -10
  424. package/esm2022/menu/context-menu-trigger.mjs +0 -221
  425. package/esm2022/menu/event-detection.mjs +0 -28
  426. package/esm2022/menu/index.mjs +0 -9
  427. package/esm2022/menu/menu-aim.mjs +0 -204
  428. package/esm2022/menu/menu-bar.mjs +0 -134
  429. package/esm2022/menu/menu-base.mjs +0 -192
  430. package/esm2022/menu/menu-errors.mjs +0 -22
  431. package/esm2022/menu/menu-group.mjs +0 -31
  432. package/esm2022/menu/menu-interface.mjs +0 -11
  433. package/esm2022/menu/menu-item-checkbox.mjs +0 -50
  434. package/esm2022/menu/menu-item-radio.mjs +0 -72
  435. package/esm2022/menu/menu-item-selectable.mjs +0 -36
  436. package/esm2022/menu/menu-item.mjs +0 -270
  437. package/esm2022/menu/menu-module.mjs +0 -60
  438. package/esm2022/menu/menu-stack.mjs +0 -163
  439. package/esm2022/menu/menu-trigger-base.mjs +0 -119
  440. package/esm2022/menu/menu-trigger.mjs +0 -313
  441. package/esm2022/menu/menu.mjs +0 -135
  442. package/esm2022/menu/menu_public_index.mjs +0 -5
  443. package/esm2022/menu/pointer-focus-tracker.mjs +0 -51
  444. package/esm2022/menu/public-api.mjs +0 -24
  445. package/esm2022/observers/index.mjs +0 -9
  446. package/esm2022/observers/observe-content.mjs +0 -216
  447. package/esm2022/observers/observers_public_index.mjs +0 -5
  448. package/esm2022/observers/private/index.mjs +0 -9
  449. package/esm2022/observers/private/private_public_index.mjs +0 -5
  450. package/esm2022/observers/private/shared-resize-observer.mjs +0 -125
  451. package/esm2022/observers/public-api.mjs +0 -9
  452. package/esm2022/overlay/dispatchers/base-overlay-dispatcher.mjs +0 -52
  453. package/esm2022/overlay/dispatchers/index.mjs +0 -10
  454. package/esm2022/overlay/dispatchers/overlay-keyboard-dispatcher.mjs +0 -81
  455. package/esm2022/overlay/dispatchers/overlay-outside-click-dispatcher.mjs +0 -151
  456. package/esm2022/overlay/fullscreen-overlay-container.mjs +0 -94
  457. package/esm2022/overlay/index.mjs +0 -9
  458. package/esm2022/overlay/overlay-config.mjs +0 -45
  459. package/esm2022/overlay/overlay-container.mjs +0 -81
  460. package/esm2022/overlay/overlay-directives.mjs +0 -432
  461. package/esm2022/overlay/overlay-module.mjs +0 -28
  462. package/esm2022/overlay/overlay-ref.mjs +0 -437
  463. package/esm2022/overlay/overlay.mjs +0 -126
  464. package/esm2022/overlay/overlay_public_index.mjs +0 -5
  465. package/esm2022/overlay/position/connected-position.mjs +0 -88
  466. package/esm2022/overlay/position/flexible-connected-position-strategy.mjs +0 -1002
  467. package/esm2022/overlay/position/global-position-strategy.mjs +0 -237
  468. package/esm2022/overlay/position/overlay-position-builder.mjs +0 -50
  469. package/esm2022/overlay/position/position-strategy.mjs +0 -9
  470. package/esm2022/overlay/position/scroll-clip.mjs +0 -40
  471. package/esm2022/overlay/public-api.mjs +0 -22
  472. package/esm2022/overlay/scroll/block-scroll-strategy.mjs +0 -80
  473. package/esm2022/overlay/scroll/close-scroll-strategy.mjs +0 -65
  474. package/esm2022/overlay/scroll/index.mjs +0 -14
  475. package/esm2022/overlay/scroll/noop-scroll-strategy.mjs +0 -17
  476. package/esm2022/overlay/scroll/reposition-scroll-strategy.mjs +0 -61
  477. package/esm2022/overlay/scroll/scroll-strategy-options.mjs +0 -55
  478. package/esm2022/overlay/scroll/scroll-strategy.mjs +0 -14
  479. package/esm2022/platform/features/input-types.mjs +0 -59
  480. package/esm2022/platform/features/passive-listeners.mjs +0 -36
  481. package/esm2022/platform/features/scrolling.mjs +0 -104
  482. package/esm2022/platform/features/shadow-dom.mjs +0 -54
  483. package/esm2022/platform/features/test-environment.mjs +0 -24
  484. package/esm2022/platform/index.mjs +0 -9
  485. package/esm2022/platform/platform-module.mjs +0 -19
  486. package/esm2022/platform/platform.mjs +0 -85
  487. package/esm2022/platform/platform_public_index.mjs +0 -5
  488. package/esm2022/platform/public-api.mjs +0 -15
  489. package/esm2022/portal/dom-portal-outlet.mjs +0 -158
  490. package/esm2022/portal/index.mjs +0 -9
  491. package/esm2022/portal/portal-directives.mjs +0 -251
  492. package/esm2022/portal/portal-errors.mjs +0 -51
  493. package/esm2022/portal/portal-injector.mjs +0 -28
  494. package/esm2022/portal/portal.mjs +0 -189
  495. package/esm2022/portal/portal_public_index.mjs +0 -5
  496. package/esm2022/portal/public-api.mjs +0 -12
  497. package/esm2022/public-api.mjs +0 -9
  498. package/esm2022/scrolling/fixed-size-virtual-scroll.mjs +0 -218
  499. package/esm2022/scrolling/index.mjs +0 -9
  500. package/esm2022/scrolling/public-api.mjs +0 -20
  501. package/esm2022/scrolling/scroll-dispatcher.mjs +0 -163
  502. package/esm2022/scrolling/scrollable.mjs +0 -177
  503. package/esm2022/scrolling/scrolling-module.mjs +0 -69
  504. package/esm2022/scrolling/scrolling_public_index.mjs +0 -5
  505. package/esm2022/scrolling/viewport-ruler.mjs +0 -146
  506. package/esm2022/scrolling/virtual-for-of.mjs +0 -299
  507. package/esm2022/scrolling/virtual-scroll-repeater.mjs +0 -9
  508. package/esm2022/scrolling/virtual-scroll-strategy.mjs +0 -11
  509. package/esm2022/scrolling/virtual-scroll-viewport.mjs +0 -445
  510. package/esm2022/scrolling/virtual-scrollable-element.mjs +0 -42
  511. package/esm2022/scrolling/virtual-scrollable-window.mjs +0 -41
  512. package/esm2022/scrolling/virtual-scrollable.mjs +0 -40
  513. package/esm2022/stepper/index.mjs +0 -9
  514. package/esm2022/stepper/public-api.mjs +0 -13
  515. package/esm2022/stepper/step-header.mjs +0 -31
  516. package/esm2022/stepper/step-label.mjs +0 -24
  517. package/esm2022/stepper/stepper-button.mjs +0 -58
  518. package/esm2022/stepper/stepper-module.mjs +0 -41
  519. package/esm2022/stepper/stepper.mjs +0 -452
  520. package/esm2022/stepper/stepper_public_index.mjs +0 -5
  521. package/esm2022/table/can-stick.mjs +0 -46
  522. package/esm2022/table/cell.mjs +0 -245
  523. package/esm2022/table/coalesced-style-scheduler.mjs +0 -79
  524. package/esm2022/table/index.mjs +0 -9
  525. package/esm2022/table/public-api.mjs +0 -20
  526. package/esm2022/table/row.mjs +0 -317
  527. package/esm2022/table/sticky-position-listener.mjs +0 -11
  528. package/esm2022/table/sticky-styler.mjs +0 -347
  529. package/esm2022/table/table-errors.mjs +0 -67
  530. package/esm2022/table/table-module.mjs +0 -93
  531. package/esm2022/table/table.mjs +0 -1148
  532. package/esm2022/table/table_public_index.mjs +0 -5
  533. package/esm2022/table/text-column.mjs +0 -154
  534. package/esm2022/table/tokens.mjs +0 -16
  535. package/esm2022/testing/change-detection.mjs +0 -102
  536. package/esm2022/testing/component-harness.mjs +0 -328
  537. package/esm2022/testing/element-dimensions.mjs +0 -9
  538. package/esm2022/testing/harness-environment.mjs +0 -220
  539. package/esm2022/testing/index.mjs +0 -9
  540. package/esm2022/testing/public-api.mjs +0 -15
  541. package/esm2022/testing/selenium-webdriver/index.mjs +0 -9
  542. package/esm2022/testing/selenium-webdriver/public-api.mjs +0 -10
  543. package/esm2022/testing/selenium-webdriver/selenium-web-driver-element.mjs +0 -216
  544. package/esm2022/testing/selenium-webdriver/selenium-web-driver-harness-environment.mjs +0 -88
  545. package/esm2022/testing/selenium-webdriver/selenium-webdriver-keys.mjs +0 -64
  546. package/esm2022/testing/test-element-errors.mjs +0 -15
  547. package/esm2022/testing/test-element.mjs +0 -49
  548. package/esm2022/testing/testbed/fake-events/dispatch-events.mjs +0 -53
  549. package/esm2022/testing/testbed/fake-events/element-focus.mjs +0 -39
  550. package/esm2022/testing/testbed/fake-events/event-objects.mjs +0 -127
  551. package/esm2022/testing/testbed/fake-events/index.mjs +0 -14
  552. package/esm2022/testing/testbed/fake-events/type-in-element.mjs +0 -97
  553. package/esm2022/testing/testbed/index.mjs +0 -9
  554. package/esm2022/testing/testbed/public-api.mjs +0 -10
  555. package/esm2022/testing/testbed/task-state-zone-interceptor.mjs +0 -82
  556. package/esm2022/testing/testbed/testbed-harness-environment.mjs +0 -165
  557. package/esm2022/testing/testbed/unit-test-element.mjs +0 -258
  558. package/esm2022/testing/text-filtering.mjs +0 -21
  559. package/esm2022/text-field/autofill.mjs +0 -114
  560. package/esm2022/text-field/autosize.mjs +0 -309
  561. package/esm2022/text-field/index.mjs +0 -9
  562. package/esm2022/text-field/public-api.mjs +0 -11
  563. package/esm2022/text-field/text-field-module.mjs +0 -24
  564. package/esm2022/text-field/text-field_public_index.mjs +0 -5
  565. package/esm2022/tree/control/base-tree-control.mjs +0 -62
  566. package/esm2022/tree/control/flat-tree-control.mjs +0 -57
  567. package/esm2022/tree/control/nested-tree-control.mjs +0 -67
  568. package/esm2022/tree/control/tree-control.mjs +0 -2
  569. package/esm2022/tree/index.mjs +0 -9
  570. package/esm2022/tree/nested-node.mjs +0 -103
  571. package/esm2022/tree/node.mjs +0 -36
  572. package/esm2022/tree/outlet.mjs +0 -40
  573. package/esm2022/tree/padding.mjs +0 -129
  574. package/esm2022/tree/public-api.mjs +0 -20
  575. package/esm2022/tree/toggle.mjs +0 -51
  576. package/esm2022/tree/tree-errors.mjs +0 -44
  577. package/esm2022/tree/tree-module.mjs +0 -49
  578. package/esm2022/tree/tree.mjs +0 -1123
  579. package/esm2022/tree/tree_public_index.mjs +0 -5
  580. package/esm2022/version.mjs +0 -11
@@ -1,357 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { QueryList, effect, isSignal } from '@angular/core';
9
- import { Subject, Subscription } from 'rxjs';
10
- import { UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, TAB, hasModifierKey, HOME, END, PAGE_UP, PAGE_DOWN, } from '@angular/cdk/keycodes';
11
- import { Typeahead } from './typeahead';
12
- /**
13
- * This class manages keyboard events for selectable lists. If you pass it a query list
14
- * of items, it will set the active item correctly when arrow events occur.
15
- */
16
- export class ListKeyManager {
17
- constructor(_items, injector) {
18
- this._items = _items;
19
- this._activeItemIndex = -1;
20
- this._activeItem = null;
21
- this._wrap = false;
22
- this._typeaheadSubscription = Subscription.EMPTY;
23
- this._vertical = true;
24
- this._allowedModifierKeys = [];
25
- this._homeAndEnd = false;
26
- this._pageUpAndDown = { enabled: false, delta: 10 };
27
- /**
28
- * Predicate function that can be used to check whether an item should be skipped
29
- * by the key manager. By default, disabled items are skipped.
30
- */
31
- this._skipPredicateFn = (item) => item.disabled;
32
- /**
33
- * Stream that emits any time the TAB key is pressed, so components can react
34
- * when focus is shifted off of the list.
35
- */
36
- this.tabOut = new Subject();
37
- /** Stream that emits whenever the active item of the list manager changes. */
38
- this.change = new Subject();
39
- // We allow for the items to be an array because, in some cases, the consumer may
40
- // not have access to a QueryList of the items they want to manage (e.g. when the
41
- // items aren't being collected via `ViewChildren` or `ContentChildren`).
42
- if (_items instanceof QueryList) {
43
- this._itemChangesSubscription = _items.changes.subscribe((newItems) => this._itemsChanged(newItems.toArray()));
44
- }
45
- else if (isSignal(_items)) {
46
- if (!injector && (typeof ngDevMode === 'undefined' || ngDevMode)) {
47
- throw new Error('ListKeyManager constructed with a signal must receive an injector');
48
- }
49
- this._effectRef = effect(() => this._itemsChanged(_items()), { injector });
50
- }
51
- }
52
- /**
53
- * Sets the predicate function that determines which items should be skipped by the
54
- * list key manager.
55
- * @param predicate Function that determines whether the given item should be skipped.
56
- */
57
- skipPredicate(predicate) {
58
- this._skipPredicateFn = predicate;
59
- return this;
60
- }
61
- /**
62
- * Configures wrapping mode, which determines whether the active item will wrap to
63
- * the other end of list when there are no more items in the given direction.
64
- * @param shouldWrap Whether the list should wrap when reaching the end.
65
- */
66
- withWrap(shouldWrap = true) {
67
- this._wrap = shouldWrap;
68
- return this;
69
- }
70
- /**
71
- * Configures whether the key manager should be able to move the selection vertically.
72
- * @param enabled Whether vertical selection should be enabled.
73
- */
74
- withVerticalOrientation(enabled = true) {
75
- this._vertical = enabled;
76
- return this;
77
- }
78
- /**
79
- * Configures the key manager to move the selection horizontally.
80
- * Passing in `null` will disable horizontal movement.
81
- * @param direction Direction in which the selection can be moved.
82
- */
83
- withHorizontalOrientation(direction) {
84
- this._horizontal = direction;
85
- return this;
86
- }
87
- /**
88
- * Modifier keys which are allowed to be held down and whose default actions will be prevented
89
- * as the user is pressing the arrow keys. Defaults to not allowing any modifier keys.
90
- */
91
- withAllowedModifierKeys(keys) {
92
- this._allowedModifierKeys = keys;
93
- return this;
94
- }
95
- /**
96
- * Turns on typeahead mode which allows users to set the active item by typing.
97
- * @param debounceInterval Time to wait after the last keystroke before setting the active item.
98
- */
99
- withTypeAhead(debounceInterval = 200) {
100
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
101
- const items = this._getItemsArray();
102
- if (items.length > 0 && items.some(item => typeof item.getLabel !== 'function')) {
103
- throw Error('ListKeyManager items in typeahead mode must implement the `getLabel` method.');
104
- }
105
- }
106
- this._typeaheadSubscription.unsubscribe();
107
- const items = this._getItemsArray();
108
- this._typeahead = new Typeahead(items, {
109
- debounceInterval: typeof debounceInterval === 'number' ? debounceInterval : undefined,
110
- skipPredicate: item => this._skipPredicateFn(item),
111
- });
112
- this._typeaheadSubscription = this._typeahead.selectedItem.subscribe(item => {
113
- this.setActiveItem(item);
114
- });
115
- return this;
116
- }
117
- /** Cancels the current typeahead sequence. */
118
- cancelTypeahead() {
119
- this._typeahead?.reset();
120
- return this;
121
- }
122
- /**
123
- * Configures the key manager to activate the first and last items
124
- * respectively when the Home or End key is pressed.
125
- * @param enabled Whether pressing the Home or End key activates the first/last item.
126
- */
127
- withHomeAndEnd(enabled = true) {
128
- this._homeAndEnd = enabled;
129
- return this;
130
- }
131
- /**
132
- * Configures the key manager to activate every 10th, configured or first/last element in up/down direction
133
- * respectively when the Page-Up or Page-Down key is pressed.
134
- * @param enabled Whether pressing the Page-Up or Page-Down key activates the first/last item.
135
- * @param delta Whether pressing the Home or End key activates the first/last item.
136
- */
137
- withPageUpDown(enabled = true, delta = 10) {
138
- this._pageUpAndDown = { enabled, delta };
139
- return this;
140
- }
141
- setActiveItem(item) {
142
- const previousActiveItem = this._activeItem;
143
- this.updateActiveItem(item);
144
- if (this._activeItem !== previousActiveItem) {
145
- this.change.next(this._activeItemIndex);
146
- }
147
- }
148
- /**
149
- * Sets the active item depending on the key event passed in.
150
- * @param event Keyboard event to be used for determining which element should be active.
151
- */
152
- onKeydown(event) {
153
- const keyCode = event.keyCode;
154
- const modifiers = ['altKey', 'ctrlKey', 'metaKey', 'shiftKey'];
155
- const isModifierAllowed = modifiers.every(modifier => {
156
- return !event[modifier] || this._allowedModifierKeys.indexOf(modifier) > -1;
157
- });
158
- switch (keyCode) {
159
- case TAB:
160
- this.tabOut.next();
161
- return;
162
- case DOWN_ARROW:
163
- if (this._vertical && isModifierAllowed) {
164
- this.setNextItemActive();
165
- break;
166
- }
167
- else {
168
- return;
169
- }
170
- case UP_ARROW:
171
- if (this._vertical && isModifierAllowed) {
172
- this.setPreviousItemActive();
173
- break;
174
- }
175
- else {
176
- return;
177
- }
178
- case RIGHT_ARROW:
179
- if (this._horizontal && isModifierAllowed) {
180
- this._horizontal === 'rtl' ? this.setPreviousItemActive() : this.setNextItemActive();
181
- break;
182
- }
183
- else {
184
- return;
185
- }
186
- case LEFT_ARROW:
187
- if (this._horizontal && isModifierAllowed) {
188
- this._horizontal === 'rtl' ? this.setNextItemActive() : this.setPreviousItemActive();
189
- break;
190
- }
191
- else {
192
- return;
193
- }
194
- case HOME:
195
- if (this._homeAndEnd && isModifierAllowed) {
196
- this.setFirstItemActive();
197
- break;
198
- }
199
- else {
200
- return;
201
- }
202
- case END:
203
- if (this._homeAndEnd && isModifierAllowed) {
204
- this.setLastItemActive();
205
- break;
206
- }
207
- else {
208
- return;
209
- }
210
- case PAGE_UP:
211
- if (this._pageUpAndDown.enabled && isModifierAllowed) {
212
- const targetIndex = this._activeItemIndex - this._pageUpAndDown.delta;
213
- this._setActiveItemByIndex(targetIndex > 0 ? targetIndex : 0, 1);
214
- break;
215
- }
216
- else {
217
- return;
218
- }
219
- case PAGE_DOWN:
220
- if (this._pageUpAndDown.enabled && isModifierAllowed) {
221
- const targetIndex = this._activeItemIndex + this._pageUpAndDown.delta;
222
- const itemsLength = this._getItemsArray().length;
223
- this._setActiveItemByIndex(targetIndex < itemsLength ? targetIndex : itemsLength - 1, -1);
224
- break;
225
- }
226
- else {
227
- return;
228
- }
229
- default:
230
- if (isModifierAllowed || hasModifierKey(event, 'shiftKey')) {
231
- this._typeahead?.handleKey(event);
232
- }
233
- // Note that we return here, in order to avoid preventing
234
- // the default action of non-navigational keys.
235
- return;
236
- }
237
- this._typeahead?.reset();
238
- event.preventDefault();
239
- }
240
- /** Index of the currently active item. */
241
- get activeItemIndex() {
242
- return this._activeItemIndex;
243
- }
244
- /** The active item. */
245
- get activeItem() {
246
- return this._activeItem;
247
- }
248
- /** Gets whether the user is currently typing into the manager using the typeahead feature. */
249
- isTyping() {
250
- return !!this._typeahead && this._typeahead.isTyping();
251
- }
252
- /** Sets the active item to the first enabled item in the list. */
253
- setFirstItemActive() {
254
- this._setActiveItemByIndex(0, 1);
255
- }
256
- /** Sets the active item to the last enabled item in the list. */
257
- setLastItemActive() {
258
- this._setActiveItemByIndex(this._getItemsArray().length - 1, -1);
259
- }
260
- /** Sets the active item to the next enabled item in the list. */
261
- setNextItemActive() {
262
- this._activeItemIndex < 0 ? this.setFirstItemActive() : this._setActiveItemByDelta(1);
263
- }
264
- /** Sets the active item to a previous enabled item in the list. */
265
- setPreviousItemActive() {
266
- this._activeItemIndex < 0 && this._wrap
267
- ? this.setLastItemActive()
268
- : this._setActiveItemByDelta(-1);
269
- }
270
- updateActiveItem(item) {
271
- const itemArray = this._getItemsArray();
272
- const index = typeof item === 'number' ? item : itemArray.indexOf(item);
273
- const activeItem = itemArray[index];
274
- // Explicitly check for `null` and `undefined` because other falsy values are valid.
275
- this._activeItem = activeItem == null ? null : activeItem;
276
- this._activeItemIndex = index;
277
- this._typeahead?.setCurrentSelectedItemIndex(index);
278
- }
279
- /** Cleans up the key manager. */
280
- destroy() {
281
- this._typeaheadSubscription.unsubscribe();
282
- this._itemChangesSubscription?.unsubscribe();
283
- this._effectRef?.destroy();
284
- this._typeahead?.destroy();
285
- this.tabOut.complete();
286
- this.change.complete();
287
- }
288
- /**
289
- * This method sets the active item, given a list of items and the delta between the
290
- * currently active item and the new active item. It will calculate differently
291
- * depending on whether wrap mode is turned on.
292
- */
293
- _setActiveItemByDelta(delta) {
294
- this._wrap ? this._setActiveInWrapMode(delta) : this._setActiveInDefaultMode(delta);
295
- }
296
- /**
297
- * Sets the active item properly given "wrap" mode. In other words, it will continue to move
298
- * down the list until it finds an item that is not disabled, and it will wrap if it
299
- * encounters either end of the list.
300
- */
301
- _setActiveInWrapMode(delta) {
302
- const items = this._getItemsArray();
303
- for (let i = 1; i <= items.length; i++) {
304
- const index = (this._activeItemIndex + delta * i + items.length) % items.length;
305
- const item = items[index];
306
- if (!this._skipPredicateFn(item)) {
307
- this.setActiveItem(index);
308
- return;
309
- }
310
- }
311
- }
312
- /**
313
- * Sets the active item properly given the default mode. In other words, it will
314
- * continue to move down the list until it finds an item that is not disabled. If
315
- * it encounters either end of the list, it will stop and not wrap.
316
- */
317
- _setActiveInDefaultMode(delta) {
318
- this._setActiveItemByIndex(this._activeItemIndex + delta, delta);
319
- }
320
- /**
321
- * Sets the active item to the first enabled item starting at the index specified. If the
322
- * item is disabled, it will move in the fallbackDelta direction until it either
323
- * finds an enabled item or encounters the end of the list.
324
- */
325
- _setActiveItemByIndex(index, fallbackDelta) {
326
- const items = this._getItemsArray();
327
- if (!items[index]) {
328
- return;
329
- }
330
- while (this._skipPredicateFn(items[index])) {
331
- index += fallbackDelta;
332
- if (!items[index]) {
333
- return;
334
- }
335
- }
336
- this.setActiveItem(index);
337
- }
338
- /** Returns the items as an array. */
339
- _getItemsArray() {
340
- if (isSignal(this._items)) {
341
- return this._items();
342
- }
343
- return this._items instanceof QueryList ? this._items.toArray() : this._items;
344
- }
345
- /** Callback for when the items have changed. */
346
- _itemsChanged(newItems) {
347
- this._typeahead?.setItems(newItems);
348
- if (this._activeItem) {
349
- const newIndex = newItems.indexOf(this._activeItem);
350
- if (newIndex > -1 && newIndex !== this._activeItemIndex) {
351
- this._activeItemIndex = newIndex;
352
- this._typeahead?.setCurrentSelectedItemIndex(newIndex);
353
- }
354
- }
355
- }
356
- }
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1rZXktbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvYTExeS9rZXktbWFuYWdlci9saXN0LWtleS1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBc0IsU0FBUyxFQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUNMLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxHQUFHLEVBQ0gsY0FBYyxFQUNkLElBQUksRUFDSixHQUFHLEVBQ0gsT0FBTyxFQUNQLFNBQVMsR0FDVixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFjdEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFzQnpCLFlBQ1UsTUFBOEUsRUFDdEYsUUFBbUI7UUFEWCxXQUFNLEdBQU4sTUFBTSxDQUF3RTtRQXRCaEYscUJBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsZ0JBQVcsR0FBYSxJQUFJLENBQUM7UUFDN0IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLDJCQUFzQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFFNUMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQix5QkFBb0IsR0FBZ0MsRUFBRSxDQUFDO1FBQ3ZELGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUlyRDs7O1dBR0c7UUFDSyxxQkFBZ0IsR0FBRyxDQUFDLElBQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztR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QyxJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0VmZmVjdFJlZiwgSW5qZWN0b3IsIFF1ZXJ5TGlzdCwgU2lnbmFsLCBlZmZlY3QsIGlzU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFVQX0FSUk9XLFxuICBET1dOX0FSUk9XLFxuICBMRUZUX0FSUk9XLFxuICBSSUdIVF9BUlJPVyxcbiAgVEFCLFxuICBoYXNNb2RpZmllcktleSxcbiAgSE9NRSxcbiAgRU5ELFxuICBQQUdFX1VQLFxuICBQQUdFX0RPV04sXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1R5cGVhaGVhZH0gZnJvbSAnLi90eXBlYWhlYWQnO1xuXG4vKiogVGhpcyBpbnRlcmZhY2UgaXMgZm9yIGl0ZW1zIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBhIExpc3RLZXlNYW5hZ2VyLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0S2V5TWFuYWdlck9wdGlvbiB7XG4gIC8qKiBXaGV0aGVyIHRoZSBvcHRpb24gaXMgZGlzYWJsZWQuICovXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAvKiogR2V0cyB0aGUgbGFiZWwgZm9yIHRoaXMgb3B0aW9uLiAqL1xuICBnZXRMYWJlbD8oKTogc3RyaW5nO1xufVxuXG4vKiogTW9kaWZpZXIga2V5cyBoYW5kbGVkIGJ5IHRoZSBMaXN0S2V5TWFuYWdlci4gKi9cbmV4cG9ydCB0eXBlIExpc3RLZXlNYW5hZ2VyTW9kaWZpZXJLZXkgPSAnYWx0S2V5JyB8ICdjdHJsS2V5JyB8ICdtZXRhS2V5JyB8ICdzaGlmdEtleSc7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBtYW5hZ2VzIGtleWJvYXJkIGV2ZW50cyBmb3Igc2VsZWN0YWJsZSBsaXN0cy4gSWYgeW91IHBhc3MgaXQgYSBxdWVyeSBsaXN0XG4gKiBvZiBpdGVtcywgaXQgd2lsbCBzZXQgdGhlIGFjdGl2ZSBpdGVtIGNvcnJlY3RseSB3aGVuIGFycm93IGV2ZW50cyBvY2N1ci5cbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RLZXlNYW5hZ2VyPFQgZXh0ZW5kcyBMaXN0S2V5TWFuYWdlck9wdGlvbj4ge1xuICBwcml2YXRlIF9hY3RpdmVJdGVtSW5kZXggPSAtMTtcbiAgcHJpdmF0ZSBfYWN0aXZlSXRlbTogVCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF93cmFwID0gZmFsc2U7XG4gIHByaXZhdGUgX3R5cGVhaGVhZFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcbiAgcHJpdmF0ZSBfaXRlbUNoYW5nZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgX3ZlcnRpY2FsID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbDogJ2x0cicgfCAncnRsJyB8IG51bGw7XG4gIHByaXZhdGUgX2FsbG93ZWRNb2RpZmllcktleXM6IExpc3RLZXlNYW5hZ2VyTW9kaWZpZXJLZXlbXSA9IFtdO1xuICBwcml2YXRlIF9ob21lQW5kRW5kID0gZmFsc2U7XG4gIHByaXZhdGUgX3BhZ2VVcEFuZERvd24gPSB7ZW5hYmxlZDogZmFsc2UsIGRlbHRhOiAxMH07XG4gIHByaXZhdGUgX2VmZmVjdFJlZjogRWZmZWN0UmVmIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF90eXBlYWhlYWQ/OiBUeXBlYWhlYWQ8VD47XG5cbiAgLyoqXG4gICAqIFByZWRpY2F0ZSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgYW4gaXRlbSBzaG91bGQgYmUgc2tpcHBlZFxuICAgKiBieSB0aGUga2V5IG1hbmFnZXIuIEJ5IGRlZmF1bHQsIGRpc2FibGVkIGl0ZW1zIGFyZSBza2lwcGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2tpcFByZWRpY2F0ZUZuID0gKGl0ZW06IFQpID0+IGl0ZW0uZGlzYWJsZWQ7XG5cbiAgY29uc3RydWN0b3IoaXRlbXM6IFF1ZXJ5TGlzdDxUPiB8IFRbXSB8IHJlYWRvbmx5IFRbXSk7XG4gIGNvbnN0cnVjdG9yKGl0ZW1zOiBTaWduYWw8VFtdPiB8IFNpZ25hbDxyZWFkb25seSBUW10+LCBpbmplY3RvcjogSW5qZWN0b3IpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9pdGVtczogUXVlcnlMaXN0PFQ+IHwgVFtdIHwgcmVhZG9ubHkgVFtdIHwgU2lnbmFsPFRbXT4gfCBTaWduYWw8cmVhZG9ubHkgVFtdPixcbiAgICBpbmplY3Rvcj86IEluamVjdG9yLFxuICApIHtcbiAgICAvLyBXZSBhbGxvdyBmb3IgdGhlIGl0ZW1zIHRvIGJlIGFuIGFycmF5IGJlY2F1c2UsIGluIHNvbWUgY2FzZXMsIHRoZSBjb25zdW1lciBtYXlcbiAgICAvLyBub3QgaGF2ZSBhY2Nlc3MgdG8gYSBRdWVyeUxpc3Qgb2YgdGhlIGl0ZW1zIHRoZXkgd2FudCB0byBtYW5hZ2UgKGUuZy4gd2hlbiB0aGVcbiAgICAvLyBpdGVtcyBhcmVuJ3QgYmVpbmcgY29sbGVjdGVkIHZpYSBgVmlld0NoaWxkcmVuYCBvciBgQ29udGVudENoaWxkcmVuYCkuXG4gICAgaWYgKF9pdGVtcyBpbnN0YW5jZW9mIFF1ZXJ5TGlzdCkge1xuICAgICAgdGhpcy5faXRlbUNoYW5nZXNTdWJzY3JpcHRpb24gPSBfaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKG5ld0l0ZW1zOiBRdWVyeUxpc3Q8VD4pID0+XG4gICAgICAgIHRoaXMuX2l0ZW1zQ2hhbmdlZChuZXdJdGVtcy50b0FycmF5KCkpLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzU2lnbmFsKF9pdGVtcykpIHtcbiAgICAgIGlmICghaW5qZWN0b3IgJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdMaXN0S2V5TWFuYWdlciBjb25zdHJ1Y3RlZCB3aXRoIGEgc2lnbmFsIG11c3QgcmVjZWl2ZSBhbiBpbmplY3RvcicpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9lZmZlY3RSZWYgPSBlZmZlY3QoKCkgPT4gdGhpcy5faXRlbXNDaGFuZ2VkKF9pdGVtcygpKSwge2luamVjdG9yfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0cmVhbSB0aGF0IGVtaXRzIGFueSB0aW1lIHRoZSBUQUIga2V5IGlzIHByZXNzZWQsIHNvIGNvbXBvbmVudHMgY2FuIHJlYWN0XG4gICAqIHdoZW4gZm9jdXMgaXMgc2hpZnRlZCBvZmYgb2YgdGhlIGxpc3QuXG4gICAqL1xuICByZWFkb25seSB0YWJPdXQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuZXZlciB0aGUgYWN0aXZlIGl0ZW0gb2YgdGhlIGxpc3QgbWFuYWdlciBjaGFuZ2VzLiAqL1xuICByZWFkb25seSBjaGFuZ2UgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbiB0aGF0IGRldGVybWluZXMgd2hpY2ggaXRlbXMgc2hvdWxkIGJlIHNraXBwZWQgYnkgdGhlXG4gICAqIGxpc3Qga2V5IG1hbmFnZXIuXG4gICAqIEBwYXJhbSBwcmVkaWNhdGUgRnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGdpdmVuIGl0ZW0gc2hvdWxkIGJlIHNraXBwZWQuXG4gICAqL1xuICBza2lwUHJlZGljYXRlKHByZWRpY2F0ZTogKGl0ZW06IFQpID0+IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9za2lwUHJlZGljYXRlRm4gPSBwcmVkaWNhdGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyB3cmFwcGluZyBtb2RlLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGFjdGl2ZSBpdGVtIHdpbGwgd3JhcCB0b1xuICAgKiB0aGUgb3RoZXIgZW5kIG9mIGxpc3Qgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBpdGVtcyBpbiB0aGUgZ2l2ZW4gZGlyZWN0aW9uLlxuICAgKiBAcGFyYW0gc2hvdWxkV3JhcCBXaGV0aGVyIHRoZSBsaXN0IHNob3VsZCB3cmFwIHdoZW4gcmVhY2hpbmcgdGhlIGVuZC5cbiAgICovXG4gIHdpdGhXcmFwKHNob3VsZFdyYXAgPSB0cnVlKTogdGhpcyB7XG4gICAgdGhpcy5fd3JhcCA9IHNob3VsZFdyYXA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyB3aGV0aGVyIHRoZSBrZXkgbWFuYWdlciBzaG91bGQgYmUgYWJsZSB0byBtb3ZlIHRoZSBzZWxlY3Rpb24gdmVydGljYWxseS5cbiAgICogQHBhcmFtIGVuYWJsZWQgV2hldGhlciB2ZXJ0aWNhbCBzZWxlY3Rpb24gc2hvdWxkIGJlIGVuYWJsZWQuXG4gICAqL1xuICB3aXRoVmVydGljYWxPcmllbnRhdGlvbihlbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xuICAgIHRoaXMuX3ZlcnRpY2FsID0gZW5hYmxlZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBrZXkgbWFuYWdlciB0byBtb3ZlIHRoZSBzZWxlY3Rpb24gaG9yaXpvbnRhbGx5LlxuICAgKiBQYXNzaW5nIGluIGBudWxsYCB3aWxsIGRpc2FibGUgaG9yaXpvbnRhbCBtb3ZlbWVudC5cbiAgICogQHBhcmFtIGRpcmVjdGlvbiBEaXJlY3Rpb24gaW4gd2hpY2ggdGhlIHNlbGVjdGlvbiBjYW4gYmUgbW92ZWQuXG4gICAqL1xuICB3aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGRpcmVjdGlvbjogJ2x0cicgfCAncnRsJyB8IG51bGwpOiB0aGlzIHtcbiAgICB0aGlzLl9ob3Jpem9udGFsID0gZGlyZWN0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vZGlmaWVyIGtleXMgd2hpY2ggYXJlIGFsbG93ZWQgdG8gYmUgaGVsZCBkb3duIGFuZCB3aG9zZSBkZWZhdWx0IGFjdGlvbnMgd2lsbCBiZSBwcmV2ZW50ZWRcbiAgICogYXMgdGhlIHVzZXIgaXMgcHJlc3NpbmcgdGhlIGFycm93IGtleXMuIERlZmF1bHRzIHRvIG5vdCBhbGxvd2luZyBhbnkgbW9kaWZpZXIga2V5cy5cbiAgICovXG4gIHdpdGhBbGxvd2VkTW9kaWZpZXJLZXlzKGtleXM6IExpc3RLZXlNYW5hZ2VyTW9kaWZpZXJLZXlbXSk6IHRoaXMge1xuICAgIHRoaXMuX2FsbG93ZWRNb2RpZmllcktleXMgPSBrZXlzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFR1cm5zIG9uIHR5cGVhaGVhZCBtb2RlIHdoaWNoIGFsbG93cyB1c2VycyB0byBzZXQgdGhlIGFjdGl2ZSBpdGVtIGJ5IHR5cGluZy5cbiAgICogQHBhcmFtIGRlYm91bmNlSW50ZXJ2YWwgVGltZSB0byB3YWl0IGFmdGVyIHRoZSBsYXN0IGtleXN0cm9rZSBiZWZvcmUgc2V0dGluZyB0aGUgYWN0aXZlIGl0ZW0uXG4gICAqL1xuICB3aXRoVHlwZUFoZWFkKGRlYm91bmNlSW50ZXJ2YWw6IG51bWJlciA9IDIwMCk6IHRoaXMge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBcnJheSgpO1xuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDAgJiYgaXRlbXMuc29tZShpdGVtID0+IHR5cGVvZiBpdGVtLmdldExhYmVsICE9PSAnZnVuY3Rpb24nKSkge1xuICAgICAgICB0aHJvdyBFcnJvcignTGlzdEtleU1hbmFnZXIgaXRlbXMgaW4gdHlwZWFoZWFkIG1vZGUgbXVzdCBpbXBsZW1lbnQgdGhlIGBnZXRMYWJlbGAgbWV0aG9kLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLl9nZXRJdGVtc0FycmF5KCk7XG4gICAgdGhpcy5fdHlwZWFoZWFkID0gbmV3IFR5cGVhaGVhZChpdGVtcywge1xuICAgICAgZGVib3VuY2VJbnRlcnZhbDogdHlwZW9mIGRlYm91bmNlSW50ZXJ2YWwgPT09ICdudW1iZXInID8gZGVib3VuY2VJbnRlcnZhbCA6IHVuZGVmaW5lZCxcbiAgICAgIHNraXBQcmVkaWNhdGU6IGl0ZW0gPT4gdGhpcy5fc2tpcFByZWRpY2F0ZUZuKGl0ZW0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdHlwZWFoZWFkU3Vic2NyaXB0aW9uID0gdGhpcy5fdHlwZWFoZWFkLnNlbGVjdGVkSXRlbS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oaXRlbSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBDYW5jZWxzIHRoZSBjdXJyZW50IHR5cGVhaGVhZCBzZXF1ZW5jZS4gKi9cbiAgY2FuY2VsVHlwZWFoZWFkKCk6IHRoaXMge1xuICAgIHRoaXMuX3R5cGVhaGVhZD8ucmVzZXQoKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBrZXkgbWFuYWdlciB0byBhY3RpdmF0ZSB0aGUgZmlyc3QgYW5kIGxhc3QgaXRlbXNcbiAgICogcmVzcGVjdGl2ZWx5IHdoZW4gdGhlIEhvbWUgb3IgRW5kIGtleSBpcyBwcmVzc2VkLlxuICAgKiBAcGFyYW0gZW5hYmxlZCBXaGV0aGVyIHByZXNzaW5nIHRoZSBIb21lIG9yIEVuZCBrZXkgYWN0aXZhdGVzIHRoZSBmaXJzdC9sYXN0IGl0ZW0uXG4gICAqL1xuICB3aXRoSG9tZUFuZEVuZChlbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xuICAgIHRoaXMuX2hvbWVBbmRFbmQgPSBlbmFibGVkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGtleSBtYW5hZ2VyIHRvIGFjdGl2YXRlIGV2ZXJ5IDEwdGgsIGNvbmZpZ3VyZWQgb3IgZmlyc3QvbGFzdCBlbGVtZW50IGluIHVwL2Rvd24gZGlyZWN0aW9uXG4gICAqIHJlc3BlY3RpdmVseSB3aGVuIHRoZSBQYWdlLVVwIG9yIFBhZ2UtRG93biBrZXkgaXMgcHJlc3NlZC5cbiAgICogQHBhcmFtIGVuYWJsZWQgV2hldGhlciBwcmVzc2luZyB0aGUgUGFnZS1VcCBvciBQYWdlLURvd24ga2V5IGFjdGl2YXRlcyB0aGUgZmlyc3QvbGFzdCBpdGVtLlxuICAgKiBAcGFyYW0gZGVsdGEgV2hldGhlciBwcmVzc2luZyB0aGUgSG9tZSBvciBFbmQga2V5IGFjdGl2YXRlcyB0aGUgZmlyc3QvbGFzdCBpdGVtLlxuICAgKi9cbiAgd2l0aFBhZ2VVcERvd24oZW5hYmxlZDogYm9vbGVhbiA9IHRydWUsIGRlbHRhOiBudW1iZXIgPSAxMCk6IHRoaXMge1xuICAgIHRoaXMuX3BhZ2VVcEFuZERvd24gPSB7ZW5hYmxlZCwgZGVsdGF9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHRvIHRoZSBpdGVtIGF0IHRoZSBpbmRleCBzcGVjaWZpZWQuXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gYmUgc2V0IGFzIGFjdGl2ZS5cbiAgICovXG4gIHNldEFjdGl2ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHRvIHRoZSBzcGVjaWZpZWQgaXRlbS5cbiAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gYmUgc2V0IGFzIGFjdGl2ZS5cbiAgICovXG4gIHNldEFjdGl2ZUl0ZW0oaXRlbTogVCk6IHZvaWQ7XG5cbiAgc2V0QWN0aXZlSXRlbShpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBwcmV2aW91c0FjdGl2ZUl0ZW0gPSB0aGlzLl9hY3RpdmVJdGVtO1xuXG4gICAgdGhpcy51cGRhdGVBY3RpdmVJdGVtKGl0ZW0pO1xuXG4gICAgaWYgKHRoaXMuX2FjdGl2ZUl0ZW0gIT09IHByZXZpb3VzQWN0aXZlSXRlbSkge1xuICAgICAgdGhpcy5jaGFuZ2UubmV4dCh0aGlzLl9hY3RpdmVJdGVtSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY3RpdmUgaXRlbSBkZXBlbmRpbmcgb24gdGhlIGtleSBldmVudCBwYXNzZWQgaW4uXG4gICAqIEBwYXJhbSBldmVudCBLZXlib2FyZCBldmVudCB0byBiZSB1c2VkIGZvciBkZXRlcm1pbmluZyB3aGljaCBlbGVtZW50IHNob3VsZCBiZSBhY3RpdmUuXG4gICAqL1xuICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICBjb25zdCBtb2RpZmllcnM6IExpc3RLZXlNYW5hZ2VyTW9kaWZpZXJLZXlbXSA9IFsnYWx0S2V5JywgJ2N0cmxLZXknLCAnbWV0YUtleScsICdzaGlmdEtleSddO1xuICAgIGNvbnN0IGlzTW9kaWZpZXJBbGxvd2VkID0gbW9kaWZpZXJzLmV2ZXJ5KG1vZGlmaWVyID0+IHtcbiAgICAgIHJldHVybiAhZXZlbnRbbW9kaWZpZXJdIHx8IHRoaXMuX2FsbG93ZWRNb2RpZmllcktleXMuaW5kZXhPZihtb2RpZmllcikgPiAtMTtcbiAgICB9KTtcblxuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgY2FzZSBUQUI6XG4gICAgICAgIHRoaXMudGFiT3V0Lm5leHQoKTtcbiAgICAgICAgcmV0dXJuO1xuXG4gICAgICBjYXNlIERPV05fQVJST1c6XG4gICAgICAgIGlmICh0aGlzLl92ZXJ0aWNhbCAmJiBpc01vZGlmaWVyQWxsb3dlZCkge1xuICAgICAgICAgIHRoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBVUF9BUlJPVzpcbiAgICAgICAgaWYgKHRoaXMuX3ZlcnRpY2FsICYmIGlzTW9kaWZpZXJBbGxvd2VkKSB7XG4gICAgICAgICAgdGhpcy5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSSUdIVF9BUlJPVzpcbiAgICAgICAgaWYgKHRoaXMuX2hvcml6b250YWwgJiYgaXNNb2RpZmllckFsbG93ZWQpIHtcbiAgICAgICAgICB0aGlzLl9ob3Jpem9udGFsID09PSAncnRsJyA/IHRoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCkgOiB0aGlzLnNldE5leHRJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgTEVGVF9BUlJPVzpcbiAgICAgICAgaWYgKHRoaXMuX2hvcml6b250YWwgJiYgaXNNb2RpZmllckFsbG93ZWQpIHtcbiAgICAgICAgICB0aGlzLl9ob3Jpem9udGFsID09PSAncnRsJyA/IHRoaXMuc2V0TmV4dEl0ZW1BY3RpdmUoKSA6IHRoaXMuc2V0UHJldmlvdXNJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgSE9NRTpcbiAgICAgICAgaWYgKHRoaXMuX2hvbWVBbmRFbmQgJiYgaXNNb2RpZmllckFsbG93ZWQpIHtcbiAgICAgICAgICB0aGlzLnNldEZpcnN0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIEVORDpcbiAgICAgICAgaWYgKHRoaXMuX2hvbWVBbmRFbmQgJiYgaXNNb2RpZmllckFsbG93ZWQpIHtcbiAgICAgICAgICB0aGlzLnNldExhc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGNhc2UgUEFHRV9VUDpcbiAgICAgICAgaWYgKHRoaXMuX3BhZ2VVcEFuZERvd24uZW5hYmxlZCAmJiBpc01vZGlmaWVyQWxsb3dlZCkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5fYWN0aXZlSXRlbUluZGV4IC0gdGhpcy5fcGFnZVVwQW5kRG93bi5kZWx0YTtcbiAgICAgICAgICB0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCh0YXJnZXRJbmRleCA+IDAgPyB0YXJnZXRJbmRleCA6IDAsIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAgaWYgKHRoaXMuX3BhZ2VVcEFuZERvd24uZW5hYmxlZCAmJiBpc01vZGlmaWVyQWxsb3dlZCkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5fYWN0aXZlSXRlbUluZGV4ICsgdGhpcy5fcGFnZVVwQW5kRG93bi5kZWx0YTtcbiAgICAgICAgICBjb25zdCBpdGVtc0xlbmd0aCA9IHRoaXMuX2dldEl0ZW1zQXJyYXkoKS5sZW5ndGg7XG4gICAgICAgICAgdGhpcy5fc2V0QWN0aXZlSXRlbUJ5SW5kZXgodGFyZ2V0SW5kZXggPCBpdGVtc0xlbmd0aCA/IHRhcmdldEluZGV4IDogaXRlbXNMZW5ndGggLSAxLCAtMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChpc01vZGlmaWVyQWxsb3dlZCB8fCBoYXNNb2RpZmllcktleShldmVudCwgJ3NoaWZ0S2V5JykpIHtcbiAgICAgICAgICB0aGlzLl90eXBlYWhlYWQ/LmhhbmRsZUtleShldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOb3RlIHRoYXQgd2UgcmV0dXJuIGhlcmUsIGluIG9yZGVyIHRvIGF2b2lkIHByZXZlbnRpbmdcbiAgICAgICAgLy8gdGhlIGRlZmF1bHQgYWN0aW9uIG9mIG5vbi1uYXZpZ2F0aW9uYWwga2V5cy5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3R5cGVhaGVhZD8ucmVzZXQoKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgLyoqIEluZGV4IG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGl0ZW0uICovXG4gIGdldCBhY3RpdmVJdGVtSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleDtcbiAgfVxuXG4gIC8qKiBUaGUgYWN0aXZlIGl0ZW0uICovXG4gIGdldCBhY3RpdmVJdGVtKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlSXRlbTtcbiAgfVxuXG4gIC8qKiBHZXRzIHdoZXRoZXIgdGhlIHVzZXIgaXMgY3VycmVudGx5IHR5cGluZyBpbnRvIHRoZSBtYW5hZ2VyIHVzaW5nIHRoZSB0eXBlYWhlYWQgZmVhdHVyZS4gKi9cbiAgaXNUeXBpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fdHlwZWFoZWFkICYmIHRoaXMuX3R5cGVhaGVhZC5pc1R5cGluZygpO1xuICB9XG5cbiAgLyoqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHRvIHRoZSBmaXJzdCBlbmFibGVkIGl0ZW0gaW4gdGhlIGxpc3QuICovXG4gIHNldEZpcnN0SXRlbUFjdGl2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCgwLCAxKTtcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBhY3RpdmUgaXRlbSB0byB0aGUgbGFzdCBlbmFibGVkIGl0ZW0gaW4gdGhlIGxpc3QuICovXG4gIHNldExhc3RJdGVtQWN0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMuX3NldEFjdGl2ZUl0ZW1CeUluZGV4KHRoaXMuX2dldEl0ZW1zQXJyYXkoKS5sZW5ndGggLSAxLCAtMSk7XG4gIH1cblxuICAvKiogU2V0cyB0aGUgYWN0aXZlIGl0ZW0gdG8gdGhlIG5leHQgZW5hYmxlZCBpdGVtIGluIHRoZSBsaXN0LiAqL1xuICBzZXROZXh0SXRlbUFjdGl2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPCAwID8gdGhpcy5zZXRGaXJzdEl0ZW1BY3RpdmUoKSA6IHRoaXMuX3NldEFjdGl2ZUl0ZW1CeURlbHRhKDEpO1xuICB9XG5cbiAgLyoqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHRvIGEgcHJldmlvdXMgZW5hYmxlZCBpdGVtIGluIHRoZSBsaXN0LiAqL1xuICBzZXRQcmV2aW91c0l0ZW1BY3RpdmUoKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZlSXRlbUluZGV4IDwgMCAmJiB0aGlzLl93cmFwXG4gICAgICA/IHRoaXMuc2V0TGFzdEl0ZW1BY3RpdmUoKVxuICAgICAgOiB0aGlzLl9zZXRBY3RpdmVJdGVtQnlEZWx0YSgtMSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHNldHRpbmcgdGhlIGFjdGl2ZSB3aXRob3V0IGFueSBvdGhlciBlZmZlY3RzLlxuICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIGl0ZW0gdG8gYmUgc2V0IGFzIGFjdGl2ZS5cbiAgICovXG4gIHVwZGF0ZUFjdGl2ZUl0ZW0oaW5kZXg6IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEFsbG93cyBzZXR0aW5nIHRoZSBhY3RpdmUgaXRlbSB3aXRob3V0IGFueSBvdGhlciBlZmZlY3RzLlxuICAgKiBAcGFyYW0gaXRlbSBJdGVtIHRvIGJlIHNldCBhcyBhY3RpdmUuXG4gICAqL1xuICB1cGRhdGVBY3RpdmVJdGVtKGl0ZW06IFQpOiB2b2lkO1xuXG4gIHVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaXRlbUFycmF5ID0gdGhpcy5fZ2V0SXRlbXNBcnJheSgpO1xuICAgIGNvbnN0IGluZGV4ID0gdHlwZW9mIGl0ZW0gPT09ICdudW1iZXInID8gaXRlbSA6IGl0ZW1BcnJheS5pbmRleE9mKGl0ZW0pO1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSBpdGVtQXJyYXlbaW5kZXhdO1xuXG4gICAgLy8gRXhwbGljaXRseSBjaGVjayBmb3IgYG51bGxgIGFuZCBgdW5kZWZpbmVkYCBiZWNhdXNlIG90aGVyIGZhbHN5IHZhbHVlcyBhcmUgdmFsaWQuXG4gICAgdGhpcy5fYWN0aXZlSXRlbSA9IGFjdGl2ZUl0ZW0gPT0gbnVsbCA/IG51bGwgOiBhY3RpdmVJdGVtO1xuICAgIHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCA9IGluZGV4O1xuICAgIHRoaXMuX3R5cGVhaGVhZD8uc2V0Q3VycmVudFNlbGVjdGVkSXRlbUluZGV4KGluZGV4KTtcbiAgfVxuXG4gIC8qKiBDbGVhbnMgdXAgdGhlIGtleSBtYW5hZ2VyLiAqL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuX3R5cGVhaGVhZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2l0ZW1DaGFuZ2VzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX2VmZmVjdFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuX3R5cGVhaGVhZD8uZGVzdHJveSgpO1xuICAgIHRoaXMudGFiT3V0LmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jaGFuZ2UuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBhY3RpdmUgaXRlbSwgZ2l2ZW4gYSBsaXN0IG9mIGl0ZW1zIGFuZCB0aGUgZGVsdGEgYmV0d2VlbiB0aGVcbiAgICogY3VycmVudGx5IGFjdGl2ZSBpdGVtIGFuZCB0aGUgbmV3IGFjdGl2ZSBpdGVtLiBJdCB3aWxsIGNhbGN1bGF0ZSBkaWZmZXJlbnRseVxuICAgKiBkZXBlbmRpbmcgb24gd2hldGhlciB3cmFwIG1vZGUgaXMgdHVybmVkIG9uLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0QWN0aXZlSXRlbUJ5RGVsdGEoZGVsdGE6IC0xIHwgMSk6IHZvaWQge1xuICAgIHRoaXMuX3dyYXAgPyB0aGlzLl9zZXRBY3RpdmVJbldyYXBNb2RlKGRlbHRhKSA6IHRoaXMuX3NldEFjdGl2ZUluRGVmYXVsdE1vZGUoZGVsdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHByb3Blcmx5IGdpdmVuIFwid3JhcFwiIG1vZGUuIEluIG90aGVyIHdvcmRzLCBpdCB3aWxsIGNvbnRpbnVlIHRvIG1vdmVcbiAgICogZG93biB0aGUgbGlzdCB1bnRpbCBpdCBmaW5kcyBhbiBpdGVtIHRoYXQgaXMgbm90IGRpc2FibGVkLCBhbmQgaXQgd2lsbCB3cmFwIGlmIGl0XG4gICAqIGVuY291bnRlcnMgZWl0aGVyIGVuZCBvZiB0aGUgbGlzdC5cbiAgICovXG4gIHByaXZhdGUgX3NldEFjdGl2ZUluV3JhcE1vZGUoZGVsdGE6IC0xIHwgMSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBcnJheSgpO1xuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gKHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCArIGRlbHRhICogaSArIGl0ZW1zLmxlbmd0aCkgJSBpdGVtcy5sZW5ndGg7XG4gICAgICBjb25zdCBpdGVtID0gaXRlbXNbaW5kZXhdO1xuXG4gICAgICBpZiAoIXRoaXMuX3NraXBQcmVkaWNhdGVGbihpdGVtKSkge1xuICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oaW5kZXgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHByb3Blcmx5IGdpdmVuIHRoZSBkZWZhdWx0IG1vZGUuIEluIG90aGVyIHdvcmRzLCBpdCB3aWxsXG4gICAqIGNvbnRpbnVlIHRvIG1vdmUgZG93biB0aGUgbGlzdCB1bnRpbCBpdCBmaW5kcyBhbiBpdGVtIHRoYXQgaXMgbm90IGRpc2FibGVkLiBJZlxuICAgKiBpdCBlbmNvdW50ZXJzIGVpdGhlciBlbmQgb2YgdGhlIGxpc3QsIGl0IHdpbGwgc3RvcCBhbmQgbm90IHdyYXAuXG4gICAqL1xuICBwcml2YXRlIF9zZXRBY3RpdmVJbkRlZmF1bHRNb2RlKGRlbHRhOiAtMSB8IDEpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRBY3RpdmVJdGVtQnlJbmRleCh0aGlzLl9hY3RpdmVJdGVtSW5kZXggKyBkZWx0YSwgZGVsdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjdGl2ZSBpdGVtIHRvIHRoZSBmaXJzdCBlbmFibGVkIGl0ZW0gc3RhcnRpbmcgYXQgdGhlIGluZGV4IHNwZWNpZmllZC4gSWYgdGhlXG4gICAqIGl0ZW0gaXMgZGlzYWJsZWQsIGl0IHdpbGwgbW92ZSBpbiB0aGUgZmFsbGJhY2tEZWx0YSBkaXJlY3Rpb24gdW50aWwgaXQgZWl0aGVyXG4gICAqIGZpbmRzIGFuIGVuYWJsZWQgaXRlbSBvciBlbmNvdW50ZXJzIHRoZSBlbmQgb2YgdGhlIGxpc3QuXG4gICAqL1xuICBwcml2YXRlIF9zZXRBY3RpdmVJdGVtQnlJbmRleChpbmRleDogbnVtYmVyLCBmYWxsYmFja0RlbHRhOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuX2dldEl0ZW1zQXJyYXkoKTtcblxuICAgIGlmICghaXRlbXNbaW5kZXhdKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2hpbGUgKHRoaXMuX3NraXBQcmVkaWNhdGVGbihpdGVtc1tpbmRleF0pKSB7XG4gICAgICBpbmRleCArPSBmYWxsYmFja0RlbHRhO1xuXG4gICAgICBpZiAoIWl0ZW1zW2luZGV4XSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBpdGVtcyBhcyBhbiBhcnJheS4gKi9cbiAgcHJpdmF0ZSBfZ2V0SXRlbXNBcnJheSgpOiBUW10gfCByZWFkb25seSBUW10ge1xuICAgIGlmIChpc1NpZ25hbCh0aGlzLl9pdGVtcykpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pdGVtcygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9pdGVtcyBpbnN0YW5jZW9mIFF1ZXJ5TGlzdCA/IHRoaXMuX2l0ZW1zLnRvQXJyYXkoKSA6IHRoaXMuX2l0ZW1zO1xuICB9XG5cbiAgLyoqIENhbGxiYWNrIGZvciB3aGVuIHRoZSBpdGVtcyBoYXZlIGNoYW5nZWQuICovXG4gIHByaXZhdGUgX2l0ZW1zQ2hhbmdlZChuZXdJdGVtczogVFtdIHwgcmVhZG9ubHkgVFtdKSB7XG4gICAgdGhpcy5fdHlwZWFoZWFkPy5zZXRJdGVtcyhuZXdJdGVtcyk7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZUl0ZW0pIHtcbiAgICAgIGNvbnN0IG5ld0luZGV4ID0gbmV3SXRlbXMuaW5kZXhPZih0aGlzLl9hY3RpdmVJdGVtKTtcblxuICAgICAgaWYgKG5ld0luZGV4ID4gLTEgJiYgbmV3SW5kZXggIT09IHRoaXMuX2FjdGl2ZUl0ZW1JbmRleCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgdGhpcy5fdHlwZWFoZWFkPy5zZXRDdXJyZW50U2VsZWN0ZWRJdGVtSW5kZXgobmV3SW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,94 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { Subject } from 'rxjs';
9
- import { TREE_KEY_MANAGER } from './tree-key-manager';
10
- // NoopTreeKeyManager is a "noop" implementation of TreeKeyMangerStrategy. Methods are noops. Does
11
- // not emit to streams.
12
- //
13
- // Used for applications built before TreeKeyManager to opt-out of TreeKeyManager and revert to
14
- // legacy behavior.
15
- /**
16
- * @docs-private
17
- *
18
- * Opt-out of Tree of key manager behavior.
19
- *
20
- * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.
21
- * - Tree does not respond to keyboard interaction
22
- * - Tree node allows tabindex to be set by Input binding
23
- * - Tree node allows tabindex to be set by attribute binding
24
- *
25
- * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a
26
- * TreeKeyManagerStrategy instead. To be removed in a future version.
27
- *
28
- * @breaking-change 21.0.0
29
- */
30
- export class NoopTreeKeyManager {
31
- constructor() {
32
- this._isNoopTreeKeyManager = true;
33
- // Provide change as required by TreeKeyManagerStrategy. NoopTreeKeyManager is a "noop"
34
- // implementation that does not emit to streams.
35
- this.change = new Subject();
36
- }
37
- destroy() {
38
- this.change.complete();
39
- }
40
- onKeydown() {
41
- // noop
42
- }
43
- getActiveItemIndex() {
44
- // Always return null. NoopTreeKeyManager is a "noop" implementation that does not maintain
45
- // the active item.
46
- return null;
47
- }
48
- getActiveItem() {
49
- // Always return null. NoopTreeKeyManager is a "noop" implementation that does not maintain
50
- // the active item.
51
- return null;
52
- }
53
- focusItem() {
54
- // noop
55
- }
56
- }
57
- /**
58
- * @docs-private
59
- *
60
- * Opt-out of Tree of key manager behavior.
61
- *
62
- * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.
63
- * - Tree does not respond to keyboard interaction
64
- * - Tree node allows tabindex to be set by Input binding
65
- * - Tree node allows tabindex to be set by attribute binding
66
- *
67
- * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a
68
- * TreeKeyManagerStrategy instead. To be removed in a future version.
69
- *
70
- * @breaking-change 21.0.0
71
- */
72
- export function NOOP_TREE_KEY_MANAGER_FACTORY() {
73
- return () => new NoopTreeKeyManager();
74
- }
75
- /**
76
- * @docs-private
77
- *
78
- * Opt-out of Tree of key manager behavior.
79
- *
80
- * When provided, Tree has same focus management behavior as before TreeKeyManager was introduced.
81
- * - Tree does not respond to keyboard interaction
82
- * - Tree node allows tabindex to be set by Input binding
83
- * - Tree node allows tabindex to be set by attribute binding
84
- *
85
- * @deprecated NoopTreeKeyManager deprecated. Use TreeKeyManager or inject a
86
- * TreeKeyManagerStrategy instead. To be removed in a future version.
87
- *
88
- * @breaking-change 21.0.0
89
- */
90
- export const NOOP_TREE_KEY_MANAGER_FACTORY_PROVIDER = {
91
- provide: TREE_KEY_MANAGER,
92
- useFactory: NOOP_TREE_KEY_MANAGER_FACTORY,
93
- };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9vcC10cmVlLWtleS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9hMTF5L2tleS1tYW5hZ2VyL25vb3AtdHJlZS1rZXktbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBT3BELGtHQUFrRztBQUNsRyx1QkFBdUI7QUFDdkIsRUFBRTtBQUNGLCtGQUErRjtBQUMvRixtQkFBbUI7QUFDbkI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBQ1csMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRXRDLHVGQUF1RjtRQUN2RixnREFBZ0Q7UUFDdkMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFZLENBQUM7SUF5QjVDLENBQUM7SUF2QkMsT0FBTztRQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPO0lBQ1QsQ0FBQztJQUVELGtCQUFrQjtRQUNoQiwyRkFBMkY7UUFDM0YsbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGFBQWE7UUFDWCwyRkFBMkY7UUFDM0YsbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPO0lBQ1QsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCO0lBRzNDLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxrQkFBa0IsRUFBSyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHO0lBQ3BELE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsVUFBVSxFQUFFLDZCQUE2QjtDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RSRUVfS0VZX01BTkFHRVJ9IGZyb20gJy4vdHJlZS1rZXktbWFuYWdlcic7XG5pbXBvcnQge1xuICBUcmVlS2V5TWFuYWdlckZhY3RvcnksXG4gIFRyZWVLZXlNYW5hZ2VySXRlbSxcbiAgVHJlZUtleU1hbmFnZXJTdHJhdGVneSxcbn0gZnJvbSAnLi90cmVlLWtleS1tYW5hZ2VyLXN0cmF0ZWd5JztcblxuLy8gTm9vcFRyZWVLZXlNYW5hZ2VyIGlzIGEgXCJub29wXCIgaW1wbGVtZW50YXRpb24gb2YgVHJlZUtleU1hbmdlclN0cmF0ZWd5LiBNZXRob2RzIGFyZSBub29wcy4gRG9lc1xuLy8gbm90IGVtaXQgdG8gc3RyZWFtcy5cbi8vXG4vLyBVc2VkIGZvciBhcHBsaWNhdGlvbnMgYnVpbHQgYmVmb3JlIFRyZWVLZXlNYW5hZ2VyIHRvIG9wdC1vdXQgb2YgVHJlZUtleU1hbmFnZXIgYW5kIHJldmVydCB0b1xuLy8gbGVnYWN5IGJlaGF2aW9yLlxuLyoqXG4gKiBAZG9jcy1wcml2YXRlXG4gKlxuICogT3B0LW91dCBvZiBUcmVlIG9mIGtleSBtYW5hZ2VyIGJlaGF2aW9yLlxuICpcbiAqIFdoZW4gcHJvdmlkZWQsIFRyZWUgaGFzIHNhbWUgZm9jdXMgbWFuYWdlbWVudCBiZWhhdmlvciBhcyBiZWZvcmUgVHJlZUtleU1hbmFnZXIgd2FzIGludHJvZHVjZWQuXG4gKiAgLSBUcmVlIGRvZXMgbm90IHJlc3BvbmQgdG8ga2V5Ym9hcmQgaW50ZXJhY3Rpb25cbiAqICAtIFRyZWUgbm9kZSBhbGxvd3MgdGFiaW5kZXggdG8gYmUgc2V0IGJ5IElucHV0IGJpbmRpbmdcbiAqICAtIFRyZWUgbm9kZSBhbGxvd3MgdGFiaW5kZXggdG8gYmUgc2V0IGJ5IGF0dHJpYnV0ZSBiaW5kaW5nXG4gKlxuICogQGRlcHJlY2F0ZWQgTm9vcFRyZWVLZXlNYW5hZ2VyIGRlcHJlY2F0ZWQuIFVzZSBUcmVlS2V5TWFuYWdlciBvciBpbmplY3QgYVxuICogVHJlZUtleU1hbmFnZXJTdHJhdGVneSBpbnN0ZWFkLiBUbyBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gKlxuICogQGJyZWFraW5nLWNoYW5nZSAyMS4wLjBcbiAqL1xuZXhwb3J0IGNsYXNzIE5vb3BUcmVlS2V5TWFuYWdlcjxUIGV4dGVuZHMgVHJlZUtleU1hbmFnZXJJdGVtPiBpbXBsZW1lbnRzIFRyZWVLZXlNYW5hZ2VyU3RyYXRlZ3k8VD4ge1xuICByZWFkb25seSBfaXNOb29wVHJlZUtleU1hbmFnZXIgPSB0cnVlO1xuXG4gIC8vIFByb3ZpZGUgY2hhbmdlIGFzIHJlcXVpcmVkIGJ5IFRyZWVLZXlNYW5hZ2VyU3RyYXRlZ3kuIE5vb3BUcmVlS2V5TWFuYWdlciBpcyBhIFwibm9vcFwiXG4gIC8vIGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyBub3QgZW1pdCB0byBzdHJlYW1zLlxuICByZWFkb25seSBjaGFuZ2UgPSBuZXcgU3ViamVjdDxUIHwgbnVsbD4oKTtcblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuY2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvbktleWRvd24oKSB7XG4gICAgLy8gbm9vcFxuICB9XG5cbiAgZ2V0QWN0aXZlSXRlbUluZGV4KCkge1xuICAgIC8vIEFsd2F5cyByZXR1cm4gbnVsbC4gTm9vcFRyZWVLZXlNYW5hZ2VyIGlzIGEgXCJub29wXCIgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdCBtYWludGFpblxuICAgIC8vIHRoZSBhY3RpdmUgaXRlbS5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGdldEFjdGl2ZUl0ZW0oKSB7XG4gICAgLy8gQWx3YXlzIHJldHVybiBudWxsLiBOb29wVHJlZUtleU1hbmFnZXIgaXMgYSBcIm5vb3BcIiBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90IG1haW50YWluXG4gICAgLy8gdGhlIGFjdGl2ZSBpdGVtLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZm9jdXNJdGVtKCkge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuXG4vKipcbiAqIEBkb2NzLXByaXZhdGVcbiAqXG4gKiBPcHQtb3V0IG9mIFRyZWUgb2Yga2V5IG1hbmFnZXIgYmVoYXZpb3IuXG4gKlxuICogV2hlbiBwcm92aWRlZCwgVHJlZSBoYXMgc2FtZSBmb2N1cyBtYW5hZ2VtZW50IGJlaGF2aW9yIGFzIGJlZm9yZSBUcmVlS2V5TWFuYWdlciB3YXMgaW50cm9kdWNlZC5cbiAqICAtIFRyZWUgZG9lcyBub3QgcmVzcG9uZCB0byBrZXlib2FyZCBpbnRlcmFjdGlvblxuICogIC0gVHJlZSBub2RlIGFsbG93cyB0YWJpbmRleCB0byBiZSBzZXQgYnkgSW5wdXQgYmluZGluZ1xuICogIC0gVHJlZSBub2RlIGFsbG93cyB0YWJpbmRleCB0byBiZSBzZXQgYnkgYXR0cmlidXRlIGJpbmRpbmdcbiAqXG4gKiBAZGVwcmVjYXRlZCBOb29wVHJlZUtleU1hbmFnZXIgZGVwcmVjYXRlZC4gVXNlIFRyZWVLZXlNYW5hZ2VyIG9yIGluamVjdCBhXG4gKiBUcmVlS2V5TWFuYWdlclN0cmF0ZWd5IGluc3RlYWQuIFRvIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAqXG4gKiBAYnJlYWtpbmctY2hhbmdlIDIxLjAuMFxuICovXG5leHBvcnQgZnVuY3Rpb24gTk9PUF9UUkVFX0tFWV9NQU5BR0VSX0ZBQ1RPUlk8XG4gIFQgZXh0ZW5kcyBUcmVlS2V5TWFuYWdlckl0ZW0sXG4+KCk6IFRyZWVLZXlNYW5hZ2VyRmFjdG9yeTxUPiB7XG4gIHJldHVybiAoKSA9PiBuZXcgTm9vcFRyZWVLZXlNYW5hZ2VyPFQ+KCk7XG59XG5cbi8qKlxuICogQGRvY3MtcHJpdmF0ZVxuICpcbiAqIE9wdC1vdXQgb2YgVHJlZSBvZiBrZXkgbWFuYWdlciBiZWhhdmlvci5cbiAqXG4gKiBXaGVuIHByb3ZpZGVkLCBUcmVlIGhhcyBzYW1lIGZvY3VzIG1hbmFnZW1lbnQgYmVoYXZpb3IgYXMgYmVmb3JlIFRyZWVLZXlNYW5hZ2VyIHdhcyBpbnRyb2R1Y2VkLlxuICogIC0gVHJlZSBkb2VzIG5vdCByZXNwb25kIHRvIGtleWJvYXJkIGludGVyYWN0aW9uXG4gKiAgLSBUcmVlIG5vZGUgYWxsb3dzIHRhYmluZGV4IHRvIGJlIHNldCBieSBJbnB1dCBiaW5kaW5nXG4gKiAgLSBUcmVlIG5vZGUgYWxsb3dzIHRhYmluZGV4IHRvIGJlIHNldCBieSBhdHRyaWJ1dGUgYmluZGluZ1xuICpcbiAqIEBkZXByZWNhdGVkIE5vb3BUcmVlS2V5TWFuYWdlciBkZXByZWNhdGVkLiBVc2UgVHJlZUtleU1hbmFnZXIgb3IgaW5qZWN0IGFcbiAqIFRyZWVLZXlNYW5hZ2VyU3RyYXRlZ3kgaW5zdGVhZC4gVG8gYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLlxuICpcbiAqIEBicmVha2luZy1jaGFuZ2UgMjEuMC4wXG4gKi9cbmV4cG9ydCBjb25zdCBOT09QX1RSRUVfS0VZX01BTkFHRVJfRkFDVE9SWV9QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogVFJFRV9LRVlfTUFOQUdFUixcbiAgdXNlRmFjdG9yeTogTk9PUF9UUkVFX0tFWV9NQU5BR0VSX0ZBQ1RPUlksXG59O1xuIl19
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export {};
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1rZXktbWFuYWdlci1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGsvYTExeS9rZXktbWFuYWdlci90cmVlLWtleS1tYW5hZ2VyLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1F1ZXJ5TGlzdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuXG4vKiogUmVwcmVzZW50cyBhbiBpdGVtIHdpdGhpbiBhIHRyZWUgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIGEgVHJlZUtleU1hbmFnZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVLZXlNYW5hZ2VySXRlbSB7XG4gIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGRpc2FibGVkLiAqL1xuICBpc0Rpc2FibGVkPzogKCgpID0+IGJvb2xlYW4pIHwgYm9vbGVhbjtcblxuICAvKiogVGhlIHVzZXItZmFjaW5nIGxhYmVsIGZvciB0aGlzIGl0ZW0uICovXG4gIGdldExhYmVsPygpOiBzdHJpbmc7XG5cbiAgLyoqIFBlcmZvcm0gdGhlIG1haW4gYWN0aW9uIChpLmUuIHNlbGVjdGlvbikgZm9yIHRoaXMgaXRlbS4gKi9cbiAgYWN0aXZhdGUoKTogdm9pZDtcblxuICAvKiogUmV0cmlldmVzIHRoZSBwYXJlbnQgZm9yIHRoaXMgaXRlbS4gVGhpcyBpcyBgbnVsbGAgaWYgdGhlcmUgaXMgbm8gcGFyZW50LiAqL1xuICBnZXRQYXJlbnQoKTogVHJlZUtleU1hbmFnZXJJdGVtIHwgbnVsbDtcblxuICAvKiogUmV0cmlldmVzIHRoZSBjaGlsZHJlbiBmb3IgdGhpcyBpdGVtLiAqL1xuICBnZXRDaGlsZHJlbigpOiBUcmVlS2V5TWFuYWdlckl0ZW1bXSB8IE9ic2VydmFibGU8VHJlZUtleU1hbmFnZXJJdGVtW10+O1xuXG4gIC8qKiBEZXRlcm1pbmVzIGlmIHRoZSBpdGVtIGlzIGN1cnJlbnRseSBleHBhbmRlZC4gKi9cbiAgaXNFeHBhbmRlZDogKCgpID0+IGJvb2xlYW4pIHwgYm9vbGVhbjtcblxuICAvKiogQ29sbGFwc2VzIHRoZSBpdGVtLCBoaWRpbmcgaXRzIGNoaWxkcmVuLiAqL1xuICBjb2xsYXBzZSgpOiB2b2lkO1xuXG4gIC8qKiBFeHBhbmRzIHRoZSBpdGVtLCBzaG93aW5nIGl0cyBjaGlsZHJlbi4gKi9cbiAgZXhwYW5kKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgdGhlIGl0ZW0uIFRoaXMgc2hvdWxkIHByb3ZpZGUgc29tZSBpbmRpY2F0aW9uIHRvIHRoZSB1c2VyIHRoYXQgdGhpcyBpdGVtIGlzIGZvY3VzZWQuXG4gICAqL1xuICBmb2N1cygpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBVbmZvY3VzIHRoZSBpdGVtLiBUaGlzIHNob3VsZCByZW1vdmUgdGhlIGZvY3VzIHN0YXRlLlxuICAgKi9cbiAgdW5mb2N1cygpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBUcmVlS2V5TWFuYWdlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmVlS2V5TWFuYWdlck9wdGlvbnM8VCBleHRlbmRzIFRyZWVLZXlNYW5hZ2VySXRlbT4ge1xuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlbiB0aGUga2V5IG1hbmFnZXIgd2lsbCBjYWxsIGBhY3RpdmF0ZWAgaW4gYWRkaXRpb24gdG8gY2FsbGluZyBgZm9jdXNgIHdoZW4gYVxuICAgKiBwYXJ0aWN1bGFyIGl0ZW0gaXMgZm9jdXNlZC5cbiAgICovXG4gIHNob3VsZEFjdGl2YXRpb25Gb2xsb3dGb2N1cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gaW4gd2hpY2ggdGhlIHRyZWUgaXRlbXMgYXJlIGxhaWQgb3V0IGhvcml6b250YWxseS4gVGhpcyBpbmZsdWVuY2VzIHdoaWNoIGtleVxuICAgKiB3aWxsIGJlIGludGVycHJldGVkIGFzIGV4cGFuZCBvciBjb2xsYXBzZS5cbiAgICovXG4gIGhvcml6b250YWxPcmllbnRhdGlvbj86ICdydGwnIHwgJ2x0cic7XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCBuYXZpZ2F0aW9uIFwic2tpcHNcIiBvdmVyIGl0ZW1zIHRoYXQgcGFzcyB0aGUgZ2l2ZW4gcHJlZGljYXRlLlxuICAgKlxuICAgKiBJZiB0aGUgaXRlbSBpcyB0byBiZSBza2lwcGVkLCBwcmVkaWNhdGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBmYWxzZS5cbiAgICovXG4gIHNraXBQcmVkaWNhdGU/OiAoaXRlbTogVCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIGRldGVybWluZXMgaG93IHRoZSBrZXkgbWFuYWdlciBkZXRlcm1pbmVzIGlmIHR3byBpdGVtcyBhcmUgZXF1aXZhbGVudC5cbiAgICpcbiAgICogSXQgc2hvdWxkIHByb3ZpZGUgYSB1bmlxdWUga2V5IGZvciBlYWNoIHVuaXF1ZSB0cmVlIGl0ZW0uIElmIHR3byB0cmVlIGl0ZW1zIGFyZSBlcXVpdmFsZW50LFxuICAgKiB0aGVuIHRoaXMgZnVuY3Rpb24gc2hvdWxkIHJldHVybiB0aGUgc2FtZSB2YWx1ZS5cbiAgICovXG4gIHRyYWNrQnk/OiAodHJlZUl0ZW06IFQpID0+IHVua25vd247XG5cbiAgLyoqXG4gICAqIElmIGEgdmFsdWUgaXMgcHJvdmlkZWQsIGVuYWJsZXMgdHlwZWFoZWFkIG1vZGUsIHdoaWNoIGFsbG93cyB1c2VycyB0byBzZXQgdGhlIGFjdGl2ZSBpdGVtXG4gICAqIGJ5IHR5cGluZyB0aGUgdmlzaWJsZSBsYWJlbCBvZiB0aGUgaXRlbS5cbiAgICpcbiAgICogSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIHRoaXMgd2lsbCBiZSB0aGUgdGltZSB0byB3YWl0IGFmdGVyIHRoZSBsYXN0IGtleXN0cm9rZSBiZWZvcmVcbiAgICogc2V0dGluZyB0aGUgYWN0aXZlIGl0ZW0uIElmIGB0cnVlYCBpcyBwcm92aWRlZCwgdGhlIGRlZmF1bHQgaW50ZXJ2YWwgb2YgMjAwbXMgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgdHlwZUFoZWFkRGVib3VuY2VJbnRlcnZhbD86IHRydWUgfCBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUtleU1hbmFnZXJTdHJhdGVneTxUIGV4dGVuZHMgVHJlZUtleU1hbmFnZXJJdGVtPiB7XG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyBhbnkgdGltZSB0aGUgZm9jdXNlZCBpdGVtIGNoYW5nZXMuICovXG4gIHJlYWRvbmx5IGNoYW5nZTogU3ViamVjdDxUIHwgbnVsbD47XG5cbiAgLyoqXG4gICAqIENsZWFucyB1cCB0aGUga2V5IG1hbmFnZXIuXG4gICAqL1xuICBkZXN0cm95KCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgYSBrZXlib2FyZCBldmVudCBvbiB0aGUgdHJlZS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IEtleWJvYXJkIGV2ZW50IHRoYXQgcmVwcmVzZW50cyB0aGUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIHRoZSB0cmVlLlxuICAgKi9cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZDtcblxuICAvKiogSW5kZXggb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgaXRlbS4gKi9cbiAgZ2V0QWN0aXZlSXRlbUluZGV4KCk6IG51bWJlciB8IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgYWN0aXZlIGl0ZW0uICovXG4gIGdldEFjdGl2ZUl0ZW0oKTogVCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEZvY3VzIHRoZSBwcm92aWRlZCBpdGVtIGJ5IGluZGV4LlxuICAgKlxuICAgKiBVcGRhdGVzIHRoZSBzdGF0ZSBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBpdGVtLiBFbWl0cyB0byBgY2hhbmdlYCBzdHJlYW0gaWYgYWN0aXZlIGl0ZW1cbiAgICogQ2hhbmdlcy5cbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byBmb2N1cy5cbiAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBmb2N1c2luZyBvcHRpb25zLlxuICAgKi9cbiAgZm9jdXNJdGVtKGluZGV4OiBudW1iZXIsIG9wdGlvbnM/OiB7ZW1pdENoYW5nZUV2ZW50PzogYm9vbGVhbn0pOiB2b2lkO1xuICAvKipcbiAgICogRm9jdXMgdGhlIHByb3ZpZGVkIGl0ZW0uXG4gICAqXG4gICAqIFVwZGF0ZXMgdGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGl0ZW0uIEVtaXRzIHRvIGBjaGFuZ2VgIHN0cmVhbSBpZiBhY3RpdmUgaXRlbVxuICAgKiBDaGFuZ2VzLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBmb2N1cy4gRXF1YWxpdHkgaXMgZGV0ZXJtaW5lZCB2aWEgdGhlIHRyYWNrQnkgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgZm9jdXNpbmcgb3B0aW9ucy5cbiAgICovXG4gIGZvY3VzSXRlbShpdGVtOiBULCBvcHRpb25zPzoge2VtaXRDaGFuZ2VFdmVudD86IGJvb2xlYW59KTogdm9pZDtcbiAgZm9jdXNJdGVtKGl0ZW1PckluZGV4OiBudW1iZXIgfCBULCBvcHRpb25zPzoge2VtaXRDaGFuZ2VFdmVudD86IGJvb2xlYW59KTogdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgVHJlZUtleU1hbmFnZXJGYWN0b3J5PFQgZXh0ZW5kcyBUcmVlS2V5TWFuYWdlckl0ZW0+ID0gKFxuICBpdGVtczogT2JzZXJ2YWJsZTxUW10+IHwgUXVlcnlMaXN0PFQ+IHwgVFtdLFxuICBvcHRpb25zOiBUcmVlS2V5TWFuYWdlck9wdGlvbnM8VD4sXG4pID0+IFRyZWVLZXlNYW5hZ2VyU3RyYXRlZ3k8VD47XG4iXX0=