@seniorsistemas/angular-components 19.3.0 → 19.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +1 -2
  2. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +0 -1
  3. package/chips/lib/chips/chips/chips.component.d.ts +1 -2
  4. package/code-editor/lib/code-editor/code-editor.component.d.ts +0 -2
  5. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +1 -3
  6. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -2
  7. package/content-generator/lib/content-generator/content-generator.component.d.ts +1 -6
  8. package/content-generator/lib/services/IAssist/iassist.service.d.ts +0 -3
  9. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -3
  10. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +0 -2
  11. package/currency/lib/currency.service.d.ts +0 -2
  12. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +3 -7
  13. package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +0 -2
  14. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -2
  15. package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -2
  16. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -3
  17. package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -2
  18. package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -3
  19. package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -2
  20. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -3
  21. package/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.d.ts +1 -2
  22. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -3
  23. package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -2
  24. package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -2
  25. package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -2
  26. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +0 -2
  27. package/esm2022/badge/lib/badge/badge.component.mjs +3 -3
  28. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +10 -13
  29. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +7 -11
  30. package/esm2022/chips/lib/chips/chips/chips.component.mjs +5 -8
  31. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +6 -9
  32. package/esm2022/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.mjs +8 -13
  33. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +6 -10
  34. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +24 -30
  35. package/esm2022/content-generator/lib/services/IAssist/iassist.service.mjs +9 -12
  36. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +15 -23
  37. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +6 -9
  38. package/esm2022/currency/lib/currency.service.mjs +6 -9
  39. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -25
  40. package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +6 -9
  41. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +22 -28
  42. package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +6 -10
  43. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +12 -17
  44. package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +5 -8
  45. package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +12 -17
  46. package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +5 -8
  47. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +13 -19
  48. package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.mjs +6 -10
  49. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +14 -19
  50. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +5 -8
  51. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +5 -8
  52. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +5 -8
  53. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +8 -11
  54. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +17 -21
  55. package/esm2022/gantt/lib/gantt/components/gantt/gantt.mjs +6 -2
  56. package/esm2022/gantt/lib/gantt/gantt.component.mjs +8 -4
  57. package/esm2022/global-search/lib/global-search/global-search.component.mjs +5 -8
  58. package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +7 -12
  59. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +5 -8
  60. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +6 -10
  61. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +9 -12
  62. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +14 -17
  63. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +12 -15
  64. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +15 -19
  65. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +5 -8
  66. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +10 -13
  67. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +10 -13
  68. package/esm2022/kanban/lib/kanban/kanban.component.mjs +23 -17
  69. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +10 -16
  70. package/esm2022/locale/lib/locale/locale.service.mjs +8 -12
  71. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +6 -9
  72. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +6 -9
  73. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +6 -9
  74. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +6 -9
  75. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +6 -9
  76. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +6 -9
  77. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +5 -8
  78. package/esm2022/numeric/lib/numeric.pipe.mjs +8 -12
  79. package/esm2022/numeric/lib/numeric.service.mjs +6 -9
  80. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +8 -11
  81. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +10 -16
  82. package/esm2022/picklist/lib/picklist/picklist.component.mjs +5 -8
  83. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +15 -19
  84. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -11
  85. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +5 -4
  86. package/esm2022/select-button/lib/select-button/select-button.component.mjs +3 -3
  87. package/esm2022/shared/lib/accessibility/paginator-accessibility.directive.mjs +8 -13
  88. package/esm2022/shared/lib/accessibility/table-checkbox-accessibility.directive.mjs +5 -8
  89. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +9 -12
  90. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +12 -16
  91. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.service.mjs +12 -16
  92. package/esm2022/speech-recognition/lib/speech-recognition/text-to-speech.service.mjs +8 -10
  93. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -8
  94. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +7 -7
  95. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +20 -29
  96. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +9 -16
  97. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +11 -13
  98. package/esm2022/text-area/lib/text-area/text-area.component.mjs +5 -8
  99. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +8 -11
  100. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +16 -24
  101. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +8 -11
  102. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +12 -16
  103. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +13 -25
  104. package/esm2022/toast/lib/toast/toast.service.mjs +7 -12
  105. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +10 -14
  106. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +6 -10
  107. package/fesm2022/seniorsistemas-angular-components-badge.mjs +2 -2
  108. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  109. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +10 -12
  110. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  111. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +6 -10
  112. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  113. package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -7
  114. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  115. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +10 -18
  116. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  117. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -9
  118. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  119. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +29 -40
  120. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  121. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +16 -28
  122. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  123. package/fesm2022/seniorsistemas-angular-components-currency.mjs +5 -8
  124. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  125. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +45 -59
  126. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  127. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +108 -157
  128. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  129. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +4 -8
  130. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  131. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +17 -22
  132. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  133. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +12 -4
  134. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  135. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +4 -7
  136. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  137. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +6 -11
  138. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  139. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +4 -7
  140. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  141. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +5 -9
  142. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  143. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +29 -38
  144. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  145. package/fesm2022/seniorsistemas-angular-components-insights.mjs +17 -22
  146. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  147. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +4 -7
  148. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  149. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -30
  150. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  151. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -15
  152. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  153. package/fesm2022/seniorsistemas-angular-components-locale.mjs +22 -41
  154. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  155. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +5 -8
  156. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  157. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +4 -7
  158. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  159. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +9 -16
  160. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  161. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +13 -24
  162. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  163. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +4 -7
  164. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  165. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +14 -21
  166. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  167. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +11 -14
  168. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  169. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
  170. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  171. package/fesm2022/seniorsistemas-angular-components-shared.mjs +10 -18
  172. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  173. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -10
  174. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  175. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +23 -34
  176. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  177. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +4 -7
  178. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  179. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +10 -12
  180. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  181. package/fesm2022/seniorsistemas-angular-components-table.mjs +30 -47
  182. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  183. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +4 -7
  184. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  185. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -9
  186. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  187. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +30 -55
  188. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  189. package/fesm2022/seniorsistemas-angular-components-toast.mjs +6 -11
  190. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  191. package/fesm2022/seniorsistemas-angular-components-tree.mjs +9 -14
  192. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  193. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +5 -9
  194. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  195. package/file-picker/lib/file-picker/file-picker.component.d.ts +0 -4
  196. package/file-upload/README.md +9 -37
  197. package/gantt/lib/gantt/gantt.component.d.ts +1 -0
  198. package/global-search/lib/global-search/global-search.component.d.ts +1 -2
  199. package/ia-insight/README.md +17 -0
  200. package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +1 -2
  201. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -2
  202. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -2
  203. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +1 -2
  204. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -2
  205. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -2
  206. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +0 -4
  207. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +1 -2
  208. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +0 -2
  209. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +0 -2
  210. package/kanban/lib/kanban/kanban.component.d.ts +2 -2
  211. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -2
  212. package/locale/lib/locale/locale.service.d.ts +0 -3
  213. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +0 -2
  214. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +0 -2
  215. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +0 -2
  216. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +0 -2
  217. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +0 -2
  218. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +0 -2
  219. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -2
  220. package/numeric/lib/numeric.pipe.d.ts +0 -3
  221. package/numeric/lib/numeric.service.d.ts +0 -2
  222. package/package.json +12 -12
  223. package/password-strength/lib/password-strength/password-strength.component.d.ts +0 -2
  224. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -2
  225. package/picklist/lib/picklist/picklist.component.d.ts +1 -2
  226. package/product-header/README.md +17 -0
  227. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +0 -4
  228. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -2
  229. package/progressbar/lib/progressbar/progressbar.module.d.ts +2 -1
  230. package/shared/lib/accessibility/paginator-accessibility.directive.d.ts +1 -3
  231. package/shared/lib/accessibility/table-checkbox-accessibility.directive.d.ts +1 -2
  232. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +0 -2
  233. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -4
  234. package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +1 -5
  235. package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +1 -3
  236. package/split-button/lib/split-button/split-button.component.d.ts +1 -2
  237. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  238. package/table/lib/table/table-column/table-columns.component.d.ts +2 -6
  239. package/table/lib/table/table-paging/table-paging.component.d.ts +0 -3
  240. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  241. package/text-area/lib/text-area/text-area.component.d.ts +1 -2
  242. package/text-area-ia/README.md +17 -0
  243. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +0 -2
  244. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -3
  245. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -2
  246. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -2
  247. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -5
  248. package/toast/lib/toast/toast.service.d.ts +0 -2
  249. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -3
  250. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -2
  251. package/confirm-dialog/README.md +0 -226
  252. package/numeric-mask/README.md +0 -395
  253. package/pin-code-field/README.md +0 -366
  254. package/spotlight/README.md +0 -311
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-tiered-menu.mjs","sources":["../../projects/angular-components/tiered-menu/src/lib/tiered-menu/services/tiered-menu.service.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/services/tiered-menu.global.service.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/services/tiered-menu.event.service.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu/tiered-menu.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu/tiered-menu.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/tiered-menu.directive.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/tiered-menu.module.ts","../../projects/angular-components/tiered-menu/src/seniorsistemas-angular-components-tiered-menu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { TieredMenuItemData } from '../models/tiered-menu-item-data';\nimport { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';\n\n@Injectable()\nexport class TieredMenuService {\n public currentItem?: TieredMenuItemInternalData | null = null;\n public currentItems: TieredMenuItemInternalData[] = [];\n public items: TieredMenuItemInternalData[] = [];\n\n public normalizeData(\n items: TieredMenuItemData[],\n parent?: TieredMenuItemInternalData,\n ): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = {\n visible: true,\n ...i,\n };\n if (item.submenu) {\n item.submenu = this.normalizeData(item.submenu, item);\n }\n item.id = this._generateId();\n item.parent = parent;\n item.isOpen = false;\n return item;\n });\n }\n\n public markAllItemsAsClosed(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = { ...i };\n if (item.submenu) {\n item.submenu = this.markAllItemsAsClosed(item.submenu);\n }\n item.isOpen = false;\n return item;\n });\n }\n\n public searchTheHierarchy(itemA: TieredMenuItemInternalData, itemB: TieredMenuItemInternalData) {\n let item: TieredMenuItemInternalData | null = itemB;\n while (item) {\n if (item === itemA) {\n return true;\n }\n item = item.parent ?? null;\n }\n return false;\n }\n\n public cloneItems(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return JSON.parse(JSON.stringify(items));\n }\n\n private _generateId(): string {\n return `id-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}`;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { TieredMenuDirective } from '../tiered-menu.directive';\n\n@Injectable()\nexport class TieredMenuGlobalService {\n public lastInstance?: TieredMenuDirective | null;\n}\n","import { Injectable, EventEmitter } from '@angular/core';\n\nimport { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';\n\n@Injectable()\nexport class TieredMenuEventService {\n public incrementCurrentItemEvent = new EventEmitter();\n public decrementCurrentItemEvent = new EventEmitter();\n public closeAllMenusEvent = new EventEmitter();\n public selectItemEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n public openItemMenuEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n public closeItemMenuEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n public createMenuEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n}\n","import { Component, HostListener, Input } from '@angular/core';\n\nimport { TieredMenuEventService } from '../../services/tiered-menu.event.service';\nimport { TieredMenuItemInternalData } from '../../models';\n\n@Component({\n selector: 's-tiered-menu-item',\n templateUrl: './tiered-menu-item.component.html',\n styleUrls: ['./tiered-menu-item.component.scss'],\n})\nexport class TieredMenuItemComponent {\n @Input({ required: true })\n public item!: TieredMenuItemInternalData;\n\n @Input()\n public focused = false;\n\n @Input()\n public highlight? = false;\n\n @Input()\n public triggerEvent: 'click' | 'hover' = 'click';\n\n @Input()\n public closeOnClick = false;\n\n private _showTimeout?: number;\n\n constructor(private readonly _tieredMenuEventService: TieredMenuEventService) {}\n\n @HostListener('click')\n @HostListener('touchend')\n public onClick(): void {\n if (this.item.disabled) return;\n\n if (this.item.submenu) {\n if (!this.item.isOpen) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n } else if (this.closeOnClick) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.item);\n }\n } else {\n this._tieredMenuEventService.selectItemEvent.emit(this.item);\n }\n }\n\n @HostListener('mouseenter')\n public onMouseEnter(): void {\n if (this.item.disabled) return;\n\n if (this.triggerEvent === 'hover' && !this.item.isOpen) {\n this._showTimeout = window.setTimeout(() => {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n }, 300);\n }\n }\n\n @HostListener('mouseleave')\n public onMouseLeave(): void {\n window.clearTimeout(this._showTimeout);\n }\n}\n\n","<div\n [id]=\"item.id\"\n class=\"tiered-menu-item\"\n role=\"menuitem\"\n [tabindex]=\"focused && !item.disabled ? 0 : -1\"\n [attr.aria-disabled]=\"item.disabled || null\"\n [attr.aria-haspopup]=\"item.submenu ? 'menu' : null\"\n [attr.aria-expanded]=\"item.submenu ? item.isOpen : null\"\n [attr.data-key]=\"item.dataKey\"\n [ngClass]=\"{\n 'tiered-menu-item--open': item.isOpen,\n 'tiered-menu-item--focused': focused,\n 'tiered-menu-item--disabled': item.disabled,\n }\"\n>\n <div class=\"tiered-menu-item-content\">\n <span\n class=\"icon\"\n [ngClass]=\"item.iconClass\"\n ></span>\n <span class=\"label\">{{ item.label }}</span>\n </div>\n @if (item.submenu) {\n <span\n class=\"submenu-icon fas\"\n [class.fa-chevron-left]=\"item.isOpen\"\n [class.fa-chevron-right]=\"!item.isOpen\"\n >\n </span>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-tiered-menu-divider',\n templateUrl: './tiered-menu-divider.component.html',\n styleUrls: ['./tiered-menu-divider.component.scss'],\n})\nexport class TieredMenuDividerComponent {}\n","<div class=\"divider\"></div>\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { TieredMenuItemInternalData } from '../../models/tiered-menu-item-internal-data';\nimport { TieredMenuEventService } from '../../services/tiered-menu.event.service';\nimport { TieredMenuService } from '../../services/tiered-menu.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { disableScroll, enableScroll } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n templateUrl: './tiered-menu-nested.component.html',\n styleUrls: ['./tiered-menu-nested.component.scss'],\n})\nexport class TieredMenuNestedComponent implements OnInit, OnDestroy {\n public items!: TieredMenuItemInternalData[];\n public top = 0;\n public left = 0;\n // public maxHeight = 0;\n\n // Saves the last opened item to close it when a new one is opened\n private _lastOpenItem?: TieredMenuItemInternalData;\n private _unsubscribe$ = new Subject<void>();\n\n @HostListener('window:resize')\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener('document:click', ['$event'])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest('s-tiered-menu-item') || target.closest('s-tiered-menu-divider');\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case 'Escape':\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case ' ':\n case 'Enter':\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n break;\n case 'ArrowLeft':\n // When nested I need a reference to the current item's parent item, otherwise just the current item.\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem?.parent);\n break;\n case 'ArrowRight':\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n break;\n case 'ArrowUp':\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n break;\n case 'ArrowDown':\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n break;\n }\n }\n\n constructor(\n public readonly tieredMenuService: TieredMenuService,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n ) {}\n\n public ngOnInit(): void {\n this.tieredMenuService.currentItems = this.items;\n this._subscribeEvents();\n disableScroll();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n enableScroll();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (curIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem =\n this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _closeItem(item: TieredMenuItemInternalData): void {\n let itemAux = this._lastOpenItem;\n\n while (itemAux && itemAux != item) {\n itemAux.isOpen = false;\n itemAux = itemAux.parent;\n }\n\n item.isOpen = false;\n\n this.tieredMenuService.currentItem = itemAux ?? this.tieredMenuService.items[0];\n this.tieredMenuService.currentItems = itemAux?.parent?.submenu || this.tieredMenuService.items;\n }\n\n private _openItem(item: TieredMenuItemInternalData): void {\n if (item?.submenu) {\n item.isOpen = true;\n this.tieredMenuService.currentItems = item.submenu;\n\n // Only has focus if there has already been interaction.\n if (this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = item.submenu[0];\n }\n\n this._lastOpenItem = item;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.incrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._incrementCurItem();\n });\n\n this._tieredMenuEventService.decrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._decrementCurItem();\n });\n\n this._tieredMenuEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item && item.command) {\n item.command();\n // Close all menus after the item was selected.\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n });\n\n this._tieredMenuEventService.openItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item) {\n if (!this.tieredMenuService.currentItems.includes(item)) {\n let itemAux = this._lastOpenItem;\n\n while (itemAux?.parent?.parent) {\n itemAux = itemAux.parent;\n }\n\n this._tieredMenuEventService.closeItemMenuEvent.emit(itemAux?.parent ?? itemAux);\n }\n\n this._lastOpenItem = item;\n this._openItem(item);\n }\n });\n\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item) {\n this._closeItem(item);\n }\n });\n }\n}\n","<div\n class=\"menu menu--nested\"\n [ngStyle]=\"{\n top: top + 'px',\n left: left + 'px',\n }\"\n>\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: items }\"\n ></ng-container>\n</div>\n\n<ng-template\n #itemsTemplate\n let-items\n>\n @for (item of items; track item.id) {\n <div>\n @if (item.visible && !item.divider) {\n <s-tiered-menu-item\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [closeOnClick]=\"true\"\n >\n </s-tiered-menu-item>\n }\n @if (item.divider) {\n <s-tiered-menu-divider></s-tiered-menu-divider>\n }\n @if (item.submenu && item.isOpen) {\n <div>\n <div class=\"submenu\">\n <ng-container\n *ngTemplateOutlet=\"\n itemsTemplate;\n context: { $implicit: item.submenu }\n \"\n ></ng-container>\n </div>\n </div>\n }\n </div>\n }\n</ng-template>\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n EventEmitter,\n HostListener,\n Input,\n Injector,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { TieredMenuItemInternalData } from '../../models/tiered-menu-item-internal-data';\nimport { TieredMenuEventService } from '../../services/tiered-menu.event.service';\nimport { TieredMenuService } from '../../services/tiered-menu.service';\nimport { disableScroll, enableScroll } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n selector: 's-tiered-menu',\n templateUrl: './tiered-menu.component.html',\n styleUrls: ['./tiered-menu.component.scss'],\n})\nexport class TieredMenuComponent implements OnInit, OnDestroy {\n @Input() public ariaLabel?: string;\n public items: TieredMenuItemInternalData[] = [];\n public top = 0;\n public left = 0;\n public menuTriggerEvent: 'click' | 'hover' = 'hover';\n public isSubmenu = false;\n\n private _componentRef: ComponentRef<TieredMenuComponent> | null = null;\n private _menuDivElement?: HTMLElement | null = null;\n private _unsubscribe$ = new Subject<void>();\n\n @Output()\n public destroyRequest = new EventEmitter<boolean>();\n\n constructor(\n private readonly _appRef: ApplicationRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _injector: Injector,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n public readonly tieredMenuService: TieredMenuService,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n ) {}\n\n @HostListener('window:resize')\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener('document:click', ['$event'])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest('s-tiered-menu-item') || target.closest('s-tiered-menu-divider');\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case 'Escape':\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n event.preventDefault();\n break;\n case 'Tab':\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case ' ':\n case 'Enter':\n if (\n this.tieredMenuService.currentItem &&\n !this.tieredMenuService.currentItem.disabled &&\n this.items.includes(this.tieredMenuService.currentItem)\n ) {\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n event.preventDefault();\n }\n break;\n case 'ArrowUp':\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n event.preventDefault();\n event.stopImmediatePropagation();\n break;\n case 'ArrowDown':\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n event.preventDefault();\n event.stopImmediatePropagation();\n break;\n case 'ArrowLeft':\n if (this.tieredMenuService.currentItem && this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem);\n this._changeDetectorRef.detectChanges();\n event.preventDefault();\n }\n break;\n case 'ArrowRight':\n if (\n this.tieredMenuService.currentItem &&\n !this.tieredMenuService.currentItem.disabled &&\n this.items.includes(this.tieredMenuService.currentItem)\n ) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n break;\n }\n }\n\n public ngOnInit(): void {\n this._subscribeEvents();\n\n // Submenus have their focus managed by the openItemMenuEvent handler.\n if (!this.isSubmenu) {\n this.tieredMenuService.currentItems = this.items;\n this.tieredMenuService.currentItem = this.items[0] ?? null;\n disableScroll();\n\n requestAnimationFrame(() => {\n this._focusCurrentItem();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _focusCurrentItem(): void {\n const id = this.tieredMenuService.currentItem?.id;\n\n if (!id) {\n return;\n }\n\n document.getElementById(id)?.focus();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n // Checking if it is the current menu.\n return;\n }\n\n const currentIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (currentIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[currentIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n // Checking if it is the current menu.\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem =\n this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _createMenu(items: TieredMenuItemInternalData[], position: any): void {\n if (!this._componentRef && items) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n // Setting the menu items.\n this._componentRef.instance.items = items;\n this._componentRef.instance.isSubmenu = true;\n\n // Subscribe menu events.\n this._componentRef.instance.destroyRequest.subscribe((propagate: boolean) => {\n this._destroy(propagate);\n });\n\n this._menuDivElement = domElem.querySelector('.menu');\n this._setMenuPosition(position);\n }\n }\n\n private _destroy(propagate = true): void {\n if (this._componentRef !== null) {\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = null;\n this._menuDivElement = null;\n }\n\n if (propagate) {\n this.destroyRequest.emit();\n }\n }\n\n private _setMenuPosition(position: any): void {\n const ITEM_HEIGHT = 37;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n\n if (this._componentRef !== null) {\n const { top, right, bottom, left } = position;\n\n const itemsCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n },\n 0,\n );\n\n const dividersCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n },\n 0,\n );\n\n // I need to calculate the height of the component because the internal elements have not been created yet.\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + 8;\n const menuWidth = this._menuDivElement?.getBoundingClientRect().width ?? 0;\n\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n if (rightFreeSpace > menuWidth) {\n this._componentRef.instance.left = right;\n } else {\n this._componentRef.instance.left = left - menuWidth;\n }\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(window.innerHeight - menuHeight, window.scrollY);\n } else {\n this._componentRef.instance.top = window.scrollY + top;\n }\n }\n }\n\n private _subscribeEvents(): void {\n // Increment current item event.\n this._tieredMenuEventService.incrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._incrementCurItem();\n this._focusCurrentItem();\n });\n // Decrement current item event.\n this._tieredMenuEventService.decrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._decrementCurItem();\n this._focusCurrentItem();\n });\n // Select item event.\n this._tieredMenuEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item) {\n if (item.submenu) {\n this._tieredMenuEventService.openItemMenuEvent.emit(item);\n } else if (item.command) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n item.command();\n }\n }\n });\n // Close all menus event.\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n this.tieredMenuService.currentItem = null;\n this.tieredMenuService.currentItems = this.tieredMenuService.items;\n this.tieredMenuService.markAllItemsAsClosed(this.tieredMenuService.items);\n enableScroll();\n });\n\n // Open item menu event.\n this._tieredMenuEventService.openItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (this.tieredMenuService.currentItem) {\n if (this.tieredMenuService.currentItem.parent === item) {\n return;\n }\n\n if (this.tieredMenuService.currentItem?.parent) {\n if (!item) return;\n\n if (\n !this.tieredMenuService.searchTheHierarchy(this.tieredMenuService.currentItem.parent, item)\n ) {\n let current: TieredMenuItemInternalData | undefined = this.tieredMenuService.currentItem;\n\n current.isOpen = false;\n\n while (current?.parent !== item.parent) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(current);\n this._changeDetectorRef.detectChanges();\n\n current = current?.parent;\n }\n\n if (current) {\n current.isOpen = false;\n }\n }\n }\n }\n\n if (item?.submenu && !item?.isOpen && this.items.includes(item)) {\n const itemEl = document.querySelector(`#${item.id}`);\n\n if (!itemEl) return;\n\n const { top, right, left, bottom } = itemEl.getBoundingClientRect();\n const position = { top, right, left, bottom };\n\n this._createMenu(item.submenu, position);\n this.tieredMenuService.currentItems = item.submenu;\n this.tieredMenuService.currentItem = item.submenu[0];\n item.isOpen = true;\n\n requestAnimationFrame(() => {\n this._focusCurrentItem();\n });\n }\n });\n\n // Close item menu event.\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item === null) return;\n if (this.items.some((i) => i.id === item.id)) {\n if (item.parent) {\n item.parent.isOpen = false;\n } else {\n enableScroll();\n }\n this.tieredMenuService.currentItems = item?.parent?.parent?.submenu || this.tieredMenuService.items;\n this.tieredMenuService.currentItem = item.parent;\n this.destroyRequest.emit(false);\n\n requestAnimationFrame(() => {\n this._focusCurrentItem();\n });\n }\n });\n }\n}\n\n","<div\n class=\"menu\"\n role=\"application\"\n [attr.aria-label]=\"ariaLabel\"\n [ngStyle]=\"{\n left: left + 'px',\n top: top + 'px',\n }\"\n>\n <!-- <div *ngFor=\"let item of items\">\n <s-tiered-menu-item\n *ngIf=\"item.visible && !item.divider\"\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [highlight]=\"item.isOpen\"\n fieldUtils.triggerEvent=\"hover\"\n [closeOnClick]=\"false\"\n >\n </s-tiered-menu-item>\n <s-tiered-menu-divider *ngIf=\"item.divider\"></s-tiered-menu-divider>\n </div> -->\n @for (item of items; track $index) {\n @if (item.visible && !item.divider) {\n <s-tiered-menu-item\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [highlight]=\"item.isOpen\"\n fieldUtils.triggerEvent=\"hover\"\n [closeOnClick]=\"false\"\n />\n }\n @if (item.divider) {\n <s-tiered-menu-divider />\n }\n }\n</div>\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Type,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TieredMenuNestedComponent } from './components/tiered-menu-nested/tiered-menu-nested.component';\nimport { TieredMenuComponent } from './components/tiered-menu/tiered-menu.component';\nimport { TieredMenuItemData } from './models/tiered-menu-item-data';\nimport { TieredMenuEventService } from './services/tiered-menu.event.service';\nimport { TieredMenuGlobalService } from './services/tiered-menu.global.service';\nimport { TieredMenuService } from './services/tiered-menu.service';\nimport { TieredMenuItemInternalData } from './models';\nimport { enableScroll } from '@seniorsistemas/angular-components/utils';\n\n/**\n * @description Diretiva que anexa um menu multinível (tiered menu) a qualquer elemento do DOM.\n * Ao disparar o evento configurado no elemento hospedeiro, exibe um painel flutuante\n * com itens de menu hierárquicos, suportando submenus aninhados e divisores.\n * Em telas estreitas (< 600px), o menu é exibido em modo aninhado fullscreen.\n *\n * @example\n * ```html\n * <s-button [sTieredMenu]=\"menuItems\" triggerEvent=\"click\">Abrir menu</s-button>\n * ```\n *\n * @category Navegação\n */\n@Directive({\n selector: '[sTieredMenu]',\n providers: [TieredMenuEventService, TieredMenuService],\n})\nexport class TieredMenuDirective implements OnInit, OnChanges, OnDestroy {\n /**\n * @description Lista de itens exibidos no menu. Cada item pode conter um array de `children`\n * para criar submenus aninhados, além de propriedades como `label`, `icon`,\n * `disabled`, `command` e `divider`.\n */\n @Input()\n public items: TieredMenuItemData[] = [];\n\n /**\n * @description Item que receberá o foco inicial ao abrir o menu.\n * Útil para destacar uma opção pré-selecionada ou contextual.\n */\n @Input()\n public focusedItem: TieredMenuItemData | undefined = undefined;\n\n /**\n * @description Define o evento do elemento hospedeiro que dispara a abertura do menu.\n * - `'click'`: abre o menu ao clicar no elemento (padrão).\n * - `'hover'`: abre o menu ao passar o mouse sobre o elemento.\n *\n * @default 'click'\n */\n @Input()\n public triggerEvent: 'click' | 'hover' = 'click';\n\n @Input()\n public ariaLabel?: string;\n\n @Output()\n public tieredMenuOpened: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public tieredMenuClosed: EventEmitter<void> = new EventEmitter<void>();\n\n private _componentRef: ComponentRef<any> | null = null;\n private _showTimeout?: number;\n private _isNested = false;\n private _isOpen = false;\n private _unsubscribe$ = new Subject<void>();\n private _lastActiveElement?: Element;\n private _previousItems: TieredMenuItemData[] = [];\n private _itemsAreValid?: boolean;\n private _resizeObserver = new ResizeObserver(() => {\n this._setMenuPosition();\n this._componentRef?.hostView.detectChanges();\n });\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _appRef: ApplicationRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _injector: Injector,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n private readonly _tieredMenuService: TieredMenuService,\n private readonly _tieredMenuGlobalService: TieredMenuGlobalService,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n this._itemsAreValid = !!this.items?.length;\n\n if (!this._itemsAreValid) return;\n\n this._subscribeEvents();\n }\n\n public ngOnChanges(): void {\n if (!this._itemsAreValid) return;\n\n if (!this._previousItems) {\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n let hasChanges = false;\n\n if (this.items.length !== this._previousItems.length) {\n hasChanges = true;\n } else {\n for (let i = 0; i < this.items.length; i++) {\n if (!this._compareItems(this.items[i], this._previousItems[i])) {\n hasChanges = true;\n break;\n }\n }\n }\n\n if (hasChanges) {\n this._updateServiceItems();\n this._changeDetectorRef.detectChanges();\n this._rebuildMenu();\n }\n\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n public ngOnDestroy(): void {\n if (!this._itemsAreValid) return;\n\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n\n this._destroy();\n }\n\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n if (!this._itemsAreValid) return;\n\n if (this.triggerEvent === 'click' && !this._isOpen) {\n this._lastActiveElement = document.activeElement as Element;\n this._createMenu();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n private _createMenu(): void {\n this._updateServiceItems();\n\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n this._tieredMenuGlobalService.lastInstance?._destroy();\n this._tieredMenuGlobalService.lastInstance = this;\n\n (this._lastActiveElement as HTMLElement)?.blur();\n this._isOpen = true;\n this.tieredMenuOpened.emit();\n this._isNested = document.body.clientWidth < 600;\n\n this._isNested ? this._createNestedMenu() : this._createTieredMenu();\n }\n }\n\n private _createTieredMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n this._componentRef = this._createComponent(TieredMenuComponent);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = this._componentRef.location.nativeElement as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n this._componentRef.instance.destroyRequest.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n });\n\n this._setMenuPosition();\n }\n }\n\n private _createNestedMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuNestedComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n this._setMenuPosition();\n }\n }\n\n private _createComponent<T>(componentClass: Type<T>) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentClass);\n const _componentRef = componentFactory.create(this._injector);\n this._resizeObserver.observe(_componentRef.location.nativeElement.querySelector('.menu'));\n _componentRef.onDestroy(() => {\n this._resizeObserver.disconnect();\n });\n return _componentRef;\n }\n\n private _destroy(): void {\n if (this._componentRef) {\n this._isOpen = false;\n this.tieredMenuClosed.emit();\n window.clearTimeout(this._showTimeout);\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = null;\n\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n this._tieredMenuService.currentItem = this._tieredMenuService.items[0];\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n private _setMenuPosition(): void {\n if (!this._componentRef) {\n return;\n }\n this._changeDetectorRef.detectChanges();\n const ITEM_HEIGHT = 37;\n const ITEM_WIDTH =\n (this._componentRef.location.nativeElement as HTMLElement)?.querySelector('.menu')?.clientWidth || 176;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n const MARGIN = 4;\n this._componentRef.instance.top = 8;\n let { bottom, left, right } = this._elementRef.nativeElement.getBoundingClientRect();\n\n const itemsCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n },\n 0,\n );\n\n const dividersCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n },\n 0,\n );\n\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + MARGIN;\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n this._componentRef.instance.top = bottom;\n this._componentRef.instance.left = left;\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(scrollY + bottom - menuHeight, 0);\n } else {\n this._componentRef.instance.top = window.scrollY + bottom + MARGIN;\n }\n\n if (rightFreeSpace > 176) {\n this._componentRef.instance.left = window.scrollX + left;\n } else {\n this._componentRef.instance.left = window.scrollX + right - ITEM_WIDTH;\n }\n\n if (this._isNested) {\n this._componentRef.instance.left = MARGIN;\n }\n }\n\n private _setMenuComponentProperties(): void {\n if (this._componentRef != null) {\n this._componentRef.instance.items = this._tieredMenuService.items;\n this._componentRef.instance.ariaLabel = this.ariaLabel;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._tieredMenuService.items = this._tieredMenuService.markAllItemsAsClosed(this._tieredMenuService.items);\n this._destroy();\n enableScroll();\n });\n }\n\n private _compareItems(item1: TieredMenuItemData, item2: TieredMenuItemData): boolean {\n return JSON.stringify(item1) === JSON.stringify(item2);\n }\n\n private _rebuildMenu(): void {\n this._destroy();\n }\n\n private _updateServiceItems(): void {\n this._tieredMenuService.items = this._tieredMenuService.normalizeData(this.items);\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n\n this._tieredMenuService.currentItem =\n this._tieredMenuService.items.find((i) => i.label === this.focusedItem?.label) ??\n this._tieredMenuService.items[0];\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TieredMenuDividerComponent } from './components/tiered-menu-divider/tiered-menu-divider.component';\nimport { TieredMenuItemComponent } from './components/tiered-menu-item/tiered-menu-item.component';\nimport { TieredMenuNestedComponent } from './components/tiered-menu-nested/tiered-menu-nested.component';\nimport { TieredMenuComponent } from './components/tiered-menu/tiered-menu.component';\nimport { TieredMenuGlobalService } from './services/tiered-menu.global.service';\nimport { TieredMenuDirective } from './tiered-menu.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TieredMenuDirective,\n TieredMenuComponent,\n TieredMenuNestedComponent,\n TieredMenuItemComponent,\n TieredMenuDividerComponent,\n ],\n exports: [TieredMenuDirective],\n providers: [TieredMenuGlobalService],\n})\nexport class TieredMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TieredMenuEventService","i2","i1.TieredMenuService","i2.TieredMenuEventService","i4.TieredMenuItemComponent","i5.TieredMenuDividerComponent","i2.TieredMenuService","i3.TieredMenuGlobalService"],"mappings":";;;;;;;;MAMa,iBAAiB,CAAA;IACnB,WAAW,GAAuC,IAAI,CAAC;IACvD,YAAY,GAAiC,EAAE,CAAC;IAChD,KAAK,GAAiC,EAAE,CAAC;IAEzC,aAAa,CAChB,KAA2B,EAC3B,MAAmC,EAAA;AAEnC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAA6B,KAAI;AAC/C,YAAA,MAAM,IAAI,GAAG;AACT,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,GAAG,CAAC;aACP,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACzD;AACD,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,oBAAoB,CAAC,KAAmC,EAAA;AAC3D,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAA6B,KAAI;AAC/C,YAAA,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AACtB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1D;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;KACN;IAEM,kBAAkB,CAAC,KAAiC,EAAE,KAAiC,EAAA;QAC1F,IAAI,IAAI,GAAsC,KAAK,CAAC;QACpD,OAAO,IAAI,EAAE;AACT,YAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAChB,gBAAA,OAAO,IAAI,CAAC;aACf;AACD,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;SAC9B;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAEM,IAAA,UAAU,CAAC,KAAmC,EAAA;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5C;IAEO,WAAW,GAAA;QACf,OAAO,CAAA,GAAA,EAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,CAAC;KACzJ;wGApDQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MCDE,uBAAuB,CAAA;AACzB,IAAA,YAAY,CAA8B;wGADxC,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAvB,uBAAuB,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCEE,sBAAsB,CAAA;AACxB,IAAA,yBAAyB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,IAAA,yBAAyB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,IAAA,eAAe,GAClB,IAAI,YAAY,EAAqC,CAAC;AACnD,IAAA,iBAAiB,GACpB,IAAI,YAAY,EAAqC,CAAC;AACnD,IAAA,kBAAkB,GACrB,IAAI,YAAY,EAAqC,CAAC;AACnD,IAAA,eAAe,GAClB,IAAI,YAAY,EAAqC,CAAC;wGAXjD,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAtB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;MCME,uBAAuB,CAAA;AAkBH,IAAA,uBAAA,CAAA;AAhBtB,IAAA,IAAI,CAA8B;IAGlC,OAAO,GAAG,KAAK,CAAC;IAGhB,SAAS,GAAI,KAAK,CAAC;IAGnB,YAAY,GAAsB,OAAO,CAAC;IAG1C,YAAY,GAAG,KAAK,CAAC;AAEpB,IAAA,YAAY,CAAU;AAE9B,IAAA,WAAA,CAA6B,uBAA+C,EAAA;QAA/C,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;KAAI;IAIzE,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;AAE/B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClE;AAAM,iBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC1B,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnE;SACJ;aAAM;YACH,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChE;KACJ;IAGM,YAAY,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;AAE/B,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;gBACvC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClE,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAGM,YAAY,GAAA;AACf,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;wGAlDQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,oUCVpC,q9BA+BA,EAAA,MAAA,EAAA,CAAA,mbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDrBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EAAA,q9BAAA,EAAA,MAAA,EAAA,CAAA,mbAAA,CAAA,EAAA,CAAA;wFAMvB,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBASC,OAAO,EAAA,CAAA;sBAFb,YAAY;uBAAC,OAAO,CAAA;;sBACpB,YAAY;uBAAC,UAAU,CAAA;gBAgBjB,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,YAAY,CAAA;gBAYnB,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,YAAY,CAAA;;;MElDjB,0BAA0B,CAAA;wGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,6DCPvC,iCACA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA,CAAA;;4FDMa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA;;;MEWxB,yBAAyB,CAAA;AAoDd,IAAA,iBAAA,CAAA;AACC,IAAA,uBAAA,CAAA;AApDd,IAAA,KAAK,CAAgC;IACrC,GAAG,GAAG,CAAC,CAAC;IACR,IAAI,GAAG,CAAC,CAAC;;;AAIR,IAAA,aAAa,CAA8B;AAC3C,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAGrC,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAC1D;AAGM,IAAA,eAAe,CAAC,KAAiB,EAAA;;AAEpC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB,CAAC;AACvC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtG,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC1D;KACJ;AAGM,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACxC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACvD,MAAM;AACV,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACtF,MAAM;AACV,YAAA,KAAK,WAAW;;AAEZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACjG,MAAM;AACV,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACxF,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM;AACV,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM;SACb;KACJ;IAED,WACoB,CAAA,iBAAoC,EACnC,uBAA+C,EAAA;QADhD,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;KAChE;IAEG,QAAQ,GAAA;QACX,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,aAAa,EAAE,CAAC;KACnB;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,YAAY,EAAE,CAAC;KAClB;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAErG,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE;AACvD,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtF;aAAM;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC/E;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAErG,QAAA,IAAI,QAAQ,IAAI,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtF;aAAM;YACH,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAC9B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC3F;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;AAEO,IAAA,UAAU,CAAC,IAAgC,EAAA;AAC/C,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;AAEjC,QAAA,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI,EAAE;AAC/B,YAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AACvB,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;SAC5B;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;KAClG;AAEO,IAAA,SAAS,CAAC,IAAgC,EAAA;AAC9C,QAAA,IAAI,IAAI,EAAE,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;;AAGnD,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACpC,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACxD;AAED,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,eAAe;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;AACnD,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;;AAEf,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;aAC1D;AACL,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,uBAAuB,CAAC,iBAAiB;AACzC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrD,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;AAEjC,oBAAA,OAAO,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5B,wBAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;qBAC5B;AAED,oBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC;iBACpF;AAED,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACxB;AACL,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,uBAAuB,CAAC,kBAAkB;AAC1C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACzB;AACL,SAAC,CAAC,CAAC;KACV;wGApLQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,yMCdtC,kxCA4CA,EAAA,MAAA,EAAA,CAAA,qRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD9Ba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;;qHAeC,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;gBAMtB,eAAe,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAWnC,gBAAgB,EAAA,CAAA;sBADtB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEVnC,mBAAmB,CAAA;AAgBP,IAAA,OAAA,CAAA;AACA,IAAA,yBAAA,CAAA;AACA,IAAA,SAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACD,IAAA,iBAAA,CAAA;AACC,IAAA,uBAAA,CAAA;AApBL,IAAA,SAAS,CAAU;IAC5B,KAAK,GAAiC,EAAE,CAAC;IACzC,GAAG,GAAG,CAAC,CAAC;IACR,IAAI,GAAG,CAAC,CAAC;IACT,gBAAgB,GAAsB,OAAO,CAAC;IAC9C,SAAS,GAAG,KAAK,CAAC;IAEjB,aAAa,GAA6C,IAAI,CAAC;IAC/D,eAAe,GAAwB,IAAI,CAAC;AAC5C,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAGrC,IAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;IAEpD,WACqB,CAAA,OAAuB,EACvB,yBAAmD,EACnD,SAAmB,EACnB,kBAAqC,EACtC,iBAAoC,EACnC,uBAA+C,EAAA;QAL/C,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA0B;QACnD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACtC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;KAChE;IAGG,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAC1D;AAGM,IAAA,eAAe,CAAC,KAAiB,EAAA;;AAEpC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB,CAAC;AACvC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtG,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC1D;KACJ;AAGM,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACxC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACvD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;AACV,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACvD,MAAM;AACV,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IACI,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAClC,oBAAA,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ;AAC5C,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACzD;AACE,oBAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACtF,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B;gBACD,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBACjC,MAAM;AACV,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBACjC,MAAM;AACV,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;AAC/F,oBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACzF,oBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;oBACxC,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B;gBACD,MAAM;AACV,YAAA,KAAK,YAAY;AACb,gBAAA,IACI,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAClC,oBAAA,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ;AAC5C,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACzD;AACE,oBAAA,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACxF,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;iBACpC;gBACD,MAAM;SACb;KACJ;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAGxB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3D,YAAA,aAAa,EAAE,CAAC;YAEhB,qBAAqB,CAAC,MAAK;gBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;SACN;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEO,iBAAiB,GAAA;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;QAElD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO;SACV;QAED,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;KACxC;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;SACV;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;;YAEjE,OAAO;SACV;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEzG,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SAC1F;aAAM;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC/E;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;;SAEV;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YACjE,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAErG,QAAA,IAAI,QAAQ,IAAI,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtF;aAAM;YACH,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAC9B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC3F;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,WAAW,CAAC,KAAmC,EAAE,QAAa,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE;YAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;YACrG,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,MAAM,OAAO,GAAI,IAAI,CAAC,aAAa,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;AAClG,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;;YAGnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;;AAG7C,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAkB,KAAI;AACxE,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7B,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACnC;KACJ;IAEO,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B;QAED,IAAI,SAAS,EAAE;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC9B;KACJ;AAEO,IAAA,gBAAgB,CAAC,QAAa,EAAA;QAClC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC;AAElB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AAE9C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CACxD,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,gBAAA,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;aAC5C,EACD,CAAC,CACJ,CAAC;AAEF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAC3D,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,gBAAA,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;aAC3C,EACD,CAAC,CACJ,CAAC;;AAGF,YAAA,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,GAAG,CAAC,CAAC;AAC3F,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE3E,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AACjD,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;AAEpD,YAAA,IAAI,cAAc,GAAG,SAAS,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;aACvD;AAED,YAAA,IAAI,eAAe,IAAI,UAAU,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aAC/F;iBAAM;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;aAC1D;SACJ;KACJ;IAEO,gBAAgB,GAAA;;AAEpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,uBAAuB,CAAC,eAAe;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D;AAAM,qBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,oBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,CAAC,OAAO,EAAE,CAAC;iBAClB;aACJ;AACL,SAAC,CAAC,CAAC;;AAEP,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC1E,YAAA,YAAY,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;;QAGH,IAAI,CAAC,uBAAuB,CAAC,iBAAiB;AACzC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;AACnD,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACpC,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE;oBACpD,OAAO;iBACV;gBAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE;AAC5C,oBAAA,IAAI,CAAC,IAAI;wBAAE,OAAO;AAElB,oBAAA,IACI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7F;AACE,wBAAA,IAAI,OAAO,GAA2C,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAEzF,wBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;wBAEvB,OAAO,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;4BACpC,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,4BAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;AAExC,4BAAA,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC;yBAC7B;wBAED,IAAI,OAAO,EAAE;AACT,4BAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;yBAC1B;qBACJ;iBACJ;aACJ;AAED,YAAA,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7D,gBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,EAAE,CAAE,CAAA,CAAC,CAAC;AAErD,gBAAA,IAAI,CAAC,MAAM;oBAAE,OAAO;AAEpB,gBAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAE9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrD,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBAEnB,qBAAqB,CAAC,MAAK;oBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;;QAGP,IAAI,CAAC,uBAAuB,CAAC,kBAAkB;AAC1C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;AAC1C,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,oBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;iBAC9B;qBAAM;AACH,oBAAA,YAAY,EAAE,CAAC;iBAClB;AACD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBACpG,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AACjD,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEhC,qBAAqB,CAAC,MAAK;oBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;KACV;wGA7VQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,6RC7BhC,2nCAoCA,EAAA,MAAA,EAAA,CAAA,gPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDPa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,2nCAAA,EAAA,MAAA,EAAA,CAAA,gPAAA,CAAA,EAAA,CAAA;gPAKT,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAYC,cAAc,EAAA,CAAA;sBADpB,MAAM;gBAaA,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;gBAMtB,eAAe,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAWnC,gBAAgB,EAAA,CAAA;sBADtB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AErChD;;;;;;;;;;;;AAYG;MAKU,mBAAmB,CAAA;AAiDP,IAAA,WAAA,CAAA;AACA,IAAA,OAAA,CAAA;AACA,IAAA,yBAAA,CAAA;AACA,IAAA,SAAA,CAAA;AACA,IAAA,uBAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AACA,IAAA,wBAAA,CAAA;AACA,IAAA,kBAAA,CAAA;AAvDrB;;;;AAIG;IAEI,KAAK,GAAyB,EAAE,CAAC;AAExC;;;AAGG;IAEI,WAAW,GAAmC,SAAS,CAAC;AAE/D;;;;;;AAMG;IAEI,YAAY,GAAsB,OAAO,CAAC;AAG1C,IAAA,SAAS,CAAU;AAGnB,IAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAGhE,IAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;IAE/D,aAAa,GAA6B,IAAI,CAAC;AAC/C,IAAA,YAAY,CAAU;IACtB,SAAS,GAAG,KAAK,CAAC;IAClB,OAAO,GAAG,KAAK,CAAC;AAChB,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpC,IAAA,kBAAkB,CAAW;IAC7B,cAAc,GAAyB,EAAE,CAAC;AAC1C,IAAA,cAAc,CAAW;AACzB,IAAA,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;AACjD,KAAC,CAAC,CAAC;AAEH,IAAA,WAAA,CACqB,WAAuB,EACvB,OAAuB,EACvB,yBAAmD,EACnD,SAAmB,EACnB,uBAA+C,EAC/C,kBAAqC,EACrC,wBAAiD,EACjD,kBAAqC,EAAA;QAPrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAyB,CAAA,yBAAA,GAAzB,yBAAyB,CAA0B;QACnD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACnB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACrC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAAyB;QACjD,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;KACtD;IAEG,QAAQ,GAAA;QACX,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;AAEjC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxE;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAClD,UAAU,GAAG,IAAI,CAAC;SACrB;aAAM;AACH,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC5D,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM;iBACT;aACJ;SACJ;QAED,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxE;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;AAEjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;AAGM,IAAA,OAAO,CAAC,KAAiB,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEjC,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAChD,YAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAwB,CAAC;YAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;KACJ;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAE3B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAClE,YAAA,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,wBAAwB,CAAC,YAAY,GAAG,IAAI,CAAC;AAEjD,YAAA,IAAI,CAAC,kBAAkC,EAAE,IAAI,EAAE,CAAC;AACjD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AAEjD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACxE;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;YAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAA4B,CAAC;AACzE,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAC1F,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;YAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;YAC3G,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,MAAM,OAAO,GAAI,IAAI,CAAC,aAAa,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;AAClG,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;KACJ;AAEO,IAAA,gBAAgB,CAAI,cAAuB,EAAA;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAChG,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F,QAAA,aAAa,CAAC,SAAS,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,aAAa,CAAC;KACxB;IAEO,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AACrE,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC1D;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,QAAA,MAAM,UAAU,GACX,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAA6B,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,IAAI,GAAG,CAAC;QAC3G,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACpC,QAAA,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAErF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CACxD,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;SAC5C,EACD,CAAC,CACJ,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAC3D,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,YAAA,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3C,EACD,CAAC,CACJ,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAChG,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AACjD,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAExC,QAAA,IAAI,eAAe,IAAI,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;SAChF;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;SACtE;AAED,QAAA,IAAI,cAAc,GAAG,GAAG,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;SAC5D;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;SAC1E;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;SAC7C;KACJ;IAEO,2BAA2B,GAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC1D;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC/F,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC5G,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,YAAY,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,aAAa,CAAC,KAAyB,EAAE,KAAyB,EAAA;AACtE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC1D;IAEO,YAAY,GAAA;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAEO,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAErE,IAAI,CAAC,kBAAkB,CAAC,WAAW;YAC/B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;AAC9E,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxC;wGA3QQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAFjB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAE7C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;AACzD,iBAAA,CAAA;4SAQU,KAAK,EAAA,CAAA;sBADX,KAAK;gBAQC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAWC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,gBAAgB,EAAA,CAAA;sBADtB,MAAM;gBAIA,gBAAgB,EAAA,CAAA;sBADtB,MAAM;gBA0EA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCnIxB,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBATrB,mBAAmB;YACnB,mBAAmB;YACnB,yBAAyB;YACzB,uBAAuB;YACvB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CANpB,YAAY,CAAA,EAAA,OAAA,EAAA,CAQZ,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAFd,SAAA,EAAA,CAAC,uBAAuB,CAAC,YAT1B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAWb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,mBAAmB;wBACnB,yBAAyB;wBACzB,uBAAuB;wBACvB,0BAA0B;AAC7B,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,SAAS,EAAE,CAAC,uBAAuB,CAAC;AACvC,iBAAA,CAAA;;;ACrBD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-tiered-menu.mjs","sources":["../../projects/angular-components/tiered-menu/src/lib/tiered-menu/services/tiered-menu.service.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/services/tiered-menu.global.service.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/services/tiered-menu.event.service.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu/tiered-menu.component.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/components/tiered-menu/tiered-menu.component.html","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/tiered-menu.directive.ts","../../projects/angular-components/tiered-menu/src/lib/tiered-menu/tiered-menu.module.ts","../../projects/angular-components/tiered-menu/src/seniorsistemas-angular-components-tiered-menu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { TieredMenuItemData } from '../models/tiered-menu-item-data';\nimport { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';\n\n@Injectable()\nexport class TieredMenuService {\n public currentItem?: TieredMenuItemInternalData | null = null;\n public currentItems: TieredMenuItemInternalData[] = [];\n public items: TieredMenuItemInternalData[] = [];\n\n public normalizeData(\n items: TieredMenuItemData[],\n parent?: TieredMenuItemInternalData,\n ): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = {\n visible: true,\n ...i,\n };\n if (item.submenu) {\n item.submenu = this.normalizeData(item.submenu, item);\n }\n item.id = this._generateId();\n item.parent = parent;\n item.isOpen = false;\n return item;\n });\n }\n\n public markAllItemsAsClosed(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = { ...i };\n if (item.submenu) {\n item.submenu = this.markAllItemsAsClosed(item.submenu);\n }\n item.isOpen = false;\n return item;\n });\n }\n\n public searchTheHierarchy(itemA: TieredMenuItemInternalData, itemB: TieredMenuItemInternalData) {\n let item: TieredMenuItemInternalData | null = itemB;\n while (item) {\n if (item === itemA) {\n return true;\n }\n item = item.parent ?? null;\n }\n return false;\n }\n\n public cloneItems(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return JSON.parse(JSON.stringify(items));\n }\n\n private _generateId(): string {\n return `id-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}`;\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { TieredMenuDirective } from '../tiered-menu.directive';\n\n@Injectable()\nexport class TieredMenuGlobalService {\n public lastInstance?: TieredMenuDirective | null;\n}\n","import { Injectable, EventEmitter } from '@angular/core';\n\nimport { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';\n\n@Injectable()\nexport class TieredMenuEventService {\n public incrementCurrentItemEvent = new EventEmitter();\n public decrementCurrentItemEvent = new EventEmitter();\n public closeAllMenusEvent = new EventEmitter();\n public selectItemEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n public openItemMenuEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n public closeItemMenuEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n public createMenuEvent =\n new EventEmitter<TieredMenuItemInternalData | null>();\n}\n","import { Component, HostListener, Input, inject } from '@angular/core';\n\nimport { TieredMenuEventService } from '../../services/tiered-menu.event.service';\nimport { TieredMenuItemInternalData } from '../../models';\n\n@Component({\n selector: 's-tiered-menu-item',\n templateUrl: './tiered-menu-item.component.html',\n styleUrls: ['./tiered-menu-item.component.scss'],\n})\nexport class TieredMenuItemComponent {\n private readonly _tieredMenuEventService = inject(TieredMenuEventService);\n\n @Input({ required: true })\n public item!: TieredMenuItemInternalData;\n\n @Input()\n public focused = false;\n\n @Input()\n public highlight? = false;\n\n @Input()\n public triggerEvent: 'click' | 'hover' = 'click';\n\n @Input()\n public closeOnClick = false;\n\n private _showTimeout?: number;\n\n @HostListener('click')\n @HostListener('touchend')\n public onClick(): void {\n if (this.item.disabled) return;\n\n if (this.item.submenu) {\n if (!this.item.isOpen) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n } else if (this.closeOnClick) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.item);\n }\n } else {\n this._tieredMenuEventService.selectItemEvent.emit(this.item);\n }\n }\n\n @HostListener('mouseenter')\n public onMouseEnter(): void {\n if (this.item.disabled) return;\n\n if (this.triggerEvent === 'hover' && !this.item.isOpen) {\n this._showTimeout = window.setTimeout(() => {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n }, 300);\n }\n }\n\n @HostListener('mouseleave')\n public onMouseLeave(): void {\n window.clearTimeout(this._showTimeout);\n }\n}\n\n","<div\n [id]=\"item.id\"\n class=\"tiered-menu-item\"\n role=\"menuitem\"\n [tabindex]=\"focused && !item.disabled ? 0 : -1\"\n [attr.aria-disabled]=\"item.disabled || null\"\n [attr.aria-haspopup]=\"item.submenu ? 'menu' : null\"\n [attr.aria-expanded]=\"item.submenu ? item.isOpen : null\"\n [attr.data-key]=\"item.dataKey\"\n [ngClass]=\"{\n 'tiered-menu-item--open': item.isOpen,\n 'tiered-menu-item--focused': focused,\n 'tiered-menu-item--disabled': item.disabled,\n }\"\n>\n <div class=\"tiered-menu-item-content\">\n <span\n class=\"icon\"\n [ngClass]=\"item.iconClass\"\n ></span>\n <span class=\"label\">{{ item.label }}</span>\n </div>\n @if (item.submenu) {\n <span\n class=\"submenu-icon fas\"\n [class.fa-chevron-left]=\"item.isOpen\"\n [class.fa-chevron-right]=\"!item.isOpen\"\n >\n </span>\n }\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-tiered-menu-divider',\n templateUrl: './tiered-menu-divider.component.html',\n styleUrls: ['./tiered-menu-divider.component.scss'],\n})\nexport class TieredMenuDividerComponent {}\n","<div class=\"divider\"></div>\n","import { Component, HostListener, OnDestroy, OnInit, inject } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { TieredMenuItemInternalData } from '../../models/tiered-menu-item-internal-data';\nimport { TieredMenuEventService } from '../../services/tiered-menu.event.service';\nimport { TieredMenuService } from '../../services/tiered-menu.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { disableScroll, enableScroll } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n templateUrl: './tiered-menu-nested.component.html',\n styleUrls: ['./tiered-menu-nested.component.scss'],\n})\nexport class TieredMenuNestedComponent implements OnInit, OnDestroy {\n readonly tieredMenuService = inject(TieredMenuService);\n private readonly _tieredMenuEventService = inject(TieredMenuEventService);\n\n public items!: TieredMenuItemInternalData[];\n public top = 0;\n public left = 0;\n // public maxHeight = 0;\n\n // Saves the last opened item to close it when a new one is opened\n private _lastOpenItem?: TieredMenuItemInternalData;\n private _unsubscribe$ = new Subject<void>();\n\n @HostListener('window:resize')\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener('document:click', ['$event'])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest('s-tiered-menu-item') || target.closest('s-tiered-menu-divider');\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case 'Escape':\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case ' ':\n case 'Enter':\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n break;\n case 'ArrowLeft':\n // When nested I need a reference to the current item's parent item, otherwise just the current item.\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem?.parent);\n break;\n case 'ArrowRight':\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n break;\n case 'ArrowUp':\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n break;\n case 'ArrowDown':\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n break;\n }\n }\n\n public ngOnInit(): void {\n this.tieredMenuService.currentItems = this.items;\n this._subscribeEvents();\n disableScroll();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n enableScroll();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (curIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem =\n this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _closeItem(item: TieredMenuItemInternalData): void {\n let itemAux = this._lastOpenItem;\n\n while (itemAux && itemAux != item) {\n itemAux.isOpen = false;\n itemAux = itemAux.parent;\n }\n\n item.isOpen = false;\n\n this.tieredMenuService.currentItem = itemAux ?? this.tieredMenuService.items[0];\n this.tieredMenuService.currentItems = itemAux?.parent?.submenu || this.tieredMenuService.items;\n }\n\n private _openItem(item: TieredMenuItemInternalData): void {\n if (item?.submenu) {\n item.isOpen = true;\n this.tieredMenuService.currentItems = item.submenu;\n\n // Only has focus if there has already been interaction.\n if (this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = item.submenu[0];\n }\n\n this._lastOpenItem = item;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.incrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._incrementCurItem();\n });\n\n this._tieredMenuEventService.decrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._decrementCurItem();\n });\n\n this._tieredMenuEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item && item.command) {\n item.command();\n // Close all menus after the item was selected.\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n });\n\n this._tieredMenuEventService.openItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item) {\n if (!this.tieredMenuService.currentItems.includes(item)) {\n let itemAux = this._lastOpenItem;\n\n while (itemAux?.parent?.parent) {\n itemAux = itemAux.parent;\n }\n\n this._tieredMenuEventService.closeItemMenuEvent.emit(itemAux?.parent ?? itemAux);\n }\n\n this._lastOpenItem = item;\n this._openItem(item);\n }\n });\n\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item) {\n this._closeItem(item);\n }\n });\n }\n}\n","<div\n class=\"menu menu--nested\"\n [ngStyle]=\"{\n top: top + 'px',\n left: left + 'px',\n }\"\n>\n <ng-container\n *ngTemplateOutlet=\"itemsTemplate; context: { $implicit: items }\"\n ></ng-container>\n</div>\n\n<ng-template\n #itemsTemplate\n let-items\n>\n @for (item of items; track item.id) {\n <div>\n @if (item.visible && !item.divider) {\n <s-tiered-menu-item\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [closeOnClick]=\"true\"\n >\n </s-tiered-menu-item>\n }\n @if (item.divider) {\n <s-tiered-menu-divider></s-tiered-menu-divider>\n }\n @if (item.submenu && item.isOpen) {\n <div>\n <div class=\"submenu\">\n <ng-container\n *ngTemplateOutlet=\"\n itemsTemplate;\n context: { $implicit: item.submenu }\n \"\n ></ng-container>\n </div>\n </div>\n }\n </div>\n }\n</ng-template>\n","import { ApplicationRef, ChangeDetectorRef, Component, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, EventEmitter, HostListener, Input, Injector, OnDestroy, OnInit, Output, inject } from '@angular/core';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\nimport { TieredMenuItemInternalData } from '../../models/tiered-menu-item-internal-data';\nimport { TieredMenuEventService } from '../../services/tiered-menu.event.service';\nimport { TieredMenuService } from '../../services/tiered-menu.service';\nimport { disableScroll, enableScroll } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n selector: 's-tiered-menu',\n templateUrl: './tiered-menu.component.html',\n styleUrls: ['./tiered-menu.component.scss'],\n})\nexport class TieredMenuComponent implements OnInit, OnDestroy {\n private readonly _appRef = inject(ApplicationRef);\n private readonly _componentFactoryResolver = inject(ComponentFactoryResolver);\n private readonly _injector = inject(Injector);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n readonly tieredMenuService = inject(TieredMenuService);\n private readonly _tieredMenuEventService = inject(TieredMenuEventService);\n\n @Input() public ariaLabel?: string;\n public items: TieredMenuItemInternalData[] = [];\n public top = 0;\n public left = 0;\n public menuTriggerEvent: 'click' | 'hover' = 'hover';\n public isSubmenu = false;\n\n private _componentRef: ComponentRef<TieredMenuComponent> | null = null;\n private _menuDivElement?: HTMLElement | null = null;\n private _unsubscribe$ = new Subject<void>();\n\n @Output()\n public destroyRequest = new EventEmitter<boolean>();\n\n @HostListener('window:resize')\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener('document:click', ['$event'])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest('s-tiered-menu-item') || target.closest('s-tiered-menu-divider');\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case 'Escape':\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n event.preventDefault();\n break;\n case 'Tab':\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case ' ':\n case 'Enter':\n if (\n this.tieredMenuService.currentItem &&\n !this.tieredMenuService.currentItem.disabled &&\n this.items.includes(this.tieredMenuService.currentItem)\n ) {\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n event.preventDefault();\n }\n break;\n case 'ArrowUp':\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n event.preventDefault();\n event.stopImmediatePropagation();\n break;\n case 'ArrowDown':\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n event.preventDefault();\n event.stopImmediatePropagation();\n break;\n case 'ArrowLeft':\n if (this.tieredMenuService.currentItem && this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem);\n this._changeDetectorRef.detectChanges();\n event.preventDefault();\n }\n break;\n case 'ArrowRight':\n if (\n this.tieredMenuService.currentItem &&\n !this.tieredMenuService.currentItem.disabled &&\n this.items.includes(this.tieredMenuService.currentItem)\n ) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n break;\n }\n }\n\n public ngOnInit(): void {\n this._subscribeEvents();\n\n // Submenus have their focus managed by the openItemMenuEvent handler.\n if (!this.isSubmenu) {\n this.tieredMenuService.currentItems = this.items;\n this.tieredMenuService.currentItem = this.items[0] ?? null;\n disableScroll();\n\n requestAnimationFrame(() => {\n this._focusCurrentItem();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _focusCurrentItem(): void {\n const id = this.tieredMenuService.currentItem?.id;\n\n if (!id) {\n return;\n }\n\n document.getElementById(id)?.focus();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n // Checking if it is the current menu.\n return;\n }\n\n const currentIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (currentIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[currentIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n // Checking if it is the current menu.\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem =\n this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _createMenu(items: TieredMenuItemInternalData[], position: any): void {\n if (!this._componentRef && items) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n // Setting the menu items.\n this._componentRef.instance.items = items;\n this._componentRef.instance.isSubmenu = true;\n\n // Subscribe menu events.\n this._componentRef.instance.destroyRequest.subscribe((propagate: boolean) => {\n this._destroy(propagate);\n });\n\n this._menuDivElement = domElem.querySelector('.menu');\n this._setMenuPosition(position);\n }\n }\n\n private _destroy(propagate = true): void {\n if (this._componentRef !== null) {\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = null;\n this._menuDivElement = null;\n }\n\n if (propagate) {\n this.destroyRequest.emit();\n }\n }\n\n private _setMenuPosition(position: any): void {\n const ITEM_HEIGHT = 37;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n\n if (this._componentRef !== null) {\n const { top, right, bottom, left } = position;\n\n const itemsCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n },\n 0,\n );\n\n const dividersCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n },\n 0,\n );\n\n // I need to calculate the height of the component because the internal elements have not been created yet.\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + 8;\n const menuWidth = this._menuDivElement?.getBoundingClientRect().width ?? 0;\n\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n if (rightFreeSpace > menuWidth) {\n this._componentRef.instance.left = right;\n } else {\n this._componentRef.instance.left = left - menuWidth;\n }\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(window.innerHeight - menuHeight, window.scrollY);\n } else {\n this._componentRef.instance.top = window.scrollY + top;\n }\n }\n }\n\n private _subscribeEvents(): void {\n // Increment current item event.\n this._tieredMenuEventService.incrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._incrementCurItem();\n this._focusCurrentItem();\n });\n // Decrement current item event.\n this._tieredMenuEventService.decrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._decrementCurItem();\n this._focusCurrentItem();\n });\n // Select item event.\n this._tieredMenuEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item) {\n if (item.submenu) {\n this._tieredMenuEventService.openItemMenuEvent.emit(item);\n } else if (item.command) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n item.command();\n }\n }\n });\n // Close all menus event.\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n this.tieredMenuService.currentItem = null;\n this.tieredMenuService.currentItems = this.tieredMenuService.items;\n this.tieredMenuService.markAllItemsAsClosed(this.tieredMenuService.items);\n enableScroll();\n });\n\n // Open item menu event.\n this._tieredMenuEventService.openItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (this.tieredMenuService.currentItem) {\n if (this.tieredMenuService.currentItem.parent === item) {\n return;\n }\n\n if (this.tieredMenuService.currentItem?.parent) {\n if (!item) return;\n\n if (\n !this.tieredMenuService.searchTheHierarchy(this.tieredMenuService.currentItem.parent, item)\n ) {\n let current: TieredMenuItemInternalData | undefined = this.tieredMenuService.currentItem;\n\n current.isOpen = false;\n\n while (current?.parent !== item.parent) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(current);\n this._changeDetectorRef.detectChanges();\n\n current = current?.parent;\n }\n\n if (current) {\n current.isOpen = false;\n }\n }\n }\n }\n\n if (item?.submenu && !item?.isOpen && this.items.includes(item)) {\n const itemEl = document.querySelector(`#${item.id}`);\n\n if (!itemEl) return;\n\n const { top, right, left, bottom } = itemEl.getBoundingClientRect();\n const position = { top, right, left, bottom };\n\n this._createMenu(item.submenu, position);\n this.tieredMenuService.currentItems = item.submenu;\n this.tieredMenuService.currentItem = item.submenu[0];\n item.isOpen = true;\n\n requestAnimationFrame(() => {\n this._focusCurrentItem();\n });\n }\n });\n\n // Close item menu event.\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData | null) => {\n if (item === null) return;\n if (this.items.some((i) => i.id === item.id)) {\n if (item.parent) {\n item.parent.isOpen = false;\n } else {\n enableScroll();\n }\n this.tieredMenuService.currentItems = item?.parent?.parent?.submenu || this.tieredMenuService.items;\n this.tieredMenuService.currentItem = item.parent;\n this.destroyRequest.emit(false);\n\n requestAnimationFrame(() => {\n this._focusCurrentItem();\n });\n }\n });\n }\n}\n\n","<div\n class=\"menu\"\n role=\"application\"\n [attr.aria-label]=\"ariaLabel\"\n [ngStyle]=\"{\n left: left + 'px',\n top: top + 'px',\n }\"\n>\n <!-- <div *ngFor=\"let item of items\">\n <s-tiered-menu-item\n *ngIf=\"item.visible && !item.divider\"\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [highlight]=\"item.isOpen\"\n fieldUtils.triggerEvent=\"hover\"\n [closeOnClick]=\"false\"\n >\n </s-tiered-menu-item>\n <s-tiered-menu-divider *ngIf=\"item.divider\"></s-tiered-menu-divider>\n </div> -->\n @for (item of items; track $index) {\n @if (item.visible && !item.divider) {\n <s-tiered-menu-item\n [item]=\"item\"\n [focused]=\"item === tieredMenuService.currentItem\"\n [highlight]=\"item.isOpen\"\n fieldUtils.triggerEvent=\"hover\"\n [closeOnClick]=\"false\"\n />\n }\n @if (item.divider) {\n <s-tiered-menu-divider />\n }\n }\n</div>\n","import { ApplicationRef, ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EmbeddedViewRef, EventEmitter, HostListener, Injector, Input, OnChanges, OnDestroy, OnInit, Output, Type, inject } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { TieredMenuNestedComponent } from './components/tiered-menu-nested/tiered-menu-nested.component';\nimport { TieredMenuComponent } from './components/tiered-menu/tiered-menu.component';\nimport { TieredMenuItemData } from './models/tiered-menu-item-data';\nimport { TieredMenuEventService } from './services/tiered-menu.event.service';\nimport { TieredMenuGlobalService } from './services/tiered-menu.global.service';\nimport { TieredMenuService } from './services/tiered-menu.service';\nimport { TieredMenuItemInternalData } from './models';\nimport { enableScroll } from '@seniorsistemas/angular-components/utils';\n\n/**\n * @description Diretiva que anexa um menu multinível (tiered menu) a qualquer elemento do DOM.\n * Ao disparar o evento configurado no elemento hospedeiro, exibe um painel flutuante\n * com itens de menu hierárquicos, suportando submenus aninhados e divisores.\n * Em telas estreitas (< 600px), o menu é exibido em modo aninhado fullscreen.\n *\n * @example\n * ```html\n * <s-button [sTieredMenu]=\"menuItems\" triggerEvent=\"click\">Abrir menu</s-button>\n * ```\n *\n * @category Navegação\n */\n@Directive({\n selector: '[sTieredMenu]',\n providers: [TieredMenuEventService, TieredMenuService],\n})\nexport class TieredMenuDirective implements OnInit, OnChanges, OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n private readonly _appRef = inject(ApplicationRef);\n private readonly _componentFactoryResolver = inject(ComponentFactoryResolver);\n private readonly _injector = inject(Injector);\n private readonly _tieredMenuEventService = inject(TieredMenuEventService);\n private readonly _tieredMenuService = inject(TieredMenuService);\n private readonly _tieredMenuGlobalService = inject(TieredMenuGlobalService);\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n /**\n * @description Lista de itens exibidos no menu. Cada item pode conter um array de `children`\n * para criar submenus aninhados, além de propriedades como `label`, `icon`,\n * `disabled`, `command` e `divider`.\n */\n @Input()\n public items: TieredMenuItemData[] = [];\n\n /**\n * @description Item que receberá o foco inicial ao abrir o menu.\n * Útil para destacar uma opção pré-selecionada ou contextual.\n */\n @Input()\n public focusedItem: TieredMenuItemData | undefined = undefined;\n\n /**\n * @description Define o evento do elemento hospedeiro que dispara a abertura do menu.\n * - `'click'`: abre o menu ao clicar no elemento (padrão).\n * - `'hover'`: abre o menu ao passar o mouse sobre o elemento.\n *\n * @default 'click'\n */\n @Input()\n public triggerEvent: 'click' | 'hover' = 'click';\n\n @Input()\n public ariaLabel?: string;\n\n @Output()\n public tieredMenuOpened: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public tieredMenuClosed: EventEmitter<void> = new EventEmitter<void>();\n\n private _componentRef: ComponentRef<any> | null = null;\n private _showTimeout?: number;\n private _isNested = false;\n private _isOpen = false;\n private _unsubscribe$ = new Subject<void>();\n private _lastActiveElement?: Element;\n private _previousItems: TieredMenuItemData[] = [];\n private _itemsAreValid?: boolean;\n private _resizeObserver = new ResizeObserver(() => {\n this._setMenuPosition();\n this._componentRef?.hostView.detectChanges();\n });\n\n public ngOnInit(): void {\n this._itemsAreValid = !!this.items?.length;\n\n if (!this._itemsAreValid) return;\n\n this._subscribeEvents();\n }\n\n public ngOnChanges(): void {\n if (!this._itemsAreValid) return;\n\n if (!this._previousItems) {\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n let hasChanges = false;\n\n if (this.items.length !== this._previousItems.length) {\n hasChanges = true;\n } else {\n for (let i = 0; i < this.items.length; i++) {\n if (!this._compareItems(this.items[i], this._previousItems[i])) {\n hasChanges = true;\n break;\n }\n }\n }\n\n if (hasChanges) {\n this._updateServiceItems();\n this._changeDetectorRef.detectChanges();\n this._rebuildMenu();\n }\n\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n public ngOnDestroy(): void {\n if (!this._itemsAreValid) return;\n\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n\n this._destroy();\n }\n\n @HostListener('click', ['$event'])\n public onClick(event: MouseEvent): void {\n if (!this._itemsAreValid) return;\n\n if (this.triggerEvent === 'click' && !this._isOpen) {\n this._lastActiveElement = document.activeElement as Element;\n this._createMenu();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n private _createMenu(): void {\n this._updateServiceItems();\n\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n this._tieredMenuGlobalService.lastInstance?._destroy();\n this._tieredMenuGlobalService.lastInstance = this;\n\n (this._lastActiveElement as HTMLElement)?.blur();\n this._isOpen = true;\n this.tieredMenuOpened.emit();\n this._isNested = document.body.clientWidth < 600;\n\n this._isNested ? this._createNestedMenu() : this._createTieredMenu();\n }\n }\n\n private _createTieredMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n this._componentRef = this._createComponent(TieredMenuComponent);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = this._componentRef.location.nativeElement as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n this._componentRef.instance.destroyRequest.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n });\n\n this._setMenuPosition();\n }\n }\n\n private _createNestedMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuNestedComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n this._setMenuPosition();\n }\n }\n\n private _createComponent<T>(componentClass: Type<T>) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(componentClass);\n const _componentRef = componentFactory.create(this._injector);\n this._resizeObserver.observe(_componentRef.location.nativeElement.querySelector('.menu'));\n _componentRef.onDestroy(() => {\n this._resizeObserver.disconnect();\n });\n return _componentRef;\n }\n\n private _destroy(): void {\n if (this._componentRef) {\n this._isOpen = false;\n this.tieredMenuClosed.emit();\n window.clearTimeout(this._showTimeout);\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = null;\n\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n this._tieredMenuService.currentItem = this._tieredMenuService.items[0];\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n private _setMenuPosition(): void {\n if (!this._componentRef) {\n return;\n }\n this._changeDetectorRef.detectChanges();\n const ITEM_HEIGHT = 37;\n const ITEM_WIDTH =\n (this._componentRef.location.nativeElement as HTMLElement)?.querySelector('.menu')?.clientWidth || 176;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n const MARGIN = 4;\n this._componentRef.instance.top = 8;\n let { bottom, left, right } = this._elementRef.nativeElement.getBoundingClientRect();\n\n const itemsCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n },\n 0,\n );\n\n const dividersCount = this._componentRef.instance.items?.reduce(\n (count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n },\n 0,\n );\n\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + MARGIN;\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n this._componentRef.instance.top = bottom;\n this._componentRef.instance.left = left;\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(scrollY + bottom - menuHeight, 0);\n } else {\n this._componentRef.instance.top = window.scrollY + bottom + MARGIN;\n }\n\n if (rightFreeSpace > 176) {\n this._componentRef.instance.left = window.scrollX + left;\n } else {\n this._componentRef.instance.left = window.scrollX + right - ITEM_WIDTH;\n }\n\n if (this._isNested) {\n this._componentRef.instance.left = MARGIN;\n }\n }\n\n private _setMenuComponentProperties(): void {\n if (this._componentRef != null) {\n this._componentRef.instance.items = this._tieredMenuService.items;\n this._componentRef.instance.ariaLabel = this.ariaLabel;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._tieredMenuService.items = this._tieredMenuService.markAllItemsAsClosed(this._tieredMenuService.items);\n this._destroy();\n enableScroll();\n });\n }\n\n private _compareItems(item1: TieredMenuItemData, item2: TieredMenuItemData): boolean {\n return JSON.stringify(item1) === JSON.stringify(item2);\n }\n\n private _rebuildMenu(): void {\n this._destroy();\n }\n\n private _updateServiceItems(): void {\n this._tieredMenuService.items = this._tieredMenuService.normalizeData(this.items);\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n\n this._tieredMenuService.currentItem =\n this._tieredMenuService.items.find((i) => i.label === this.focusedItem?.label) ??\n this._tieredMenuService.items[0];\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TieredMenuDividerComponent } from './components/tiered-menu-divider/tiered-menu-divider.component';\nimport { TieredMenuItemComponent } from './components/tiered-menu-item/tiered-menu-item.component';\nimport { TieredMenuNestedComponent } from './components/tiered-menu-nested/tiered-menu-nested.component';\nimport { TieredMenuComponent } from './components/tiered-menu/tiered-menu.component';\nimport { TieredMenuGlobalService } from './services/tiered-menu.global.service';\nimport { TieredMenuDirective } from './tiered-menu.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TieredMenuDirective,\n TieredMenuComponent,\n TieredMenuNestedComponent,\n TieredMenuItemComponent,\n TieredMenuDividerComponent,\n ],\n exports: [TieredMenuDirective],\n providers: [TieredMenuGlobalService],\n})\nexport class TieredMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.TieredMenuItemComponent","i3.TieredMenuDividerComponent"],"mappings":";;;;;;;;MAMa,iBAAiB,CAAA;IACnB,WAAW,GAAuC,IAAI,CAAC;IACvD,YAAY,GAAiC,EAAE,CAAC;IAChD,KAAK,GAAiC,EAAE,CAAC;IAEzC,aAAa,CAChB,KAA2B,EAC3B,MAAmC,EAAA;AAEnC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAA6B,KAAI;AAC/C,YAAA,MAAM,IAAI,GAAG;AACT,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,GAAG,CAAC;aACP,CAAC;AACF,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACzD;AACD,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;KACN;AAEM,IAAA,oBAAoB,CAAC,KAAmC,EAAA;AAC3D,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAA6B,KAAI;AAC/C,YAAA,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;AACtB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC1D;AACD,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;KACN;IAEM,kBAAkB,CAAC,KAAiC,EAAE,KAAiC,EAAA;QAC1F,IAAI,IAAI,GAAsC,KAAK,CAAC;QACpD,OAAO,IAAI,EAAE;AACT,YAAA,IAAI,IAAI,KAAK,KAAK,EAAE;AAChB,gBAAA,OAAO,IAAI,CAAC;aACf;AACD,YAAA,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;SAC9B;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AAEM,IAAA,UAAU,CAAC,KAAmC,EAAA;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KAC5C;IAEO,WAAW,GAAA;QACf,OAAO,CAAA,GAAA,EAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,CAAC;KACzJ;wGApDQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MCDE,uBAAuB,CAAA;AACzB,IAAA,YAAY,CAA8B;wGADxC,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAvB,uBAAuB,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;MCEE,sBAAsB,CAAA;AACxB,IAAA,yBAAyB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,IAAA,yBAAyB,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,IAAA,eAAe,GAClB,IAAI,YAAY,EAAqC,CAAC;AACnD,IAAA,iBAAiB,GACpB,IAAI,YAAY,EAAqC,CAAC;AACnD,IAAA,kBAAkB,GACrB,IAAI,YAAY,EAAqC,CAAC;AACnD,IAAA,eAAe,GAClB,IAAI,YAAY,EAAqC,CAAC;wGAXjD,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAtB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;MCME,uBAAuB,CAAA;AACf,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAGnE,IAAA,IAAI,CAA8B;IAGlC,OAAO,GAAG,KAAK,CAAC;IAGhB,SAAS,GAAI,KAAK,CAAC;IAGnB,YAAY,GAAsB,OAAO,CAAC;IAG1C,YAAY,GAAG,KAAK,CAAC;AAEpB,IAAA,YAAY,CAAU;IAIvB,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;AAE/B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnB,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClE;AAAM,iBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC1B,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnE;SACJ;aAAM;YACH,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChE;KACJ;IAGM,YAAY,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;AAE/B,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACpD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,MAAK;gBACvC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClE,EAAE,GAAG,CAAC,CAAC;SACX;KACJ;IAGM,YAAY,GAAA;AACf,QAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;wGAlDQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,oUCVpC,q9BA+BA,EAAA,MAAA,EAAA,CAAA,mbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDrBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EAAA,q9BAAA,EAAA,MAAA,EAAA,CAAA,mbAAA,CAAA,EAAA,CAAA;8BAQvB,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAOC,OAAO,EAAA,CAAA;sBAFb,YAAY;uBAAC,OAAO,CAAA;;sBACpB,YAAY;uBAAC,UAAU,CAAA;gBAgBjB,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,YAAY,CAAA;gBAYnB,YAAY,EAAA,CAAA;sBADlB,YAAY;uBAAC,YAAY,CAAA;;;MElDjB,0BAA0B,CAAA;wGAA1B,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,6DCPvC,iCACA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA,CAAA;;4FDMa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,CAAA;;;MEWxB,yBAAyB,CAAA;AACzB,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACtC,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEnE,IAAA,KAAK,CAAgC;IACrC,GAAG,GAAG,CAAC,CAAC;IACR,IAAI,GAAG,CAAC,CAAC;;;AAIR,IAAA,aAAa,CAA8B;AAC3C,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;IAGrC,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAC1D;AAGM,IAAA,eAAe,CAAC,KAAiB,EAAA;;AAEpC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB,CAAC;AACvC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtG,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC1D;KACJ;AAGM,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACxC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACvD,MAAM;AACV,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACtF,MAAM;AACV,YAAA,KAAK,WAAW;;AAEZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACjG,MAAM;AACV,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACxF,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM;AACV,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,MAAM;SACb;KACJ;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,aAAa,EAAE,CAAC;KACnB;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,YAAY,EAAE,CAAC;KAClB;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAErG,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE;AACvD,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtF;aAAM;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC/E;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAErG,QAAA,IAAI,QAAQ,IAAI,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtF;aAAM;YACH,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAC9B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC3F;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;AAEO,IAAA,UAAU,CAAC,IAAgC,EAAA;AAC/C,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;AAEjC,QAAA,OAAO,OAAO,IAAI,OAAO,IAAI,IAAI,EAAE;AAC/B,YAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AACvB,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;SAC5B;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChF,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;KAClG;AAEO,IAAA,SAAS,CAAC,IAAgC,EAAA;AAC9C,QAAA,IAAI,IAAI,EAAE,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;;AAGnD,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACpC,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aACxD;AAED,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uBAAuB,CAAC,eAAe;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;AACnD,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;;AAEf,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;aAC1D;AACL,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,uBAAuB,CAAC,iBAAiB;AACzC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACrD,oBAAA,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;AAEjC,oBAAA,OAAO,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5B,wBAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;qBAC5B;AAED,oBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC;iBACpF;AAED,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACxB;AACL,SAAC,CAAC,CAAC;QAEP,IAAI,CAAC,uBAAuB,CAAC,kBAAkB;AAC1C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACzB;AACL,SAAC,CAAC,CAAC;KACV;wGAlLQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,yMCdtC,kxCA4CA,EAAA,MAAA,EAAA,CAAA,qRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FD9Ba,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;;8BAkBC,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;gBAMtB,eAAe,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAWnC,gBAAgB,EAAA,CAAA;sBADtB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME3BnC,mBAAmB,CAAA;AACX,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,IAAA,yBAAyB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC7D,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACvD,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACtC,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAE1D,IAAA,SAAS,CAAU;IAC5B,KAAK,GAAiC,EAAE,CAAC;IACzC,GAAG,GAAG,CAAC,CAAC;IACR,IAAI,GAAG,CAAC,CAAC;IACT,gBAAgB,GAAsB,OAAO,CAAC;IAC9C,SAAS,GAAG,KAAK,CAAC;IAEjB,aAAa,GAA6C,IAAI,CAAC;IAC/D,eAAe,GAAwB,IAAI,CAAC;AAC5C,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AAGrC,IAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;IAG7C,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;KAC1D;AAGM,IAAA,eAAe,CAAC,KAAiB,EAAA;;AAEpC,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB,CAAC;AACvC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtG,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC1D;KACJ;AAGM,IAAA,gBAAgB,CAAC,KAAoB,EAAA;AACxC,QAAA,QAAQ,KAAK,CAAC,GAAG;AACb,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACvD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAM;AACV,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;gBACvD,MAAM;AACV,YAAA,KAAK,GAAG,CAAC;AACT,YAAA,KAAK,OAAO;AACR,gBAAA,IACI,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAClC,oBAAA,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ;AAC5C,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACzD;AACE,oBAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACtF,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B;gBACD,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBACjC,MAAM;AACV,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;gBAC9D,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBACjC,MAAM;AACV,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;AAC/F,oBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACzF,oBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;oBACxC,KAAK,CAAC,cAAc,EAAE,CAAC;iBAC1B;gBACD,MAAM;AACV,YAAA,KAAK,YAAY;AACb,gBAAA,IACI,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAClC,oBAAA,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ;AAC5C,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EACzD;AACE,oBAAA,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBACxF,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;iBACpC;gBACD,MAAM;SACb;KACJ;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,gBAAgB,EAAE,CAAC;;AAGxB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;AACjD,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3D,YAAA,aAAa,EAAE,CAAC;YAEhB,qBAAqB,CAAC,MAAK;gBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;SACN;KACJ;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;KACjC;IAEO,iBAAiB,GAAA;QACrB,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;QAElD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO;SACV;QAED,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;KACxC;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;SACV;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;;YAEjE,OAAO;SACV;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEzG,IAAI,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;SAC1F;aAAM;AACH,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;SAC/E;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO;;SAEV;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YACjE,OAAO;SACV;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAErG,QAAA,IAAI,QAAQ,IAAI,CAAC,EAAE;AACf,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACtF;aAAM;YACH,IAAI,CAAC,iBAAiB,CAAC,WAAW;AAC9B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC3F;QAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;IAEO,WAAW,CAAC,KAAmC,EAAE,QAAa,EAAA;AAClE,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,EAAE;YAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;YACrG,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,MAAM,OAAO,GAAI,IAAI,CAAC,aAAa,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;AAClG,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;;YAGnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;;AAG7C,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,SAAkB,KAAI;AACxE,gBAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7B,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACnC;KACJ;IAEO,QAAQ,CAAC,SAAS,GAAG,IAAI,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;SAC/B;QAED,IAAI,SAAS,EAAE;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;SAC9B;KACJ;AAEO,IAAA,gBAAgB,CAAC,QAAa,EAAA;QAClC,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC;AAElB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;AAE9C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CACxD,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,gBAAA,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;aAC5C,EACD,CAAC,CACJ,CAAC;AAEF,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAC3D,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,gBAAA,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;aAC3C,EACD,CAAC,CACJ,CAAC;;AAGF,YAAA,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,GAAG,CAAC,CAAC;AAC3F,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,qBAAqB,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAE3E,YAAA,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AACjD,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;AAEpD,YAAA,IAAI,cAAc,GAAG,SAAS,EAAE;gBAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;aAC5C;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;aACvD;AAED,YAAA,IAAI,eAAe,IAAI,UAAU,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aAC/F;iBAAM;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;aAC1D;SACJ;KACJ;IAEO,gBAAgB,GAAA;;AAEpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACtG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,uBAAuB,CAAC,eAAe;AACvC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;oBACd,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D;AAAM,qBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,oBAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,CAAC,OAAO,EAAE,CAAC;iBAClB;aACJ;AACL,SAAC,CAAC,CAAC;;AAEP,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1C,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACnE,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC1E,YAAA,YAAY,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;;QAGH,IAAI,CAAC,uBAAuB,CAAC,iBAAiB;AACzC,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;AACnD,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACpC,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE;oBACpD,OAAO;iBACV;gBAED,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE;AAC5C,oBAAA,IAAI,CAAC,IAAI;wBAAE,OAAO;AAElB,oBAAA,IACI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC7F;AACE,wBAAA,IAAI,OAAO,GAA2C,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAEzF,wBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;wBAEvB,OAAO,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;4BACpC,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,4BAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;AAExC,4BAAA,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC;yBAC7B;wBAED,IAAI,OAAO,EAAE;AACT,4BAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;yBAC1B;qBACJ;iBACJ;aACJ;AAED,YAAA,IAAI,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC7D,gBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,EAAE,CAAE,CAAA,CAAC,CAAC;AAErD,gBAAA,IAAI,CAAC,MAAM;oBAAE,OAAO;AAEpB,gBAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAE9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrD,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBAEnB,qBAAqB,CAAC,MAAK;oBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;;QAGP,IAAI,CAAC,uBAAuB,CAAC,kBAAkB;AAC1C,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,aAAA,SAAS,CAAC,CAAC,IAAuC,KAAI;YACnD,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;AAC1C,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,oBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;iBAC9B;qBAAM;AACH,oBAAA,YAAY,EAAE,CAAC;iBAClB;AACD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBACpG,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AACjD,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAEhC,qBAAqB,CAAC,MAAK;oBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC7B,iBAAC,CAAC,CAAC;aACN;AACL,SAAC,CAAC,CAAC;KACV;wGA3VQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,6RCfhC,2nCAoCA,EAAA,MAAA,EAAA,CAAA,gPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDrBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,2nCAAA,EAAA,MAAA,EAAA,CAAA,gPAAA,CAAA,EAAA,CAAA;8BAYT,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAYC,cAAc,EAAA,CAAA;sBADpB,MAAM;gBAIA,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;gBAMtB,eAAe,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAWnC,gBAAgB,EAAA,CAAA;sBADtB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEtChD;;;;;;;;;;;;AAYG;MAKU,mBAAmB,CAAA;AACX,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACjC,IAAA,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACjC,IAAA,yBAAyB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC7D,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACzD,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC/C,IAAA,wBAAwB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAC3D,IAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEhE;;;;AAIG;IAEI,KAAK,GAAyB,EAAE,CAAC;AAExC;;;AAGG;IAEI,WAAW,GAAmC,SAAS,CAAC;AAE/D;;;;;;AAMG;IAEI,YAAY,GAAsB,OAAO,CAAC;AAG1C,IAAA,SAAS,CAAU;AAGnB,IAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAGhE,IAAA,gBAAgB,GAAuB,IAAI,YAAY,EAAQ,CAAC;IAE/D,aAAa,GAA6B,IAAI,CAAC;AAC/C,IAAA,YAAY,CAAU;IACtB,SAAS,GAAG,KAAK,CAAC;IAClB,OAAO,GAAG,KAAK,CAAC;AAChB,IAAA,aAAa,GAAG,IAAI,OAAO,EAAQ,CAAC;AACpC,IAAA,kBAAkB,CAAW;IAC7B,cAAc,GAAyB,EAAE,CAAC;AAC1C,IAAA,cAAc,CAAW;AACzB,IAAA,eAAe,GAAG,IAAI,cAAc,CAAC,MAAK;QAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;AACjD,KAAC,CAAC,CAAC;IAEI,QAAQ,GAAA;QACX,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;AAEjC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACxE;QAED,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAClD,UAAU,GAAG,IAAI,CAAC;SACrB;aAAM;AACH,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC5D,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM;iBACT;aACJ;SACJ;QAED,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACxE;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;AAEjC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;AAGM,IAAA,OAAO,CAAC,KAAiB,EAAA;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QAEjC,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAChD,YAAA,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,aAAwB,CAAC;YAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;SAC3B;KACJ;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAE3B,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AAClE,YAAA,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,wBAAwB,CAAC,YAAY,GAAG,IAAI,CAAC;AAEjD,YAAA,IAAI,CAAC,kBAAkC,EAAE,IAAI,EAAE,CAAC;AACjD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;AAEjD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACxE;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;YAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAA4B,CAAC;AACzE,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAC1F,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;KACJ;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;YAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,CAAC;YAC3G,IAAI,CAAC,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,MAAM,OAAO,GAAI,IAAI,CAAC,aAAa,CAAC,QAAiC,CAAC,SAAS,CAAC,CAAC,CAAgB,CAAC;AAClG,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;KACJ;AAEO,IAAA,gBAAgB,CAAI,cAAuB,EAAA;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAChG,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F,QAAA,aAAa,CAAC,SAAS,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACtC,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,aAAa,CAAC;KACxB;IAEO,QAAQ,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAC7B,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAE1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;AACrE,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SAC1D;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO;SACV;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,QAAA,MAAM,UAAU,GACX,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAA6B,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,IAAI,GAAG,CAAC;QAC3G,MAAM,cAAc,GAAG,CAAC,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACpC,QAAA,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAErF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CACxD,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;SAC5C,EACD,CAAC,CACJ,CAAC;AAEF,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAC3D,CAAC,KAAa,EAAE,IAAgC,KAAI;AAChD,YAAA,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;SAC3C,EACD,CAAC,CACJ,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAChG,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;AACjD,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAExC,QAAA,IAAI,eAAe,IAAI,UAAU,EAAE;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;SAChF;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;SACtE;AAED,QAAA,IAAI,cAAc,GAAG,GAAG,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;SAC5D;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;SAC1E;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;SAC7C;KACJ;IAEO,2BAA2B,GAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC1D;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC/F,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC5G,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,YAAY,EAAE,CAAC;AACnB,SAAC,CAAC,CAAC;KACN;IAEO,aAAa,CAAC,KAAyB,EAAE,KAAyB,EAAA;AACtE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC1D;IAEO,YAAY,GAAA;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAEO,mBAAmB,GAAA;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;QAErE,IAAI,CAAC,kBAAkB,CAAC,WAAW;YAC/B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;AAC9E,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxC;wGAzQQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAFjB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAE7C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;AACzD,iBAAA,CAAA;8BAiBU,KAAK,EAAA,CAAA;sBADX,KAAK;gBAQC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAWC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,gBAAgB,EAAA,CAAA;sBADtB,MAAM;gBAIA,gBAAgB,EAAA,CAAA;sBADtB,MAAM;gBA+DA,OAAO,EAAA,CAAA;sBADb,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MChHxB,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBATrB,mBAAmB;YACnB,mBAAmB;YACnB,yBAAyB;YACzB,uBAAuB;YACvB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CANpB,YAAY,CAAA,EAAA,OAAA,EAAA,CAQZ,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAFd,SAAA,EAAA,CAAC,uBAAuB,CAAC,YAT1B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAWb,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,mBAAmB;wBACnB,yBAAyB;wBACzB,uBAAuB;wBACvB,0BAA0B;AAC7B,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;oBAC9B,SAAS,EAAE,CAAC,uBAAuB,CAAC;AACvC,iBAAA,CAAA;;;ACrBD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, HostBinding, NgModule, Injectable } from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, HostBinding, NgModule, inject, ApplicationRef, Injector, ComponentFactoryResolver, Injectable } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { first } from 'rxjs/operators';
5
5
 
