@agorapulse/ui-components 18.1.13 → 18.2.0

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 (533) hide show
  1. package/action-dropdown/index.d.ts +105 -3
  2. package/add-comment/index.d.ts +24 -5
  3. package/agorapulse-ui-components-18.2.0.tgz +0 -0
  4. package/autocomplete/index.d.ts +43 -5
  5. package/avatar/index.d.ts +64 -5
  6. package/badge/index.d.ts +11 -5
  7. package/button/index.d.ts +54 -5
  8. package/checkbox/index.d.ts +54 -5
  9. package/close-button/index.d.ts +14 -5
  10. package/confirm-modal/index.d.ts +32 -5
  11. package/counter/index.d.ts +17 -5
  12. package/datepicker/index.d.ts +99 -5
  13. package/directives/index.d.ts +149 -3
  14. package/dot-stepper/index.d.ts +23 -5
  15. package/fesm2022/agorapulse-ui-components-action-dropdown.mjs +22 -32
  16. package/fesm2022/agorapulse-ui-components-action-dropdown.mjs.map +1 -1
  17. package/fesm2022/agorapulse-ui-components-add-comment.mjs +5 -5
  18. package/fesm2022/agorapulse-ui-components-add-comment.mjs.map +1 -1
  19. package/fesm2022/agorapulse-ui-components-autocomplete.mjs +8 -8
  20. package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
  21. package/fesm2022/agorapulse-ui-components-avatar.mjs +24 -24
  22. package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
  23. package/fesm2022/agorapulse-ui-components-badge.mjs +4 -4
  24. package/fesm2022/agorapulse-ui-components-badge.mjs.map +1 -1
  25. package/fesm2022/agorapulse-ui-components-button.mjs +6 -6
  26. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
  27. package/fesm2022/agorapulse-ui-components-checkbox.mjs +4 -4
  28. package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
  29. package/fesm2022/agorapulse-ui-components-close-button.mjs +7 -7
  30. package/fesm2022/agorapulse-ui-components-close-button.mjs.map +1 -1
  31. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +4 -4
  32. package/fesm2022/agorapulse-ui-components-confirm-modal.mjs.map +1 -1
  33. package/fesm2022/agorapulse-ui-components-counter.mjs +9 -9
  34. package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
  35. package/fesm2022/agorapulse-ui-components-datepicker.mjs +6 -6
  36. package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
  37. package/fesm2022/agorapulse-ui-components-directives.mjs +26 -28
  38. package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
  39. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +4 -4
  40. package/fesm2022/agorapulse-ui-components-dot-stepper.mjs.map +1 -1
  41. package/fesm2022/agorapulse-ui-components-form-field.mjs +3 -3
  42. package/fesm2022/agorapulse-ui-components-form-field.mjs.map +1 -1
  43. package/fesm2022/agorapulse-ui-components-form-message.mjs +6 -6
  44. package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
  45. package/fesm2022/agorapulse-ui-components-icon-button.mjs +5 -5
  46. package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
  47. package/fesm2022/agorapulse-ui-components-infobox.mjs +4 -4
  48. package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
  49. package/fesm2022/agorapulse-ui-components-input-group.mjs +6 -6
  50. package/fesm2022/agorapulse-ui-components-input-group.mjs.map +1 -1
  51. package/fesm2022/agorapulse-ui-components-input-search.mjs +13 -10
  52. package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
  53. package/fesm2022/agorapulse-ui-components-input.mjs +3 -3
  54. package/fesm2022/agorapulse-ui-components-labels-selector.mjs +4 -4
  55. package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
  56. package/fesm2022/agorapulse-ui-components-labels.mjs +8 -8
  57. package/fesm2022/agorapulse-ui-components-labels.mjs.map +1 -1
  58. package/fesm2022/agorapulse-ui-components-legacy-input.mjs +5 -5
  59. package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
  60. package/fesm2022/agorapulse-ui-components-legacy-select.mjs +17 -17
  61. package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
  62. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +5 -5
  63. package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
  64. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +4 -4
  65. package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs.map +1 -1
  66. package/fesm2022/agorapulse-ui-components-modal.mjs +4 -4
  67. package/fesm2022/agorapulse-ui-components-modal.mjs.map +1 -1
  68. package/fesm2022/agorapulse-ui-components-nav-selector-testing.mjs.map +1 -1
  69. package/fesm2022/agorapulse-ui-components-nav-selector.mjs +164 -159
  70. package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
  71. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +8 -8
  72. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
  73. package/fesm2022/agorapulse-ui-components-notification.mjs +4 -4
  74. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
  75. package/fesm2022/agorapulse-ui-components-paginator.mjs +7 -7
  76. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
  77. package/fesm2022/agorapulse-ui-components-password-input.mjs +4 -4
  78. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
  79. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +16 -16
  80. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
  81. package/fesm2022/agorapulse-ui-components-popmenu.mjs +11 -11
  82. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
  83. package/fesm2022/agorapulse-ui-components-providers.mjs +19 -0
  84. package/fesm2022/agorapulse-ui-components-providers.mjs.map +1 -0
  85. package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
  86. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -1
  87. package/fesm2022/agorapulse-ui-components-range-slider.mjs +4 -4
  88. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
  89. package/fesm2022/agorapulse-ui-components-select.mjs +65 -65
  90. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  91. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +4 -4
  92. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
  93. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +8 -8
  94. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
  95. package/fesm2022/agorapulse-ui-components-social-button.mjs +4 -4
  96. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
  97. package/fesm2022/agorapulse-ui-components-split-button.mjs +5 -5
  98. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
  99. package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
  100. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -1
  101. package/fesm2022/agorapulse-ui-components-status.mjs +4 -4
  102. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -1
  103. package/fesm2022/agorapulse-ui-components-stepper.mjs +4 -4
  104. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
  105. package/fesm2022/agorapulse-ui-components-tag.mjs +9 -9
  106. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
  107. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
  108. package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
  109. package/fesm2022/agorapulse-ui-components-toggle.mjs +4 -4
  110. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
  111. package/fesm2022/agorapulse-ui-components-tooltip.mjs +15 -15
  112. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
  113. package/fesm2022/agorapulse-ui-components.mjs +4 -4
  114. package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
  115. package/form-field/index.d.ts +8 -5
  116. package/form-message/index.d.ts +16 -5
  117. package/icon-button/index.d.ts +44 -5
  118. package/index.d.ts +50 -25
  119. package/infobox/index.d.ts +29 -5
  120. package/input/index.d.ts +10 -5
  121. package/input-group/index.d.ts +14 -5
  122. package/input-search/index.d.ts +35 -5
  123. package/labels/index.d.ts +59 -5
  124. package/labels-selector/index.d.ts +46 -5
  125. package/legacy/input/index.d.ts +64 -3
  126. package/legacy/select/index.d.ts +124 -3
  127. package/legacy/textarea/index.d.ts +54 -3
  128. package/media-display-overlay/index.d.ts +46 -5
  129. package/modal/index.d.ts +58 -5
  130. package/nav-selector/index.d.ts +372 -3
  131. package/nav-selector/testing/index.d.ts +67 -3
  132. package/neo-datepicker/index.d.ts +74 -5
  133. package/notification/index.d.ts +9 -5
  134. package/package.json +14 -112
  135. package/paginator/index.d.ts +57 -5
  136. package/password-input/index.d.ts +36 -5
  137. package/phone-number-input/index.d.ts +54 -5
  138. package/popmenu/index.d.ts +212 -3
  139. package/providers/index.d.ts +11 -0
  140. package/radio/index.d.ts +80 -5
  141. package/range-slider/index.d.ts +39 -5
  142. package/select/index.d.ts +214 -5
  143. package/slide-toggle/index.d.ts +23 -5
  144. package/snackbars-thread/index.d.ts +73 -3
  145. package/social-button/index.d.ts +34 -5
  146. package/split-button/index.d.ts +47 -5
  147. package/status/index.d.ts +13 -5
  148. package/status-card/index.d.ts +17 -5
  149. package/stepper/index.d.ts +26 -5
  150. package/tag/index.d.ts +28 -5
  151. package/text-measurement/index.d.ts +11 -5
  152. package/textarea/index.d.ts +14 -5
  153. package/toggle/index.d.ts +55 -5
  154. package/tooltip/index.d.ts +62 -5
  155. package/action-dropdown/action-dropdown-trigger.directive.d.ts +0 -17
  156. package/action-dropdown/action-dropdown.component.d.ts +0 -87
  157. package/action-dropdown/providers.d.ts +0 -8
  158. package/action-dropdown/public_api.d.ts +0 -3
  159. package/add-comment/add-comment.component.d.ts +0 -21
  160. package/add-comment/public_api.d.ts +0 -1
  161. package/agorapulse-ui-components-18.1.13.tgz +0 -0
  162. package/autocomplete/autocomplete.component.d.ts +0 -40
  163. package/autocomplete/public_api.d.ts +0 -1
  164. package/avatar/avatar.component.d.ts +0 -61
  165. package/avatar/public_api.d.ts +0 -1
  166. package/badge/badge.component.d.ts +0 -7
  167. package/badge/public_api.d.ts +0 -1
  168. package/button/button.component.d.ts +0 -52
  169. package/button/public_api.d.ts +0 -1
  170. package/checkbox/checkbox.component.d.ts +0 -51
  171. package/checkbox/public_api.d.ts +0 -1
  172. package/close-button/close-button.component.d.ts +0 -11
  173. package/close-button/public_api.d.ts +0 -1
  174. package/confirm-modal/confirm-modal-texts.model.d.ts +0 -8
  175. package/confirm-modal/confirm-modal.component.d.ts +0 -20
  176. package/confirm-modal/public_api.d.ts +0 -2
  177. package/counter/counter.component.d.ts +0 -13
  178. package/counter/public_api.d.ts +0 -1
  179. package/datepicker/datepicker.component.d.ts +0 -100
  180. package/datepicker/public_api.d.ts +0 -1
  181. package/directives/autosize-textarea.directive.d.ts +0 -12
  182. package/directives/base-button.directive.d.ts +0 -13
  183. package/directives/checkbox.directive.d.ts +0 -32
  184. package/directives/default-image.directive.d.ts +0 -8
  185. package/directives/ellipsis.directive.d.ts +0 -29
  186. package/directives/equal-validator.directive.d.ts +0 -13
  187. package/directives/frozen-gif.directive.d.ts +0 -30
  188. package/directives/multi-style-text.directive.d.ts +0 -16
  189. package/directives/public_api.d.ts +0 -8
  190. package/dot-stepper/dot-stepper.component.d.ts +0 -20
  191. package/dot-stepper/public_api.d.ts +0 -1
  192. package/esm2022/action-dropdown/action-dropdown-trigger.directive.mjs +0 -54
  193. package/esm2022/action-dropdown/action-dropdown.component.mjs +0 -272
  194. package/esm2022/action-dropdown/agorapulse-ui-components-action-dropdown.mjs +0 -5
  195. package/esm2022/action-dropdown/providers.mjs +0 -12
  196. package/esm2022/action-dropdown/public_api.mjs +0 -4
  197. package/esm2022/add-comment/add-comment.component.mjs +0 -72
  198. package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +0 -5
  199. package/esm2022/add-comment/public_api.mjs +0 -2
  200. package/esm2022/agorapulse-ui-components.mjs +0 -5
  201. package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +0 -5
  202. package/esm2022/autocomplete/autocomplete.component.mjs +0 -125
  203. package/esm2022/autocomplete/public_api.mjs +0 -2
  204. package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +0 -5
  205. package/esm2022/avatar/avatar.component.mjs +0 -161
  206. package/esm2022/avatar/public_api.mjs +0 -2
  207. package/esm2022/badge/agorapulse-ui-components-badge.mjs +0 -5
  208. package/esm2022/badge/badge.component.mjs +0 -17
  209. package/esm2022/badge/public_api.mjs +0 -2
  210. package/esm2022/button/agorapulse-ui-components-button.mjs +0 -5
  211. package/esm2022/button/button.component.mjs +0 -105
  212. package/esm2022/button/public_api.mjs +0 -2
  213. package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +0 -5
  214. package/esm2022/checkbox/checkbox.component.mjs +0 -177
  215. package/esm2022/checkbox/public_api.mjs +0 -2
  216. package/esm2022/close-button/agorapulse-ui-components-close-button.mjs +0 -5
  217. package/esm2022/close-button/close-button.component.mjs +0 -20
  218. package/esm2022/close-button/public_api.mjs +0 -2
  219. package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +0 -5
  220. package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +0 -2
  221. package/esm2022/confirm-modal/confirm-modal.component.mjs +0 -61
  222. package/esm2022/confirm-modal/public_api.mjs +0 -3
  223. package/esm2022/counter/agorapulse-ui-components-counter.mjs +0 -5
  224. package/esm2022/counter/counter.component.mjs +0 -32
  225. package/esm2022/counter/public_api.mjs +0 -2
  226. package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +0 -5
  227. package/esm2022/datepicker/datepicker.component.mjs +0 -288
  228. package/esm2022/datepicker/public_api.mjs +0 -2
  229. package/esm2022/directives/agorapulse-ui-components-directives.mjs +0 -5
  230. package/esm2022/directives/autosize-textarea.directive.mjs +0 -45
  231. package/esm2022/directives/base-button.directive.mjs +0 -47
  232. package/esm2022/directives/checkbox.directive.mjs +0 -283
  233. package/esm2022/directives/default-image.directive.mjs +0 -37
  234. package/esm2022/directives/ellipsis.directive.mjs +0 -90
  235. package/esm2022/directives/equal-validator.directive.mjs +0 -73
  236. package/esm2022/directives/frozen-gif.directive.mjs +0 -125
  237. package/esm2022/directives/multi-style-text.directive.mjs +0 -61
  238. package/esm2022/directives/public_api.mjs +0 -9
  239. package/esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs +0 -5
  240. package/esm2022/dot-stepper/dot-stepper.component.mjs +0 -46
  241. package/esm2022/dot-stepper/public_api.mjs +0 -2
  242. package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +0 -5
  243. package/esm2022/form-field/form-field.component.mjs +0 -11
  244. package/esm2022/form-field/public_api.mjs +0 -2
  245. package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +0 -5
  246. package/esm2022/form-message/form-message.component.mjs +0 -34
  247. package/esm2022/form-message/public_api.mjs +0 -2
  248. package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +0 -5
  249. package/esm2022/icon-button/icon-button.component.mjs +0 -123
  250. package/esm2022/icon-button/public_api.mjs +0 -2
  251. package/esm2022/index.mjs +0 -49
  252. package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +0 -5
  253. package/esm2022/infobox/infobox.component.mjs +0 -72
  254. package/esm2022/infobox/public_api.mjs +0 -2
  255. package/esm2022/input/agorapulse-ui-components-input.mjs +0 -5
  256. package/esm2022/input/input.directive.mjs +0 -19
  257. package/esm2022/input/public_api.mjs +0 -2
  258. package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +0 -5
  259. package/esm2022/input-group/input-group.component.mjs +0 -14
  260. package/esm2022/input-group/input-prefix/input-prefix.component.mjs +0 -11
  261. package/esm2022/input-group/public_api.mjs +0 -3
  262. package/esm2022/input-search/agorapulse-ui-components-input-search.mjs +0 -5
  263. package/esm2022/input-search/input-search.component.mjs +0 -78
  264. package/esm2022/input-search/public_api.mjs +0 -2
  265. package/esm2022/labels/agorapulse-ui-components-labels.mjs +0 -5
  266. package/esm2022/labels/label-list.component.mjs +0 -108
  267. package/esm2022/labels/label.component.mjs +0 -56
  268. package/esm2022/labels/public_api.mjs +0 -3
  269. package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +0 -5
  270. package/esm2022/labels-selector/labels-selector.component.mjs +0 -122
  271. package/esm2022/labels-selector/public_api.mjs +0 -2
  272. package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +0 -5
  273. package/esm2022/legacy/input/input.component.mjs +0 -189
  274. package/esm2022/legacy/input/public_api.mjs +0 -2
  275. package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +0 -5
  276. package/esm2022/legacy/select/public_api.mjs +0 -2
  277. package/esm2022/legacy/select/select.component.mjs +0 -451
  278. package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +0 -5
  279. package/esm2022/legacy/textarea/public_api.mjs +0 -2
  280. package/esm2022/legacy/textarea/textarea.component.mjs +0 -154
  281. package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +0 -5
  282. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -122
  283. package/esm2022/media-display-overlay/public_api.mjs +0 -2
  284. package/esm2022/modal/agorapulse-ui-components-modal.mjs +0 -5
  285. package/esm2022/modal/modal.component.mjs +0 -116
  286. package/esm2022/modal/public_api.mjs +0 -2
  287. package/esm2022/nav-selector/agorapulse-ui-components-nav-selector.mjs +0 -5
  288. package/esm2022/nav-selector/directives/nav-selector-popover-trigger.directive.mjs +0 -71
  289. package/esm2022/nav-selector/directives/tree-node-accessibility.directive.mjs +0 -30
  290. package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +0 -129
  291. package/esm2022/nav-selector/nav-selector-category/nav-selector-category.presenter.mjs +0 -28
  292. package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +0 -174
  293. package/esm2022/nav-selector/nav-selector-group/nav-selector-group.presenter.mjs +0 -30
  294. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +0 -242
  295. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.mjs +0 -36
  296. package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.mjs +0 -43
  297. package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.mjs +0 -20
  298. package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.mjs +0 -95
  299. package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.presenter.mjs +0 -31
  300. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover-item.component.mjs +0 -65
  301. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover.component.mjs +0 -132
  302. package/esm2022/nav-selector/nav-selector.component.mjs +0 -201
  303. package/esm2022/nav-selector/nav-selector.mjs +0 -9
  304. package/esm2022/nav-selector/nav-selector.state.mjs +0 -207
  305. package/esm2022/nav-selector/public_api.mjs +0 -3
  306. package/esm2022/nav-selector/testing/agorapulse-ui-components-nav-selector-testing.mjs +0 -5
  307. package/esm2022/nav-selector/testing/nav-selector-entry.mock.mjs +0 -91
  308. package/esm2022/nav-selector/testing/public_api.mjs +0 -2
  309. package/esm2022/nav-selector/utils/leaf.utils.mjs +0 -44
  310. package/esm2022/nav-selector/utils/nav-selector.accessibility.mjs +0 -179
  311. package/esm2022/nav-selector/utils/nav-selector.builder.mjs +0 -271
  312. package/esm2022/nav-selector/utils/nav-selector.filter.mjs +0 -141
  313. package/esm2022/nav-selector/utils/nav-selector.folding.mjs +0 -284
  314. package/esm2022/nav-selector/utils/nav-selector.merger.mjs +0 -76
  315. package/esm2022/nav-selector/utils/nav-selector.minifying.mjs +0 -59
  316. package/esm2022/nav-selector/utils/nav-selector.multi-select.mjs +0 -208
  317. package/esm2022/nav-selector/utils/nav-selector.single-select.mjs +0 -113
  318. package/esm2022/nav-selector/utils/nav-selector.view-more.mjs +0 -98
  319. package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +0 -5
  320. package/esm2022/neo-datepicker/day-detail.model.mjs +0 -2
  321. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +0 -21
  322. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +0 -241
  323. package/esm2022/neo-datepicker/public_api.mjs +0 -4
  324. package/esm2022/notification/agorapulse-ui-components-notification.mjs +0 -5
  325. package/esm2022/notification/notification.component.mjs +0 -15
  326. package/esm2022/notification/public_api.mjs +0 -2
  327. package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +0 -5
  328. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +0 -51
  329. package/esm2022/paginator/paginator.component.mjs +0 -114
  330. package/esm2022/paginator/public_api.mjs +0 -3
  331. package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +0 -5
  332. package/esm2022/password-input/password-input.component.mjs +0 -78
  333. package/esm2022/password-input/public_api.mjs +0 -2
  334. package/esm2022/phone-number-input/agorapulse-ui-components-phone-number-input.mjs +0 -5
  335. package/esm2022/phone-number-input/phone-number-input.component.mjs +0 -195
  336. package/esm2022/phone-number-input/public_api.mjs +0 -2
  337. package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +0 -5
  338. package/esm2022/popmenu/options.mjs +0 -17
  339. package/esm2022/popmenu/popmenu-options.interface.mjs +0 -2
  340. package/esm2022/popmenu/popmenu-options.service.mjs +0 -7
  341. package/esm2022/popmenu/popmenu.component.mjs +0 -383
  342. package/esm2022/popmenu/popmenu.directive.mjs +0 -296
  343. package/esm2022/popmenu/popmenu.module.mjs +0 -29
  344. package/esm2022/popmenu/public_api.mjs +0 -5
  345. package/esm2022/radio/agorapulse-ui-components-radio.mjs +0 -5
  346. package/esm2022/radio/public_api.mjs +0 -2
  347. package/esm2022/radio/radio.component.mjs +0 -319
  348. package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +0 -5
  349. package/esm2022/range-slider/public_api.mjs +0 -2
  350. package/esm2022/range-slider/range-slider.component.mjs +0 -154
  351. package/esm2022/select/agorapulse-ui-components-select.mjs +0 -5
  352. package/esm2022/select/ap-select.module.mjs +0 -78
  353. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +0 -51
  354. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +0 -75
  355. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +0 -79
  356. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +0 -59
  357. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +0 -60
  358. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +0 -98
  359. package/esm2022/select/public_api.mjs +0 -13
  360. package/esm2022/select/select-base.directive.mjs +0 -69
  361. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +0 -95
  362. package/esm2022/select/select-label-single/select-label-single.component.mjs +0 -33
  363. package/esm2022/select/select-multiple.directive.mjs +0 -35
  364. package/esm2022/select/select-single.directive.mjs +0 -34
  365. package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +0 -5
  366. package/esm2022/slide-toggle/public_api.mjs +0 -2
  367. package/esm2022/slide-toggle/slide-toggle.component.mjs +0 -66
  368. package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +0 -5
  369. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +0 -93
  370. package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +0 -44
  371. package/esm2022/snackbars-thread/public_api.mjs +0 -4
  372. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +0 -47
  373. package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
  374. package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +0 -5
  375. package/esm2022/social-button/public_api.mjs +0 -2
  376. package/esm2022/social-button/social-button.component.mjs +0 -164
  377. package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +0 -5
  378. package/esm2022/split-button/public_api.mjs +0 -2
  379. package/esm2022/split-button/split-button.component.mjs +0 -122
  380. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +0 -200
  381. package/esm2022/status/agorapulse-ui-components-status.mjs +0 -5
  382. package/esm2022/status/public_api.mjs +0 -2
  383. package/esm2022/status/status.component.mjs +0 -21
  384. package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +0 -5
  385. package/esm2022/status-card/public_api.mjs +0 -2
  386. package/esm2022/status-card/status-card.component.mjs +0 -23
  387. package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +0 -5
  388. package/esm2022/stepper/public_api.mjs +0 -3
  389. package/esm2022/stepper/step.model.mjs +0 -2
  390. package/esm2022/stepper/stepper.component.mjs +0 -38
  391. package/esm2022/tag/agorapulse-ui-components-tag.mjs +0 -5
  392. package/esm2022/tag/public_api.mjs +0 -2
  393. package/esm2022/tag/tag.component.mjs +0 -35
  394. package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +0 -5
  395. package/esm2022/text-measurement/public_api.mjs +0 -2
  396. package/esm2022/text-measurement/text-measurement.service.mjs +0 -29
  397. package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +0 -5
  398. package/esm2022/textarea/public_api.mjs +0 -2
  399. package/esm2022/textarea/textarea.directive.mjs +0 -37
  400. package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +0 -5
  401. package/esm2022/toggle/public_api.mjs +0 -2
  402. package/esm2022/toggle/toggle.component.mjs +0 -208
  403. package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +0 -5
  404. package/esm2022/tooltip/public_api.mjs +0 -2
  405. package/esm2022/tooltip/tooltip.directive.mjs +0 -401
  406. package/esm2022/tooltip/tooltip.service.mjs +0 -29
  407. package/form-field/form-field.component.d.ts +0 -5
  408. package/form-field/public_api.d.ts +0 -1
  409. package/form-message/form-message.component.d.ts +0 -12
  410. package/form-message/public_api.d.ts +0 -1
  411. package/icon-button/icon-button.component.d.ts +0 -40
  412. package/icon-button/public_api.d.ts +0 -1
  413. package/infobox/infobox.component.d.ts +0 -26
  414. package/infobox/public_api.d.ts +0 -1
  415. package/input/input.directive.d.ts +0 -7
  416. package/input/public_api.d.ts +0 -1
  417. package/input-group/input-group.component.d.ts +0 -6
  418. package/input-group/input-prefix/input-prefix.component.d.ts +0 -5
  419. package/input-group/public_api.d.ts +0 -2
  420. package/input-search/input-search.component.d.ts +0 -32
  421. package/input-search/public_api.d.ts +0 -1
  422. package/labels/label-list.component.d.ts +0 -34
  423. package/labels/label.component.d.ts +0 -23
  424. package/labels/public_api.d.ts +0 -2
  425. package/labels-selector/labels-selector.component.d.ts +0 -42
  426. package/labels-selector/public_api.d.ts +0 -1
  427. package/legacy/input/input.component.d.ts +0 -64
  428. package/legacy/input/public_api.d.ts +0 -1
  429. package/legacy/select/public_api.d.ts +0 -1
  430. package/legacy/select/select.component.d.ts +0 -122
  431. package/legacy/textarea/public_api.d.ts +0 -1
  432. package/legacy/textarea/textarea.component.d.ts +0 -53
  433. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -42
  434. package/media-display-overlay/public_api.d.ts +0 -1
  435. package/modal/modal.component.d.ts +0 -54
  436. package/modal/public_api.d.ts +0 -1
  437. package/nav-selector/directives/nav-selector-popover-trigger.directive.d.ts +0 -25
  438. package/nav-selector/directives/tree-node-accessibility.directive.d.ts +0 -9
  439. package/nav-selector/nav-selector-category/nav-selector-category.component.d.ts +0 -28
  440. package/nav-selector/nav-selector-category/nav-selector-category.presenter.d.ts +0 -13
  441. package/nav-selector/nav-selector-group/nav-selector-group.component.d.ts +0 -37
  442. package/nav-selector/nav-selector-group/nav-selector-group.presenter.d.ts +0 -16
  443. package/nav-selector/nav-selector-leaf/nav-selector-leaf.component.d.ts +0 -48
  444. package/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.d.ts +0 -18
  445. package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.d.ts +0 -13
  446. package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.d.ts +0 -10
  447. package/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.d.ts +0 -24
  448. package/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.presenter.d.ts +0 -14
  449. package/nav-selector/nav-selector-popover/nav-selector-popover-item.component.d.ts +0 -14
  450. package/nav-selector/nav-selector-popover/nav-selector-popover.component.d.ts +0 -40
  451. package/nav-selector/nav-selector.component.d.ts +0 -40
  452. package/nav-selector/nav-selector.d.ts +0 -270
  453. package/nav-selector/nav-selector.state.d.ts +0 -47
  454. package/nav-selector/public_api.d.ts +0 -3
  455. package/nav-selector/testing/nav-selector-entry.mock.d.ts +0 -67
  456. package/nav-selector/testing/public_api.d.ts +0 -1
  457. package/nav-selector/utils/leaf.utils.d.ts +0 -20
  458. package/nav-selector/utils/nav-selector.accessibility.d.ts +0 -52
  459. package/nav-selector/utils/nav-selector.builder.d.ts +0 -32
  460. package/nav-selector/utils/nav-selector.filter.d.ts +0 -32
  461. package/nav-selector/utils/nav-selector.folding.d.ts +0 -73
  462. package/nav-selector/utils/nav-selector.merger.d.ts +0 -23
  463. package/nav-selector/utils/nav-selector.minifying.d.ts +0 -29
  464. package/nav-selector/utils/nav-selector.multi-select.d.ts +0 -54
  465. package/nav-selector/utils/nav-selector.single-select.d.ts +0 -17
  466. package/nav-selector/utils/nav-selector.view-more.d.ts +0 -30
  467. package/neo-datepicker/day-detail.model.d.ts +0 -9
  468. package/neo-datepicker/day-disabled.pipe.d.ts +0 -8
  469. package/neo-datepicker/neo-datepicker.component.d.ts +0 -61
  470. package/neo-datepicker/public_api.d.ts +0 -3
  471. package/notification/notification.component.d.ts +0 -6
  472. package/notification/public_api.d.ts +0 -1
  473. package/paginator/paginator-button/paginator-button.component.d.ts +0 -17
  474. package/paginator/paginator.component.d.ts +0 -38
  475. package/paginator/public_api.d.ts +0 -2
  476. package/password-input/password-input.component.d.ts +0 -33
  477. package/password-input/public_api.d.ts +0 -1
  478. package/phone-number-input/phone-number-input.component.d.ts +0 -50
  479. package/phone-number-input/public_api.d.ts +0 -1
  480. package/popmenu/options.d.ts +0 -16
  481. package/popmenu/popmenu-options.interface.d.ts +0 -48
  482. package/popmenu/popmenu-options.service.d.ts +0 -7
  483. package/popmenu/popmenu.component.d.ts +0 -66
  484. package/popmenu/popmenu.directive.d.ts +0 -90
  485. package/popmenu/popmenu.module.d.ts +0 -11
  486. package/popmenu/public_api.d.ts +0 -4
  487. package/radio/public_api.d.ts +0 -1
  488. package/radio/radio.component.d.ts +0 -77
  489. package/range-slider/public_api.d.ts +0 -1
  490. package/range-slider/range-slider.component.d.ts +0 -35
  491. package/select/ap-select.module.d.ts +0 -17
  492. package/select/dropdown-group-item/dropdown-group-item.component.d.ts +0 -16
  493. package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +0 -25
  494. package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +0 -26
  495. package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +0 -20
  496. package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +0 -20
  497. package/select/dropdown-search-form/dropdown-search-form.component.d.ts +0 -32
  498. package/select/public_api.d.ts +0 -12
  499. package/select/select-base.directive.d.ts +0 -18
  500. package/select/select-label-multiple/select-label-multiple.component.d.ts +0 -27
  501. package/select/select-label-single/select-label-single.component.d.ts +0 -12
  502. package/select/select-multiple.directive.d.ts +0 -10
  503. package/select/select-single.directive.d.ts +0 -10
  504. package/slide-toggle/public_api.d.ts +0 -1
  505. package/slide-toggle/slide-toggle.component.d.ts +0 -20
  506. package/snackbars-thread/component/snackbars-thread.component.d.ts +0 -24
  507. package/snackbars-thread/model/snackbars-thread.model.d.ts +0 -36
  508. package/snackbars-thread/public_api.d.ts +0 -3
  509. package/snackbars-thread/service/snackbars-thread.service.d.ts +0 -15
  510. package/snackbars-thread/utils/const/snackbars-thread.const.d.ts +0 -10
  511. package/social-button/public_api.d.ts +0 -1
  512. package/social-button/social-button.component.d.ts +0 -32
  513. package/split-button/public_api.d.ts +0 -1
  514. package/split-button/split-button.component.d.ts +0 -45
  515. package/src/lib/agorapulse-ui-components.module.d.ts +0 -29
  516. package/status/public_api.d.ts +0 -1
  517. package/status/status.component.d.ts +0 -9
  518. package/status-card/public_api.d.ts +0 -1
  519. package/status-card/status-card.component.d.ts +0 -13
  520. package/stepper/public_api.d.ts +0 -2
  521. package/stepper/step.model.d.ts +0 -6
  522. package/stepper/stepper.component.d.ts +0 -16
  523. package/tag/public_api.d.ts +0 -1
  524. package/tag/tag.component.d.ts +0 -24
  525. package/text-measurement/public_api.d.ts +0 -1
  526. package/text-measurement/text-measurement.service.d.ts +0 -8
  527. package/textarea/public_api.d.ts +0 -1
  528. package/textarea/textarea.directive.d.ts +0 -11
  529. package/toggle/public_api.d.ts +0 -1
  530. package/toggle/toggle.component.d.ts +0 -52
  531. package/tooltip/public_api.d.ts +0 -1
  532. package/tooltip/tooltip.directive.d.ts +0 -59
  533. package/tooltip/tooltip.service.d.ts +0 -11
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdvcmFwdWxzZS11aS1jb21wb25lbnRzLW5hdi1zZWxlY3Rvci10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci90ZXN0aW5nL3NyYy9hZ29yYXB1bHNlLXVpLWNvbXBvbmVudHMtbmF2LXNlbGVjdG9yLXRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -1,91 +0,0 @@
1
- /**
2
- * Usage Example:
3
- *
4
- * import { generateGroupElements, generateLeafElements } from './nav-selector-entry.mock';
5
- *
6
- * const mockNavSelectorEntries = [
7
- * // Generate 30 groups with children using default settings
8
- * ...generateGroupElements({
9
- * count: 30,
10
- * }),
11
- *
12
- * // Generate individual leaf elements without groups
13
- * ...generateLeafElements({
14
- * count: 1,
15
- * }),
16
- * ];
17
- */
18
- /**
19
- * Utility function to generate leaf type elements
20
- * @param options Configuration options for generating leaf elements
21
- * @returns Array of leaf elements
22
- */
23
- export function generateLeafElements(options) {
24
- const { count, uidPrefix = 'account', aliasPrefix = 'Account', startUid = 1000, networks = ['facebook', 'instagram', 'youtube', 'tiktok', 'linkedin', 'xPlus'], pictureUrlPattern = 'https://picsum.photos/150/150?random={uid}', disableReasonFrequency = 17, tokenInvalidFrequency = 7, featureLockedFrequency = 11, } = options;
25
- return Array.from({ length: count }, (_, index) => {
26
- const uid = startUid + index;
27
- const networkIndex = index % networks.length;
28
- const network = networks[networkIndex];
29
- const finalUid = `${uidPrefix}_${uid}`;
30
- const finalAlias = `${aliasPrefix} ${uid}`;
31
- const finalPictureUrl = pictureUrlPattern.replace('{uid}', uid.toString());
32
- return {
33
- uid: finalUid,
34
- counter: null,
35
- alias: finalAlias,
36
- pictureUrl: finalPictureUrl,
37
- disableReason: index > 0 && index % disableReasonFrequency === 0 ? 'The Reports feature is not supported for this account type' : null,
38
- missingPermission: false,
39
- network,
40
- actions: [],
41
- details: [],
42
- tokenInvalid: index > 0 && index % tokenInvalidFrequency === 0,
43
- featureLocked: index > 0 && index % featureLockedFrequency === 0,
44
- type: 'LEAF',
45
- };
46
- });
47
- }
48
- /**
49
- * Utility function to generate group type elements with children
50
- * @param options Configuration options for generating group elements
51
- * @returns Array of group elements
52
- */
53
- export function generateGroupElements(options) {
54
- const { count, startGroupId = 82529, categories = ['Test Group'], childrenCounts = [10], uidPrefix = 'group', childUidPrefix = 'account', childAliasPrefix = '', startChildUid = 99, childUidIncrement = 30, networks = ['facebook', 'instagram'], pictureUrlPattern = 'https://picsum.photos/150/150?random={uid}', disableReasonFrequency = 999, tokenInvalidFrequency = 999, featureLockedFrequency = 999, } = options;
55
- // Use a cache to avoid regenerating the same data
56
- const cacheKey = JSON.stringify(options);
57
- if (globalThis.__navSelectorMockCache?.[cacheKey]) {
58
- return globalThis.__navSelectorMockCache[cacheKey];
59
- }
60
- const result = Array.from({ length: count }, (_, groupIndex) => {
61
- const groupId = startGroupId + groupIndex;
62
- // Reduce default children count to improve performance
63
- const childrenCount = Math.min(childrenCounts[groupIndex] || 5, 10);
64
- const startUid = startChildUid + groupIndex * childUidIncrement;
65
- const groupCategory = categories[groupIndex] || `Category ${groupIndex + 1}`;
66
- return {
67
- uid: `${uidPrefix}_${groupId}`,
68
- alias: groupCategory,
69
- children: generateLeafElements({
70
- count: childrenCount,
71
- uidPrefix: childUidPrefix,
72
- aliasPrefix: childAliasPrefix || groupCategory,
73
- startUid: startUid,
74
- networks,
75
- pictureUrlPattern,
76
- disableReasonFrequency,
77
- tokenInvalidFrequency,
78
- featureLockedFrequency,
79
- }),
80
- folded: true,
81
- type: 'GROUP',
82
- };
83
- });
84
- // Cache the result
85
- if (!globalThis.__navSelectorMockCache) {
86
- globalThis.__navSelectorMockCache = {};
87
- }
88
- globalThis.__navSelectorMockCache[cacheKey] = result;
89
- return result;
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLWVudHJ5Lm1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3Rlc3Rpbmcvc3JjL25hdi1zZWxlY3Rvci1lbnRyeS5tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxPQVVwQztJQUNHLE1BQU0sRUFDRixLQUFLLEVBQ0wsU0FBUyxHQUFHLFNBQVMsRUFDckIsV0FBVyxHQUFHLFNBQVMsRUFDdkIsUUFBUSxHQUFHLElBQUksRUFDZixRQUFRLEdBQUcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUM5RSxpQkFBaUIsR0FBRyw0Q0FBNEMsRUFDaEUsc0JBQXNCLEdBQUcsRUFBRSxFQUMzQixxQkFBcUIsR0FBRyxDQUFDLEVBQ3pCLHNCQUFzQixHQUFHLEVBQUUsR0FDOUIsR0FBRyxPQUFPLENBQUM7SUFFWixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUMsTUFBTSxHQUFHLEdBQUcsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUM3QixNQUFNLFlBQVksR0FBRyxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdkMsTUFBTSxRQUFRLEdBQUcsR0FBRyxTQUFTLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsR0FBRyxXQUFXLElBQUksR0FBRyxFQUFFLENBQUM7UUFDM0MsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQUMs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O1NBQ3pCLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQztJQUVILG1CQUFtQjtJQUNuQixJQUFJLENBQUUsVUFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzdDLFVBQWtCLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFDQSxVQUFrQixDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUU5RCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2FnZSBFeGFtcGxlOlxuICpcbiAqIGltcG9ydCB7IGdlbmVyYXRlR3JvdXBFbGVtZW50cywgZ2VuZXJhdGVMZWFmRWxlbWVudHMgfSBmcm9tICcuL25hdi1zZWxlY3Rvci1lbnRyeS5tb2NrJztcbiAqXG4gKiBjb25zdCBtb2NrTmF2U2VsZWN0b3JFbnRyaWVzID0gW1xuICogICAgIC8vIEdlbmVyYXRlIDMwIGdyb3VwcyB3aXRoIGNoaWxkcmVuIHVzaW5nIGRlZmF1bHQgc2V0dGluZ3NcbiAqICAgICAuLi5nZW5lcmF0ZUdyb3VwRWxlbWVudHMoe1xuICogICAgICAgICBjb3VudDogMzAsXG4gKiAgICAgfSksXG4gKlxuICogICAgIC8vIEdlbmVyYXRlIGluZGl2aWR1YWwgbGVhZiBlbGVtZW50cyB3aXRob3V0IGdyb3Vwc1xuICogICAgIC4uLmdlbmVyYXRlTGVhZkVsZW1lbnRzKHtcbiAqICAgICAgICAgY291bnQ6IDEsXG4gKiAgICAgfSksXG4gKiBdO1xuICovXG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiB0byBnZW5lcmF0ZSBsZWFmIHR5cGUgZWxlbWVudHNcbiAqIEBwYXJhbSBvcHRpb25zIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgZ2VuZXJhdGluZyBsZWFmIGVsZW1lbnRzXG4gKiBAcmV0dXJucyBBcnJheSBvZiBsZWFmIGVsZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUxlYWZFbGVtZW50cyhvcHRpb25zOiB7XG4gICAgY291bnQ6IG51bWJlcjtcbiAgICB1aWRQcmVmaXg/OiBzdHJpbmc7XG4gICAgYWxpYXNQcmVmaXg/OiBzdHJpbmc7XG4gICAgc3RhcnRVaWQ/OiBudW1iZXI7XG4gICAgbmV0d29ya3M/OiBzdHJpbmdbXTtcbiAgICBwaWN0dXJlVXJsUGF0dGVybj86IHN0cmluZztcbiAgICBkaXNhYmxlUmVhc29uRnJlcXVlbmN5PzogbnVtYmVyO1xuICAgIHRva2VuSW52YWxpZEZyZXF1ZW5jeT86IG51bWJlcjtcbiAgICBmZWF0dXJlTG9ja2VkRnJlcXVlbmN5PzogbnVtYmVyO1xufSkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgY291bnQsXG4gICAgICAgIHVpZFByZWZpeCA9ICdhY2NvdW50JyxcbiAgICAgICAgYWxpYXNQcmVmaXggPSAnQWNjb3VudCcsXG4gICAgICAgIHN0YXJ0VWlkID0gMTAwMCxcbiAgICAgICAgbmV0d29ya3MgPSBbJ2ZhY2Vib29rJywgJ2luc3RhZ3JhbScsICd5b3V0dWJlJywgJ3Rpa3RvaycsICdsaW5rZWRpbicsICd4UGx1cyddLFxuICAgICAgICBwaWN0dXJlVXJsUGF0dGVybiA9ICdodHRwczovL3BpY3N1bS5waG90b3MvMTUwLzE1MD9yYW5kb209e3VpZH0nLFxuICAgICAgICBkaXNhYmxlUmVhc29uRnJlcXVlbmN5ID0gMTcsXG4gICAgICAgIHRva2VuSW52YWxpZEZyZXF1ZW5jeSA9IDcsXG4gICAgICAgIGZlYXR1cmVMb2NrZWRGcmVxdWVuY3kgPSAxMSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBjb3VudCB9LCAoXywgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdWlkID0gc3RhcnRVaWQgKyBpbmRleDtcbiAgICAgICAgY29uc3QgbmV0d29ya0luZGV4ID0gaW5kZXggJSBuZXR3b3Jrcy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5ldHdvcmsgPSBuZXR3b3Jrc1tuZXR3b3JrSW5kZXhdO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsVWlkID0gYCR7dWlkUHJlZml4fV8ke3VpZH1gO1xuICAgICAgICBjb25zdCBmaW5hbEFsaWFzID0gYCR7YWxpYXNQcmVmaXh9ICR7dWlkfWA7XG4gICAgICAgIGNvbnN0IGZpbmFsUGljdHVyZVVybCA9IHBpY3R1cmVVcmxQYXR0ZXJuLnJlcGxhY2UoJ3t1aWR9JywgdWlkLnRvU3RyaW5nKCkpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1aWQ6IGZpbmFsVWlkLFxuICAgICAgICAgICAgY291bnRlcjogbnVsbCxcbiAgICAgICAgICAgIGFsaWFzOiBmaW5hbEFsaWFzLFxuICAgICAgICAgICAgcGljdHVyZVVybDogZmluYWxQaWN0dXJlVXJsLFxuICAgICAgICAgICAgZGlzYWJsZVJlYXNvbjpcbiAgICAgICAgICAgICAgICBpbmRleCA+IDAgJiYgaW5kZXggJSBkaXNhYmxlUmVhc29uRnJlcXVlbmN5ID09PSAwID8gJ1RoZSBSZXBvcnRzIGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBhY2NvdW50IHR5cGUnIDogbnVsbCxcbiAgICAgICAgICAgIG1pc3NpbmdQZXJtaXNzaW9uOiBmYWxzZSxcbiAgICAgICAgICAgIG5ldHdvcmssXG4gICAgICAgICAgICBhY3Rpb25zOiBbXSxcbiAgICAgICAgICAgIGRldGFpbHM6IFtdLFxuICAgICAgICAgICAgdG9rZW5JbnZhbGlkOiBpbmRleCA+IDAgJiYgaW5kZXggJSB0b2tlbkludmFsaWRGcmVxdWVuY3kgPT09IDAsXG4gICAgICAgICAgICBmZWF0dXJlTG9ja2VkOiBpbmRleCA+IDAgJiYgaW5kZXggJSBmZWF0dXJlTG9ja2VkRnJlcXVlbmN5ID09PSAwLFxuICAgICAgICAgICAgdHlwZTogJ0xFQUYnIGFzIGNvbnN0LFxuICAgICAgICB9O1xuICAgIH0pO1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZnVuY3Rpb24gdG8gZ2VuZXJhdGUgZ3JvdXAgdHlwZSBlbGVtZW50cyB3aXRoIGNoaWxkcmVuXG4gKiBAcGFyYW0gb3B0aW9ucyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGdlbmVyYXRpbmcgZ3JvdXAgZWxlbWVudHNcbiAqIEByZXR1cm5zIEFycmF5IG9mIGdyb3VwIGVsZW1lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUdyb3VwRWxlbWVudHMob3B0aW9uczoge1xuICAgIGNvdW50OiBudW1iZXI7XG4gICAgc3RhcnRHcm91cElkPzogbnVtYmVyO1xuICAgIGNhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbiAgICBjaGlsZHJlbkNvdW50cz86IG51bWJlcltdO1xuICAgIHVpZFByZWZpeD86IHN0cmluZztcbiAgICBjaGlsZFVpZFByZWZpeD86IHN0cmluZztcbiAgICBjaGlsZEFsaWFzUHJlZml4Pzogc3RyaW5nO1xuICAgIHN0YXJ0Q2hpbGRVaWQ/OiBudW1iZXI7XG4gICAgY2hpbGRVaWRJbmNyZW1lbnQ/OiBudW1iZXI7XG4gICAgbmV0d29ya3M/OiBzdHJpbmdbXTtcbiAgICBwaWN0dXJlVXJsUGF0dGVybj86IHN0cmluZztcbiAgICBkaXNhYmxlUmVhc29uRnJlcXVlbmN5PzogbnVtYmVyO1xuICAgIHRva2VuSW52YWxpZEZyZXF1ZW5jeT86IG51bWJlcjtcbiAgICBmZWF0dXJlTG9ja2VkRnJlcXVlbmN5PzogbnVtYmVyO1xufSkge1xuICAgIGNvbnN0IHtcbiAgICAgICAgY291bnQsXG4gICAgICAgIHN0YXJ0R3JvdXBJZCA9IDgyNTI5LFxuICAgICAgICBjYXRlZ29yaWVzID0gWydUZXN0IEdyb3VwJ10sXG4gICAgICAgIGNoaWxkcmVuQ291bnRzID0gWzEwXSxcbiAgICAgICAgdWlkUHJlZml4ID0gJ2dyb3VwJyxcbiAgICAgICAgY2hpbGRVaWRQcmVmaXggPSAnYWNjb3VudCcsXG4gICAgICAgIGNoaWxkQWxpYXNQcmVmaXggPSAnJyxcbiAgICAgICAgc3RhcnRDaGlsZFVpZCA9IDk5LFxuICAgICAgICBjaGlsZFVpZEluY3JlbWVudCA9IDMwLFxuICAgICAgICBuZXR3b3JrcyA9IFsnZmFjZWJvb2snLCAnaW5zdGFncmFtJ10sXG4gICAgICAgIHBpY3R1cmVVcmxQYXR0ZXJuID0gJ2h0dHBzOi8vcGljc3VtLnBob3Rvcy8xNTAvMTUwP3JhbmRvbT17dWlkfScsXG4gICAgICAgIGRpc2FibGVSZWFzb25GcmVxdWVuY3kgPSA5OTksXG4gICAgICAgIHRva2VuSW52YWxpZEZyZXF1ZW5jeSA9IDk5OSxcbiAgICAgICAgZmVhdHVyZUxvY2tlZEZyZXF1ZW5jeSA9IDk5OSxcbiAgICB9ID0gb3B0aW9ucztcblxuICAgIC8vIFVzZSBhIGNhY2hlIHRvIGF2b2lkIHJlZ2VuZXJhdGluZyB0aGUgc2FtZSBkYXRhXG4gICAgY29uc3QgY2FjaGVLZXkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcbiAgICBpZiAoKGdsb2JhbFRoaXMgYXMgYW55KS5fX25hdlNlbGVjdG9yTW9ja0NhY2hlPy5bY2FjaGVLZXldKSB7XG4gICAgICAgIHJldHVybiAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fbmF2U2VsZWN0b3JNb2NrQ2FjaGVbY2FjaGVLZXldO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGNvdW50IH0sIChfLCBncm91cEluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3VwSWQgPSBzdGFydEdyb3VwSWQgKyBncm91cEluZGV4O1xuICAgICAgICAvLyBSZWR1Y2UgZGVmYXVsdCBjaGlsZHJlbiBjb3VudCB0byBpbXByb3ZlIHBlcmZvcm1hbmNlXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQ291bnQgPSBNYXRoLm1pbihjaGlsZHJlbkNvdW50c1tncm91cEluZGV4XSB8fCA1LCAxMCk7XG4gICAgICAgIGNvbnN0IHN0YXJ0VWlkID0gc3RhcnRDaGlsZFVpZCArIGdyb3VwSW5kZXggKiBjaGlsZFVpZEluY3JlbWVudDtcbiAgICAgICAgY29uc3QgZ3JvdXBDYXRlZ29yeSA9IGNhdGVnb3JpZXNbZ3JvdXBJbmRleF0gfHwgYENhdGVnb3J5ICR7Z3JvdXBJbmRleCArIDF9YDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdWlkOiBgJHt1aWRQcmVmaXh9XyR7Z3JvdXBJZH1gLFxuICAgICAgICAgICAgYWxpYXM6IGdyb3VwQ2F0ZWdvcnksXG4gICAgICAgICAgICBjaGlsZHJlbjogZ2VuZXJhdGVMZWFmRWxlbWVudHMoe1xuICAgICAgICAgICAgICAgIGNvdW50OiBjaGlsZHJlbkNvdW50LFxuICAgICAgICAgICAgICAgIHVpZFByZWZpeDogY2hpbGRVaWRQcmVmaXgsXG4gICAgICAgICAgICAgICAgYWxpYXNQcmVmaXg6IGNoaWxkQWxpYXNQcmVmaXggfHwgZ3JvdXBDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICBzdGFydFVpZDogc3RhcnRVaWQsXG4gICAgICAgICAgICAgICAgbmV0d29ya3MsXG4gICAgICAgICAgICAgICAgcGljdHVyZVVybFBhdHRlcm4sXG4gICAgICAgICAgICAgICAgZGlzYWJsZVJlYXNvbkZyZXF1ZW5jeSxcbiAgICAgICAgICAgICAgICB0b2tlbkludmFsaWRGcmVxdWVuY3ksXG4gICAgICAgICAgICAgICAgZmVhdHVyZUxvY2tlZEZyZXF1ZW5jeSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZm9sZGVkOiB0cnVlLFxuICAgICAgICAgICAgdHlwZTogJ0dST1VQJyBhcyBjb25zdCxcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIC8vIENhY2hlIHRoZSByZXN1bHRcbiAgICBpZiAoIShnbG9iYWxUaGlzIGFzIGFueSkuX19uYXZTZWxlY3Rvck1vY2tDYWNoZSkge1xuICAgICAgICAoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fbmF2U2VsZWN0b3JNb2NrQ2FjaGUgPSB7fTtcbiAgICB9XG4gICAgKGdsb2JhbFRoaXMgYXMgYW55KS5fX25hdlNlbGVjdG9yTW9ja0NhY2hlW2NhY2hlS2V5XSA9IHJlc3VsdDtcblxuICAgIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export { generateGroupElements, generateLeafElements } from './nav-selector-entry.mock';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3IvdGVzdGluZy9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGdlbmVyYXRlR3JvdXBFbGVtZW50cywgZ2VuZXJhdGVMZWFmRWxlbWVudHMgfSBmcm9tICcuL25hdi1zZWxlY3Rvci1lbnRyeS5tb2NrJztcbiJdfQ==
@@ -1,44 +0,0 @@
1
- import { isInternalNavSelectorEntryAGroup, isInternalNavSelectorEntryALeaf, isInternalNavSelectorEntryANode, } from '../nav-selector';
2
- /**
3
- * Create a Record of key/value pairs from an array of objects
4
- * @param array
5
- * @param key attribute of the object to use as key
6
- */
7
- export const associateBy = (array, key) => array.reduce((previousValue, currentValue) => {
8
- previousValue[`${currentValue[key]}`] = currentValue;
9
- return previousValue;
10
- }, {});
11
- export const isInternalNavSelectorEntryALeafFocusable = (leaf, { parentFolded, multipleMode }) => {
12
- if (parentFolded) {
13
- return false;
14
- }
15
- if (multipleMode) {
16
- return !leaf.disabled && !leaf.displayTokenInvalid && !leaf.displayFeatureLocked;
17
- }
18
- return !leaf.disabled;
19
- };
20
- export const computeFolded = (entry, children) => {
21
- // If the entry is not folded, we keep it unfolded
22
- if (!entry.folded) {
23
- return false;
24
- }
25
- return !children.some(child => (isInternalNavSelectorEntryALeaf(child) && (child.selected || !child.folded)) ||
26
- (isInternalNavSelectorEntryANode(child) && !child.folded) ||
27
- (isInternalNavSelectorEntryAGroup(child) && child.undeterminedSelection));
28
- };
29
- export const computeNumberOfDisplayableChildrenOnUnfold = (entry) => {
30
- if (isInternalNavSelectorEntryANode(entry)) {
31
- const nbChildren = entry.children.length;
32
- const nbDisplayableChildrenOfUnfoldedChild = entry.children
33
- .filter(child => !child.folded)
34
- .reduce((acc, child) => {
35
- return acc + computeNumberOfDisplayableChildrenOnUnfold(child);
36
- }, 0);
37
- return nbDisplayableChildrenOfUnfoldedChild + nbChildren;
38
- }
39
- if (isInternalNavSelectorEntryALeaf(entry)) {
40
- return entry.details.length;
41
- }
42
- return 0;
43
- };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3V0aWxzL2xlYWYudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtILGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0IsK0JBQStCLEdBQ2xDLE1BQU0saUJBQWlCLENBQUM7QUFZekI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQVUsRUFBRSxHQUF3QixFQUFxQixFQUFFLENBQ3RGLEtBQUssQ0FBQyxNQUFNLENBQ1IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUU7SUFDNUIsYUFBYSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDckQsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQyxFQUNELEVBQXVCLENBQzFCLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBRyxDQUNwRCxJQUE2QixFQUM3QixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQW9ELEVBQ3pFLEVBQUU7SUFDVCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELElBQUksWUFBWSxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyRixDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLEtBQTZELEVBQzdELFFBQW9DLEVBQzdCLEVBQUU7SUFDVCxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pCLEtBQUssQ0FBQyxFQUFFLENBQ0osQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0UsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDekQsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FDL0UsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBDQUEwQyxHQUFHLENBQUMsS0FBK0IsRUFBVSxFQUFFO0lBQ2xHLElBQUksK0JBQStCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN6QyxNQUFNLG9DQUFvQyxHQUFHLEtBQUssQ0FBQyxRQUFRO2FBQ3RELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUM5QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxHQUFHLEdBQUcsMENBQTBDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1YsT0FBTyxvQ0FBb0MsR0FBRyxVQUFVLENBQUM7SUFDN0QsQ0FBQztJQUNELElBQUksK0JBQStCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZixcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlLFxufSBmcm9tICcuLi9uYXYtc2VsZWN0b3InO1xuXG4vKipcbiAqIFV0aWxpdHkgdHlwZSB0byBleHRyYWN0IGtleXMgb2YgYW4gb2JqZWN0IHRoYXQgYXJlIG9mIHR5cGUgc3RyaW5nLCBudW1iZXIgb3Igc3ltYm9sIHdoaWNoIGFyZSB0aGUgb25seSB0eXBlIGFsbG93ZWQgaW4gYSBSZWNvcmRcbiAqL1xudHlwZSBBbGxvd2VkS2V5PFQ+ID0gUGljazxcbiAgICBULFxuICAgIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wgPyBLIDogbmV2ZXI7XG4gICAgfVtrZXlvZiBUXVxuPjtcblxuLyoqXG4gKiBDcmVhdGUgYSBSZWNvcmQgb2Yga2V5L3ZhbHVlIHBhaXJzIGZyb20gYW4gYXJyYXkgb2Ygb2JqZWN0c1xuICogQHBhcmFtIGFycmF5XG4gKiBAcGFyYW0ga2V5IGF0dHJpYnV0ZSBvZiB0aGUgb2JqZWN0IHRvIHVzZSBhcyBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IGFzc29jaWF0ZUJ5ID0gPFQ+KGFycmF5OiBUW10sIGtleToga2V5b2YgQWxsb3dlZEtleTxUPik6IFJlY29yZDxzdHJpbmcsIFQ+ID0+XG4gICAgYXJyYXkucmVkdWNlKFxuICAgICAgICAocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICBwcmV2aW91c1ZhbHVlW2Ake2N1cnJlbnRWYWx1ZVtrZXldfWBdID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIFQ+XG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUgPSAoXG4gICAgbGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZSB9OiB7IHBhcmVudEZvbGRlZDogYm9vbGVhbjsgbXVsdGlwbGVNb2RlOiBib29sZWFuIH1cbik6IGJvb2xlYW4gPT4ge1xuICAgIGlmIChwYXJlbnRGb2xkZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobXVsdGlwbGVNb2RlKSB7XG4gICAgICAgIHJldHVybiAhbGVhZi5kaXNhYmxlZCAmJiAhbGVhZi5kaXNwbGF5VG9rZW5JbnZhbGlkICYmICFsZWFmLmRpc3BsYXlGZWF0dXJlTG9ja2VkO1xuICAgIH1cbiAgICByZXR1cm4gIWxlYWYuZGlzYWJsZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZUZvbGRlZCA9IChcbiAgICBlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIGNoaWxkcmVuOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXVxuKTogYm9vbGVhbiA9PiB7XG4gICAgLy8gSWYgdGhlIGVudHJ5IGlzIG5vdCBmb2xkZWQsIHdlIGtlZXAgaXQgdW5mb2xkZWRcbiAgICBpZiAoIWVudHJ5LmZvbGRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhY2hpbGRyZW4uc29tZShcbiAgICAgICAgY2hpbGQgPT5cbiAgICAgICAgICAgIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGNoaWxkKSAmJiAoY2hpbGQuc2VsZWN0ZWQgfHwgIWNoaWxkLmZvbGRlZCkpIHx8XG4gICAgICAgICAgICAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTm9kZShjaGlsZCkgJiYgIWNoaWxkLmZvbGRlZCkgfHxcbiAgICAgICAgICAgIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cChjaGlsZCkgJiYgY2hpbGQudW5kZXRlcm1pbmVkU2VsZWN0aW9uKVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZU51bWJlck9mRGlzcGxheWFibGVDaGlsZHJlbk9uVW5mb2xkID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBudW1iZXIgPT4ge1xuICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlKGVudHJ5KSkge1xuICAgICAgICBjb25zdCBuYkNoaWxkcmVuID0gZW50cnkuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYkRpc3BsYXlhYmxlQ2hpbGRyZW5PZlVuZm9sZGVkQ2hpbGQgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgICAgICAgLmZpbHRlcihjaGlsZCA9PiAhY2hpbGQuZm9sZGVkKVxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2MgKyBjb21wdXRlTnVtYmVyT2ZEaXNwbGF5YWJsZUNoaWxkcmVuT25VbmZvbGQoY2hpbGQpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIHJldHVybiBuYkRpc3BsYXlhYmxlQ2hpbGRyZW5PZlVuZm9sZGVkQ2hpbGQgKyBuYkNoaWxkcmVuO1xuICAgIH1cbiAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgcmV0dXJuIGVudHJ5LmRldGFpbHMubGVuZ3RoO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbn07XG4iXX0=
@@ -1,179 +0,0 @@
1
- import { isInternalNavSelectorEntryACategory, isInternalNavSelectorEntryAGroup, isInternalNavSelectorEntryALeaf, isInternalNavSelectorEntryALeafDetails, } from '../nav-selector';
2
- /**
3
- * NavSelectorAccessibility is a utility class that provides methods to manage the accessibility and the focusability of nav selector entries.
4
- */
5
- export class NavSelectorAccessibility {
6
- /**
7
- * Set tabIndex to 0 for the first focusable entry and -1 for all other entries
8
- * @param entries nav selector entries
9
- */
10
- static resetFocus(entries) {
11
- const flattenEntries = this.flatten(entries);
12
- let alreadyFocused = false;
13
- for (const entry of flattenEntries) {
14
- if (alreadyFocused) {
15
- entry.accessibility.tabIndex = -1;
16
- }
17
- else if (entry.focusable) {
18
- alreadyFocused = true;
19
- entry.accessibility.tabIndex = 0;
20
- }
21
- else {
22
- entry.accessibility.tabIndex = -1;
23
- }
24
- }
25
- return this.unflatten(flattenEntries);
26
- }
27
- /**
28
- * Focus the given entry and set tabIndex to 0 for the given uid and -1 for all other entries
29
- * @param entries nav selector entries
30
- * @param uid the uid of the entry to focus
31
- */
32
- static focus(entries, uid) {
33
- return entries.map(entry => {
34
- if (isInternalNavSelectorEntryAGroup(entry) || isInternalNavSelectorEntryACategory(entry)) {
35
- return {
36
- ...this.focusAnEntry(entry, uid),
37
- children: NavSelectorAccessibility.focus(entry.children, uid),
38
- };
39
- }
40
- if (isInternalNavSelectorEntryALeaf(entry)) {
41
- return {
42
- ...this.focusAnEntry(entry, uid),
43
- details: entry.details.map(detail => this.focusAnEntry(detail, uid)),
44
- };
45
- }
46
- return this.focusAnEntry(entry, uid);
47
- });
48
- }
49
- /**
50
- * Unfocus the given entry and set tabIndex to -1 for the given uid and 0 for all other entries
51
- * @param entries nav selector entries
52
- * @param uid the uid of the entry to unfocus
53
- */
54
- static unfocus(entries, uid) {
55
- return entries.map(entry => {
56
- if (isInternalNavSelectorEntryAGroup(entry) || isInternalNavSelectorEntryACategory(entry)) {
57
- return {
58
- ...this.unfocusAnEntry(entry, uid),
59
- children: NavSelectorAccessibility.unfocus(entry.children, uid),
60
- };
61
- }
62
- if (isInternalNavSelectorEntryALeaf(entry)) {
63
- return {
64
- ...this.unfocusAnEntry(entry, uid),
65
- details: entry.details.map(detail => this.unfocusAnEntry(detail, uid)),
66
- };
67
- }
68
- return this.unfocusAnEntry(entry, uid);
69
- });
70
- }
71
- /**
72
- * Focus the previous entry focusable and set tabIndex to 0 for the previous focusable entry and -1 for all other entries
73
- *
74
- * If not previous entries are focusable, entries will not be modified
75
- *
76
- * @param entries nav selector entries
77
- */
78
- static focusPrevious(entries) {
79
- const flattenEntries = this.flatten(entries);
80
- const idxFocusedId = flattenEntries.findIndex(({ accessibility }) => accessibility.tabIndex === 0);
81
- if (idxFocusedId === 0 || this.noPreviousEntryFocusable(flattenEntries, idxFocusedId)) {
82
- return entries;
83
- }
84
- const focusedEntry = flattenEntries[idxFocusedId];
85
- focusedEntry.accessibility.tabIndex = -1;
86
- for (let i = idxFocusedId - 1; i >= 0; i--) {
87
- const entry = flattenEntries[i];
88
- if (entry.focusable) {
89
- entry.accessibility.tabIndex = 0;
90
- break;
91
- }
92
- }
93
- return this.unflatten(flattenEntries);
94
- }
95
- /**
96
- * Focus the next entry focusable and set tabIndex to 0 for the next focusable entry and -1 for all other entries
97
- *
98
- * If not next entries are focusable, entries will not be modified
99
- *
100
- * @param entries nav selector entries
101
- */
102
- static focusNext(entries) {
103
- const flattenEntries = this.flatten(entries);
104
- const focusableFlattenEntries = flattenEntries.filter(entry => entry.focusable);
105
- const idxFocusedId = focusableFlattenEntries.findIndex(({ accessibility }) => accessibility.tabIndex === 0);
106
- if (focusableFlattenEntries.length - 1 <= idxFocusedId) {
107
- return entries;
108
- }
109
- focusableFlattenEntries[idxFocusedId].accessibility.tabIndex = -1;
110
- focusableFlattenEntries[idxFocusedId + 1].accessibility.tabIndex = 0;
111
- return this.unflatten(flattenEntries);
112
- }
113
- static noPreviousEntryFocusable(flattenEntries, idxFocusedId) {
114
- for (let i = idxFocusedId - 1; i >= 0; i--) {
115
- const entry = flattenEntries[i];
116
- if (entry.focusable) {
117
- return false;
118
- }
119
- }
120
- return true;
121
- }
122
- static focusAnEntry(entry, uid) {
123
- return { ...entry, accessibility: { ...entry.accessibility, tabIndex: entry.uid === uid ? 0 : -1 } };
124
- }
125
- static unfocusAnEntry(entry, uid) {
126
- return { ...entry, accessibility: { ...entry.accessibility, tabIndex: entry.uid === uid ? -1 : entry.accessibility.tabIndex } };
127
- }
128
- /**
129
- * Flatten the nav selector entries. It is easier to work with flat entries for the focus management as we need to know which is the previous or the next entry
130
- * @param entries nav selector entries
131
- */
132
- static flatten(entries) {
133
- return entries.flatMap(entry => {
134
- if (isInternalNavSelectorEntryAGroup(entry) || isInternalNavSelectorEntryACategory(entry)) {
135
- return [{ ...entry, children: [] }, ...this.flatten(entry.children)];
136
- }
137
- if (isInternalNavSelectorEntryALeaf(entry)) {
138
- return [{ ...entry, details: [] }, ...entry.details.map(detail => ({ ...detail }))];
139
- }
140
- return [{ ...entry }];
141
- });
142
- }
143
- /**
144
- * Unflatten the nav selector entries
145
- * @param entries nav selector entries
146
- */
147
- static unflatten(entries) {
148
- return entries.reduceRight((acc, entry) => {
149
- if (!acc.length) {
150
- return [entry];
151
- }
152
- if (entry.accessibility.ariaLevel < acc[0].accessibility.ariaLevel) {
153
- if (isInternalNavSelectorEntryALeaf(entry)) {
154
- return [
155
- {
156
- ...entry,
157
- details: acc
158
- .filter(it => isInternalNavSelectorEntryALeafDetails(it))
159
- // Force destroying the reference to the original object else Angular will not detect the change
160
- .map(it => ({ ...it })),
161
- },
162
- ...acc.filter(it => !isInternalNavSelectorEntryALeafDetails(it)),
163
- ];
164
- }
165
- else if (isInternalNavSelectorEntryAGroup(entry) || isInternalNavSelectorEntryACategory(entry)) {
166
- return [
167
- {
168
- ...entry,
169
- children: acc.filter(({ accessibility }) => accessibility.ariaLevel > entry.accessibility.ariaLevel),
170
- },
171
- ...acc.filter(({ accessibility }) => accessibility.ariaLevel <= entry.accessibility.ariaLevel),
172
- ];
173
- }
174
- }
175
- return [entry, ...acc];
176
- }, []);
177
- }
178
- }
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmFjY2Vzc2liaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy91dGlscy9uYXYtc2VsZWN0b3IuYWNjZXNzaWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBS0gsbUNBQW1DLEVBQ25DLGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0Isc0NBQXNDLEdBQ3pDLE1BQU0saUJBQWlCLENBQUM7QUFFekI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBbUM7UUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QyxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFFM0IsS0FBSyxNQUFNLEtBQUssSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNqQyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNqQixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN0QyxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN6QixjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBcUMsT0FBWSxFQUFFLEdBQVc7UUFDdEUsT0FBTyxPQUFP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QUNOLENBQUM7cUJBQU0sSUFBSSxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQ0FBbUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvRixPQUFPO3dCQUNIOzRCQUNJLEdBQUcsS0FBSzs0QkFDUixRQUFRLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FDaEIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUNwRDt5QkFDakM7d0JBQ0QsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztxQkFDakcsQ0FBQztnQkFDTixDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDLEVBQUUsRUFBZ0MsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JHcm91cCxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZixcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnksXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZixcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyxcbn0gZnJvbSAnLi4vbmF2LXNlbGVjdG9yJztcblxuLyoqXG4gKiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkgaXMgYSB1dGlsaXR5IGNsYXNzIHRoYXQgcHJvdmlkZXMgbWV0aG9kcyB0byBtYW5hZ2UgdGhlIGFjY2Vzc2liaWxpdHkgYW5kIHRoZSBmb2N1c2FiaWxpdHkgb2YgbmF2IHNlbGVjdG9yIGVudHJpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkge1xuICAgIC8qKlxuICAgICAqIFNldCB0YWJJbmRleCB0byAwIGZvciB0aGUgZmlyc3QgZm9jdXNhYmxlIGVudHJ5IGFuZCAtMSBmb3IgYWxsIG90aGVyIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqL1xuICAgIHN0YXRpYyByZXNldEZvY3VzKGVudHJpZXM6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICBjb25zdCBmbGF0dGVuRW50cmllcyA9IHRoaXMuZmxhdHRlbihlbnRyaWVzKTtcblxuICAgICAgICBsZXQgYWxyZWFkeUZvY3VzZWQgPSBmYWxzZTtcblxuICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGZsYXR0ZW5FbnRyaWVzKSB7XG4gICAgICAgICAgICBpZiAoYWxyZWFkeUZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVudHJ5LmZvY3VzYWJsZSkge1xuICAgICAgICAgICAgICAgIGFscmVhZHlGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBlbnRyeS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4ID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW50cnkuYWNjZXNzaWJpbGl0eS50YWJJbmRleCA9IC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudW5mbGF0dGVuKGZsYXR0ZW5FbnRyaWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1cyB0aGUgZ2l2ZW4gZW50cnkgYW5kIHNldCB0YWJJbmRleCB0byAwIGZvciB0aGUgZ2l2ZW4gdWlkIGFuZCAtMSBmb3IgYWxsIG90aGVyIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqIEBwYXJhbSB1aWQgdGhlIHVpZCBvZiB0aGUgZW50cnkgdG8gZm9jdXNcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9jdXM8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oZW50cmllczogVFtdLCB1aWQ6IHN0cmluZyk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cChlbnRyeSkgfHwgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5mb2N1c0FuRW50cnkoZW50cnksIHVpZCksXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXMoZW50cnkuY2hpbGRyZW4sIHVpZCksXG4gICAgICAgICAgICAgICAgfSBhcyBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmZvY3VzQW5FbnRyeShlbnRyeSwgdWlkKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsczogZW50cnkuZGV0YWlscy5tYXAoZGV0YWlsID0+IHRoaXMuZm9jdXNBbkVudHJ5KGRldGFpbCwgdWlkKSksXG4gICAgICAgICAgICAgICAgfSBhcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvY3VzQW5FbnRyeShlbnRyeSwgdWlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5mb2N1cyB0aGUgZ2l2ZW4gZW50cnkgYW5kIHNldCB0YWJJbmRleCB0byAtMSBmb3IgdGhlIGdpdmVuIHVpZCBhbmQgMCBmb3IgYWxsIG90aGVyIGVudHJpZXNcbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqIEBwYXJhbSB1aWQgdGhlIHVpZCBvZiB0aGUgZW50cnkgdG8gdW5mb2N1c1xuICAgICAqL1xuICAgIHN0YXRpYyB1bmZvY3VzKGVudHJpZXM6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdLCB1aWQ6IHN0cmluZyk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cChlbnRyeSkgfHwgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy51bmZvY3VzQW5FbnRyeShlbnRyeSwgdWlkKSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eS51bmZvY3VzKGVudHJ5LmNoaWxkcmVuLCB1aWQpLFxuICAgICAgICAgICAgICAgIH0gYXMgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy51bmZvY3VzQW5FbnRyeShlbnRyeSwgdWlkKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsczogZW50cnkuZGV0YWlscy5tYXAoZGV0YWlsID0+IHRoaXMudW5mb2N1c0FuRW50cnkoZGV0YWlsLCB1aWQpKSxcbiAgICAgICAgICAgICAgICB9IGFzIEludGVybmFsTmF2U2VsZWN0b3JMZWFmO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudW5mb2N1c0FuRW50cnkoZW50cnksIHVpZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvY3VzIHRoZSBwcmV2aW91cyBlbnRyeSBmb2N1c2FibGUgYW5kIHNldCB0YWJJbmRleCB0byAwIGZvciB0aGUgcHJldmlvdXMgZm9jdXNhYmxlIGVudHJ5IGFuZCAtMSBmb3IgYWxsIG90aGVyIGVudHJpZXNcbiAgICAgKlxuICAgICAqIElmIG5vdCBwcmV2aW91cyBlbnRyaWVzIGFyZSBmb2N1c2FibGUsIGVudHJpZXMgd2lsbCBub3QgYmUgbW9kaWZpZWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSBlbnRyaWVzIG5hdiBzZWxlY3RvciBlbnRyaWVzXG4gICAgICovXG4gICAgc3RhdGljIGZvY3VzUHJldmlvdXM8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oZW50cmllczogVFtdKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICBjb25zdCBmbGF0dGVuRW50cmllcyA9IHRoaXMuZmxhdHRlbihlbnRyaWVzKTtcblxuICAgICAgICBjb25zdCBpZHhGb2N1c2VkSWQgPSBmbGF0dGVuRW50cmllcy5maW5kSW5kZXgoKHsgYWNjZXNzaWJpbGl0eSB9KSA9PiBhY2Nlc3NpYmlsaXR5LnRhYkluZGV4ID09PSAwKTtcblxuICAgICAgICBpZiAoaWR4Rm9jdXNlZElkID09PSAwIHx8IHRoaXMubm9QcmV2aW91c0VudHJ5Rm9jdXNhYmxlKGZsYXR0ZW5FbnRyaWVzLCBpZHhGb2N1c2VkSWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZW50cmllcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvY3VzZWRFbnRyeSA9IGZsYXR0ZW5FbnRyaWVzW2lkeEZvY3VzZWRJZF07XG4gICAgICAgIGZvY3VzZWRFbnRyeS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4ID0gLTE7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IGlkeEZvY3VzZWRJZCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IGZsYXR0ZW5FbnRyaWVzW2ldO1xuICAgICAgICAgICAgaWYgKGVudHJ5LmZvY3VzYWJsZSkge1xuICAgICAgICAgICAgICAgIGVudHJ5LmFjY2Vzc2liaWxpdHkudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudW5mbGF0dGVuKGZsYXR0ZW5FbnRyaWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1cyB0aGUgbmV4dCBlbnRyeSBmb2N1c2FibGUgYW5kIHNldCB0YWJJbmRleCB0byAwIGZvciB0aGUgbmV4dCBmb2N1c2FibGUgZW50cnkgYW5kIC0xIGZvciBhbGwgb3RoZXIgZW50cmllc1xuICAgICAqXG4gICAgICogSWYgbm90IG5leHQgZW50cmllcyBhcmUgZm9jdXNhYmxlLCBlbnRyaWVzIHdpbGwgbm90IGJlIG1vZGlmaWVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqL1xuICAgIHN0YXRpYyBmb2N1c05leHQ8VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oZW50cmllczogVFtdKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICBjb25zdCBmbGF0dGVuRW50cmllcyA9IHRoaXMuZmxhdHRlbihlbnRyaWVzKTtcblxuICAgICAgICBjb25zdCBmb2N1c2FibGVGbGF0dGVuRW50cmllcyA9IGZsYXR0ZW5FbnRyaWVzLmZpbHRlcihlbnRyeSA9PiBlbnRyeS5mb2N1c2FibGUpO1xuXG4gICAgICAgIGNvbnN0IGlkeEZvY3VzZWRJZCA9IGZvY3VzYWJsZUZsYXR0ZW5FbnRyaWVzLmZpbmRJbmRleCgoeyBhY2Nlc3NpYmlsaXR5IH0pID0+IGFjY2Vzc2liaWxpdHkudGFiSW5kZXggPT09IDApO1xuXG4gICAgICAgIGlmIChmb2N1c2FibGVGbGF0dGVuRW50cmllcy5sZW5ndGggLSAxIDw9IGlkeEZvY3VzZWRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGVudHJpZXM7XG4gICAgICAgIH1cblxuICAgICAgICBmb2N1c2FibGVGbGF0dGVuRW50cmllc1tpZHhGb2N1c2VkSWRdLmFjY2Vzc2liaWxpdHkudGFiSW5kZXggPSAtMTtcblxuICAgICAgICBmb2N1c2FibGVGbGF0dGVuRW50cmllc1tpZHhGb2N1c2VkSWQgKyAxXS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4ID0gMDtcblxuICAgICAgICByZXR1cm4gdGhpcy51bmZsYXR0ZW4oZmxhdHRlbkVudHJpZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIG5vUHJldmlvdXNFbnRyeUZvY3VzYWJsZShmbGF0dGVuRW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10sIGlkeEZvY3VzZWRJZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAobGV0IGkgPSBpZHhGb2N1c2VkSWQgLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBmbGF0dGVuRW50cmllc1tpXTtcbiAgICAgICAgICAgIGlmIChlbnRyeS5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmb2N1c0FuRW50cnkoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSwgdWlkOiBzdHJpbmcpOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkge1xuICAgICAgICByZXR1cm4geyAuLi5lbnRyeSwgYWNjZXNzaWJpbGl0eTogeyAuLi5lbnRyeS5hY2Nlc3NpYmlsaXR5LCB0YWJJbmRleDogZW50cnkudWlkID09PSB1aWQgPyAwIDogLTEgfSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHVuZm9jdXNBbkVudHJ5KGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksIHVpZDogc3RyaW5nKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uZW50cnksIGFjY2Vzc2liaWxpdHk6IHsgLi4uZW50cnkuYWNjZXNzaWJpbGl0eSwgdGFiSW5kZXg6IGVudHJ5LnVpZCA9PT0gdWlkID8gLTEgOiBlbnRyeS5hY2Nlc3NpYmlsaXR5LnRhYkluZGV4IH0gfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGbGF0dGVuIHRoZSBuYXYgc2VsZWN0b3IgZW50cmllcy4gSXQgaXMgZWFzaWVyIHRvIHdvcmsgd2l0aCBmbGF0IGVudHJpZXMgZm9yIHRoZSBmb2N1cyBtYW5hZ2VtZW50IGFzIHdlIG5lZWQgdG8ga25vdyB3aGljaCBpcyB0aGUgcHJldmlvdXMgb3IgdGhlIG5leHQgZW50cnlcbiAgICAgKiBAcGFyYW0gZW50cmllcyBuYXYgc2VsZWN0b3IgZW50cmllc1xuICAgICAqL1xuICAgIHByaXZhdGUgc3RhdGljIGZsYXR0ZW4oZW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10pOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSB7XG4gICAgICAgIHJldHVybiBlbnRyaWVzLmZsYXRNYXAoZW50cnkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUdyb3VwKGVudHJ5KSB8fCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFDYXRlZ29yeShlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW3sgLi4uZW50cnksIGNoaWxkcmVuOiBbXSB9LCAuLi50aGlzLmZsYXR0ZW4oZW50cnkuY2hpbGRyZW4pXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbeyAuLi5lbnRyeSwgZGV0YWlsczogW10gfSwgLi4uZW50cnkuZGV0YWlscy5tYXAoZGV0YWlsID0+ICh7IC4uLmRldGFpbCB9KSldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFt7IC4uLmVudHJ5IH1dO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbmZsYXR0ZW4gdGhlIG5hdiBzZWxlY3RvciBlbnRyaWVzXG4gICAgICogQHBhcmFtIGVudHJpZXMgbmF2IHNlbGVjdG9yIGVudHJpZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHN0YXRpYyB1bmZsYXR0ZW48VCBleHRlbmRzIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeT4oZW50cmllczogVFtdKTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W10ge1xuICAgICAgICByZXR1cm4gZW50cmllcy5yZWR1Y2VSaWdodCgoYWNjLCBlbnRyeSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFhY2MubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtlbnRyeV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZW50cnkuYWNjZXNzaWJpbGl0eS5hcmlhTGV2ZWwgPCBhY2NbMF0uYWNjZXNzaWJpbGl0eS5hcmlhTGV2ZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiBhY2NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihpdCA9PiBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyhpdCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvcmNlIGRlc3Ryb3lpbmcgdGhlIHJlZmVyZW5jZSB0byB0aGUgb3JpZ2luYWwgb2JqZWN0IGVsc2UgQW5ndWxhciB3aWxsIG5vdCBkZXRlY3QgdGhlIGNoYW5nZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGl0ID0+ICh7IC4uLml0IH0pKSBhcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5hY2MuZmlsdGVyKGl0ID0+ICFpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmRGV0YWlscyhpdCkpLFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAoZW50cnkpIHx8IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5KGVudHJ5KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVudHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBhY2MuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeyBhY2Nlc3NpYmlsaXR5IH0pID0+IGFjY2Vzc2liaWxpdHkuYXJpYUxldmVsID4gZW50cnkuYWNjZXNzaWJpbGl0eS5hcmlhTGV2ZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGFzIEludGVybmFsTmF2U2VsZWN0b3JMZWFmW10sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uYWNjLmZpbHRlcigoeyBhY2Nlc3NpYmlsaXR5IH0pID0+IGFjY2Vzc2liaWxpdHkuYXJpYUxldmVsIDw9IGVudHJ5LmFjY2Vzc2liaWxpdHkuYXJpYUxldmVsKSxcbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW2VudHJ5LCAuLi5hY2NdO1xuICAgICAgICB9LCBbXSBhcyBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSk7XG4gICAgfVxufVxuIl19