@agorapulse/ui-components 18.1.7 → 20.0.0-beta

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 (521) hide show
  1. package/action-dropdown/index.d.ts +102 -3
  2. package/add-comment/index.d.ts +24 -5
  3. package/agorapulse-ui-components-20.0.0-beta.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 +18 -18
  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 +5 -5
  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 -26
  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 +10 -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.mjs +154 -154
  69. package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
  70. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +8 -8
  71. package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs.map +1 -1
  72. package/fesm2022/agorapulse-ui-components-notification.mjs +4 -4
  73. package/fesm2022/agorapulse-ui-components-notification.mjs.map +1 -1
  74. package/fesm2022/agorapulse-ui-components-paginator.mjs +7 -7
  75. package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
  76. package/fesm2022/agorapulse-ui-components-password-input.mjs +4 -4
  77. package/fesm2022/agorapulse-ui-components-password-input.mjs.map +1 -1
  78. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +16 -16
  79. package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
  80. package/fesm2022/agorapulse-ui-components-popmenu.mjs +11 -11
  81. package/fesm2022/agorapulse-ui-components-popmenu.mjs.map +1 -1
  82. package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
  83. package/fesm2022/agorapulse-ui-components-radio.mjs.map +1 -1
  84. package/fesm2022/agorapulse-ui-components-range-slider.mjs +4 -4
  85. package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
  86. package/fesm2022/agorapulse-ui-components-select.mjs +65 -65
  87. package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
  88. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +4 -4
  89. package/fesm2022/agorapulse-ui-components-slide-toggle.mjs.map +1 -1
  90. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +8 -8
  91. package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs.map +1 -1
  92. package/fesm2022/agorapulse-ui-components-social-button.mjs +4 -4
  93. package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
  94. package/fesm2022/agorapulse-ui-components-split-button.mjs +5 -5
  95. package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
  96. package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
  97. package/fesm2022/agorapulse-ui-components-status-card.mjs.map +1 -1
  98. package/fesm2022/agorapulse-ui-components-status.mjs +4 -4
  99. package/fesm2022/agorapulse-ui-components-status.mjs.map +1 -1
  100. package/fesm2022/agorapulse-ui-components-stepper.mjs +4 -4
  101. package/fesm2022/agorapulse-ui-components-stepper.mjs.map +1 -1
  102. package/fesm2022/agorapulse-ui-components-tag.mjs +9 -9
  103. package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
  104. package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
  105. package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
  106. package/fesm2022/agorapulse-ui-components-toggle.mjs +4 -4
  107. package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
  108. package/fesm2022/agorapulse-ui-components-tooltip.mjs +15 -15
  109. package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
  110. package/fesm2022/agorapulse-ui-components.mjs +4 -4
  111. package/fesm2022/agorapulse-ui-components.mjs.map +1 -1
  112. package/form-field/index.d.ts +8 -5
  113. package/form-message/index.d.ts +16 -5
  114. package/icon-button/index.d.ts +44 -5
  115. package/index.d.ts +50 -25
  116. package/infobox/index.d.ts +29 -5
  117. package/input/index.d.ts +10 -5
  118. package/input-group/index.d.ts +14 -5
  119. package/input-search/index.d.ts +35 -5
  120. package/labels/index.d.ts +59 -5
  121. package/labels-selector/index.d.ts +46 -5
  122. package/legacy/input/index.d.ts +64 -3
  123. package/legacy/select/index.d.ts +124 -3
  124. package/legacy/textarea/index.d.ts +54 -3
  125. package/media-display-overlay/index.d.ts +46 -5
  126. package/modal/index.d.ts +58 -5
  127. package/nav-selector/index.d.ts +362 -3
  128. package/neo-datepicker/index.d.ts +74 -5
  129. package/notification/index.d.ts +9 -5
  130. package/package.json +24 -124
  131. package/paginator/index.d.ts +57 -5
  132. package/password-input/index.d.ts +36 -5
  133. package/phone-number-input/index.d.ts +54 -5
  134. package/popmenu/index.d.ts +212 -3
  135. package/radio/index.d.ts +80 -5
  136. package/range-slider/index.d.ts +39 -5
  137. package/select/index.d.ts +214 -5
  138. package/slide-toggle/index.d.ts +23 -5
  139. package/snackbars-thread/index.d.ts +73 -3
  140. package/social-button/index.d.ts +34 -5
  141. package/split-button/index.d.ts +47 -5
  142. package/status/index.d.ts +13 -5
  143. package/status-card/index.d.ts +17 -5
  144. package/stepper/index.d.ts +26 -5
  145. package/tag/index.d.ts +28 -5
  146. package/text-measurement/index.d.ts +11 -5
  147. package/textarea/index.d.ts +14 -5
  148. package/toggle/index.d.ts +55 -5
  149. package/tooltip/index.d.ts +62 -5
  150. package/action-dropdown/action-dropdown-trigger.directive.d.ts +0 -17
  151. package/action-dropdown/action-dropdown.component.d.ts +0 -84
  152. package/action-dropdown/public_api.d.ts +0 -2
  153. package/add-comment/add-comment.component.d.ts +0 -21
  154. package/add-comment/public_api.d.ts +0 -1
  155. package/agorapulse-ui-components-18.1.7.tgz +0 -0
  156. package/autocomplete/autocomplete.component.d.ts +0 -40
  157. package/autocomplete/public_api.d.ts +0 -1
  158. package/avatar/avatar.component.d.ts +0 -61
  159. package/avatar/public_api.d.ts +0 -1
  160. package/badge/badge.component.d.ts +0 -7
  161. package/badge/public_api.d.ts +0 -1
  162. package/button/button.component.d.ts +0 -52
  163. package/button/public_api.d.ts +0 -1
  164. package/checkbox/checkbox.component.d.ts +0 -51
  165. package/checkbox/public_api.d.ts +0 -1
  166. package/close-button/close-button.component.d.ts +0 -11
  167. package/close-button/public_api.d.ts +0 -1
  168. package/confirm-modal/confirm-modal-texts.model.d.ts +0 -8
  169. package/confirm-modal/confirm-modal.component.d.ts +0 -20
  170. package/confirm-modal/public_api.d.ts +0 -2
  171. package/counter/counter.component.d.ts +0 -13
  172. package/counter/public_api.d.ts +0 -1
  173. package/datepicker/datepicker.component.d.ts +0 -100
  174. package/datepicker/public_api.d.ts +0 -1
  175. package/directives/autosize-textarea.directive.d.ts +0 -12
  176. package/directives/base-button.directive.d.ts +0 -13
  177. package/directives/checkbox.directive.d.ts +0 -32
  178. package/directives/default-image.directive.d.ts +0 -8
  179. package/directives/ellipsis.directive.d.ts +0 -29
  180. package/directives/equal-validator.directive.d.ts +0 -13
  181. package/directives/frozen-gif.directive.d.ts +0 -30
  182. package/directives/multi-style-text.directive.d.ts +0 -16
  183. package/directives/public_api.d.ts +0 -8
  184. package/dot-stepper/dot-stepper.component.d.ts +0 -20
  185. package/dot-stepper/public_api.d.ts +0 -1
  186. package/esm2022/action-dropdown/action-dropdown-trigger.directive.mjs +0 -54
  187. package/esm2022/action-dropdown/action-dropdown.component.mjs +0 -269
  188. package/esm2022/action-dropdown/agorapulse-ui-components-action-dropdown.mjs +0 -5
  189. package/esm2022/action-dropdown/public_api.mjs +0 -3
  190. package/esm2022/add-comment/add-comment.component.mjs +0 -72
  191. package/esm2022/add-comment/agorapulse-ui-components-add-comment.mjs +0 -5
  192. package/esm2022/add-comment/public_api.mjs +0 -2
  193. package/esm2022/agorapulse-ui-components.mjs +0 -5
  194. package/esm2022/autocomplete/agorapulse-ui-components-autocomplete.mjs +0 -5
  195. package/esm2022/autocomplete/autocomplete.component.mjs +0 -125
  196. package/esm2022/autocomplete/public_api.mjs +0 -2
  197. package/esm2022/avatar/agorapulse-ui-components-avatar.mjs +0 -5
  198. package/esm2022/avatar/avatar.component.mjs +0 -161
  199. package/esm2022/avatar/public_api.mjs +0 -2
  200. package/esm2022/badge/agorapulse-ui-components-badge.mjs +0 -5
  201. package/esm2022/badge/badge.component.mjs +0 -17
  202. package/esm2022/badge/public_api.mjs +0 -2
  203. package/esm2022/button/agorapulse-ui-components-button.mjs +0 -5
  204. package/esm2022/button/button.component.mjs +0 -105
  205. package/esm2022/button/public_api.mjs +0 -2
  206. package/esm2022/checkbox/agorapulse-ui-components-checkbox.mjs +0 -5
  207. package/esm2022/checkbox/checkbox.component.mjs +0 -177
  208. package/esm2022/checkbox/public_api.mjs +0 -2
  209. package/esm2022/close-button/agorapulse-ui-components-close-button.mjs +0 -5
  210. package/esm2022/close-button/close-button.component.mjs +0 -20
  211. package/esm2022/close-button/public_api.mjs +0 -2
  212. package/esm2022/confirm-modal/agorapulse-ui-components-confirm-modal.mjs +0 -5
  213. package/esm2022/confirm-modal/confirm-modal-texts.model.mjs +0 -2
  214. package/esm2022/confirm-modal/confirm-modal.component.mjs +0 -61
  215. package/esm2022/confirm-modal/public_api.mjs +0 -3
  216. package/esm2022/counter/agorapulse-ui-components-counter.mjs +0 -5
  217. package/esm2022/counter/counter.component.mjs +0 -32
  218. package/esm2022/counter/public_api.mjs +0 -2
  219. package/esm2022/datepicker/agorapulse-ui-components-datepicker.mjs +0 -5
  220. package/esm2022/datepicker/datepicker.component.mjs +0 -288
  221. package/esm2022/datepicker/public_api.mjs +0 -2
  222. package/esm2022/directives/agorapulse-ui-components-directives.mjs +0 -5
  223. package/esm2022/directives/autosize-textarea.directive.mjs +0 -45
  224. package/esm2022/directives/base-button.directive.mjs +0 -47
  225. package/esm2022/directives/checkbox.directive.mjs +0 -283
  226. package/esm2022/directives/default-image.directive.mjs +0 -37
  227. package/esm2022/directives/ellipsis.directive.mjs +0 -90
  228. package/esm2022/directives/equal-validator.directive.mjs +0 -73
  229. package/esm2022/directives/frozen-gif.directive.mjs +0 -125
  230. package/esm2022/directives/multi-style-text.directive.mjs +0 -61
  231. package/esm2022/directives/public_api.mjs +0 -9
  232. package/esm2022/dot-stepper/agorapulse-ui-components-dot-stepper.mjs +0 -5
  233. package/esm2022/dot-stepper/dot-stepper.component.mjs +0 -46
  234. package/esm2022/dot-stepper/public_api.mjs +0 -2
  235. package/esm2022/form-field/agorapulse-ui-components-form-field.mjs +0 -5
  236. package/esm2022/form-field/form-field.component.mjs +0 -11
  237. package/esm2022/form-field/public_api.mjs +0 -2
  238. package/esm2022/form-message/agorapulse-ui-components-form-message.mjs +0 -5
  239. package/esm2022/form-message/form-message.component.mjs +0 -34
  240. package/esm2022/form-message/public_api.mjs +0 -2
  241. package/esm2022/icon-button/agorapulse-ui-components-icon-button.mjs +0 -5
  242. package/esm2022/icon-button/icon-button.component.mjs +0 -123
  243. package/esm2022/icon-button/public_api.mjs +0 -2
  244. package/esm2022/index.mjs +0 -49
  245. package/esm2022/infobox/agorapulse-ui-components-infobox.mjs +0 -5
  246. package/esm2022/infobox/infobox.component.mjs +0 -72
  247. package/esm2022/infobox/public_api.mjs +0 -2
  248. package/esm2022/input/agorapulse-ui-components-input.mjs +0 -5
  249. package/esm2022/input/input.directive.mjs +0 -19
  250. package/esm2022/input/public_api.mjs +0 -2
  251. package/esm2022/input-group/agorapulse-ui-components-input-group.mjs +0 -5
  252. package/esm2022/input-group/input-group.component.mjs +0 -14
  253. package/esm2022/input-group/input-prefix/input-prefix.component.mjs +0 -11
  254. package/esm2022/input-group/public_api.mjs +0 -3
  255. package/esm2022/input-search/agorapulse-ui-components-input-search.mjs +0 -5
  256. package/esm2022/input-search/input-search.component.mjs +0 -78
  257. package/esm2022/input-search/public_api.mjs +0 -2
  258. package/esm2022/labels/agorapulse-ui-components-labels.mjs +0 -5
  259. package/esm2022/labels/label-list.component.mjs +0 -108
  260. package/esm2022/labels/label.component.mjs +0 -56
  261. package/esm2022/labels/public_api.mjs +0 -3
  262. package/esm2022/labels-selector/agorapulse-ui-components-labels-selector.mjs +0 -5
  263. package/esm2022/labels-selector/labels-selector.component.mjs +0 -122
  264. package/esm2022/labels-selector/public_api.mjs +0 -2
  265. package/esm2022/legacy/input/agorapulse-ui-components-legacy-input.mjs +0 -5
  266. package/esm2022/legacy/input/input.component.mjs +0 -189
  267. package/esm2022/legacy/input/public_api.mjs +0 -2
  268. package/esm2022/legacy/select/agorapulse-ui-components-legacy-select.mjs +0 -5
  269. package/esm2022/legacy/select/public_api.mjs +0 -2
  270. package/esm2022/legacy/select/select.component.mjs +0 -451
  271. package/esm2022/legacy/textarea/agorapulse-ui-components-legacy-textarea.mjs +0 -5
  272. package/esm2022/legacy/textarea/public_api.mjs +0 -2
  273. package/esm2022/legacy/textarea/textarea.component.mjs +0 -154
  274. package/esm2022/media-display-overlay/agorapulse-ui-components-media-display-overlay.mjs +0 -5
  275. package/esm2022/media-display-overlay/media-display-overlay-dialog.component.mjs +0 -122
  276. package/esm2022/media-display-overlay/public_api.mjs +0 -2
  277. package/esm2022/modal/agorapulse-ui-components-modal.mjs +0 -5
  278. package/esm2022/modal/modal.component.mjs +0 -116
  279. package/esm2022/modal/public_api.mjs +0 -2
  280. package/esm2022/nav-selector/agorapulse-ui-components-nav-selector.mjs +0 -5
  281. package/esm2022/nav-selector/directives/nav-selector-popover-trigger.directive.mjs +0 -71
  282. package/esm2022/nav-selector/directives/tree-node-accessibility.directive.mjs +0 -30
  283. package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +0 -129
  284. package/esm2022/nav-selector/nav-selector-category/nav-selector-category.presenter.mjs +0 -29
  285. package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +0 -174
  286. package/esm2022/nav-selector/nav-selector-group/nav-selector-group.presenter.mjs +0 -31
  287. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +0 -241
  288. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.mjs +0 -37
  289. package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.mjs +0 -43
  290. package/esm2022/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.mjs +0 -20
  291. package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.mjs +0 -95
  292. package/esm2022/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.presenter.mjs +0 -31
  293. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover-item.component.mjs +0 -65
  294. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover.component.mjs +0 -132
  295. package/esm2022/nav-selector/nav-selector.component.mjs +0 -204
  296. package/esm2022/nav-selector/nav-selector.mjs +0 -9
  297. package/esm2022/nav-selector/nav-selector.state.mjs +0 -214
  298. package/esm2022/nav-selector/public_api.mjs +0 -3
  299. package/esm2022/nav-selector/utils/leaf.utils.mjs +0 -44
  300. package/esm2022/nav-selector/utils/nav-selector.accessibility.mjs +0 -179
  301. package/esm2022/nav-selector/utils/nav-selector.builder.mjs +0 -271
  302. package/esm2022/nav-selector/utils/nav-selector.filter.mjs +0 -141
  303. package/esm2022/nav-selector/utils/nav-selector.folding.mjs +0 -282
  304. package/esm2022/nav-selector/utils/nav-selector.merger.mjs +0 -76
  305. package/esm2022/nav-selector/utils/nav-selector.minifying.mjs +0 -59
  306. package/esm2022/nav-selector/utils/nav-selector.multi-select.mjs +0 -215
  307. package/esm2022/nav-selector/utils/nav-selector.single-select.mjs +0 -119
  308. package/esm2022/nav-selector/utils/nav-selector.view-more.mjs +0 -98
  309. package/esm2022/neo-datepicker/agorapulse-ui-components-neo-datepicker.mjs +0 -5
  310. package/esm2022/neo-datepicker/day-detail.model.mjs +0 -2
  311. package/esm2022/neo-datepicker/day-disabled.pipe.mjs +0 -21
  312. package/esm2022/neo-datepicker/neo-datepicker.component.mjs +0 -241
  313. package/esm2022/neo-datepicker/public_api.mjs +0 -4
  314. package/esm2022/notification/agorapulse-ui-components-notification.mjs +0 -5
  315. package/esm2022/notification/notification.component.mjs +0 -15
  316. package/esm2022/notification/public_api.mjs +0 -2
  317. package/esm2022/paginator/agorapulse-ui-components-paginator.mjs +0 -5
  318. package/esm2022/paginator/paginator-button/paginator-button.component.mjs +0 -51
  319. package/esm2022/paginator/paginator.component.mjs +0 -114
  320. package/esm2022/paginator/public_api.mjs +0 -3
  321. package/esm2022/password-input/agorapulse-ui-components-password-input.mjs +0 -5
  322. package/esm2022/password-input/password-input.component.mjs +0 -78
  323. package/esm2022/password-input/public_api.mjs +0 -2
  324. package/esm2022/phone-number-input/agorapulse-ui-components-phone-number-input.mjs +0 -5
  325. package/esm2022/phone-number-input/phone-number-input.component.mjs +0 -195
  326. package/esm2022/phone-number-input/public_api.mjs +0 -2
  327. package/esm2022/popmenu/agorapulse-ui-components-popmenu.mjs +0 -5
  328. package/esm2022/popmenu/options.mjs +0 -17
  329. package/esm2022/popmenu/popmenu-options.interface.mjs +0 -2
  330. package/esm2022/popmenu/popmenu-options.service.mjs +0 -7
  331. package/esm2022/popmenu/popmenu.component.mjs +0 -383
  332. package/esm2022/popmenu/popmenu.directive.mjs +0 -296
  333. package/esm2022/popmenu/popmenu.module.mjs +0 -29
  334. package/esm2022/popmenu/public_api.mjs +0 -5
  335. package/esm2022/radio/agorapulse-ui-components-radio.mjs +0 -5
  336. package/esm2022/radio/public_api.mjs +0 -2
  337. package/esm2022/radio/radio.component.mjs +0 -319
  338. package/esm2022/range-slider/agorapulse-ui-components-range-slider.mjs +0 -5
  339. package/esm2022/range-slider/public_api.mjs +0 -2
  340. package/esm2022/range-slider/range-slider.component.mjs +0 -154
  341. package/esm2022/select/agorapulse-ui-components-select.mjs +0 -5
  342. package/esm2022/select/ap-select.module.mjs +0 -78
  343. package/esm2022/select/dropdown-group-item/dropdown-group-item.component.mjs +0 -51
  344. package/esm2022/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.mjs +0 -75
  345. package/esm2022/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.mjs +0 -79
  346. package/esm2022/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.mjs +0 -59
  347. package/esm2022/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.mjs +0 -60
  348. package/esm2022/select/dropdown-search-form/dropdown-search-form.component.mjs +0 -98
  349. package/esm2022/select/public_api.mjs +0 -13
  350. package/esm2022/select/select-base.directive.mjs +0 -69
  351. package/esm2022/select/select-label-multiple/select-label-multiple.component.mjs +0 -95
  352. package/esm2022/select/select-label-single/select-label-single.component.mjs +0 -33
  353. package/esm2022/select/select-multiple.directive.mjs +0 -35
  354. package/esm2022/select/select-single.directive.mjs +0 -34
  355. package/esm2022/slide-toggle/agorapulse-ui-components-slide-toggle.mjs +0 -5
  356. package/esm2022/slide-toggle/public_api.mjs +0 -2
  357. package/esm2022/slide-toggle/slide-toggle.component.mjs +0 -66
  358. package/esm2022/snackbars-thread/agorapulse-ui-components-snackbars-thread.mjs +0 -5
  359. package/esm2022/snackbars-thread/component/snackbars-thread.component.mjs +0 -93
  360. package/esm2022/snackbars-thread/model/snackbars-thread.model.mjs +0 -44
  361. package/esm2022/snackbars-thread/public_api.mjs +0 -4
  362. package/esm2022/snackbars-thread/service/snackbars-thread.service.mjs +0 -47
  363. package/esm2022/snackbars-thread/utils/const/snackbars-thread.const.mjs +0 -13
  364. package/esm2022/social-button/agorapulse-ui-components-social-button.mjs +0 -5
  365. package/esm2022/social-button/public_api.mjs +0 -2
  366. package/esm2022/social-button/social-button.component.mjs +0 -164
  367. package/esm2022/split-button/agorapulse-ui-components-split-button.mjs +0 -5
  368. package/esm2022/split-button/public_api.mjs +0 -2
  369. package/esm2022/split-button/split-button.component.mjs +0 -122
  370. package/esm2022/src/lib/agorapulse-ui-components.module.mjs +0 -200
  371. package/esm2022/status/agorapulse-ui-components-status.mjs +0 -5
  372. package/esm2022/status/public_api.mjs +0 -2
  373. package/esm2022/status/status.component.mjs +0 -21
  374. package/esm2022/status-card/agorapulse-ui-components-status-card.mjs +0 -5
  375. package/esm2022/status-card/public_api.mjs +0 -2
  376. package/esm2022/status-card/status-card.component.mjs +0 -23
  377. package/esm2022/stepper/agorapulse-ui-components-stepper.mjs +0 -5
  378. package/esm2022/stepper/public_api.mjs +0 -3
  379. package/esm2022/stepper/step.model.mjs +0 -2
  380. package/esm2022/stepper/stepper.component.mjs +0 -38
  381. package/esm2022/tag/agorapulse-ui-components-tag.mjs +0 -5
  382. package/esm2022/tag/public_api.mjs +0 -2
  383. package/esm2022/tag/tag.component.mjs +0 -35
  384. package/esm2022/text-measurement/agorapulse-ui-components-text-measurement.mjs +0 -5
  385. package/esm2022/text-measurement/public_api.mjs +0 -2
  386. package/esm2022/text-measurement/text-measurement.service.mjs +0 -29
  387. package/esm2022/textarea/agorapulse-ui-components-textarea.mjs +0 -5
  388. package/esm2022/textarea/public_api.mjs +0 -2
  389. package/esm2022/textarea/textarea.directive.mjs +0 -37
  390. package/esm2022/toggle/agorapulse-ui-components-toggle.mjs +0 -5
  391. package/esm2022/toggle/public_api.mjs +0 -2
  392. package/esm2022/toggle/toggle.component.mjs +0 -208
  393. package/esm2022/tooltip/agorapulse-ui-components-tooltip.mjs +0 -5
  394. package/esm2022/tooltip/public_api.mjs +0 -2
  395. package/esm2022/tooltip/tooltip.directive.mjs +0 -401
  396. package/esm2022/tooltip/tooltip.service.mjs +0 -29
  397. package/form-field/form-field.component.d.ts +0 -5
  398. package/form-field/public_api.d.ts +0 -1
  399. package/form-message/form-message.component.d.ts +0 -12
  400. package/form-message/public_api.d.ts +0 -1
  401. package/icon-button/icon-button.component.d.ts +0 -40
  402. package/icon-button/public_api.d.ts +0 -1
  403. package/infobox/infobox.component.d.ts +0 -26
  404. package/infobox/public_api.d.ts +0 -1
  405. package/input/input.directive.d.ts +0 -7
  406. package/input/public_api.d.ts +0 -1
  407. package/input-group/input-group.component.d.ts +0 -6
  408. package/input-group/input-prefix/input-prefix.component.d.ts +0 -5
  409. package/input-group/public_api.d.ts +0 -2
  410. package/input-search/input-search.component.d.ts +0 -32
  411. package/input-search/public_api.d.ts +0 -1
  412. package/labels/label-list.component.d.ts +0 -34
  413. package/labels/label.component.d.ts +0 -23
  414. package/labels/public_api.d.ts +0 -2
  415. package/labels-selector/labels-selector.component.d.ts +0 -42
  416. package/labels-selector/public_api.d.ts +0 -1
  417. package/legacy/input/input.component.d.ts +0 -64
  418. package/legacy/input/public_api.d.ts +0 -1
  419. package/legacy/select/public_api.d.ts +0 -1
  420. package/legacy/select/select.component.d.ts +0 -122
  421. package/legacy/textarea/public_api.d.ts +0 -1
  422. package/legacy/textarea/textarea.component.d.ts +0 -53
  423. package/media-display-overlay/media-display-overlay-dialog.component.d.ts +0 -42
  424. package/media-display-overlay/public_api.d.ts +0 -1
  425. package/modal/modal.component.d.ts +0 -54
  426. package/modal/public_api.d.ts +0 -1
  427. package/nav-selector/directives/nav-selector-popover-trigger.directive.d.ts +0 -25
  428. package/nav-selector/directives/tree-node-accessibility.directive.d.ts +0 -9
  429. package/nav-selector/nav-selector-category/nav-selector-category.component.d.ts +0 -28
  430. package/nav-selector/nav-selector-category/nav-selector-category.presenter.d.ts +0 -14
  431. package/nav-selector/nav-selector-group/nav-selector-group.component.d.ts +0 -37
  432. package/nav-selector/nav-selector-group/nav-selector-group.presenter.d.ts +0 -17
  433. package/nav-selector/nav-selector-leaf/nav-selector-leaf.component.d.ts +0 -48
  434. package/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.d.ts +0 -19
  435. package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.component.d.ts +0 -13
  436. package/nav-selector/nav-selector-leaf-detail/nav-selector-leaf-detail.presenter.d.ts +0 -10
  437. package/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.component.d.ts +0 -24
  438. package/nav-selector/nav-selector-leaf-details/nav-selector-leaf-details.presenter.d.ts +0 -14
  439. package/nav-selector/nav-selector-popover/nav-selector-popover-item.component.d.ts +0 -14
  440. package/nav-selector/nav-selector-popover/nav-selector-popover.component.d.ts +0 -40
  441. package/nav-selector/nav-selector.component.d.ts +0 -39
  442. package/nav-selector/nav-selector.d.ts +0 -268
  443. package/nav-selector/nav-selector.state.d.ts +0 -49
  444. package/nav-selector/public_api.d.ts +0 -3
  445. package/nav-selector/utils/leaf.utils.d.ts +0 -20
  446. package/nav-selector/utils/nav-selector.accessibility.d.ts +0 -52
  447. package/nav-selector/utils/nav-selector.builder.d.ts +0 -32
  448. package/nav-selector/utils/nav-selector.filter.d.ts +0 -32
  449. package/nav-selector/utils/nav-selector.folding.d.ts +0 -73
  450. package/nav-selector/utils/nav-selector.merger.d.ts +0 -23
  451. package/nav-selector/utils/nav-selector.minifying.d.ts +0 -29
  452. package/nav-selector/utils/nav-selector.multi-select.d.ts +0 -54
  453. package/nav-selector/utils/nav-selector.single-select.d.ts +0 -17
  454. package/nav-selector/utils/nav-selector.view-more.d.ts +0 -30
  455. package/neo-datepicker/day-detail.model.d.ts +0 -9
  456. package/neo-datepicker/day-disabled.pipe.d.ts +0 -8
  457. package/neo-datepicker/neo-datepicker.component.d.ts +0 -61
  458. package/neo-datepicker/public_api.d.ts +0 -3
  459. package/notification/notification.component.d.ts +0 -6
  460. package/notification/public_api.d.ts +0 -1
  461. package/paginator/paginator-button/paginator-button.component.d.ts +0 -17
  462. package/paginator/paginator.component.d.ts +0 -38
  463. package/paginator/public_api.d.ts +0 -2
  464. package/password-input/password-input.component.d.ts +0 -33
  465. package/password-input/public_api.d.ts +0 -1
  466. package/phone-number-input/phone-number-input.component.d.ts +0 -50
  467. package/phone-number-input/public_api.d.ts +0 -1
  468. package/popmenu/options.d.ts +0 -16
  469. package/popmenu/popmenu-options.interface.d.ts +0 -48
  470. package/popmenu/popmenu-options.service.d.ts +0 -7
  471. package/popmenu/popmenu.component.d.ts +0 -66
  472. package/popmenu/popmenu.directive.d.ts +0 -90
  473. package/popmenu/popmenu.module.d.ts +0 -11
  474. package/popmenu/public_api.d.ts +0 -4
  475. package/radio/public_api.d.ts +0 -1
  476. package/radio/radio.component.d.ts +0 -77
  477. package/range-slider/public_api.d.ts +0 -1
  478. package/range-slider/range-slider.component.d.ts +0 -35
  479. package/select/ap-select.module.d.ts +0 -17
  480. package/select/dropdown-group-item/dropdown-group-item.component.d.ts +0 -16
  481. package/select/dropdown-item-multiple-one-line/dropdown-item-multiple-one-line.component.d.ts +0 -25
  482. package/select/dropdown-item-multiple-two-lines/dropdown-item-multiple-two-lines.component.d.ts +0 -26
  483. package/select/dropdown-item-single-one-line/dropdown-item-single-one-line.component.d.ts +0 -20
  484. package/select/dropdown-item-single-two-lines/dropdown-item-single-two-lines.component.d.ts +0 -20
  485. package/select/dropdown-search-form/dropdown-search-form.component.d.ts +0 -32
  486. package/select/public_api.d.ts +0 -12
  487. package/select/select-base.directive.d.ts +0 -18
  488. package/select/select-label-multiple/select-label-multiple.component.d.ts +0 -27
  489. package/select/select-label-single/select-label-single.component.d.ts +0 -12
  490. package/select/select-multiple.directive.d.ts +0 -10
  491. package/select/select-single.directive.d.ts +0 -10
  492. package/slide-toggle/public_api.d.ts +0 -1
  493. package/slide-toggle/slide-toggle.component.d.ts +0 -20
  494. package/snackbars-thread/component/snackbars-thread.component.d.ts +0 -24
  495. package/snackbars-thread/model/snackbars-thread.model.d.ts +0 -36
  496. package/snackbars-thread/public_api.d.ts +0 -3
  497. package/snackbars-thread/service/snackbars-thread.service.d.ts +0 -15
  498. package/snackbars-thread/utils/const/snackbars-thread.const.d.ts +0 -10
  499. package/social-button/public_api.d.ts +0 -1
  500. package/social-button/social-button.component.d.ts +0 -32
  501. package/split-button/public_api.d.ts +0 -1
  502. package/split-button/split-button.component.d.ts +0 -45
  503. package/src/lib/agorapulse-ui-components.module.d.ts +0 -29
  504. package/status/public_api.d.ts +0 -1
  505. package/status/status.component.d.ts +0 -9
  506. package/status-card/public_api.d.ts +0 -1
  507. package/status-card/status-card.component.d.ts +0 -13
  508. package/stepper/public_api.d.ts +0 -2
  509. package/stepper/step.model.d.ts +0 -6
  510. package/stepper/stepper.component.d.ts +0 -16
  511. package/tag/public_api.d.ts +0 -1
  512. package/tag/tag.component.d.ts +0 -24
  513. package/text-measurement/public_api.d.ts +0 -1
  514. package/text-measurement/text-measurement.service.d.ts +0 -8
  515. package/textarea/public_api.d.ts +0 -1
  516. package/textarea/textarea.directive.d.ts +0 -11
  517. package/toggle/public_api.d.ts +0 -1
  518. package/toggle/toggle.component.d.ts +0 -52
  519. package/tooltip/public_api.d.ts +0 -1
  520. package/tooltip/tooltip.directive.d.ts +0 -59
  521. package/tooltip/tooltip.service.d.ts +0 -11