@@ -81,16 +81,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
81
81
  }] });
82
82
 
83
83
  class ToastService {
84
- appRef;
85
- injector;
86
- componentFactoryResolver;
84
+ appRef = inject(ApplicationRef);
85
+ injector = inject(Injector);
86
+ componentFactoryResolver = inject(ComponentFactoryResolver);
87
87
  activeToasts = [];
88
88
  globalToastHostElement = null;
89
- constructor(appRef, injector, componentFactoryResolver) {
90
- this.appRef = appRef;
91
- this.injector = injector;
92
- this.componentFactoryResolver = componentFactoryResolver;
93
- }
94
89
  ensureGlobalToastHost() {
95
90
  if (!this.globalToastHostElement) {
96
91
  this.globalToastHostElement = document.createElement("div");
@@ -134,7 +129,7 @@ class ToastService {
134
129
  });
135
130
  this.activeToasts.push(componentRef);
136
131
  }
137
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
132
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
138
133
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, providedIn: "root" });
139
134
  }
140
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastService, decorators: [{
@@ -142,7 +137,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
142
137
  args: [{
143
138
  providedIn: "root",
144
139
  }]
145
- }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }] });
140
+ }] });
146
141
 
147
142
  /**
148
143
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-toast.mjs","sources":["../../projects/angular-components/toast/src/lib/toast/toast.component.ts","../../projects/angular-components/toast/src/lib/toast/toast.component.html","../../projects/angular-components/toast/src/lib/toast/toast.module.ts","../../projects/angular-components/toast/src/lib/toast/toast.service.ts","../../projects/angular-components/toast/src/seniorsistemas-angular-components-toast.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, HostBinding, OnDestroy, OnInit } from '@angular/core'; // Adicionado HostBinding, OnDestroy\nimport { Toast } from './types/toast';\n\n/**\n * @description Componente individual de notificação (toast) que exibe uma mensagem temporária na tela.\n * Gerencia automaticamente o timer de dismiss quando `toast.sticky` é `false`.\n * Recomenda-se utilizar o `ToastService` para criar e empilhar toasts na aplicação.\n *\n * @example\n * ```html\n * <s-toast [toast]=\"toastData\" (dismiss)=\"onDismiss()\" />\n * ```\n *\n * @category Feedback\n */\n@Component({\n selector: 's-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n /**\n * @description Objeto com os dados da notificação a ser exibida.\n * Inclui propriedades como `severity`, `summary`, `detail`, `duration` e `sticky`.\n */\n @Input()\n public toast!: Toast;\n\n /**\n * @description Emitido quando a notificação é descartada, seja pelo timer automático\n * (ao expirar `toast.duration`) ou pela ação manual do usuário.\n */\n @Output()\n public dismiss = new EventEmitter<void>();\n\n @HostBinding('class.toast--leaving')\n public isLeaving = false;\n\n private timer: ReturnType<typeof setTimeout> | null = null;\n\n public ngOnInit(): void {\n if (!this.toast.sticky && this.toast.duration) {\n this.timer = setTimeout(() => {\n this.startDismissAnimation();\n }, this.toast.duration);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n public startDismissAnimation(): void {\n this.isLeaving = true;\n\n setTimeout(() => {\n this.dismiss.emit();\n }, 300);\n }\n\n public dismissToast(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.startDismissAnimation();\n }\n}\n\n","<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n @if(toast.title) {\n <span class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n }\n @if(toast.text) {\n <span [innerHTML]=\"toast.text\"></span>\n }\n </div>\n </div>\n @if(toast.closable) {\n <button class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n }\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ToastComponent } from \"./toast.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToastComponent],\n})\nexport class ToastModule {}\n","import { Injectable, ComponentRef, ApplicationRef, Injector, EmbeddedViewRef, ComponentFactoryResolver } from \"@angular/core\";\n\nimport { ToastComponent } from \"./toast.component\";\nimport { Toast } from \"./types/toast\";\nimport { first } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ToastService {\n private activeToasts: ComponentRef<ToastComponent>[] = [];\n private globalToastHostElement: HTMLElement | null = null;\n\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver\n ) { }\n\n private ensureGlobalToastHost(): void {\n if (!this.globalToastHostElement) {\n this.globalToastHostElement = document.createElement(\"div\");\n document.body.appendChild(this.globalToastHostElement);\n\n this.globalToastHostElement.style.display = \"flex\";\n this.globalToastHostElement.style.flexDirection = \"column\";\n this.globalToastHostElement.style.position = \"fixed\";\n this.globalToastHostElement.style.right = \"20px\";\n this.globalToastHostElement.style.top = \"20px\";\n this.globalToastHostElement.style.zIndex = \"99999\";\n this.globalToastHostElement.style.gap = \"10px\";\n }\n }\n\n public show(toast: Toast): void {\n this.ensureGlobalToastHost();\n\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ToastComponent);\n const componentRef = componentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n\n if (!toast.sticky) {\n toast.duration = toast.duration ?? 10000;\n }\n\n componentRef.instance.toast = {\n closable: true,\n ...toast,\n };\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.globalToastHostElement!.appendChild(domElem);\n domElem.style.display = \"flex\";\n domElem.style.justifyContent = \"center\";\n\n componentRef.instance.dismiss.pipe(first()).subscribe(() => {\n const index = this.activeToasts.indexOf(componentRef);\n\n if (index !== -1) {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n this.activeToasts.splice(index, 1);\n }\n\n if (this.activeToasts.length === 0 && this.globalToastHostElement) {\n this.globalToastHostElement.remove();\n this.globalToastHostElement = null;\n }\n });\n\n this.activeToasts.push(componentRef);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-toast.mjs","sources":["../../projects/angular-components/toast/src/lib/toast/toast.component.ts","../../projects/angular-components/toast/src/lib/toast/toast.component.html","../../projects/angular-components/toast/src/lib/toast/toast.module.ts","../../projects/angular-components/toast/src/lib/toast/toast.service.ts","../../projects/angular-components/toast/src/seniorsistemas-angular-components-toast.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, HostBinding, OnDestroy, OnInit } from '@angular/core'; // Adicionado HostBinding, OnDestroy\nimport { Toast } from './types/toast';\n\n/**\n * @description Componente individual de notificação (toast) que exibe uma mensagem temporária na tela.\n * Gerencia automaticamente o timer de dismiss quando `toast.sticky` é `false`.\n * Recomenda-se utilizar o `ToastService` para criar e empilhar toasts na aplicação.\n *\n * @example\n * ```html\n * <s-toast [toast]=\"toastData\" (dismiss)=\"onDismiss()\" />\n * ```\n *\n * @category Feedback\n */\n@Component({\n selector: 's-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n /**\n * @description Objeto com os dados da notificação a ser exibida.\n * Inclui propriedades como `severity`, `summary`, `detail`, `duration` e `sticky`.\n */\n @Input()\n public toast!: Toast;\n\n /**\n * @description Emitido quando a notificação é descartada, seja pelo timer automático\n * (ao expirar `toast.duration`) ou pela ação manual do usuário.\n */\n @Output()\n public dismiss = new EventEmitter<void>();\n\n @HostBinding('class.toast--leaving')\n public isLeaving = false;\n\n private timer: ReturnType<typeof setTimeout> | null = null;\n\n public ngOnInit(): void {\n if (!this.toast.sticky && this.toast.duration) {\n this.timer = setTimeout(() => {\n this.startDismissAnimation();\n }, this.toast.duration);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n public startDismissAnimation(): void {\n this.isLeaving = true;\n\n setTimeout(() => {\n this.dismiss.emit();\n }, 300);\n }\n\n public dismissToast(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.startDismissAnimation();\n }\n}\n\n","<div\n class=\"toast\"\n [class.toast--info]=\"toast.severity === 'info'\"\n [class.toast--success]=\"toast.severity === 'success'\"\n [class.toast--warning]=\"toast.severity === 'warning'\"\n [class.toast--error]=\"toast.severity === 'error'\"\n>\n <div class=\"toast-content\">\n <i\n class=\"toast-icon fas fa-info\"\n [class.fa-info]=\"toast.severity === 'info'\"\n [class.fa-check]=\"toast.severity === 'success'\"\n [class.fa-exclamation-triangle]=\"toast.severity === 'warning'\"\n [class.fa-times]=\"toast.severity === 'error'\"\n ></i>\n <div class=\"text-container\">\n @if(toast.title) {\n <span class=\"toast-summary\" [innerHTML]=\"toast.title\"></span>\n }\n @if(toast.text) {\n <span [innerHTML]=\"toast.text\"></span>\n }\n </div>\n </div>\n @if(toast.closable) {\n <button class=\"toast-close-button\" (click)=\"dismissToast()\"><i class=\"fas fa-times\"></i></button>\n }\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ToastComponent } from \"./toast.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToastComponent],\n})\nexport class ToastModule {}\n","import { Injectable, ComponentRef, ApplicationRef, Injector, EmbeddedViewRef, ComponentFactoryResolver, inject } from \"@angular/core\";\n\nimport { ToastComponent } from \"./toast.component\";\nimport { Toast } from \"./types/toast\";\nimport { first } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ToastService {\n private appRef = inject(ApplicationRef);\n private injector = inject(Injector);\n private componentFactoryResolver = inject(ComponentFactoryResolver);\n\n private activeToasts: ComponentRef<ToastComponent>[] = [];\n private globalToastHostElement: HTMLElement | null = null;\n\n private ensureGlobalToastHost(): void {\n if (!this.globalToastHostElement) {\n this.globalToastHostElement = document.createElement(\"div\");\n document.body.appendChild(this.globalToastHostElement);\n\n this.globalToastHostElement.style.display = \"flex\";\n this.globalToastHostElement.style.flexDirection = \"column\";\n this.globalToastHostElement.style.position = \"fixed\";\n this.globalToastHostElement.style.right = \"20px\";\n this.globalToastHostElement.style.top = \"20px\";\n this.globalToastHostElement.style.zIndex = \"99999\";\n this.globalToastHostElement.style.gap = \"10px\";\n }\n }\n\n public show(toast: Toast): void {\n this.ensureGlobalToastHost();\n\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ToastComponent);\n const componentRef = componentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n\n if (!toast.sticky) {\n toast.duration = toast.duration ?? 10000;\n }\n\n componentRef.instance.toast = {\n closable: true,\n ...toast,\n };\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.globalToastHostElement!.appendChild(domElem);\n domElem.style.display = \"flex\";\n domElem.style.justifyContent = \"center\";\n\n componentRef.instance.dismiss.pipe(first()).subscribe(() => {\n const index = this.activeToasts.indexOf(componentRef);\n\n if (index !== -1) {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n this.activeToasts.splice(index, 1);\n }\n\n if (this.activeToasts.length === 0 && this.globalToastHostElement) {\n this.globalToastHostElement.remove();\n this.globalToastHostElement = null;\n }\n });\n\n this.activeToasts.push(componentRef);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, EventEmitter, ElementRef, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, input, EventEmitter, ElementRef, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
3
3
  import * as i1$1 from '@seniorsistemas/angular-components/loading-state';
4
4
  import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
5
5
  import { trigger, transition, style, animate, query, stagger } from '@angular/animations';
6
- import * as i1 from '@ngx-translate/core';
7
- import { TranslateModule } from '@ngx-translate/core';
8
- import * as i2 from '@angular/forms';
6
+ import { TranslateService, TranslateModule } from '@ngx-translate/core';
7
+ import * as i1 from '@angular/forms';
9
8
  import { FormsModule } from '@angular/forms';
10
- import * as i3 from 'primeng/inputtext';
9
+ import * as i2 from 'primeng/inputtext';
11
10
  import { InputTextModule } from 'primeng/inputtext';
12
11
 
13
12
  class TreeNodeItemComponent {
14
- cdr;
15
- translateService;
13
+ cdr = inject(ChangeDetectorRef);
14
+ translateService = inject(TranslateService);
16
15
  ariaLevel = input(0);
17
16
  showCheckbox = input(false);
18
17
  treeNodeItem;
@@ -21,10 +20,6 @@ class TreeNodeItemComponent {
21
20
  nodeExpanded = new EventEmitter();
22
21
  nodeCollapsed = new EventEmitter();
23
22
  input;
24
- constructor(cdr, translateService) {
25
- this.cdr = cdr;
26
- this.translateService = translateService;
27
- }
28
23
  get hasChildren() {
29
24
  return !!(this.treeNodeItem?.children && this.treeNodeItem.children.length > 0);
30
25
  }
@@ -108,8 +103,8 @@ class TreeNodeItemComponent {
108
103
  treeNodeEditChildEvent(payload) {
109
104
  this.treeNodeEdit.emit(payload);
110
105
  }
111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeNodeItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
112
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeNodeItemComponent, selector: "s-tree-node-item", inputs: { ariaLevel: { classPropertyName: "ariaLevel", publicName: "ariaLevel", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, treeNodeItem: { classPropertyName: "treeNodeItem", publicName: "treeNodeItem", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { treeNodeItemClicked: "treeNodeItemClicked", treeNodeEdit: "treeNodeEdit", nodeExpanded: "nodeExpanded", nodeCollapsed: "nodeCollapsed" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "directive", type: i3.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "component", type: TreeNodeItemComponent, selector: "s-tree-node-item", inputs: ["ariaLevel", "showCheckbox", "treeNodeItem"], outputs: ["treeNodeItemClicked", "treeNodeEdit", "nodeExpanded", "nodeCollapsed"] }], animations: [
106
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeNodeItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeNodeItemComponent, selector: "s-tree-node-item", inputs: { ariaLevel: { classPropertyName: "ariaLevel", publicName: "ariaLevel", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, treeNodeItem: { classPropertyName: "treeNodeItem", publicName: "treeNodeItem", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { treeNodeItemClicked: "treeNodeItemClicked", treeNodeEdit: "treeNodeEdit", nodeExpanded: "nodeExpanded", nodeCollapsed: "nodeCollapsed" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "component", type: TreeNodeItemComponent, selector: "s-tree-node-item", inputs: ["ariaLevel", "showCheckbox", "treeNodeItem"], outputs: ["treeNodeItemClicked", "treeNodeEdit", "nodeExpanded", "nodeCollapsed"] }], animations: [
113
108
  trigger('fadeExpand', [
114
109
  transition(':enter', [
115
110
  style({ height: '0px', opacity: 0, overflow: 'hidden' }),
@@ -146,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
146
141
  ]),
147
142
  ]),
148
143
  ], template: "@if (treeNodeItem) {\n <div\n class=\"tree-node-item\"\n role=\"treeitem\"\n [class.tree-node-item-selected]=\"treeNodeItem.checked\"\n [class.selectable]=\"hasChildren\"\n [attr.aria-expanded]=\"hasChildren ? treeNodeItem.isExpanded : null\"\n [attr.aria-selected]=\"treeNodeItem.checked === true\"\n [attr.aria-label]=\"treeNodeItem.label\"\n [attr.aria-level]=\"ariaLevel()\"\n tabindex=\"0\"\n (keydown.enter)=\"handleTreeNodeItemClick($event)\"\n (keydown.arrowRight)=\"expandNode()\"\n (keydown.arrowLeft)=\"collapseNode()\"\n >\n @if (hasChildren || treeNodeItem.leaf === true) {\n <div\n class=\"arrow\"\n (click)=\"toggleExpanded(treeNodeItem)\"\n >\n @if (!treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.collapsedIcon || 'fas fa-chevron-right'\"></i>\n }\n @if (treeNodeItem.isExpanded) {\n <i [class]=\"treeNodeItem.expandedIcon || 'fas fa-chevron-down'\"></i>\n }\n </div>\n }\n\n <div\n class=\"tree-node-item-text\"\n (click)=\"handleTreeNodeItemClick($event)\"\n >\n @if (treeNodeItem.icon || treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-icon\">\n @if (treeNodeItem.icon && !treeNodeItem.isEditing) {\n <i [class]=\"treeNodeItem.icon\"></i>\n }\n @if (treeNodeItem.isEditing) {\n <i\n class=\"fas fa-edit edit\"\n (click)=\"saveEdit($event)\"\n ></i>\n }\n </span>\n }\n\n @if (showCheckbox() && !treeNodeItem.isEditing) {\n <span class=\"tree-node-item-text-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"treeNodeItem.checked === true\"\n [indeterminate]=\"treeNodeItem.checked === null\"\n [attr.aria-checked]=\"treeNodeItem.checked === null ? 'mixed' : treeNodeItem.checked\"\n [attr.aria-label]=\"ariaLabel\"\n role=\"checkbox\"\n tabindex=\"0\"\n (keydown.enter)=\"onCheckboxEnter(treeNodeItem)\"\n />\n </span>\n }\n\n <span class=\"tree-node-item-text-label\">\n @if (treeNodeItem.isEditing) {\n <input\n #input\n type=\"text\"\n pInputText\n class=\"tree-node-item-text-input\"\n [(ngModel)]=\"treeNodeItem.editNewValue\"\n (keydown.enter)=\"saveEdit($event)\"\n (keydown.escape)=\"cancelEdit($event)\"\n (click)=\"$event.stopPropagation()\"\n aria-label=\"Editar nome do item\"\n aria-live=\"polite\"\n />\n } @else if (!treeNodeItem.isEditing) {\n {{ treeNodeItem.label }}\n }\n </span>\n\n @if (editable) {\n <span class=\"tree-node-item-text-editable\">\n <i\n class=\"fas fa-pencil-alt\"\n (click)=\"toggleEditing($event)\"\n aria-label=\"Editar item\"\n tabindex=\"0\"\n ></i>\n </span>\n }\n </div>\n </div>\n}\n\n@if (hasChildren && treeNodeItem.isExpanded) {\n <div\n @fadeExpand\n class=\"child\"\n role=\"group\"\n @childrenAnimation\n >\n @for (child of treeNodeItem.children; track $index) {\n <s-tree-node-item\n [showCheckbox]=\"showCheckbox()\"\n [treeNodeItem]=\"child\"\n [ariaLevel]=\"ariaLevel() + 1\"\n (treeNodeItemClicked)=\"handleTreeNodeItemClicked($event)\"\n (treeNodeEdit)=\"treeNodeEditChildEvent($event)\"\n (nodeExpanded)=\"nodeExpanded.emit($event)\"\n (nodeCollapsed)=\"nodeCollapsed.emit($event)\"\n class=\"child-item\"\n />\n }\n </div>\n}\n\n", styles: [".tree-node-item{width:100%;display:flex;cursor:pointer}.tree-node-item .arrow{padding:3px 9px;display:flex;align-items:center;justify-content:center}.tree-node-item-text{flex:1;display:flex;padding:3px 0;align-items:center}.tree-node-item-text:hover{background:#f1f7f8}.tree-node-item-text-icon{display:flex;align-items:center;justify-content:center;padding-right:9px}.tree-node-item-text-icon .edit{color:#428bca}.tree-node-item-text-label{color:#212533;font-family:Open Sans;font-size:14px;font-style:normal;font-weight:400;line-height:150%;display:flex;flex:1}.tree-node-item-text-checkbox{padding-right:9px;display:flex}.tree-node-item-text-checkbox input[type=checkbox]{accent-color:#428bca;width:14px;height:14px}.tree-node-item-text-editable{display:flex;align-items:center;justify-content:flex-end}.tree-node-item-text-editable i{padding:9px}.tree-node-item-text-input{flex:1}.tree-node-item.selectable .tree-node-item-text-label{font-family:Open Sans;font-size:14px;font-style:normal;font-weight:700}.tree-node-item.selectable *{cursor:pointer}.tree-node-item-selected .tree-node-item-text{background:#d5e8ec}.child{overflow:hidden;padding-left:2.2em;display:flex;flex-direction:column;gap:5px}.child-item:first-child{padding-top:5px}\n"] }]
149
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { treeNodeItem: [{
144
+ }], propDecorators: { treeNodeItem: [{
150
145
  type: Input
151
146
  }], treeNodeItemClicked: [{
152
147
  type: Output