@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,201 +0,0 @@
1
- import { IconButtonComponent } from '@agorapulse/ui-components/icon-button';
2
- import { InputSearchComponent } from '@agorapulse/ui-components/input-search';
3
- import { apArrowExpand, apArrowReduce, apSearch, SymbolComponent, withSymbols } from '@agorapulse/ui-symbol';
4
- import { animate, keyframes, style, transition, trigger } from '@angular/animations';
5
- import { NgTemplateOutlet } from '@angular/common';
6
- import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, effect, input, model, output, signal, untracked, } from '@angular/core';
7
- import { FormsModule } from '@angular/forms';
8
- import { NavSelectorCategoryComponent } from './nav-selector-category/nav-selector-category.component';
9
- import { NavSelectorGroupComponent } from './nav-selector-group/nav-selector-group.component';
10
- import { NavSelectorLeafComponent } from './nav-selector-leaf/nav-selector-leaf.component';
11
- import { NavSelectorState } from './nav-selector.state';
12
- import { NavSelectorAccessibility } from './utils/nav-selector.accessibility';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "./nav-selector.state";
15
- import * as i2 from "@angular/forms";
16
- const AUTO_MINIFIED_STATE_WIDTH_BREAKPOINT = 1280;
17
- const EXPAND_ANIMATION_TIMINGS = '250ms cubic-bezier(.4, 0, .3, 1)';
18
- const EXPANDED_STATE_WIDTH = '224px';
19
- const MINIFIED_STATE_WIDTH = '64px';
20
- let nextUniqueId = 0;
21
- export class NavSelectorComponent {
22
- navSelectorState;
23
- el;
24
- navSelectorEntries = input.required();
25
- translatedTexts = input.required();
26
- multipleModeEnabled = input(false);
27
- detailsDisplayedLimit = input(Number.MAX_SAFE_INTEGER);
28
- embedded = input(false);
29
- /**
30
- * If true, the nav selector will be expanded by default. Even if the width of the screen is smaller than 1280px.
31
- */
32
- forceExpanded = input(false);
33
- expandedStateLocalStorageKey = input();
34
- selectedEntryUids = model.required();
35
- actionClicked = output();
36
- headerProjection = contentChild('header');
37
- contentHeaderProjection = contentChild('contentHeader');
38
- footerProjection = contentChild('footer');
39
- displayFooter = computed(() => this.footerProjection() !== undefined);
40
- expansionState = computed(() => (this.navSelectorState.expanded() ? 'expanded' : 'minified'));
41
- onExpansionStateChange = output();
42
- componentUid = `nav-selector-${nextUniqueId++}`;
43
- ready = signal(false);
44
- constructor(navSelectorState, el) {
45
- this.navSelectorState = navSelectorState;
46
- this.el = el;
47
- navSelectorState.registerOnSelectedUidsChange(selectedUids => {
48
- const isInit = !!this.navSelectorState.entries().length;
49
- if (isInit) {
50
- this.selectedEntryUids.set(selectedUids);
51
- }
52
- });
53
- afterNextRender(() => {
54
- this.ready.set(true);
55
- });
56
- effect(() => {
57
- const expanded = this.navSelectorState.expanded();
58
- this.onExpansionStateChange.emit({ expanded });
59
- });
60
- effect(() => {
61
- const multipleModeEnabled = this.multipleModeEnabled();
62
- const newEntries = this.navSelectorEntries();
63
- untracked(() => {
64
- this.navSelectorState.updateMultiModeEnabled(multipleModeEnabled);
65
- if (!this.navSelectorState.entries().length) {
66
- this.navSelectorState.initEntries(newEntries, this.selectedEntryUids(), this.detailsDisplayedLimit());
67
- }
68
- else {
69
- this.navSelectorState.updateEntries(newEntries, this.selectedEntryUids(), this.detailsDisplayedLimit());
70
- }
71
- });
72
- });
73
- effect(() => {
74
- const detailsDisplayedLimit = this.detailsDisplayedLimit();
75
- untracked(() => this.navSelectorState.updateDetailsDisplayedLimit(detailsDisplayedLimit));
76
- });
77
- effect(() => {
78
- const selectedEntryUids = this.selectedEntryUids();
79
- const isInit = !!this.navSelectorState.entries().length;
80
- untracked(() => isInit && this.navSelectorState.onSelectionChange(selectedEntryUids));
81
- });
82
- effect(() => {
83
- const translatedTexts = this.translatedTexts();
84
- untracked(() => this.navSelectorState.updateTexts(translatedTexts));
85
- });
86
- }
87
- ngOnInit() {
88
- this.initializeExpandedState();
89
- }
90
- onMinifiedSearchClicked() {
91
- this.navSelectorState.toggleExpanded();
92
- setTimeout(() => this.el.nativeElement.querySelector('input').focus());
93
- }
94
- onArrowDown(event) {
95
- if (this.el.nativeElement.querySelector('.nav-selector__content').contains(document.activeElement)) {
96
- event.stopImmediatePropagation();
97
- this.navSelectorState.onArrowDown();
98
- setTimeout(() => {
99
- try {
100
- this.el.nativeElement.querySelector('[role="treeitem"][tabindex="0"]').focus();
101
- }
102
- catch (e) {
103
- // If the focus fails it mean we do not have an entry with tabindex 0, so we will not be able to focus any entry anymore.
104
- // Force reset in this case by rebuilding the entries and resetting the focus.
105
- console.error('[Nav selector] Failed to focus the next entry, resetting...', e);
106
- this.navSelectorState.updateEntries(this.navSelectorEntries(), this.selectedEntryUids(), this.detailsDisplayedLimit());
107
- this.navSelectorState.entries.update(entries => NavSelectorAccessibility.resetFocus(entries));
108
- }
109
- });
110
- }
111
- }
112
- onArrowUp(event) {
113
- if (this.el.nativeElement.querySelector('.nav-selector__content').contains(document.activeElement)) {
114
- event.stopImmediatePropagation();
115
- this.navSelectorState.onArrowUp();
116
- setTimeout(() => {
117
- try {
118
- this.el.nativeElement.querySelector('[role="treeitem"][tabindex="0"]').focus();
119
- }
120
- catch (e) {
121
- // If the focus fails it mean we do not have an entry with tabindex 0, so we will not be able to focus any entry anymore.
122
- // Force reset in this case by rebuilding the entries and resetting the focus.
123
- console.error('[Nav selector] Failed to focus the previous entry, resetting...', e);
124
- this.navSelectorState.updateEntries(this.navSelectorEntries(), this.selectedEntryUids(), this.detailsDisplayedLimit());
125
- this.navSelectorState.entries.update(entries => NavSelectorAccessibility.resetFocus(entries));
126
- }
127
- });
128
- }
129
- }
130
- onWindowResize() {
131
- if (!this.embedded() && !this.forceExpanded()) {
132
- if (this.navSelectorState.expanded() && window.innerWidth < AUTO_MINIFIED_STATE_WIDTH_BREAKPOINT) {
133
- this.navSelectorState.forceMinify();
134
- }
135
- else if (!this.navSelectorState.expanded() && window.innerWidth >= AUTO_MINIFIED_STATE_WIDTH_BREAKPOINT) {
136
- const expandedStateLocalStorageKey = this.expandedStateLocalStorageKey();
137
- if (!expandedStateLocalStorageKey || !localStorage.getItem(expandedStateLocalStorageKey)) {
138
- this.navSelectorState.forceExpand();
139
- }
140
- }
141
- }
142
- }
143
- initializeExpandedState() {
144
- if (!this.embedded() && !this.forceExpanded()) {
145
- // If the expanded state is stored in local storage, we need to initialize the expanded state accordingly
146
- const expandedStateLocalStorageKey = this.expandedStateLocalStorageKey();
147
- if (expandedStateLocalStorageKey && localStorage.getItem(expandedStateLocalStorageKey)) {
148
- if (localStorage.getItem(expandedStateLocalStorageKey) === 'true') {
149
- this.navSelectorState.forceExpand();
150
- }
151
- else {
152
- this.navSelectorState.forceMinify();
153
- }
154
- }
155
- else {
156
- this.onWindowResize();
157
- }
158
- }
159
- }
160
- clickExpandButton() {
161
- this.navSelectorState.toggleExpanded();
162
- const expandedStateLocalStorageKey = this.expandedStateLocalStorageKey();
163
- if (expandedStateLocalStorageKey) {
164
- localStorage.setItem(expandedStateLocalStorageKey, this.navSelectorState.expanded().toString());
165
- }
166
- }
167
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorComponent, deps: [{ token: i1.NavSelectorState }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
168
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: NavSelectorComponent, isStandalone: true, selector: "ap-nav-selector", inputs: { navSelectorEntries: { classPropertyName: "navSelectorEntries", publicName: "navSelectorEntries", isSignal: true, isRequired: true, transformFunction: null }, translatedTexts: { classPropertyName: "translatedTexts", publicName: "translatedTexts", isSignal: true, isRequired: true, transformFunction: null }, multipleModeEnabled: { classPropertyName: "multipleModeEnabled", publicName: "multipleModeEnabled", isSignal: true, isRequired: false, transformFunction: null }, detailsDisplayedLimit: { classPropertyName: "detailsDisplayedLimit", publicName: "detailsDisplayedLimit", isSignal: true, isRequired: false, transformFunction: null }, embedded: { classPropertyName: "embedded", publicName: "embedded", isSignal: true, isRequired: false, transformFunction: null }, forceExpanded: { classPropertyName: "forceExpanded", publicName: "forceExpanded", isSignal: true, isRequired: false, transformFunction: null }, expandedStateLocalStorageKey: { classPropertyName: "expandedStateLocalStorageKey", publicName: "expandedStateLocalStorageKey", isSignal: true, isRequired: false, transformFunction: null }, selectedEntryUids: { classPropertyName: "selectedEntryUids", publicName: "selectedEntryUids", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectedEntryUids: "selectedEntryUidsChange", actionClicked: "actionClicked", onExpansionStateChange: "onExpansionStateChange" }, host: { attributes: { "role": "tree" }, listeners: { "keydown.arrowDown": "onArrowDown($event)", "keydown.arrowUp": "onArrowUp($event)", "window:resize": "onWindowResize()" }, properties: { "class.minified": "!navSelectorState.expanded()", "class.embedded": "embedded()", "@expand": "expansionState()" } }, providers: [NavSelectorState, withSymbols(apArrowExpand, apArrowReduce, apSearch)], queries: [{ propertyName: "headerProjection", first: true, predicate: ["header"], descendants: true, isSignal: true }, { propertyName: "contentHeaderProjection", first: true, predicate: ["contentHeader"], descendants: true, isSignal: true }, { propertyName: "footerProjection", first: true, predicate: ["footer"], descendants: true, isSignal: true }], ngImport: i0, template: "<nav [class.embedded]=\"embedded()\">\n @let headerProjectionNotNull = headerProjection();\n @let contentHeaderProjectionNotNull = contentHeaderProjection();\n @let footerProjectionNotNull = footerProjection();\n\n <div class=\"nav-selector__header\">\n @if (!embedded()) {\n @if (navSelectorState.expanded()) {\n <span class=\"h3\">{{ translatedTexts().title }}</span>\n }\n\n <button\n type=\"button\"\n class=\"expand-button\"\n [class.expanded]=\"navSelectorState.expanded()\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"navSelectorState.expanded() ? 'arrow-reduce' : 'arrow-expand'\" />\n </button>\n }\n\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded(),\n }\" />\n }\n\n @if (navSelectorState.expanded()) {\n <ap-input-search\n [id]=\"componentUid + '_search'\"\n [placeholder]=\"translatedTexts().searchPlaceholder\"\n [ngModel]=\"navSelectorState.search()\"\n (ngModelChange)=\"navSelectorState.search.set($event ?? '')\" />\n } @else {\n <ap-icon-button\n (onClick)=\"onMinifiedSearchClicked()\"\n type=\"stroked\"\n role=\"search\">\n <ap-symbol symbolId=\"search\" />\n </ap-icon-button>\n }\n </div>\n\n <div\n class=\"nav-selector__content\"\n [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\"\n role=\"tree\">\n @if (contentHeaderProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"contentHeaderProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded(),\n }\" />\n }\n\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div\n class=\"entry\"\n [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf\n [leaf]=\"entry\"\n (actionClicked)=\"actionClicked.emit($event)\" />\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group\n [group]=\"entry\"\n (actionClicked)=\"actionClicked.emit($event)\" />\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category\n [category]=\"$any(entry)\"\n (actionClicked)=\"actionClicked.emit($event)\" />\n }\n </div>\n }\n }\n @if (navSelectorState.expanded() && navSelectorState.noResults()) {\n <div class=\"no-result\">{{ translatedTexts().noResults }}</div>\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded(),\n }\" />\n </div>\n }\n</nav>\n", styles: [":host,nav{width:224px}@media only screen and (min-width: 1400px){:host:not(.embedded),nav:not(.embedded){width:250px}:host:not(.embedded) .nav-selector__content,nav:not(.embedded) .nav-selector__content{width:250px}}:host{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;flex-grow:1}:host :hover .expand-button.expanded{animation-name:translateExpandButton}:host nav{display:flex;height:100%;flex-grow:1;flex-direction:column;align-items:flex-start;flex-shrink:0;overflow:hidden;background:var(--ref-color-white);transition:width .25s cubic-bezier(.4,0,.3,1)}:host nav:not(.embedded){border-right:1px solid var(--ref-color-grey-10)}:host .nav-selector__header{position:relative;display:flex;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;white-space:nowrap;border-bottom:1px solid var(--ref-color-grey-10);background:var(--ref-color-white)}:host .nav-selector__header .h3{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--sys-text-style-h3-size);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-lg)}:host .nav-selector__header .expand-button-container{position:absolute;right:0;top:var(--ref-spacing-xs)}:host .nav-selector__header .expand-button{animation-duration:70ms;animation-timing-function:cubic-bezier(0,0,.2,1);animation-fill-mode:forwards;animation-name:translateHideButton;display:flex;width:24px;height:24px;justify-content:center;align-items:center;background:var(--ref-color-grey-bg);border-top:1px solid var(--ref-color-grey-20);border-right:none;border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm);cursor:pointer}@keyframes translateHideButton{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes translateExpandButton{0%{transform:translate(100%)}to{transform:translate(0)}}:host .nav-selector__header .expand-button.expanded{position:absolute;right:0;top:12px;transform:translate(100%)}:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-reduce],:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-expand]{color:var(--ref-color-grey-80)}:host .nav-selector__header .expand-button:focus-visible{border-radius:var(--ref-border-radius-sm) 0px 0px var(--ref-border-radius-sm);border-top:1px solid var(--ref-color-grey-20);border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-10);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector__header .expand-button:focus-visible.expanded{animation-name:translateExpandButton}:host .nav-selector__header .expand-button:hover{background-color:var(--ref-color-grey-10)}:host .nav-selector__header .expand-button:active{background-color:var(--ref-color-grey-20)}:host .nav-selector__content{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;width:224px;overflow-y:scroll;overflow-x:hidden;transition:width .25s cubic-bezier(.4,0,.3,1)}:host .nav-selector__content .entry{align-self:stretch;display:flex;flex-direction:column}:host .nav-selector__content .entry.folder{padding:var(--ref-spacing-xxs);border-bottom:1px solid var(--sys-border-color-default)}:host .nav-selector__content .entry.folder+.entry:not(.folder){padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder){padding-left:var(--ref-spacing-xxs);padding-right:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):first-child{padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):last-child{padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):has(+.entry.folder){padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder)+.entry.folder{border-top:1px solid var(--sys-border-color-default)}:host .nav-selector__content .no-result{display:flex;padding:var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;color:var(--ref-color-grey-80);font-family:Averta;font-size:var(--ref-font-size-sm);font-style:italic;font-weight:400;line-height:var(--ref-font-line-height-sm)}:host .nav-selector__footer{display:flex;padding:var(--ref-spacing-xs);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;border-top:1px solid var(--sys-border-color-default);background:var(--ref-color-white)}:host.minified{width:64px}:host.minified nav{width:64px}:host.minified nav .nav-selector__header{align-items:center}:host.minified nav .nav-selector__header .expand-button{animation-name:none;border-radius:var(--ref-border-radius-sm);border:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-bg)}:host.minified nav .nav-selector__content{width:64px}:host.minified nav .nav-selector__content .entry{padding:var(--ref-spacing-xxxs)}:host.minified nav .nav-selector__footer{padding:var(--ref-spacing-xs) var(--ref-spacing-xxxs)}\n"], dependencies: [{ kind: "component", type: NavSelectorLeafComponent, selector: "ap-nav-selector-leaf", inputs: ["leaf"], outputs: ["actionClicked"] }, { kind: "component", type: NavSelectorGroupComponent, selector: "ap-nav-selector-group", inputs: ["group"], outputs: ["actionClicked"] }, { kind: "component", type: NavSelectorCategoryComponent, selector: "ap-nav-selector-category", inputs: ["category"], outputs: ["actionClicked"] }, { kind: "component", type: InputSearchComponent, selector: "ap-input-search", inputs: ["id", "placeholder", "clearable"], outputs: ["focus", "blur", "keyup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "component", type: IconButtonComponent, selector: "ap-icon-button", inputs: ["ariaLabel", "name", "color", "disabled", "menuTrigger", "symbolId", "locked", "loading", "type"], outputs: ["onClick", "onFocus", "onBlur", "menuOpened", "menuClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
169
- trigger('expand', [
170
- transition('expanded => minified', animate(EXPAND_ANIMATION_TIMINGS, keyframes([style({ width: EXPANDED_STATE_WIDTH }), style({ width: '100px' }), style({ width: MINIFIED_STATE_WIDTH })]))),
171
- transition('minified => expanded', animate(EXPAND_ANIMATION_TIMINGS, keyframes([style({ width: MINIFIED_STATE_WIDTH }), style({ width: '50%' }), style({ width: '100%' })]))),
172
- ]),
173
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
174
- }
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorComponent, decorators: [{
176
- type: Component,
177
- args: [{ selector: 'ap-nav-selector', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
178
- NavSelectorLeafComponent,
179
- NavSelectorGroupComponent,
180
- NavSelectorCategoryComponent,
181
- InputSearchComponent,
182
- FormsModule,
183
- SymbolComponent,
184
- IconButtonComponent,
185
- NgTemplateOutlet,
186
- ], providers: [NavSelectorState, withSymbols(apArrowExpand, apArrowReduce, apSearch)], host: {
187
- '[class.minified]': '!navSelectorState.expanded()',
188
- '[class.embedded]': 'embedded()',
189
- '[@expand]': 'expansionState()',
190
- role: 'tree',
191
- '(keydown.arrowDown)': 'onArrowDown($event)',
192
- '(keydown.arrowUp)': 'onArrowUp($event)',
193
- '(window:resize)': 'onWindowResize()',
194
- }, animations: [
195
- trigger('expand', [
196
- transition('expanded => minified', animate(EXPAND_ANIMATION_TIMINGS, keyframes([style({ width: EXPANDED_STATE_WIDTH }), style({ width: '100px' }), style({ width: MINIFIED_STATE_WIDTH })]))),
197
- transition('minified => expanded', animate(EXPAND_ANIMATION_TIMINGS, keyframes([style({ width: MINIFIED_STATE_WIDTH }), style({ width: '50%' }), style({ width: '100%' })]))),
198
- ]),
199
- ], template: "<nav [class.embedded]=\"embedded()\">\n @let headerProjectionNotNull = headerProjection();\n @let contentHeaderProjectionNotNull = contentHeaderProjection();\n @let footerProjectionNotNull = footerProjection();\n\n <div class=\"nav-selector__header\">\n @if (!embedded()) {\n @if (navSelectorState.expanded()) {\n <span class=\"h3\">{{ translatedTexts().title }}</span>\n }\n\n <button\n type=\"button\"\n class=\"expand-button\"\n [class.expanded]=\"navSelectorState.expanded()\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"navSelectorState.expanded() ? 'arrow-reduce' : 'arrow-expand'\" />\n </button>\n }\n\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded(),\n }\" />\n }\n\n @if (navSelectorState.expanded()) {\n <ap-input-search\n [id]=\"componentUid + '_search'\"\n [placeholder]=\"translatedTexts().searchPlaceholder\"\n [ngModel]=\"navSelectorState.search()\"\n (ngModelChange)=\"navSelectorState.search.set($event ?? '')\" />\n } @else {\n <ap-icon-button\n (onClick)=\"onMinifiedSearchClicked()\"\n type=\"stroked\"\n role=\"search\">\n <ap-symbol symbolId=\"search\" />\n </ap-icon-button>\n }\n </div>\n\n <div\n class=\"nav-selector__content\"\n [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\"\n role=\"tree\">\n @if (contentHeaderProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"contentHeaderProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded(),\n }\" />\n }\n\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div\n class=\"entry\"\n [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf\n [leaf]=\"entry\"\n (actionClicked)=\"actionClicked.emit($event)\" />\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group\n [group]=\"entry\"\n (actionClicked)=\"actionClicked.emit($event)\" />\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category\n [category]=\"$any(entry)\"\n (actionClicked)=\"actionClicked.emit($event)\" />\n }\n </div>\n }\n }\n @if (navSelectorState.expanded() && navSelectorState.noResults()) {\n <div class=\"no-result\">{{ translatedTexts().noResults }}</div>\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded(),\n }\" />\n </div>\n }\n</nav>\n", styles: [":host,nav{width:224px}@media only screen and (min-width: 1400px){:host:not(.embedded),nav:not(.embedded){width:250px}:host:not(.embedded) .nav-selector__content,nav:not(.embedded) .nav-selector__content{width:250px}}:host{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;flex-grow:1}:host :hover .expand-button.expanded{animation-name:translateExpandButton}:host nav{display:flex;height:100%;flex-grow:1;flex-direction:column;align-items:flex-start;flex-shrink:0;overflow:hidden;background:var(--ref-color-white);transition:width .25s cubic-bezier(.4,0,.3,1)}:host nav:not(.embedded){border-right:1px solid var(--ref-color-grey-10)}:host .nav-selector__header{position:relative;display:flex;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;white-space:nowrap;border-bottom:1px solid var(--ref-color-grey-10);background:var(--ref-color-white)}:host .nav-selector__header .h3{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--sys-text-style-h3-size);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-lg)}:host .nav-selector__header .expand-button-container{position:absolute;right:0;top:var(--ref-spacing-xs)}:host .nav-selector__header .expand-button{animation-duration:70ms;animation-timing-function:cubic-bezier(0,0,.2,1);animation-fill-mode:forwards;animation-name:translateHideButton;display:flex;width:24px;height:24px;justify-content:center;align-items:center;background:var(--ref-color-grey-bg);border-top:1px solid var(--ref-color-grey-20);border-right:none;border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm);cursor:pointer}@keyframes translateHideButton{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes translateExpandButton{0%{transform:translate(100%)}to{transform:translate(0)}}:host .nav-selector__header .expand-button.expanded{position:absolute;right:0;top:12px;transform:translate(100%)}:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-reduce],:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-expand]{color:var(--ref-color-grey-80)}:host .nav-selector__header .expand-button:focus-visible{border-radius:var(--ref-border-radius-sm) 0px 0px var(--ref-border-radius-sm);border-top:1px solid var(--ref-color-grey-20);border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-10);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector__header .expand-button:focus-visible.expanded{animation-name:translateExpandButton}:host .nav-selector__header .expand-button:hover{background-color:var(--ref-color-grey-10)}:host .nav-selector__header .expand-button:active{background-color:var(--ref-color-grey-20)}:host .nav-selector__content{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;width:224px;overflow-y:scroll;overflow-x:hidden;transition:width .25s cubic-bezier(.4,0,.3,1)}:host .nav-selector__content .entry{align-self:stretch;display:flex;flex-direction:column}:host .nav-selector__content .entry.folder{padding:var(--ref-spacing-xxs);border-bottom:1px solid var(--sys-border-color-default)}:host .nav-selector__content .entry.folder+.entry:not(.folder){padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder){padding-left:var(--ref-spacing-xxs);padding-right:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):first-child{padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):last-child{padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):has(+.entry.folder){padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder)+.entry.folder{border-top:1px solid var(--sys-border-color-default)}:host .nav-selector__content .no-result{display:flex;padding:var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;color:var(--ref-color-grey-80);font-family:Averta;font-size:var(--ref-font-size-sm);font-style:italic;font-weight:400;line-height:var(--ref-font-line-height-sm)}:host .nav-selector__footer{display:flex;padding:var(--ref-spacing-xs);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;border-top:1px solid var(--sys-border-color-default);background:var(--ref-color-white)}:host.minified{width:64px}:host.minified nav{width:64px}:host.minified nav .nav-selector__header{align-items:center}:host.minified nav .nav-selector__header .expand-button{animation-name:none;border-radius:var(--ref-border-radius-sm);border:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-bg)}:host.minified nav .nav-selector__content{width:64px}:host.minified nav .nav-selector__content .entry{padding:var(--ref-spacing-xxxs)}:host.minified nav .nav-selector__footer{padding:var(--ref-spacing-xs) var(--ref-spacing-xxxs)}\n"] }]
200
- }], ctorParameters: () => [{ type: i1.NavSelectorState }, { type: i0.ElementRef }] });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL25hdi1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy9uYXYtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDSCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBQ0wsS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVB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QUMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDekgsQ0FDSjs0QkFDRCxVQUFVLENBQ04sc0JBQXNCLEVBQ3RCLE9BQU8sQ0FDSCx3QkFBd0IsRUFDeEIsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3pHLENBQ0o7eUJBQ0osQ0FBQztxQkFDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2ljb24tYnV0dG9uJztcbmltcG9ydCB7IElucHV0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9pbnB1dC1zZWFyY2gnO1xuaW1wb3J0IHsgYXBBcnJvd0V4cGFuZCwgYXBBcnJvd1JlZHVjZSwgYXBTZWFyY2gsIFN5bWJvbENvbXBvbmVudCwgd2l0aFN5bWJvbHMgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgYW5pbWF0ZSwga2V5ZnJhbWVzLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGFmdGVyTmV4dFJlbmRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgY29udGVudENoaWxkLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE9uSW5pdCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yRW50cnksIE5hdlNlbGVjdG9yTGVhZkFjdGlvbkNsaWNrZWRFdmVudCwgTmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHMgfSBmcm9tICcuL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckNhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi9uYXYtc2VsZWN0b3ItY2F0ZWdvcnkvbmF2LXNlbGVjdG9yLWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9uYXYtc2VsZWN0b3ItZ3JvdXAvbmF2LXNlbGVjdG9yLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckxlYWZDb21wb25lbnQgfSBmcm9tICcuL25hdi1zZWxlY3Rvci1sZWFmL25hdi1zZWxlY3Rvci1sZWFmLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclN0YXRlIH0gZnJvbSAnLi9uYXYtc2VsZWN0b3Iuc3RhdGUnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IuYWNjZXNzaWJpbGl0eSc7XG5cbmNvbnN0IEFVVE9fTUlOSUZJRURfU1RBVEVfV0lEVEhfQlJFQUtQT0lOVCA9IDEyODA7XG5jb25zdCBFWFBBTkRfQU5JTUFUSU9OX1RJTUlOR1MgPSAnMjUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMywgMSknO1xuY29uc3QgRVhQQU5ERURfU1RBVEVfV0lEVEggPSAnMjI0cHgnO1xuY29uc3QgTUlOSUZJRURfU1RBVEVfV0lEVEggPSAnNjRweCc7XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLW5hdi1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5hdlNlbGVjdG9yTGVhZkNvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JHcm91cENvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JDYXRlZ29yeUNvbXBvbmVudCxcbiAgICAgICAgSW5wdXRTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtOYXZTZWxlY3RvclN0YXRlLCB3aXRoU3ltYm9scyhhcEFycm93RXhwYW5kLCBhcEFycm93UmVkdWNlLCBhcFNlYXJjaCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5taW5pZmllZF0nOiAnIW5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKScsXG4gICAgICAgICdbY2xhc3MuZW1iZWRkZWRdJzogJ2VtYmVkZGVkKCknLFxuICAgICAgICAnW0BleHBhbmRdJzogJ2V4cGFuc2lvblN0YXRlKCknLFxuICAgICAgICByb2xlOiAndHJlZScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24pJzogJ29uQXJyb3dEb3duKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dVcCknOiAnb25BcnJvd1VwKCRldmVudCknLFxuICAgICAgICAnKHdpbmRvdzpyZXNpemUpJzogJ29uV2luZG93UmVzaXplKCknLFxuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdleHBhbmQnLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICdleHBhbmRlZCA9PiBtaW5pZmllZCcsXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAgICAgRVhQQU5EX0FOSU1BVElPTl9USU1JTkdTLFxuICAgICAgICAgICAgICAgICAgICBrZXlmcmFtZXMoW3N0eWxlKHsgd2lkdGg6IEVYUEFOREVEX1NUQVRFX1dJRFRIIH0pLCBzdHlsZSh7IHdpZHRoOiAnMTAwcHgnIH0pLCBzdHlsZSh7IHdpZHRoOiBNSU5JRklFRF9TVEFURV9XSURUSCB9KV0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgJ21pbmlmaWVkID0+IGV4cGFuZGVkJyxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICBFWFBBTkRfQU5JTUFUSU9OX1RJTUlOR1MsXG4gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbc3R5bGUoeyB3aWR0aDogTUlOSUZJRURfU1RBVEVfV0lEVEggfSksIHN0eWxlKHsgd2lkdGg6ICc1MCUnIH0pLCBzdHlsZSh7IHdpZHRoOiAnMTAwJScgfSldKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdlNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBuYXZTZWxlY3RvckVudHJpZXMgPSBpbnB1dC5yZXF1aXJlZDxOYXZTZWxlY3RvckVudHJ5W10+KCk7XG4gICAgdHJhbnNsYXRlZFRleHRzID0gaW5wdXQucmVxdWlyZWQ8TmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHM+KCk7XG4gICAgbXVsdGlwbGVNb2RlRW5hYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCA9IGlucHV0PG51bWJlcj4oTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO1xuICAgIGVtYmVkZGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhlIG5hdiBzZWxlY3RvciB3aWxsIGJlIGV4cGFuZGVkIGJ5IGRlZmF1bHQuIEV2ZW4gaWYgdGhlIHdpZHRoIG9mIHRoZSBzY3JlZW4gaXMgc21hbGxlciB0aGFuIDEyODBweC5cbiAgICAgKi9cbiAgICBmb3JjZUV4cGFuZGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgICBzZWxlY3RlZEVudHJ5VWlkcyA9IG1vZGVsLnJlcXVpcmVkPHN0cmluZ1tdPigpO1xuXG4gICAgYWN0aW9uQ2xpY2tlZCA9IG91dHB1dDxOYXZTZWxlY3RvckxlYWZBY3Rpb25DbGlja2VkRXZlbnQ+KCk7XG5cbiAgICBoZWFkZXJQcm9qZWN0aW9uID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPHVua25vd24+PignaGVhZGVyJyk7XG4gICAgY29udGVudEhlYWRlclByb2plY3Rpb24gPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCdjb250ZW50SGVhZGVyJyk7XG4gICAgZm9vdGVyUHJvamVjdGlvbiA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oJ2Zvb3RlcicpO1xuXG4gICAgZGlzcGxheUZvb3RlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9vdGVyUHJvamVjdGlvbigpICE9PSB1bmRlZmluZWQpO1xuXG4gICAgZXhwYW5zaW9uU3RhdGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5uYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCkgPyAnZXhwYW5kZWQnIDogJ21pbmlmaWVkJykpO1xuXG4gICAgb25FeHBhbnNpb25TdGF0ZUNoYW5nZSA9IG91dHB1dDx7IGV4cGFuZGVkOiBib29sZWFuIH0+KCk7XG5cbiAgICBjb21wb25lbnRVaWQgPSBgbmF2LXNlbGVjdG9yLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIHJlYWR5ID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmF2U2VsZWN0b3JTdGF0ZTogTmF2U2VsZWN0b3JTdGF0ZSxcbiAgICAgICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZlxuICAgICkge1xuICAgICAgICBuYXZTZWxlY3RvclN0YXRlLnJlZ2lzdGVyT25TZWxlY3RlZFVpZHNDaGFuZ2Uoc2VsZWN0ZWRVaWRzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzSW5pdCA9ICEhdGhpcy5uYXZTZWxlY3RvclN0YXRlLmVudHJpZXMoKS5sZW5ndGg7XG4gICAgICAgICAgICBpZiAoaXNJbml0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVudHJ5VWlkcy5zZXQoc2VsZWN0ZWRVaWRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVhZHkuc2V0KHRydWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhwYW5kZWQgPSB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKTtcbiAgICAgICAgICAgIHRoaXMub25FeHBhbnNpb25TdGF0ZUNoYW5nZS5lbWl0KHsgZXhwYW5kZWQgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtdWx0aXBsZU1vZGVFbmFibGVkID0gdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCk7XG4gICAgICAgICAgICBjb25zdCBuZXdFbnRyaWVzID0gdGhpcy5uYXZTZWxlY3RvckVudHJpZXMoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZU11bHRpTW9kZUVuYWJsZWQobXVsdGlwbGVNb2RlRW5hYmxlZCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZW50cmllcygpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuaW5pdEVudHJpZXMobmV3RW50cmllcywgdGhpcy5zZWxlY3RlZEVudHJ5VWlkcygpLCB0aGlzLmRldGFpbHNEaXNwbGF5ZWRMaW1pdCgpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudXBkYXRlRW50cmllcyhuZXdFbnRyaWVzLCB0aGlzLnNlbGVjdGVkRW50cnlVaWRzKCksIHRoaXMuZGV0YWlsc0Rpc3BsYXllZExpbWl0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGV0YWlsc0Rpc3BsYXllZExpbWl0ID0gdGhpcy5kZXRhaWxzRGlzcGxheWVkTGltaXQoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudXBkYXRlRGV0YWlsc0Rpc3BsYXllZExpbWl0KGRldGFpbHNEaXNwbGF5ZWRMaW1pdCkpO1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbnRyeVVpZHMgPSB0aGlzLnNlbGVjdGVkRW50cnlVaWRzKCk7XG4gICAgICAgICAgICBjb25zdCBpc0luaXQgPSAhIXRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzKCkubGVuZ3RoO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IGlzSW5pdCAmJiB0aGlzLm5hdlNlbGVjdG9yU3RhdGUub25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWRFbnRyeVVpZHMpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0cyA9IHRoaXMudHJhbnNsYXRlZFRleHRzKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZVRleHRzKHRyYW5zbGF0ZWRUZXh0cykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRXhwYW5kZWRTdGF0ZSgpO1xuICAgIH1cblxuICAgIG9uTWluaWZpZWRTZWFyY2hDbGlja2VkKCkge1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpKTtcbiAgICB9XG5cbiAgICBvbkFycm93RG93bihldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubmF2LXNlbGVjdG9yX19jb250ZW50JykuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLm9uQXJyb3dEb3duKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJ0cmVlaXRlbVwiXVt0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZvY3VzIGZhaWxzIGl0IG1lYW4gd2UgZG8gbm90IGhhdmUgYW4gZW50cnkgd2l0aCB0YWJpbmRleCAwLCBzbyB3ZSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZvY3VzIGFueSBlbnRyeSBhbnltb3JlLlxuICAgICAgICAgICAgICAgICAgICAvLyBGb3JjZSByZXNldCBpbiB0aGlzIGNhc2UgYnkgcmVidWlsZGluZyB0aGUgZW50cmllcyBhbmQgcmVzZXR0aW5nIHRoZSBmb2N1cy5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW05hdiBzZWxlY3Rvcl0gRmFpbGVkIHRvIGZvY3VzIHRoZSBuZXh0IGVudHJ5LCByZXNldHRpbmcuLi4nLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZUVudHJpZXModGhpcy5uYXZTZWxlY3RvckVudHJpZXMoKSwgdGhpcy5zZWxlY3RlZEVudHJ5VWlkcygpLCB0aGlzLmRldGFpbHNEaXNwbGF5ZWRMaW1pdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LnJlc2V0Rm9jdXMoZW50cmllcykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcnJvd1VwKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXYtc2VsZWN0b3JfX2NvbnRlbnQnKS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUub25BcnJvd1VwKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJ0cmVlaXRlbVwiXVt0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZvY3VzIGZhaWxzIGl0IG1lYW4gd2UgZG8gbm90IGhhdmUgYW4gZW50cnkgd2l0aCB0YWJpbmRleCAwLCBzbyB3ZSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZvY3VzIGFueSBlbnRyeSBhbnltb3JlLlxuICAgICAgICAgICAgICAgICAgICAvLyBGb3JjZSByZXNldCBpbiB0aGlzIGNhc2UgYnkgcmVidWlsZGluZyB0aGUgZW50cmllcyBhbmQgcmVzZXR0aW5nIHRoZSBmb2N1cy5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW05hdiBzZWxlY3Rvcl0gRmFpbGVkIHRvIGZvY3VzIHRoZSBwcmV2aW91cyBlbnRyeSwgcmVzZXR0aW5nLi4uJywgZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS51cGRhdGVFbnRyaWVzKHRoaXMubmF2U2VsZWN0b3JFbnRyaWVzKCksIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMoKSwgdGhpcy5kZXRhaWxzRGlzcGxheWVkTGltaXQoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eS5yZXNldEZvY3VzKGVudHJpZXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uV2luZG93UmVzaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuZW1iZWRkZWQoKSAmJiAhdGhpcy5mb3JjZUV4cGFuZGVkKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IEFVVE9fTUlOSUZJRURfU1RBVEVfV0lEVEhfQlJFQUtQT0lOVCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5mb3JjZU1pbmlmeSgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5uYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCkgJiYgd2luZG93LmlubmVyV2lkdGggPj0gQVVUT19NSU5JRklFRF9TVEFURV9XSURUSF9CUkVBS1BPSU5UKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSA9IHRoaXMuZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSgpO1xuICAgICAgICAgICAgICAgIGlmICghZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSB8fCAhbG9jYWxTdG9yYWdlLmdldEl0ZW0oZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlRXhwYW5kKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRXhwYW5kZWRTdGF0ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVtYmVkZGVkKCkgJiYgIXRoaXMuZm9yY2VFeHBhbmRlZCgpKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgZXhwYW5kZWQgc3RhdGUgaXMgc3RvcmVkIGluIGxvY2FsIHN0b3JhZ2UsIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZXhwYW5kZWQgc3RhdGUgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkgPSB0aGlzLmV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkoKTtcbiAgICAgICAgICAgIGlmIChleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5ICYmIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlRXhwYW5kKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlTWluaWZ5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2luZG93UmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGlja0V4cGFuZEJ1dHRvbigpIHtcbiAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIGNvbnN0IGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkgPSB0aGlzLmV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkoKTtcbiAgICAgICAgaWYgKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXksIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdiBbY2xhc3MuZW1iZWRkZWRdPVwiZW1iZWRkZWQoKVwiPlxuICAgIEBsZXQgaGVhZGVyUHJvamVjdGlvbk5vdE51bGwgPSBoZWFkZXJQcm9qZWN0aW9uKCk7XG4gICAgQGxldCBjb250ZW50SGVhZGVyUHJvamVjdGlvbk5vdE51bGwgPSBjb250ZW50SGVhZGVyUHJvamVjdGlvbigpO1xuICAgIEBsZXQgZm9vdGVyUHJvamVjdGlvbk5vdE51bGwgPSBmb290ZXJQcm9qZWN0aW9uKCk7XG5cbiAgICA8ZGl2IGNsYXNzPVwibmF2LXNlbGVjdG9yX19oZWFkZXJcIj5cbiAgICAgICAgQGlmICghZW1iZWRkZWQoKSkge1xuICAgICAgICAgICAgQGlmIChuYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImgzXCI+e3sgdHJhbnNsYXRlZFRleHRzKCkudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5leHBhbmRlZF09XCJuYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0V4cGFuZEJ1dHRvbigpXCI+XG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwibmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpID8gJ2Fycm93LXJlZHVjZScgOiAnYXJyb3ctZXhwYW5kJ1wiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoaGVhZGVyUHJvamVjdGlvbk5vdE51bGwpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJQcm9qZWN0aW9uTm90TnVsbFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IG5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKSxcbiAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAobmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpKSB7XG4gICAgICAgICAgICA8YXAtaW5wdXQtc2VhcmNoXG4gICAgICAgICAgICAgICAgW2lkXT1cImNvbXBvbmVudFVpZCArICdfc2VhcmNoJ1wiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZWRUZXh0cygpLnNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJuYXZTZWxlY3RvclN0YXRlLnNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJuYXZTZWxlY3RvclN0YXRlLnNlYXJjaC5zZXQoJGV2ZW50ID8/ICcnKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGFwLWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25NaW5pZmllZFNlYXJjaENsaWNrZWQoKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN0cm9rZWRcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJzZWFyY2hcIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwic2VhcmNoXCIgLz5cbiAgICAgICAgICAgIDwvYXAtaWNvbi1idXR0b24+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2NvbnRlbnRcIlxuICAgICAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJuYXZTZWxlY3RvclN0YXRlLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpXCJcbiAgICAgICAgcm9sZT1cInRyZWVcIj5cbiAgICAgICAgQGlmIChjb250ZW50SGVhZGVyUHJvamVjdGlvbk5vdE51bGwpIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50SGVhZGVyUHJvamVjdGlvbk5vdE51bGxcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkOiBuYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCksXG4gICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgIH1cblxuICAgICAgICBAZm9yIChlbnRyeSBvZiBuYXZTZWxlY3RvclN0YXRlLmVudHJpZXMoKTsgdHJhY2sgZW50cnkudWlkKSB7XG4gICAgICAgICAgICBAaWYgKCFlbnRyeS5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZW50cnlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZm9sZGVyXT1cImVudHJ5LnR5cGUgPT09ICdHUk9VUCcgfHwgZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJ1wiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGVudHJ5LnR5cGUgPT09ICdMRUFGJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1sZWFmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xlYWZdPVwiZW50cnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpb25DbGlja2VkKT1cImFjdGlvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gJ0dST1VQJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1ncm91cFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJlbnRyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZC5lbWl0KCRldmVudClcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChlbnRyeS50eXBlID09PSAnQ0FURUdPUlknKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWNhdGVnb3J5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhdGVnb3J5XT1cIiRhbnkoZW50cnkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2tlZCk9XCJhY3Rpb25DbGlja2VkLmVtaXQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKG5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKSAmJiBuYXZTZWxlY3RvclN0YXRlLm5vUmVzdWx0cygpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0XCI+e3sgdHJhbnNsYXRlZFRleHRzKCkubm9SZXN1bHRzIH19PC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoZGlzcGxheUZvb3RlcigpICYmIGZvb3RlclByb2plY3Rpb25Ob3ROdWxsKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2Zvb3RlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclByb2plY3Rpb25Ob3ROdWxsXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogbmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpLFxuICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25hdj5cbiJdfQ==
@@ -1,9 +0,0 @@
1
- export const isNavSelectorEntryALeaf = (entry) => entry.type === 'LEAF';
2
- export const isNavSelectorEntryAGroup = (entry) => entry.type === 'GROUP';
3
- export const isNavSelectorEntryACategory = (entry) => entry.type === 'CATEGORY';
4
- export const isInternalNavSelectorEntryALeaf = (entry) => entry.type === 'LEAF';
5
- export const isInternalNavSelectorEntryANode = (entry) => `children` in entry;
6
- export const isInternalNavSelectorEntryACategory = (entry) => entry.type === 'CATEGORY';
7
- export const isInternalNavSelectorEntryAGroup = (entry) => entry.type === 'GROUP';
8
- export const isInternalNavSelectorEntryALeafDetails = (entry) => entry.type === 'LEAF_DETAILS';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZIQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQXVCLEVBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUVwSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQXVCLEVBQTZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQThKaEksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxLQUErQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7QUFFNUksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FDM0MsS0FBK0IsRUFDZ0MsRUFBRSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxLQUErQixFQUF3QyxFQUFFLENBQ3pILEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBK0IsRUFBcUMsRUFBRSxDQUNuSCxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEtBQStCLEVBQTJDLEVBQUUsQ0FDL0gsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmF0YXJOZXR3b3JrIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckxlYWZBY3Rpb25DbGlja2VkRXZlbnQgPSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIGFjdGlvbiB0aGF0IGhhcyBiZWVuIGNsaWNrZWQgKi9cbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgLyoqIExlYWYgb24gd2hpY2ggdGhlIGFjdGlvbiBoYXMgYmVlbiBjbGlja2VkICovXG4gICAgbGVhZlVpZDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBcyB0cmFuc2xhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBEUywgdGhpcyBhbGwgdHJhbnNsYXRpb25zIG5lZWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzIHtcbiAgICAvKiogVGl0bGUgb2YgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqIE9ubHkgdGV4dCBpbiBtdWx0aSBzZWxlY3QgbW9kZSAqL1xuICAgIG9ubHk6IHN0cmluZztcbiAgICAvKiogVG9vbHRpcCBkaXNwbGF5ZWQgb24gZm9sZGVkIGdyb3VwIHdoZW4gb25lIG9mIGl0cyBjaGlsZHJlbiBoYXZlIHRva2VuIGlzIGludmFsaWQgKi9cbiAgICBncm91cFRva2VuSW52YWxpZDogc3RyaW5nO1xuICAgIC8qKiBUb29saXAgZGlzcGxheWluZyB0aGF0IHRva2VuIGlzIGludmFsaWQgKi9cbiAgICB0b2tlbkludmFsaWQ6IHN0cmluZztcbiAgICAvKiogVG9vbGlwIGRpc3BsYXlpbmcgdGhhdCBmZWF0dXJlIGlzIGxvY2tlZCAqL1xuICAgIGZlYXR1cmVMb2NrZWQ6IHN0cmluZztcbiAgICAvKiogcGxhY2Vob2xkZXIgZm9yIHRoZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIC8qKiBUZXh0IGRpc3BsYXllZCB3aGVuIHRoZSBzZWFyY2ggcmV0dXJuIG5vIHJlc3VsdHMgKi9cbiAgICBub1Jlc3VsdHM6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbW9yZSBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld01vcmU6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbGVzcyBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld0xlc3M6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tb24gaW50ZXJmYWNlIGZvciB0aGUgTmF2U2VsZWN0b3JcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JCYXNlTm9kZSA9IHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vZGUgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBhbGlhczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYW4gYWN0aW9uIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiBhIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yTGVhZiA9IHtcbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5LCB0byBpZ25vcmUgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBXaGVuIHRydWUsIHRoZSBsZWFmIHdpbGwgYmUgaGlkZGVuICovXG4gICAgbWlzc2luZ1Blcm1pc3Npb246IGJvb2xlYW47XG4gICAgLyoqIEZvciBzb2NpYWwgcHJvZmlsZXMgb3IgYWQgYWNjb3VudHMgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBUcmFuc2xhdGVkIHRleHQgd2hlbiB0aGUgZW50cnkgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaGFzIGl0cyB0b2tlbiBpbnZhbGlkICovXG4gICAgdG9rZW5JbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaXMgbG9ja2VkICovXG4gICAgZmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogU3ViIGVsZW1lbnRzIG9mIHRoZSBsZWFmLCB0aGV5IGFyZSBvcHRpb25hbCAqL1xuICAgIGRldGFpbHM6IE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICAvKiogT3B0aW9uYWwgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gdGhlIGxlYWYgKi9cbiAgICBhY3Rpb25zOiBOYXZTZWxlY3RvckxlYWZBY3Rpb25bXTtcbiAgICB0eXBlOiAnTEVBRic7XG59ICYgTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBncm91cCBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHVzZXIgKGV4OiBtZW51R3JvdXApXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogTmF2U2VsZWN0b3JMZWFmW107XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgc2hvdWxkIGJlIGZvbGRlZCBvciBleHBhbmRlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGEgY2F0ZWdvcnkgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBwcm9kdWN0IHRvIHNlcGFyYXRlIGRpZmZlcmVudCBraW5kIG9mIGVudHJpZXMgKGV4OiBzb2NpYWwgcHJvZmlsZXMsIHJlcG9ydHMsIGFkIGFjY291bnRz4oCmKVxuICovXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckNhdGVnb3J5ID0ge1xuICAgIC8qKiBBIENhdGVnb3J5IGNhbiBoYXZlIGxlYXZlcyBvciBncm91cHMgYXMgY2hpbGRyZW4sIHlvdSBjYW4gaGF2ZSBsZWF2ZXMgYWxvbmdzaWRlIHdpdGggZ3JvdXBzICovXG4gICAgY2hpbGRyZW46IChOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwKVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBmb2xkZWQgb3IgZXhwYW5kZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSBuYXYgc2VsZWN0b3IgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgLyoqIFRpdGxlIG9mIHRoZSBlbXB0eSBzdGF0ZSAqL1xuICAgIGVtcHR5U3RhdGVUaXRsZT86IHN0cmluZztcbiAgICB0eXBlOiAnQ0FURUdPUlknO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yRW50cnkgPSBOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwIHwgTmF2U2VsZWN0b3JDYXRlZ29yeTtcblxuLyoqXG4gKiBSZXByZXNlbnQgZGV0YWlscyBvZiBhIGxlYWYsIHRoZXkgYXJlIHVzZWQgdG8gYWxsb3cgdG8gZGlzcGxheSBtb3JlIHNwZWNpZmljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBsZWFmXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2U2VsZWN0b3JMZWFmRGV0YWlscyB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBub2RlICovXG4gICAgdWlkOiBzdHJpbmc7XG4gICAgLyoqIENvdW50ZXIgdG8gZGlzcGxheSBvbiB0aGUgZW50cnkgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBJZiB0cnVlLCBleGNsdWRlcyB0aGlzIGZyb20gdGhlIGNvdW50ZXIgc3VtICovXG4gICAgZXhjbHVkZWRDb3VudGVyU3VtOiBib29sZWFuO1xuICAgIC8qKiBEaXNwbGF5ZWQgbmFtZSBvZiB0aGUgbm9kZSAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVHJhbnNsYXRpb24gb2YgdGhlIGVycm9yIG9uIHRoZSBsZWFmICovXG4gICAgZXJyb3JSZWFzb246IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBTGVhZiA9IChlbnRyeTogTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIE5hdlNlbGVjdG9yTGVhZiA9PiBlbnRyeS50eXBlID09PSAnTEVBRic7XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBR3JvdXAgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3Rvckdyb3VwID0+IGVudHJ5LnR5cGUgPT09ICdHUk9VUCc7XG5cbmV4cG9ydCBjb25zdCBpc05hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3RvckNhdGVnb3J5ID0+IGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSc7XG5cbi8qKlxuICogUmVwcmVzZW50IHRoZSBhY2Nlc3NpYmlsaXR5IG9uIGEgbm9kZVxuICovXG5leHBvcnQgdHlwZSBOb2RlQWNjZXNzaWJpbGl0eSA9IHtcbiAgICAvKiogTnVtYmVyIG9mIHNpYmxpbmcgZWxlbWVudHMsIGl0c2VsZiBpbmNsdWRlZC4gRXg6IHRoZXJlIGFyZSA3IHNvY2lhbCBwcm9maWxlcyBkaXNwbGF5IGluIHRoZSBncm91cCAqL1xuICAgIGFyaWFTZXRzaXplOiBudW1iZXI7XG4gICAgLyoqIEluZGV4IHN0YXJ0aW5nIGZyb20gMSBvZiB0aGUgZWxlbWVudCBhbG9uZ3NpZGUgaXRzIHNpYmxpbmcgKi9cbiAgICBhcmlhUG9zaW5zZXQ6IG51bWJlcjtcbiAgICAvKiogMCB0byBiZSBmb2N1c2FibGUgYnkgVGFiIGtleSBhbmQgLTEgdG8gYmUgZm9jdXNhYmxlIGJ5IGtleWJvYXJkIHdpdGggSlMgKi9cbiAgICB0YWJJbmRleDogbnVtYmVyO1xuICAgIC8qKiBJbiBhIHRyZWUsIHRoZSBkZWVwIGxldmVsLCBzdGFydGluZyBmcm9tIDEgKi9cbiAgICBhcmlhTGV2ZWw6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBhIG5vZGVcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZW50cnkgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIGVudHJ5ICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICBhY2Nlc3NpYmlsaXR5OiBOb2RlQWNjZXNzaWJpbGl0eTtcbiAgICAvKiogV2hlbiBoaWRkZW4sIHRoZSBlbnRyeSBpcyBub3QgZGlzcGxheWVkLCB1c2VkIHdoZW4gc2VhcmNoaW5nIGFuIGVsZW1lbnQgKi9cbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgLyoqIFdoZW4gdHJ1ZSwgeW91IGNhbiBuYXZpZ2F0ZSB3aXRoIGFycm93IGtleXMgb24gdGhpcyBlbnRyeSAqL1xuICAgIGZvY3VzYWJsZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50IGEgZ3JvdXAgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSB1c2VyIChleDogbWVudUdyb3VwKVxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZbXTtcbiAgICAvKiogUGljdHVyZSB1cmwgb2YgdGhlIGdyb3VwLCB1c2VkIHdoZW4gdGhlIG5hdiBzZWxlY3RvciBpcyBtaW5pZmllZCAqL1xuICAgIGNoaWxkcmVuUGljdHVyZVVybFNhbXBsZTogeyB1cmw6IHN0cmluZyB8IG51bGw7IGluaXRpYWw6IHN0cmluZyB9W107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgZ3JvdXAgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBjb3VudGVyIHZhbHVlIHRvIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgc2hvdWxkIGJlIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5IHdoZW4gdGhlIGdyb3VwIGlzIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpbiBtdWx0aSBzZWxlY3QgbW9kZSBpZiB0aGUgZ3JvdXAgaGFzIHNvbWUgY2hpbGRyZW4gc2VsZWN0ZWQgKi9cbiAgICB1bmRldGVybWluZWRTZWxlY3Rpb246IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBncm91cCBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIEludGVybmFsTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBjYXRlZ29yeSBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHByb2R1Y3QgdG8gc2VwYXJhdGUgZGlmZmVyZW50IGtpbmQgb2YgZW50cmllcyAoZXg6IHNvY2lhbCBwcm9maWxlcywgcmVwb3J0cywgYWQgYWNjb3VudHPigKYpXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9IHtcbiAgICAvKiogQSBDYXRlZ29yeSBjYW4gaGF2ZSBsZWF2ZXMgb3IgZ3JvdXBzIGFzIGNoaWxkcmVuLCB5b3UgY2FuIGhhdmUgbGVhdmVzIGFsb25nc2lkZSB3aXRoIGdyb3VwcyAqL1xuICAgIGNoaWxkcmVuOiAoSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpW107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgY2F0ZWdvcnkgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogVGl0bGUgb2YgdGhlIGVtcHR5IHN0YXRlICovXG4gICAgZW1wdHlTdGF0ZVRpdGxlPzogc3RyaW5nO1xuICAgIHR5cGU6ICdDQVRFR09SWSc7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JMZWFmID0ge1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGFjdGlvbnMgZHJvcGRvd24gY291bGQgYmUgZGlzcGxheS4gU2hvdWxkIG5vdCBiZSBkaXNwbGF5IGlmIHRoZSBsZWFmIGhhcyBhbiBlcnJvciBzdGF0dXMuICovXG4gICAgYWN0aW9uc0Rpc3BsYXlhYmxlOiBib29sZWFuO1xuICAgIC8qKiBBY3Rpb25zIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgbGVhZiAqL1xuICAgIGFjdGlvbnM6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmQWN0aW9uW107XG4gICAgLyoqIFBpY3R1cmUgdXJsIHRvIGRpc3BsYXkgb24gdGhlIGF2YXRhciwgb3B0aW9uYWwgKi9cbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgY291bGQgYmUgZGlzcGxheS4gVGhlIGxlYWYgc2hvdWxkIG5vdCBiZSBkaXNhYmxlZCwgZmVhdHVyZSBsb2NrZWQgb3IgaGFzIHRva2VuIGludmFsaWQgKi9cbiAgICBjb3VudGVyRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5LiBTbyB3aGVuIGRpc3BsYXlhYmxlIHdoZW4gbm8gZGV0YWlscyBvciBmb2xkZWQgKi9cbiAgICBkaXNwbGF5Q291bnRlcjogYm9vbGVhbjtcbiAgICAvKiogQ291bnRlciB2YWx1ZSB0byBkaXNwbGF5ICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHRva2VuIGludmFsaWQgaWNvbiBzaG91bGQgYmUgZGlzcGxheSAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZmVhdHVyZSBpcyBsb2NrZWQgKi9cbiAgICBkaXNwbGF5RmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIGRpc2FibGVkICovXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBkaXNhYmxlZCByZWFzb24gdG8gZGlzcGxheSBpbiB0b29sdGlwICovXG4gICAgZGlzYWJsZVJlYXNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIHNlbGVjdGVkICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogRm9yIHNvY2lhbCBwcm9maWxlcyBvciBhZCBhY2NvdW50cywgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgZm9sZGFibGUuIFNvIHdoZW4gaXQgaGFzIGRldGFpbHMgYW5kIG5vIGVycm9yIHN0YXR1cyAqL1xuICAgIGZvbGRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgZm9sZGVkICovXG4gICAgZm9sZGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaGFzIG9uZSBvZiBpdHMgZGV0YWlscyBzZWxlY3RlZCAqL1xuICAgIGRldGFpbFNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgYW5kIHRoZXkgYXJlIGRpc3BsYXlhYmxlLiBTbyBubyBlcnJvciBzdGF0dXMgKi9cbiAgICBkZXRhaWxzRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIERldGFpbHMgb2YgdGhlIGxlYWYgKi9cbiAgICBkZXRhaWxzOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICB0eXBlOiAnTEVBRic7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdmlldyBtb3JlIHNlY3Rpb24gc2hvdWxkIGJlIGRpc3BsYXkgZm9yIGRldGFpbHMgKi9cbiAgICB2aWV3TW9yZURpc3BsYXlhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHZpZXcgbW9yZSBvciB2aWV3IGxlc3MgYnV0dG9uIGlzIGRpc3BsYXllZCAqL1xuICAgIHZpZXdNb3JlRGlzcGxheWVkOiBib29sZWFuO1xuICAgIC8qKiBOdW1iZXIgb2YgZGV0YWlscyB0byBkaXNwbGF5IHdoZW4gdGhlIHZpZXcgbW9yZSBpcyBub3QgY2xpY2tlZCAqL1xuICAgIHZpZXdNb3JlRGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXI7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG4vKipcbiAqIFJlcHJlc2VudCBkZXRhaWxzIG9mIGEgbGVhZiwgdGhleSBhcmUgdXNlZCB0byBhbGxvdyB0byBkaXNwbGF5IG1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm9kZSAqL1xuICAgIHVpZDogc3RyaW5nO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGRldGFpbCAqL1xuICAgIGNvdW50ZXI6IG51bWJlcjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb3VudGVyIHNob3VsZCBiZSBkaXNwbGF5LiBTbyBubyBlcnJvciBvbiB0aGUgZGV0YWlsICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIERpc3BsYXllZCBuYW1lIG9mIHRoZSBub2RlICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBkZXRhaWwgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHdlIHNob3VsZCBkaXNwbGF5IGFuIGVycm9yIGljb24gKi9cbiAgICBkaXNwbGF5RXJyb3I6IGJvb2xlYW47XG4gICAgLyoqIFRyYW5zbGF0ZWQgdGV4dCB0byBkaXNwbGF5IGluIHRoZSB0b29sdGlwICovXG4gICAgZXJyb3JSZWFzb246IHN0cmluZyB8IG51bGw7XG4gICAgdHlwZTogJ0xFQUZfREVUQUlMUyc7XG59ICYgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkgPVxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZcbiAgICB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cFxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5XG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHM7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiA9PiBlbnRyeS50eXBlID09PSAnTEVBRic7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlID0gKFxuICAgIGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlcbik6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSB8IEludGVybmFsTmF2U2VsZWN0b3JHcm91cCA9PiBgY2hpbGRyZW5gIGluIGVudHJ5O1xuXG5leHBvcnQgY29uc3QgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBQ2F0ZWdvcnkgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9PlxuICAgIGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSc7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cCA9IChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwID0+XG4gICAgZW50cnkudHlwZSA9PT0gJ0dST1VQJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZEZXRhaWxzID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMgPT5cbiAgICBlbnRyeS50eXBlID09PSAnTEVBRl9ERVRBSUxTJztcbiJdfQ==
@@ -1,207 +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
- isMultipleModeEnabled = this.multipleModeEnabled;
33
- search = signal('');
34
- noResults = computed(() => this.entries().every(({ hidden }) => hidden));
35
- texts = this._texts.asReadonly();
36
- expanded = signal(true);
37
- previousSelectedUids = [];
38
- selectedUidsChangeCallback = null;
39
- constructor() {
40
- effect(() => {
41
- const newSelectedUids = this.collectSelectedUids(this.entries());
42
- untracked(() => {
43
- if (this.selectedUidsChangeCallback && JSON.stringify(this.previousSelectedUids) !== JSON.stringify(newSelectedUids)) {
44
- this.selectedUidsChangeCallback(newSelectedUids);
45
- this.previousSelectedUids = newSelectedUids;
46
- }
47
- });
48
- });
49
- effect(() => {
50
- const search = this.search();
51
- untracked(() => {
52
- this.entries.update(entries => NavSelectorFilter.filter(entries, search, this.multipleModeEnabled()));
53
- });
54
- });
55
- }
56
- updateMultiModeEnabled(enabled) {
57
- this.multipleModeEnabled.set(enabled);
58
- }
59
- initEntries(entries, initialSelectedEntryUids, detailsDisplayedLimit) {
60
- if (this.multipleModeEnabled()) {
61
- this.entries.set(NavSelectorBuilder.buildInMultipleMode(entries, initialSelectedEntryUids, detailsDisplayedLimit));
62
- }
63
- else {
64
- this.entries.set(NavSelectorBuilder.build(entries, initialSelectedEntryUids?.[0] ?? null, detailsDisplayedLimit));
65
- }
66
- }
67
- updateEntries(entries, initialSelectedEntryUids, detailsDisplayedLimit) {
68
- let newEntries;
69
- if (this.multipleModeEnabled()) {
70
- newEntries = NavSelectorBuilder.buildInMultipleMode(entries, initialSelectedEntryUids, detailsDisplayedLimit);
71
- }
72
- else {
73
- newEntries = NavSelectorBuilder.build(entries, initialSelectedEntryUids?.[0] ?? null, detailsDisplayedLimit);
74
- }
75
- this.entries.update(oldEntries => {
76
- const mergeEntries = NavSelectorMerger.mergeInternalNavSelectorEntries(newEntries, oldEntries);
77
- return NavSelectorFilter.filter(mergeEntries, this.search(), this.multipleModeEnabled());
78
- });
79
- }
80
- onGroupToggleFolding(group) {
81
- this.entries.update(entries => NavSelectorFolding.toggleFolding(entries, group.uid, this.getFoldingOptions()));
82
- }
83
- onNodeSelect(node) {
84
- this.entries.update(entries => NavSelectorMultiSelect.selectInMultipleMode(entries, node.uid));
85
- }
86
- onLeafClicked(leaf) {
87
- if (!leaf.selectable) {
88
- return;
89
- }
90
- if (this.multipleModeEnabled()) {
91
- this.entries.update(entries => NavSelectorMultiSelect.selectInMultipleMode(entries, leaf.uid));
92
- }
93
- else {
94
- this.entries.update(entries => NavSelectorSingleSelect.select(entries, leaf.uid));
95
- }
96
- }
97
- onLeafToggleFolding(leaf) {
98
- this.entries.update(entries => NavSelectorFolding.toggleFolding(entries, leaf.uid, this.getFoldingOptions()));
99
- }
100
- onLeafDetailClicked(leafDetail) {
101
- this.entries.update(entries => NavSelectorSingleSelect.select(entries, leafDetail.uid));
102
- }
103
- updateTexts(texts) {
104
- this._texts.set(texts);
105
- }
106
- selectOnlyLeaf(leaf) {
107
- this.entries.update(entries => NavSelectorMultiSelect.selectOnlyALeafInMultipleMode(entries, leaf.uid));
108
- }
109
- toggleExpanded() {
110
- this.expanded.update(expanded => !expanded);
111
- this.entries.update(entries => {
112
- if (this.expanded()) {
113
- return NavSelectorMinifying.expand(entries, this.multipleModeEnabled());
114
- }
115
- return NavSelectorMinifying.minify(entries, this.multipleModeEnabled());
116
- });
117
- }
118
- minify() {
119
- if (this.expanded()) {
120
- this.toggleExpanded();
121
- }
122
- }
123
- forceMinify() {
124
- this.expanded.set(false);
125
- this.entries.update(entries => NavSelectorAccessibility.resetFocus(NavSelectorMinifying.minify(entries, this.multipleModeEnabled())));
126
- }
127
- forceExpand() {
128
- this.expanded.set(true);
129
- this.entries.update(entries => NavSelectorAccessibility.resetFocus(NavSelectorMinifying.expand(entries, this.multipleModeEnabled())));
130
- }
131
- onSelectionChange(uids) {
132
- // Avoid infinite loop if you put unexisting uids as select will generate the same entries but with different reference
133
- if (JSON.stringify(uids) === JSON.stringify(this.previousSelectedUids)) {
134
- return;
135
- }
136
- const selectedUids = this.collectSelectedUids(this.entries());
137
- const uidToSelect = uids.filter(uid => !selectedUids.includes(uid));
138
- const uidToUnselect = selectedUids.filter(uid => !uids.includes(uid));
139
- if (!uidToSelect.length && !uidToUnselect.length) {
140
- return;
141
- }
142
- let entries = this.entries();
143
- if (this.multipleModeEnabled()) {
144
- for (const uid of [...uidToSelect, ...uidToUnselect]) {
145
- entries = NavSelectorMultiSelect.selectInMultipleMode(entries, uid);
146
- }
147
- for (const uid of uidToSelect) {
148
- entries = NavSelectorFolding.unfoldParents(entries, uid, { multipleMode: true, minified: !this.expanded() });
149
- }
150
- }
151
- else {
152
- entries = NavSelectorSingleSelect.select(entries, uids[0]);
153
- entries = NavSelectorFolding.unfoldParents(entries, uids[0], { multipleMode: false, minified: !this.expanded() });
154
- }
155
- this.entries.set(entries);
156
- }
157
- registerOnSelectedUidsChange(callback) {
158
- this.selectedUidsChangeCallback = callback;
159
- }
160
- onArrowDown() {
161
- this.entries.update(entries => NavSelectorAccessibility.focusNext(entries));
162
- }
163
- onArrowUp() {
164
- this.entries.update(entries => NavSelectorAccessibility.focusPrevious(entries));
165
- }
166
- collectSelectedUids(entries) {
167
- return entries.flatMap(entry => {
168
- if (isInternalNavSelectorEntryALeaf(entry)) {
169
- if (entry.detailsDisplayable) {
170
- return entry.details.flatMap(detail => (detail.selected ? [detail.uid] : []));
171
- }
172
- return entry.selected ? [entry.uid] : [];
173
- }
174
- else if (isInternalNavSelectorEntryANode(entry)) {
175
- return this.collectSelectedUids(entry.children);
176
- }
177
- return [];
178
- });
179
- }
180
- getFoldingOptions() {
181
- return {
182
- multipleMode: this.multipleModeEnabled(),
183
- minified: !this.expanded(),
184
- };
185
- }
186
- fold(entry) {
187
- this.entries.update(entries => NavSelectorFolding.fold(entries, entry.uid, this.getFoldingOptions()));
188
- }
189
- unfold(entry) {
190
- this.entries.update(entries => NavSelectorFolding.unfold(entries, entry.uid, this.getFoldingOptions()));
191
- }
192
- updateDetailsDisplayedLimit(detailsDisplayedLimit) {
193
- this.entries.update(entries => NavSelectorViewMore.changeViewMoreDetailsDisplayedLimit(entries, detailsDisplayedLimit));
194
- }
195
- viewMore(leaf) {
196
- this.entries.update(entries => NavSelectorViewMore.viewMore(entries, leaf.uid));
197
- }
198
- viewLess(leaf) {
199
- this.entries.update(entries => NavSelectorViewMore.viewLess(entries, leaf.uid));
200
- }
201
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
202
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState });
203
- }
204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState, decorators: [{
205
- type: Injectable
206
- }], ctorParameters: () => [] });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFJSCwrQkFBK0IsRUFDL0IsK0JBQStCLEdBR2xDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVyRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixPQUFPLEdBQUcsTUFBTSxDQUE2QixFQUFFLENBQUMsQ0FBQztJQUN6QyxtQkFBbUIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHLE1BQU0sQ0FBNkI7UUFDaEQsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFB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QUFDLENBQUM7SUFDNUgsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQzt1R0ExTlEsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTm9kZSxcbiAgICBOYXZTZWxlY3RvckVudHJ5LFxuICAgIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzLFxufSBmcm9tICcuL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5hY2Nlc3NpYmlsaXR5JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yQnVpbGRlciB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLmJ1aWxkZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGaWx0ZXIgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5maWx0ZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGb2xkaW5nLCBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IuZm9sZGluZyc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck1lcmdlciB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm1lcmdlcic7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck1pbmlmeWluZyB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm1pbmlmeWluZyc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck11bHRpU2VsZWN0IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IubXVsdGktc2VsZWN0JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yU2luZ2xlU2VsZWN0IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3Iuc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclZpZXdNb3JlIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3Iudmlldy1tb3JlJztcblxuLyoqXG4gKiBOYXZTZWxlY3RvclN0YXRlIGlzIGEgc2VydmljZSB0aGF0IG1hbmFnZXMgdGhlIHN0YXRlIG9mIHRoZSBuYXYgc2VsZWN0b3IuXG4gKlxuICogSXQgc2hvdWxkIGJlIHByb3ZpZGVkIGJ5IHRoZSBjb21wb25lbnQgdG8gZW5zdXJlIHRoYXQgaWYgbWFueSBuYXYgc2VsZWN0b3JzIGFyZSB1c2VkIGluIHRoZSBzYW1lIHBhZ2UsIHRoZXkgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc3RhdGUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvclN0YXRlIHtcbiAgICBlbnRyaWVzID0gc2lnbmFsPEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdPihbXSk7XG4gICAgcHJpdmF0ZSBtdWx0aXBsZU1vZGVFbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF90ZXh0cyA9IHNpZ25hbDxOYXZTZWxlY3RvclRyYW5zbGF0ZWRUZXh0cz4oe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIG9ubHk6ICcnLFxuICAgICAgICB0b2tlbkludmFsaWQ6ICcnLFxuICAgICAgICBncm91cFRva2VuSW52YWxpZDogJycsXG4gICAgICAgIGZlYXR1cmVMb2NrZWQ6ICcnLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJycsXG4gICAgICAgIG5vUmVzdWx0czogJycsXG4gICAgICAgIHZpZXdNb3JlOiAnJyxcbiAgICAgICAgdmlld0xlc3M6ICcnLFxuICAgIH0pO1xuXG4gICAgaXNNdWx0aXBsZU1vZGVFbmFibGVkID0gdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkO1xuICAgIHNlYXJjaCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuICAgIG5vUmVzdWx0cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZW50cmllcygpLmV2ZXJ5KCh7IGhpZGRlbiB9KSA9PiBoaWRkZW4pKTtcbiAgICB0ZXh0cyA9IHRoaXMuX3RleHRzLmFzUmVhZG9ubHkoKTtcblxuICAgIGV4cGFuZGVkID0gc2lnbmFsKHRydWUpO1xuXG4gICAgcHJldmlvdXNTZWxlY3RlZFVpZHM6IHN0cmluZ1tdID0gW107XG4gICAgc2VsZWN0ZWRVaWRzQ2hhbmdlQ2FsbGJhY2s6ICgoc2VsZWN0ZWRVaWRzOiBzdHJpbmdbXSkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0ZWRVaWRzID0gdGhpcy5jb2xsZWN0U2VsZWN0ZWRVaWRzKHRoaXMuZW50cmllcygpKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRVaWRzQ2hhbmdlQ2FsbGJhY2sgJiYgSlNPTi5zdHJpbmdpZnkodGhpcy5wcmV2aW91c1NlbGVjdGVkVWlkcykgIT09IEpTT04uc3RyaW5naWZ5KG5ld1NlbGVjdGVkVWlkcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFVpZHNDaGFuZ2VDYWxsYmFjayhuZXdTZWxlY3RlZFVpZHMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpb3VzU2VsZWN0ZWRVaWRzID0gbmV3U2VsZWN0ZWRVaWRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VhcmNoID0gdGhpcy5zZWFyY2goKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yRmlsdGVyLmZpbHRlcihlbnRyaWVzLCBzZWFyY2gsIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlTXVsdGlNb2RlRW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZC5zZXQoZW5hYmxlZCk7XG4gICAgfVxuXG4gICAgaW5pdEVudHJpZXMoZW50cmllczogTmF2U2VsZWN0b3JFbnRyeVtdLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM6IHN0cmluZ1tdLCBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zZXQoTmF2U2VsZWN0b3JCdWlsZGVyLmJ1aWxkSW5NdWx0aXBsZU1vZGUoZW50cmllcywgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy5zZXQoTmF2U2VsZWN0b3JCdWlsZGVyLmJ1aWxkKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcz8uWzBdID8/IG51bGwsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRW50cmllcyhlbnRyaWVzOiBOYXZTZWxlY3RvckVudHJ5W10sIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkczogc3RyaW5nW10sIGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyKSB7XG4gICAgICAgIGxldCBuZXdFbnRyaWVzOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBuZXdFbnRyaWVzID0gTmF2U2VsZWN0b3JCdWlsZGVyLmJ1aWxkSW5NdWx0aXBsZU1vZGUoZW50cmllcywgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3RW50cmllcyA9IE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZChlbnRyaWVzLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM/LlswXSA/PyBudWxsLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUob2xkRW50cmllcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXJnZUVudHJpZXMgPSBOYXZTZWxlY3Rvck1lcmdlci5tZXJnZUludGVybmFsTmF2U2VsZWN0b3JFbnRyaWVzKG5ld0VudHJpZXMsIG9sZEVudHJpZXMpO1xuICAgICAgICAgICAgcmV0dXJuIE5hdlNlbGVjdG9yRmlsdGVyLmZpbHRlcihtZXJnZUVudHJpZXMsIHRoaXMuc2VhcmNoKCksIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Hcm91cFRvZ2dsZUZvbGRpbmcoZ3JvdXA6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLnRvZ2dsZUZvbGRpbmcoZW50cmllcywgZ3JvdXAudWlkLCB0aGlzLmdldEZvbGRpbmdPcHRpb25zKCkpKTtcbiAgICB9XG5cbiAgICBvbk5vZGVTZWxlY3Qobm9kZTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3Rvck11bHRpU2VsZWN0LnNlbGVjdEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIG5vZGUudWlkKSk7XG4gICAgfVxuXG4gICAgb25MZWFmQ2xpY2tlZChsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICBpZiAoIWxlYWYuc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yTXVsdGlTZWxlY3Quc2VsZWN0SW5NdWx0aXBsZU1vZGUoZW50cmllcywgbGVhZi51aWQpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgbGVhZi51aWQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTGVhZlRvZ2dsZUZvbGRpbmcobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZvbGRpbmcudG9nZ2xlRm9sZGluZyhlbnRyaWVzLCBsZWFmLnVpZCwgdGhpcy5nZXRGb2xkaW5nT3B0aW9ucygpKSk7XG4gICAgfVxuXG4gICAgb25MZWFmRGV0YWlsQ2xpY2tlZChsZWFmRGV0YWlsOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yU2luZ2xlU2VsZWN0LnNlbGVjdChlbnRyaWVzLCBsZWFmRGV0YWlsLnVpZCkpO1xuICAgIH1cblxuICAgIHVwZGF0ZVRleHRzKHRleHRzOiBOYXZTZWxlY3RvclRyYW5zbGF0ZWRUZXh0cykge1xuICAgICAgICB0aGlzLl90ZXh0cy5zZXQodGV4dHMpO1xuICAgIH1cblxuICAgIHNlbGVjdE9ubHlMZWFmKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3Rvck11bHRpU2VsZWN0LnNlbGVjdE9ubHlBTGVhZkluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlRXhwYW5kZWQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQudXBkYXRlKGV4cGFuZGVkID0+ICFleHBhbmRlZCk7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5leHBhbmRlZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE5hdlNlbGVjdG9yTWluaWZ5aW5nLmV4cGFuZChlbnRyaWVzLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gTmF2U2VsZWN0b3JNaW5pZnlpbmcubWluaWZ5KGVudHJpZXMsIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbWluaWZ5KCkge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JjZU1pbmlmeSgpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT5cbiAgICAgICAgICAgIE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eS5yZXNldEZvY3VzKE5hdlNlbGVjdG9yTWluaWZ5aW5nLm1pbmlmeShlbnRyaWVzLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZm9yY2VFeHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT5cbiAgICAgICAgICAgIE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eS5yZXNldEZvY3VzKE5hdlNlbGVjdG9yTWluaWZ5aW5nLmV4cGFuZChlbnRyaWVzLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UodWlkczogc3RyaW5nW10pIHtcbiAgICAgICAgLy8gQXZvaWQgaW5maW5pdGUgbG9vcCBpZiB5b3UgcHV0IHVuZXhpc3RpbmcgdWlkcyBhcyBzZWxlY3Qgd2lsbCBnZW5lcmF0ZSB0aGUgc2FtZSBlbnRyaWVzIGJ1dCB3aXRoIGRpZmZlcmVudCByZWZlcmVuY2VcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHVpZHMpID09PSBKU09OLnN0cmluZ2lmeSh0aGlzLnByZXZpb3VzU2VsZWN0ZWRVaWRzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRVaWRzID0gdGhpcy5jb2xsZWN0U2VsZWN0ZWRVaWRzKHRoaXMuZW50cmllcygpKTtcbiAgICAgICAgY29uc3QgdWlkVG9TZWxlY3QgPSB1aWRzLmZpbHRlcih1aWQgPT4gIXNlbGVjdGVkVWlkcy5pbmNsdWRlcyh1aWQpKTtcbiAgICAgICAgY29uc3QgdWlkVG9VbnNlbGVjdCA9IHNlbGVjdGVkVWlkcy5maWx0ZXIodWlkID0+ICF1aWRzLmluY2x1ZGVzKHVpZCkpO1xuXG4gICAgICAgIGlmICghdWlkVG9TZWxlY3QubGVuZ3RoICYmICF1aWRUb1Vuc2VsZWN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGVudHJpZXMgPSB0aGlzLmVudHJpZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdWlkIG9mIFsuLi51aWRUb1NlbGVjdCwgLi4udWlkVG9VbnNlbGVjdF0pIHtcbiAgICAgICAgICAgICAgICBlbnRyaWVzID0gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RJbk11bHRpcGxlTW9kZShlbnRyaWVzLCB1aWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHVpZCBvZiB1aWRUb1NlbGVjdCkge1xuICAgICAgICAgICAgICAgIGVudHJpZXMgPSBOYXZTZWxlY3RvckZvbGRpbmcudW5mb2xkUGFyZW50cyhlbnRyaWVzLCB1aWQsIHsgbXVsdGlwbGVNb2RlOiB0cnVlLCBtaW5pZmllZDogIXRoaXMuZXhwYW5kZWQoKSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgdWlkc1swXSk7XG4gICAgICAgICAgICBlbnRyaWVzID0gTmF2U2VsZWN0b3JGb2xkaW5nLnVuZm9sZFBhcmVudHMoZW50cmllcywgdWlkc1swXSwgeyBtdWx0aXBsZU1vZGU6IGZhbHNlLCBtaW5pZmllZDogIXRoaXMuZXhwYW5kZWQoKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW50cmllcy5zZXQoZW50cmllcyk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblNlbGVjdGVkVWlkc0NoYW5nZShjYWxsYmFjazogKHNlbGVjdGVkVWlkczogc3RyaW5nW10pID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFVpZHNDaGFuZ2VDYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duKCkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LmZvY3VzTmV4dChlbnRyaWVzKSk7XG4gICAgfVxuXG4gICAgb25BcnJvd1VwKCkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LmZvY3VzUHJldmlvdXMoZW50cmllcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29sbGVjdFNlbGVjdGVkVWlkcyhlbnRyaWVzOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIGVudHJpZXMuZmxhdE1hcChlbnRyeSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZihlbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW50cnkuZGV0YWlsc0Rpc3BsYXlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5kZXRhaWxzLmZsYXRNYXAoZGV0YWlsID0+IChkZXRhaWwuc2VsZWN0ZWQgPyBbZGV0YWlsLnVpZF0gOiBbXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZW50cnkuc2VsZWN0ZWQgPyBbZW50cnkudWlkXSA6IFtdO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbGxlY3RTZWxlY3RlZFVpZHMoZW50cnkuY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvbGRpbmdPcHRpb25zKCk6IE5hdlNlbGVjdG9yRm9sZGluZ09wdGlvbnMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbXVsdGlwbGVNb2RlOiB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSxcbiAgICAgICAgICAgIG1pbmlmaWVkOiAhdGhpcy5leHBhbmRlZCgpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZvbGQoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLmZvbGQoZW50cmllcywgZW50cnkudWlkLCB0aGlzLmdldEZvbGRpbmdPcHRpb25zKCkpKTtcbiAgICB9XG5cbiAgICB1bmZvbGQoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLnVuZm9sZChlbnRyaWVzLCBlbnRyeS51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIHVwZGF0ZURldGFpbHNEaXNwbGF5ZWRMaW1pdChkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JWaWV3TW9yZS5jaGFuZ2VWaWV3TW9yZURldGFpbHNEaXNwbGF5ZWRMaW1pdChlbnRyaWVzLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICB9XG5cbiAgICB2aWV3TW9yZShsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JWaWV3TW9yZS52aWV3TW9yZShlbnRyaWVzLCBsZWFmLnVpZCkpO1xuICAgIH1cblxuICAgIHZpZXdMZXNzKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclZpZXdNb3JlLnZpZXdMZXNzKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgfVxufVxuIl19
@@ -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==