@@ -1,214 +0,0 @@
1
- import { computed, effect, Injectable, signal, untracked } from '@angular/core';
2
- import { isInternalNavSelectorEntryALeaf, isInternalNavSelectorEntryANode, } from './nav-selector';
3
- import { NavSelectorAccessibility } from './utils/nav-selector.accessibility';
4
- import { NavSelectorBuilder } from './utils/nav-selector.builder';
5
- import { NavSelectorFilter } from './utils/nav-selector.filter';
6
- import { NavSelectorFolding } from './utils/nav-selector.folding';
7
- import { NavSelectorMerger } from './utils/nav-selector.merger';
8
- import { NavSelectorMinifying } from './utils/nav-selector.minifying';
9
- import { NavSelectorMultiSelect } from './utils/nav-selector.multi-select';
10
- import { NavSelectorSingleSelect } from './utils/nav-selector.single-select';
11
- import { NavSelectorViewMore } from './utils/nav-selector.view-more';
12
- import * as i0 from "@angular/core";
13
- /**
14
- * NavSelectorState is a service that manages the state of the nav selector.
15
- *
16
- * It should be provided by the component to ensure that if many nav selectors are used in the same page, they don't share the same state.
17
- */
18
- export class NavSelectorState {
19
- entries = signal([]);
20
- multipleModeEnabled = signal(false);
21
- _texts = signal({
22
- title: '',
23
- only: '',
24
- tokenInvalid: '',
25
- groupTokenInvalid: '',
26
- featureLocked: '',
27
- searchPlaceholder: '',
28
- noResults: '',
29
- viewMore: '',
30
- viewLess: '',
31
- });
32
- lastSelectedUids = signal([]);
33
- isMultipleModeEnabled = this.multipleModeEnabled;
34
- search = signal('');
35
- noResults = computed(() => this.entries().every(({ hidden }) => hidden));
36
- texts = this._texts.asReadonly();
37
- expanded = signal(true);
38
- expandedAfterDelay = signal(true);
39
- previousSelectedUids = [];
40
- selectedUidsChangeCallback = null;
41
- constructor() {
42
- effect(() => {
43
- const newSelectedUids = this.collectSelectedUids(this.entries());
44
- untracked(() => {
45
- if (this.selectedUidsChangeCallback && JSON.stringify(this.previousSelectedUids) !== JSON.stringify(newSelectedUids)) {
46
- this.selectedUidsChangeCallback(newSelectedUids);
47
- this.previousSelectedUids = newSelectedUids;
48
- }
49
- });
50
- });
51
- effect(() => {
52
- const search = this.search();
53
- untracked(() => {
54
- this.entries.update(entries => NavSelectorFilter.filter(entries, search, this.multipleModeEnabled()));
55
- });
56
- });
57
- }
58
- updateMultiModeEnabled(enabled) {
59
- this.multipleModeEnabled.set(enabled);
60
- }
61
- initEntries(entries, initialSelectedEntryUids, detailsDisplayedLimit) {
62
- if (this.multipleModeEnabled()) {
63
- this.entries.set(NavSelectorBuilder.buildInMultipleMode(entries, initialSelectedEntryUids, detailsDisplayedLimit));
64
- }
65
- else {
66
- this.entries.set(NavSelectorBuilder.build(entries, initialSelectedEntryUids?.[0] ?? null, detailsDisplayedLimit));
67
- }
68
- }
69
- updateEntries(entries, initialSelectedEntryUids, detailsDisplayedLimit) {
70
- let newEntries;
71
- if (this.multipleModeEnabled()) {
72
- newEntries = NavSelectorBuilder.buildInMultipleMode(entries, initialSelectedEntryUids, detailsDisplayedLimit);
73
- }
74
- else {
75
- newEntries = NavSelectorBuilder.build(entries, initialSelectedEntryUids?.[0] ?? null, detailsDisplayedLimit);
76
- }
77
- this.entries.update(oldEntries => {
78
- const mergeEntries = NavSelectorMerger.mergeInternalNavSelectorEntries(newEntries, oldEntries);
79
- return NavSelectorFilter.filter(mergeEntries, this.search(), this.multipleModeEnabled());
80
- });
81
- }
82
- onGroupToggleFolding(group) {
83
- this.entries.update(entries => NavSelectorFolding.toggleFolding(entries, group.uid, this.getFoldingOptions()));
84
- }
85
- onNodeSelect(node) {
86
- this.entries.update(entries => NavSelectorMultiSelect.selectInMultipleMode(entries, node.uid));
87
- }
88
- onLeafClicked(leaf) {
89
- if (!leaf.selectable) {
90
- return;
91
- }
92
- if (this.multipleModeEnabled()) {
93
- this.entries.update(entries => NavSelectorMultiSelect.selectInMultipleMode(entries, leaf.uid));
94
- }
95
- else {
96
- this.entries.update(entries => NavSelectorSingleSelect.select(entries, leaf.uid));
97
- }
98
- }
99
- onLeafToggleFolding(leaf) {
100
- this.entries.update(entries => NavSelectorFolding.toggleFolding(entries, leaf.uid, this.getFoldingOptions()));
101
- }
102
- onLeafDetailClicked(leafDetail) {
103
- this.entries.update(entries => NavSelectorSingleSelect.select(entries, leafDetail.uid));
104
- }
105
- updateTexts(texts) {
106
- this._texts.set(texts);
107
- }
108
- selectOnlyLeaf(leaf) {
109
- this.entries.update(entries => NavSelectorMultiSelect.selectOnlyALeafInMultipleMode(entries, leaf.uid));
110
- }
111
- toggleExpanded() {
112
- this.expanded.update(expanded => !expanded);
113
- this.entries.update(entries => {
114
- if (this.expanded()) {
115
- return NavSelectorMinifying.expand(entries, this.multipleModeEnabled());
116
- }
117
- return NavSelectorMinifying.minify(entries, this.multipleModeEnabled());
118
- });
119
- if (!this.expanded()) {
120
- setTimeout(() => this.expandedAfterDelay.set(this.expanded()), 150);
121
- }
122
- else {
123
- this.expandedAfterDelay.set(this.expanded());
124
- }
125
- }
126
- minify() {
127
- if (this.expanded()) {
128
- this.toggleExpanded();
129
- }
130
- }
131
- forceMinify() {
132
- this.expanded.set(false);
133
- this.expandedAfterDelay.set(this.expanded());
134
- this.entries.update(entries => NavSelectorAccessibility.resetFocus(NavSelectorMinifying.minify(entries, this.multipleModeEnabled())));
135
- }
136
- forceExpand() {
137
- this.expanded.set(true);
138
- this.expandedAfterDelay.set(this.expanded());
139
- this.entries.update(entries => NavSelectorAccessibility.resetFocus(NavSelectorMinifying.expand(entries, this.multipleModeEnabled())));
140
- }
141
- onSelectionChange(uids) {
142
- // Avoid infinite loop if you put unexisting uids as select will generate the same entries but with different reference
143
- if (JSON.stringify(uids) === JSON.stringify(this.lastSelectedUids())) {
144
- return;
145
- }
146
- this.lastSelectedUids.set(uids);
147
- const selectedUids = this.collectSelectedUids(this.entries());
148
- const uidToSelect = uids.filter(uid => selectedUids.every(selectedUid => selectedUid !== uid));
149
- const uidToUnselect = selectedUids.filter(uid => uids.every(selectedUid => selectedUid !== uid));
150
- if (!uidToSelect.length && !uidToUnselect.length) {
151
- return;
152
- }
153
- let entries = this.entries();
154
- if (this.multipleModeEnabled()) {
155
- for (const uid of [...uidToSelect, ...uidToUnselect]) {
156
- entries = NavSelectorMultiSelect.selectInMultipleMode(entries, uid);
157
- }
158
- }
159
- else {
160
- entries = NavSelectorSingleSelect.select(entries, uids[0]);
161
- }
162
- this.entries.set(entries);
163
- }
164
- registerOnSelectedUidsChange(callback) {
165
- this.selectedUidsChangeCallback = callback;
166
- }
167
- onArrowDown() {
168
- this.entries.update(entries => NavSelectorAccessibility.focusNext(entries));
169
- }
170
- onArrowUp() {
171
- this.entries.update(entries => NavSelectorAccessibility.focusPrevious(entries));
172
- }
173
- collectSelectedUids(entries) {
174
- return entries.flatMap(entry => {
175
- if (isInternalNavSelectorEntryALeaf(entry)) {
176
- if (entry.detailsDisplayable) {
177
- return entry.details.flatMap(detail => (detail.selected ? [detail.uid] : []));
178
- }
179
- return entry.selected ? [entry.uid] : [];
180
- }
181
- else if (isInternalNavSelectorEntryANode(entry)) {
182
- return this.collectSelectedUids(entry.children);
183
- }
184
- return [];
185
- });
186
- }
187
- getFoldingOptions() {
188
- return {
189
- multipleMode: this.multipleModeEnabled(),
190
- minified: !this.expanded(),
191
- };
192
- }
193
- fold(entry) {
194
- this.entries.update(entries => NavSelectorFolding.fold(entries, entry.uid, this.getFoldingOptions()));
195
- }
196
- unfold(entry) {
197
- this.entries.update(entries => NavSelectorFolding.unfold(entries, entry.uid, this.getFoldingOptions()));
198
- }
199
- updateDetailsDisplayedLimit(detailsDisplayedLimit) {
200
- this.entries.update(entries => NavSelectorViewMore.changeViewMoreDetailsDisplayedLimit(entries, detailsDisplayedLimit));
201
- }
202
- viewMore(leaf) {
203
- this.entries.update(entries => NavSelectorViewMore.viewMore(entries, leaf.uid));
204
- }
205
- viewLess(leaf) {
206
- this.entries.update(entries => NavSelectorViewMore.viewLess(entries, leaf.uid));
207
- }
208
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
209
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState });
210
- }
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState, decorators: [{
212
- type: Injectable
213
- }], ctorParameters: () => [] });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFJSCwrQkFBK0IsRUFDL0IsK0JBQStCLEdBR2xDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVyRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixPQUFPLEdBQUcsTUFBTSxDQUE2QixFQUFFLENBQUMsQ0FBQztJQUN6QyxtQkFBbUIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHLE1BQU0sQ0FBNkI7UUFDaEQsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFB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QyxPQUFPLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELDJCQUEyQixDQUFDLHFCQUE2QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLG1DQUFtQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQzt1R0E3TlEsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTm9kZSxcbiAgICBOYXZTZWxlY3RvckVudHJ5LFxuICAgIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzLFxufSBmcm9tICcuL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5hY2Nlc3NpYmlsaXR5JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yQnVpbGRlciB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLmJ1aWxkZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGaWx0ZXIgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5maWx0ZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGb2xkaW5nLCBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IuZm9sZGluZyc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck1lcmdlciB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm1lcmdlcic7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck1pbmlmeWluZyB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm1pbmlmeWluZyc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck11bHRpU2VsZWN0IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IubXVsdGktc2VsZWN0JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yU2luZ2xlU2VsZWN0IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3Iuc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclZpZXdNb3JlIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3Iudmlldy1tb3JlJztcblxuLyoqXG4gKiBOYXZTZWxlY3RvclN0YXRlIGlzIGEgc2VydmljZSB0aGF0IG1hbmFnZXMgdGhlIHN0YXRlIG9mIHRoZSBuYXYgc2VsZWN0b3IuXG4gKlxuICogSXQgc2hvdWxkIGJlIHByb3ZpZGVkIGJ5IHRoZSBjb21wb25lbnQgdG8gZW5zdXJlIHRoYXQgaWYgbWFueSBuYXYgc2VsZWN0b3JzIGFyZSB1c2VkIGluIHRoZSBzYW1lIHBhZ2UsIHRoZXkgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc3RhdGUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvclN0YXRlIHtcbiAgICBlbnRyaWVzID0gc2lnbmFsPEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdPihbXSk7XG4gICAgcHJpdmF0ZSBtdWx0aXBsZU1vZGVFbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF90ZXh0cyA9IHNpZ25hbDxOYXZTZWxlY3RvclRyYW5zbGF0ZWRUZXh0cz4oe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIG9ubHk6ICcnLFxuICAgICAgICB0b2tlbkludmFsaWQ6ICcnLFxuICAgICAgICBncm91cFRva2VuSW52YWxpZDogJycsXG4gICAgICAgIGZlYXR1cmVMb2NrZWQ6ICcnLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJycsXG4gICAgICAgIG5vUmVzdWx0czogJycsXG4gICAgICAgIHZpZXdNb3JlOiAnJyxcbiAgICAgICAgdmlld0xlc3M6ICcnLFxuICAgIH0pO1xuICAgIHByaXZhdGUgbGFzdFNlbGVjdGVkVWlkcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgaXNNdWx0aXBsZU1vZGVFbmFibGVkID0gdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkO1xuICAgIHNlYXJjaCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuICAgIG5vUmVzdWx0cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZW50cmllcygpLmV2ZXJ5KCh7IGhpZGRlbiB9KSA9PiBoaWRkZW4pKTtcbiAgICB0ZXh0cyA9IHRoaXMuX3RleHRzLmFzUmVhZG9ubHkoKTtcblxuICAgIGV4cGFuZGVkID0gc2lnbmFsKHRydWUpO1xuICAgIGV4cGFuZGVkQWZ0ZXJEZWxheSA9IHNpZ25hbCh0cnVlKTtcblxuICAgIHByZXZpb3VzU2VsZWN0ZWRVaWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrOiAoKHNlbGVjdGVkVWlkczogc3RyaW5nW10pID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkVWlkcyA9IHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyh0aGlzLmVudHJpZXMoKSk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrICYmIEpTT04uc3RyaW5naWZ5KHRoaXMucHJldmlvdXNTZWxlY3RlZFVpZHMpICE9PSBKU09OLnN0cmluZ2lmeShuZXdTZWxlY3RlZFVpZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVaWRzQ2hhbmdlQ2FsbGJhY2sobmV3U2VsZWN0ZWRVaWRzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1NlbGVjdGVkVWlkcyA9IG5ld1NlbGVjdGVkVWlkcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZpbHRlci5maWx0ZXIoZW50cmllcywgc2VhcmNoLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZU11bHRpTW9kZUVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQuc2V0KGVuYWJsZWQpO1xuICAgIH1cblxuICAgIGluaXRFbnRyaWVzKGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSwgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzOiBzdHJpbmdbXSwgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc2V0KE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcywgZGV0YWlsc0Rpc3BsYXllZExpbWl0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc2V0KE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZChlbnRyaWVzLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM/LlswXSA/PyBudWxsLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUVudHJpZXMoZW50cmllczogTmF2U2VsZWN0b3JFbnRyeVtdLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM6IHN0cmluZ1tdLCBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcikge1xuICAgICAgICBsZXQgbmV3RW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkge1xuICAgICAgICAgICAgbmV3RW50cmllcyA9IE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcywgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0VudHJpZXMgPSBOYXZTZWxlY3RvckJ1aWxkZXIuYnVpbGQoZW50cmllcywgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzPy5bMF0gPz8gbnVsbCwgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKG9sZEVudHJpZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VFbnRyaWVzID0gTmF2U2VsZWN0b3JNZXJnZXIubWVyZ2VJbnRlcm5hbE5hdlNlbGVjdG9yRW50cmllcyhuZXdFbnRyaWVzLCBvbGRFbnRyaWVzKTtcbiAgICAgICAgICAgIHJldHVybiBOYXZTZWxlY3RvckZpbHRlci5maWx0ZXIobWVyZ2VFbnRyaWVzLCB0aGlzLnNlYXJjaCgpLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uR3JvdXBUb2dnbGVGb2xkaW5nKGdyb3VwOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yRm9sZGluZy50b2dnbGVGb2xkaW5nKGVudHJpZXMsIGdyb3VwLnVpZCwgdGhpcy5nZXRGb2xkaW5nT3B0aW9ucygpKSk7XG4gICAgfVxuXG4gICAgb25Ob2RlU2VsZWN0KG5vZGU6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RJbk11bHRpcGxlTW9kZShlbnRyaWVzLCBub2RlLnVpZCkpO1xuICAgIH1cblxuICAgIG9uTGVhZkNsaWNrZWQobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpIHtcbiAgICAgICAgaWYgKCFsZWFmLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3Rvck11bHRpU2VsZWN0LnNlbGVjdEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JTaW5nbGVTZWxlY3Quc2VsZWN0KGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkxlYWZUb2dnbGVGb2xkaW5nKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLnRvZ2dsZUZvbGRpbmcoZW50cmllcywgbGVhZi51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIG9uTGVhZkRldGFpbENsaWNrZWQobGVhZkRldGFpbDogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgbGVhZkRldGFpbC51aWQpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0cyh0ZXh0czogTmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHMpIHtcbiAgICAgICAgdGhpcy5fdGV4dHMuc2V0KHRleHRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RPbmx5TGVhZihsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RPbmx5QUxlYWZJbk11bHRpcGxlTW9kZShlbnRyaWVzLCBsZWFmLnVpZCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZUV4cGFuZGVkKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZShleHBhbmRlZCA9PiAhZXhwYW5kZWQpO1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBOYXZTZWxlY3Rvck1pbmlmeWluZy5leHBhbmQoZW50cmllcywgdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE5hdlNlbGVjdG9yTWluaWZ5aW5nLm1pbmlmeShlbnRyaWVzLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQoKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmV4cGFuZGVkQWZ0ZXJEZWxheS5zZXQodGhpcy5leHBhbmRlZCgpKSwgMTUwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWRBZnRlckRlbGF5LnNldCh0aGlzLmV4cGFuZGVkKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbWluaWZ5KCkge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JjZU1pbmlmeSgpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQWZ0ZXJEZWxheS5zZXQodGhpcy5leHBhbmRlZCgpKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+XG4gICAgICAgICAgICBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkucmVzZXRGb2N1cyhOYXZTZWxlY3Rvck1pbmlmeWluZy5taW5pZnkoZW50cmllcywgdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcmNlRXhwYW5kKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZEFmdGVyRGVsYXkuc2V0KHRoaXMuZXhwYW5kZWQoKSk7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PlxuICAgICAgICAgICAgTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LnJlc2V0Rm9jdXMoTmF2U2VsZWN0b3JNaW5pZnlpbmcuZXhwYW5kKGVudHJpZXMsIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGlvbkNoYW5nZSh1aWRzOiBzdHJpbmdbXSkge1xuICAgICAgICAvLyBBdm9pZCBpbmZpbml0ZSBsb29wIGlmIHlvdSBwdXQgdW5leGlzdGluZyB1aWRzIGFzIHNlbGVjdCB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIGVudHJpZXMgYnV0IHdpdGggZGlmZmVyZW50IHJlZmVyZW5jZVxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodWlkcykgPT09IEpTT04uc3RyaW5naWZ5KHRoaXMubGFzdFNlbGVjdGVkVWlkcygpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVWlkcy5zZXQodWlkcyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVWlkcyA9IHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyh0aGlzLmVudHJpZXMoKSk7XG4gICAgICAgIGNvbnN0IHVpZFRvU2VsZWN0ID0gdWlkcy5maWx0ZXIodWlkID0+IHNlbGVjdGVkVWlkcy5ldmVyeShzZWxlY3RlZFVpZCA9PiBzZWxlY3RlZFVpZCAhPT0gdWlkKSk7XG4gICAgICAgIGNvbnN0IHVpZFRvVW5zZWxlY3QgPSBzZWxlY3RlZFVpZHMuZmlsdGVyKHVpZCA9PiB1aWRzLmV2ZXJ5KHNlbGVjdGVkVWlkID0+IHNlbGVjdGVkVWlkICE9PSB1aWQpKTtcblxuICAgICAgICBpZiAoIXVpZFRvU2VsZWN0Lmxlbmd0aCAmJiAhdWlkVG9VbnNlbGVjdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbnRyaWVzID0gdGhpcy5lbnRyaWVzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHVpZCBvZiBbLi4udWlkVG9TZWxlY3QsIC4uLnVpZFRvVW5zZWxlY3RdKSB7XG4gICAgICAgICAgICAgICAgZW50cmllcyA9IE5hdlNlbGVjdG9yTXVsdGlTZWxlY3Quc2VsZWN0SW5NdWx0aXBsZU1vZGUoZW50cmllcywgdWlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgdWlkc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbnRyaWVzLnNldChlbnRyaWVzKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uU2VsZWN0ZWRVaWRzQ2hhbmdlKGNhbGxiYWNrOiAoc2VsZWN0ZWRVaWRzOiBzdHJpbmdbXSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXNOZXh0KGVudHJpZXMpKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXAoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXNQcmV2aW91cyhlbnRyaWVzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2xsZWN0U2VsZWN0ZWRVaWRzKGVudHJpZXM6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gZW50cmllcy5mbGF0TWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kZXRhaWxzRGlzcGxheWFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRldGFpbHMuZmxhdE1hcChkZXRhaWwgPT4gKGRldGFpbC5zZWxlY3RlZCA/IFtkZXRhaWwudWlkXSA6IFtdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5zZWxlY3RlZCA/IFtlbnRyeS51aWRdIDogW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyhlbnRyeS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9sZGluZ09wdGlvbnMoKTogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGU6IHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpLFxuICAgICAgICAgICAgbWluaWZpZWQ6ICF0aGlzLmV4cGFuZGVkKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZm9sZChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZvbGRpbmcuZm9sZChlbnRyaWVzLCBlbnRyeS51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIHVuZm9sZChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZvbGRpbmcudW5mb2xkKGVudHJpZXMsIGVudHJ5LnVpZCwgdGhpcy5nZXRGb2xkaW5nT3B0aW9ucygpKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlRGV0YWlsc0Rpc3BsYXllZExpbWl0KGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclZpZXdNb3JlLmNoYW5nZVZpZXdNb3JlRGV0YWlsc0Rpc3BsYXllZExpbWl0KGVudHJpZXMsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCkpO1xuICAgIH1cblxuICAgIHZpZXdNb3JlKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclZpZXdNb3JlLnZpZXdNb3JlKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgfVxuXG4gICAgdmlld0xlc3MobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yVmlld01vcmUudmlld0xlc3MoZW50cmllcywgbGVhZi51aWQpKTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './nav-selector-popover/nav-selector-popover-item.component';
2
- export * from './nav-selector.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgICBOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIE5hdlNlbGVjdG9yR3JvdXAsXG4gICAgTmF2U2VsZWN0b3JMZWFmLFxuICAgIE5hdlNlbGVjdG9yTGVhZkRldGFpbHMsXG4gICAgTmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHMsXG4gICAgTm9kZUFjY2Vzc2liaWxpdHksXG59IGZyb20gJy4vbmF2LXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbmF2LXNlbGVjdG9yLXBvcG92ZXIvbmF2LXNlbGVjdG9yLXBvcG92ZXItaXRlbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXYtc2VsZWN0b3IuY29tcG9uZW50JztcbiJdfQ==
@@ -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