@seniorsistemas/angular-components 19.0.5 → 19.0.6

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 (439) hide show
  1. package/accordion/lib/accordion/accordion.component.d.ts +25 -0
  2. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
  3. package/alert/lib/alert/alert.component.d.ts +40 -0
  4. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
  5. package/badge/lib/badge/badge.component.d.ts +20 -0
  6. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
  7. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
  8. package/button/lib/button/button.component.d.ts +101 -0
  9. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
  10. package/card/lib/card/card.component.d.ts +18 -0
  11. package/chat/lib/chat/chat.component.d.ts +20 -2
  12. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
  13. package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
  14. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
  15. package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
  16. package/chips/lib/chips/chips/chips.component.d.ts +41 -0
  17. package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
  18. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
  19. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  20. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
  21. package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
  22. package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
  23. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
  24. package/currency/lib/currency.service.d.ts +15 -2
  25. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
  26. package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
  27. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
  28. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
  29. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
  30. package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
  31. package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
  32. package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
  33. package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
  34. package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
  35. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
  36. package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
  37. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
  38. package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
  39. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
  40. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
  41. package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
  42. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
  43. package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
  44. package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
  45. package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
  46. package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
  47. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
  50. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
  53. package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
  54. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
  55. package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
  56. package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
  57. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
  58. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
  59. package/dynamic-form/public-api.d.ts +1 -0
  60. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
  61. package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
  62. package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
  63. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
  64. package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
  65. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
  66. package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
  67. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
  68. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +13 -1
  69. package/esm2022/button/lib/button/button.component.mjs +102 -1
  70. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
  71. package/esm2022/card/lib/card/card.component.mjs +21 -6
  72. package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
  73. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
  74. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
  75. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
  76. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
  77. package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
  78. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
  79. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
  80. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
  81. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +20 -1
  82. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +31 -1
  83. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
  84. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
  85. package/esm2022/currency/lib/currency.service.mjs +21 -8
  86. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
  87. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
  88. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
  89. package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
  90. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +1 -1
  91. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
  92. package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
  93. package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
  94. package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
  95. package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
  96. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
  97. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  98. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  99. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
  100. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
  101. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
  102. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
  103. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  104. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
  105. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
  106. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
  107. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
  108. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  109. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
  110. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  111. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  112. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
  113. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
  114. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
  115. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  116. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
  117. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
  118. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  119. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  120. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  121. package/esm2022/dynamic-form/public-api.mjs +2 -2
  122. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
  123. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +60 -1
  124. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
  125. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +48 -1
  126. package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +30 -1
  128. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
  129. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
  130. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +40 -3
  131. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
  132. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
  133. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
  134. package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
  135. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
  136. package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
  137. package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
  138. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
  139. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
  140. package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
  141. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
  142. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
  143. package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
  144. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
  145. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +20 -1
  146. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
  147. package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
  148. package/esm2022/numeric/lib/numeric.service.mjs +21 -1
  149. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
  150. package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
  151. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  152. package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
  153. package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
  154. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
  155. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
  156. package/esm2022/picklist/lib/picklist/picklist.component.mjs +33 -2
  157. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
  158. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +86 -2
  159. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
  160. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
  161. package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
  162. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
  163. package/esm2022/select/lib/select/select.component.mjs +35 -1
  164. package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
  165. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
  166. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
  167. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
  168. package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
  169. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
  170. package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
  171. package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
  172. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
  173. package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
  174. package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
  175. package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
  176. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
  177. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
  178. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
  179. package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
  180. package/esm2022/template/lib/template/template.directive.mjs +14 -2
  181. package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
  182. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
  183. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
  184. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +30 -1
  185. package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
  186. package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
  187. package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
  188. package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
  189. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
  190. package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
  191. package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
  192. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
  193. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
  194. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  195. package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
  196. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  197. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
  198. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  199. package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
  200. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  201. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
  202. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  203. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +12 -0
  204. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  205. package/fesm2022/seniorsistemas-angular-components-button.mjs +101 -0
  206. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  207. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
  208. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  209. package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
  210. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  211. package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
  212. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  213. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
  214. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  215. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
  216. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  217. package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
  218. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  219. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
  220. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  221. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
  222. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  223. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
  224. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  225. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +19 -0
  226. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  227. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +30 -0
  228. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  229. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
  230. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  231. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
  232. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  233. package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
  234. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  235. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
  236. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  237. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
  238. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  239. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +29 -4
  240. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  241. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
  242. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  243. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +59 -0
  244. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  245. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
  246. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  247. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +47 -0
  248. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  249. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
  250. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  251. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +29 -0
  252. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  253. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
  254. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  255. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +80 -24
  256. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  257. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +38 -1
  258. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  259. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
  260. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  261. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
  262. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  263. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +15 -0
  264. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  265. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
  266. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  267. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
  268. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  269. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +28 -10
  270. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  271. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
  272. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  273. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
  274. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  275. package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
  276. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  277. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
  278. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  279. package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
  280. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  281. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
  282. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  283. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +19 -0
  284. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  285. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
  286. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  287. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
  288. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  289. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
  290. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  291. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +23 -0
  292. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  293. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
  295. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
  297. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
  299. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +32 -1
  301. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
  303. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +85 -1
  305. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
  307. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
  309. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
  311. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
  313. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
  315. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
  317. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
  319. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
  321. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
  323. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
  325. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
  327. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
  329. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
  331. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
  333. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
  335. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
  337. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
  339. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-table.mjs +15 -0
  341. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
  343. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
  345. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
  347. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
  349. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
  351. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +29 -0
  353. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
  355. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
  357. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
  359. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
  361. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
  363. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
  365. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
  367. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
  369. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  370. package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
  371. package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
  372. package/gantt/lib/gantt/gantt.component.d.ts +31 -0
  373. package/global-search/lib/global-search/global-search.component.d.ts +29 -0
  374. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
  375. package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
  376. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
  377. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
  378. package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
  379. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  380. package/insights/lib/insights/insights.component.d.ts +22 -0
  381. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
  382. package/kanban/lib/kanban/kanban.component.d.ts +25 -5
  383. package/label-value/lib/label-value/label-value.component.d.ts +13 -0
  384. package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
  385. package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
  386. package/locale/lib/locale/locale.service.d.ts +7 -0
  387. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  388. package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
  389. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
  390. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
  391. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
  392. package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
  393. package/numeric/lib/numeric.pipe.d.ts +15 -0
  394. package/numeric/lib/numeric.service.d.ts +20 -0
  395. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
  396. package/object-card/lib/object-card/object-card.component.d.ts +23 -0
  397. package/optional-fields/editor/editor-field.d.ts +19 -0
  398. package/package.json +12 -12
  399. package/paginator/lib/paginator/paginator.component.d.ts +19 -0
  400. package/panel/lib/panel/panel.component.d.ts +24 -3
  401. package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
  402. package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
  403. package/picklist/lib/picklist/picklist.component.d.ts +29 -0
  404. package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
  405. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
  406. package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
  407. package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
  408. package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
  409. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
  410. package/select/lib/select/select.component.d.ts +34 -0
  411. package/select-button/lib/select-button/select-button.component.d.ts +34 -0
  412. package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
  413. package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
  414. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
  415. package/slider/lib/slider/slider.component.d.ts +72 -0
  416. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
  417. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  418. package/star-rating/star-rating/star-rating.component.d.ts +16 -0
  419. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  420. package/stepper/lib/stepper/stepper.component.d.ts +19 -0
  421. package/structure/lib/structure/footer.component.d.ts +10 -0
  422. package/switch/lib/switch/switch.component.d.ts +20 -0
  423. package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
  424. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
  425. package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
  426. package/tabs/lib/tabs/tabs.component.d.ts +28 -0
  427. package/template/lib/template/template.directive.d.ts +12 -0
  428. package/text-area/lib/text-area/text-area.component.d.ts +27 -0
  429. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
  430. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
  431. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +29 -0
  432. package/tile/lib/tile/tile.component.d.ts +25 -0
  433. package/timeline/lib/timeline/timeline.component.d.ts +24 -0
  434. package/toast/lib/toast/toast.component.d.ts +22 -2
  435. package/token-list/lib/token-list/token-list.component.d.ts +21 -0
  436. package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
  437. package/topbar/lib/topbar/topbar.component.d.ts +17 -0
  438. package/tree/lib/tree/tree.component.d.ts +27 -0
  439. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
@@ -86,24 +86,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
86
86
  args: [TemplateRef, { static: true }]
87
87
  }] } });
88
88
 
89
+ /**
90
+ * @description Componente de busca global com input, dropdown de resultados, estado
91
+ * de carregamento, empty state e suporte a itens customizáveis via `GlobalSearchDropdownItemComponent`.
92
+ *
93
+ * @example
94
+ * ```html
95
+ * <s-global-search
96
+ * totalItensLabel="resultados"
97
+ * showMoreLabel="Ver mais"
98
+ * [totalElements]="total"
99
+ * (search)="onBusca($event)" />
100
+ * ```
101
+ *
102
+ * @category Structure
103
+ */
89
104
  class GlobalSearchComponent {
90
105
  _cdr;
91
106
  static nextId = 0;
92
107
  globalSearch = null;
108
+ /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
93
109
  id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;
110
+ /** @description Tempo de debounce em ms antes de emitir o evento de busca. @default 500 */
94
111
  delay = 500;
112
+ /** @description Label que acompanha o total de resultados. Campo obrigatório. */
95
113
  totalItensLabel;
114
+ /** @description Rótulo do link para exibir mais resultados. Campo obrigatório. */
96
115
  showMoreLabel;
116
+ /** @description Placeholder do input de busca. */
97
117
  placeholder;
118
+ /** @description Exibe indicador de carregamento no dropdown. @default false */
98
119
  isLoading = false;
120
+ /** @description Número total de resultados encontrados. */
99
121
  totalElements;
122
+ /** @description Título do empty state quando não há resultados. */
100
123
  emptyTitle;
124
+ /** @description Descrição do empty state exibida abaixo do título. */
101
125
  emptyDescription;
126
+ /** @description Classe do ícone exibido no empty state. */
102
127
  emptyIcon;
128
+ /** @description Exibe o rodapé com o link "ver mais" e contagem de resultados. @default true */
103
129
  showFooter = true;
104
130
  dropdownItens = null;
131
+ /** @description Emitido ao digitar no campo de busca, com o valor atual da pesquisa. */
105
132
  searched = new EventEmitter();
133
+ /** @description Emitido quando o campo de busca ganha ou perde foco (`true` = focado). */
106
134
  focused = new EventEmitter();
135
+ /** @description Emitido ao clicar no link para exibir mais resultados. */
107
136
  moreShown = new EventEmitter();
108
137
  search = null;
109
138
  wasSearched = false;
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-global-search.mjs","sources":["../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.ts","../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.ts","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.module.ts","../../projects/angular-components/global-search/src/seniorsistemas-angular-components-global-search.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\n\nimport { GlobalSearchSizeEnum } from '../../types/global-search-size.enum';\nimport { ThumbnailComponent } from '@seniorsistemas/angular-components/thumbnail';\n\n@Component({\n selector: 's-global-search-dropdown-item',\n templateUrl: './global-search-dropdown-item.component.html',\n styleUrls: ['./global-search-dropdown-item.component.scss'],\n})\nexport class GlobalSearchDropdownItemComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public primaryLabel?: string;\n\n @Input()\n public secondaryEmptyLabel?: string;\n\n @Input()\n public tertiaryEmptyLabel?: string;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public secondaryLabel?: string;\n\n @Input()\n public tertiaryLabel?: string;\n\n @Input()\n public size: GlobalSearchSizeEnum = 'standart';\n\n @Input()\n public template: TemplateRef<any> | null = null;\n\n @Output()\n public buttonClick = new EventEmitter<void>();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent | null = null;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any> | null = null;\n\n public isMediumSize(): boolean {\n return this.size === 'medium';\n }\n\n public isSmallSize(): boolean {\n return this.size === 'small';\n }\n\n public getImageSize(): 'medium' | 'small' {\n return this._isStandardSize() ? 'medium' : 'small';\n }\n\n private _isStandardSize(): boolean {\n return this.size === 'standart';\n }\n}\n","<ng-template>\n <div class=\"global-search-dropdown-item\" [class.ui-grid]=\"isSmallSize()\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || primaryLabel\"\n [iconClass]=\"iconClass ?? ''\"\n [size]=\"getImageSize()\"\n ></s-thumbnail>\n }\n\n <div class=\"global-search-item__container {{ !isSmallSize() ? 'global-search-item__container--width-60' : '' }}\">\n <div #titleTemplate>\n <ng-content select=\"[titleTemplate]\"></ng-content>\n </div>\n @if (!titleTemplate.children.length) {\n <s-button\n styleClass=\"no-padding\"\n class=\"{{ isSmallSize() ? 'ui-grid-col-6 no-padding' : '' }}\"\n [id]=\"id + '-title'\"\n priority=\"link\"\n [pTooltip]=\"primaryLabel\"\n [label]=\"primaryLabel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit()\"\n >\n </s-button>\n }\n\n <div #labelTemplate>\n <ng-content select=\"[labelTemplate]\"></ng-content>\n </div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n [ngClass]=\"{\n 'ui-grid-col-6 global-search-item__text-align--right': isSmallSize(),\n 'global-search-item__italic': !secondaryLabel,\n }\"\n class=\"label\"\n [pTooltip]=\"secondaryLabel\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\n >\n }\n\n <div #descriptionTemplate>\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n </div>\n\n @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [ngClass]=\"{ 'global-search-item__italic': !secondaryLabel }\"\n [pTooltip]=\"tertiaryLabel\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >\n {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\n </span>\n }\n </div>\n @if (!isSmallSize()) {\n <div class=\"global-search-item__container--width-40 global-search__dropdown--template\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n }\n </div>\n</ng-template>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\n\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n selector: 's-global-search',\n templateUrl: './global-search.component.html',\n styleUrls: ['./global-search.component.scss'],\n animations: [\n trigger('expandableContent', [\n state('*', style({ height: '0' })),\n state('false', style({ height: '0' })),\n state('true', style({ height: '*' })),\n transition('* => true', animate('200ms ease-out')),\n transition('false <=> true', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class GlobalSearchComponent {\n public static nextId = 0;\n\n @ViewChild('globalSearch', { static: false })\n public globalSearch: ElementRef | null = null;\n\n @Input()\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public delay = 500;\n\n @Input({ required: true })\n public totalItensLabel!: string;\n\n @Input({ required: true })\n public showMoreLabel!: string;\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public isLoading = false;\n\n @Input()\n public totalElements?: number;\n\n @Input()\n public emptyTitle?: string;\n\n @Input()\n public emptyDescription?: string;\n\n @Input()\n public emptyIcon?: string;\n\n @Input() showFooter = true;\n\n @ContentChildren(GlobalSearchDropdownItemComponent)\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent> | null = null;\n\n @Output()\n public searched = new EventEmitter<string>();\n\n @Output()\n public focused = new EventEmitter<boolean>();\n\n @Output()\n public moreShown = new EventEmitter<void>();\n\n public search: string | null = null;\n public wasSearched = false;\n public isModalLoading = false;\n public expanded = true;\n\n constructor(private readonly _cdr: ChangeDetectorRef) {}\n\n public onChange() {\n const search = this.search;\n setTimeout(() => {\n if (this.search === search) {\n this._canShowGlobalSearchActive();\n this.searched.emit(this.search ?? '');\n }\n }, this.delay);\n }\n\n public focusIn() {\n this.focused.emit(true);\n }\n\n public focusOut() {\n this.focused.emit(false);\n }\n\n public showMore() {\n this.moreShown.emit();\n }\n\n public close() {\n this.search = null;\n this.wasSearched = false;\n this.dropdownItens = null;\n this.isModalLoading = false;\n this._removeActiveClassByGlobalSearch();\n }\n\n private _removeActiveClassByGlobalSearch() {\n if (isNullOrUndefined(this.globalSearch)) return;\n\n this.globalSearch.nativeElement.classList.remove('global-search__input-active');\n }\n\n private _canShowGlobalSearchActive() {\n this.wasSearched = !!this.search;\n if (this.search) {\n if (isNullOrUndefined(this.globalSearch)) return;\n\n this.globalSearch.nativeElement.classList.add('global-search__input-active');\n } else {\n this._removeActiveClassByGlobalSearch();\n this.close();\n }\n this._cdr.detectChanges();\n }\n}\n\n","<div class=\"p-inputGroup\">\n <input\n #globalSearch\n class=\"global-search__input\"\n [(ngModel)]=\"search\"\n (ngModelChange)=\"onChange()\"\n pInputText\n [placeholder]=\"placeholder\"\n (focus)=\"focusIn()\"\n (blur)=\"focusOut()\"\n />\n <span class=\"p-inputGroup-addon global-search__span\">\n <em class=\"fas fa-search\"></em>\n </span>\n\n @if (wasSearched) {\n <div class=\"global-search__modal\">\n <div\n *sLoadingState=\"isLoading && !isModalLoading\"\n class=\"global-search__loader\"\n >\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\n <div class=\"global-search__container\">\n @if (dropdownItens && dropdownItens.length > 0) {\n <div>\n <div class=\"global-search__modal--total-itens-title\">\n <span class=\"ui-grid-col-11 no-space\">{{ totalItensLabel }}</span>\n <span\n class=\"ui-grid-col-1 no-space global-search__modal--total-itens-title-icon\"\n (click)=\"close()\"\n >\n <em class=\"fas fa-times\"></em>\n </span>\n </div>\n <div\n class=\"no-space global-search__dropdown--itens\"\n [@expandableContent]=\"expanded\"\n >\n @for (item of dropdownItens; track item.id) {\n <div class=\"s-object-card-field no-space global-search__dropdown--itens-container\">\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\n </div>\n }\n </div>\n\n @if (showFooter) {\n <div class=\"ui-grid-col-12 global-search__modal--footer\">\n <s-button\n class=\"global-search__show-more\"\n (click)=\"showMore()\"\n priority=\"link\"\n >\n {{ showMoreLabel }}\n </s-button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\n <s-empty-state\n [title]=\"emptyTitle ?? ''\"\n [description]=\"emptyDescription\"\n ngClass=\"global-search__empty-state--icon\"\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\n >\n </s-empty-state>\n }\n </div>\n </div>\n }\n\n @if (wasSearched) {\n <div\n class=\"global-search__background\"\n (click)=\"close()\"\n ></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { EmptyStateModule } from \"@seniorsistemas/angular-components/empty-state\";\nimport { InfiniteScrollModule } from '@seniorsistemas/angular-components/infinite-scroll';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\nimport { GlobalSearchComponent } from './global-search.component';\n\n@NgModule({\n declarations: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ],\n imports: [\n CommonModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n InfiniteScrollModule,\n EmptyStateModule\n ],\n exports: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n EmptyStateModule\n ]\n})\nexport class GlobalSearchModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-global-search.mjs","sources":["../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.ts","../../projects/angular-components/global-search/src/lib/global-search/components/dropdown/global-search-dropdown-item.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.ts","../../projects/angular-components/global-search/src/lib/global-search/global-search.component.html","../../projects/angular-components/global-search/src/lib/global-search/global-search.module.ts","../../projects/angular-components/global-search/src/seniorsistemas-angular-components-global-search.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\n\nimport { GlobalSearchSizeEnum } from '../../types/global-search-size.enum';\nimport { ThumbnailComponent } from '@seniorsistemas/angular-components/thumbnail';\n\n@Component({\n selector: 's-global-search-dropdown-item',\n templateUrl: './global-search-dropdown-item.component.html',\n styleUrls: ['./global-search-dropdown-item.component.scss'],\n})\nexport class GlobalSearchDropdownItemComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public primaryLabel?: string;\n\n @Input()\n public secondaryEmptyLabel?: string;\n\n @Input()\n public tertiaryEmptyLabel?: string;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public secondaryLabel?: string;\n\n @Input()\n public tertiaryLabel?: string;\n\n @Input()\n public size: GlobalSearchSizeEnum = 'standart';\n\n @Input()\n public template: TemplateRef<any> | null = null;\n\n @Output()\n public buttonClick = new EventEmitter<void>();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent | null = null;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any> | null = null;\n\n public isMediumSize(): boolean {\n return this.size === 'medium';\n }\n\n public isSmallSize(): boolean {\n return this.size === 'small';\n }\n\n public getImageSize(): 'medium' | 'small' {\n return this._isStandardSize() ? 'medium' : 'small';\n }\n\n private _isStandardSize(): boolean {\n return this.size === 'standart';\n }\n}\n","<ng-template>\n <div class=\"global-search-dropdown-item\" [class.ui-grid]=\"isSmallSize()\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n\n @if (!thumbnailComponent && (imageSource || iconClass) && !isSmallSize()) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || primaryLabel\"\n [iconClass]=\"iconClass ?? ''\"\n [size]=\"getImageSize()\"\n ></s-thumbnail>\n }\n\n <div class=\"global-search-item__container {{ !isSmallSize() ? 'global-search-item__container--width-60' : '' }}\">\n <div #titleTemplate>\n <ng-content select=\"[titleTemplate]\"></ng-content>\n </div>\n @if (!titleTemplate.children.length) {\n <s-button\n styleClass=\"no-padding\"\n class=\"{{ isSmallSize() ? 'ui-grid-col-6 no-padding' : '' }}\"\n [id]=\"id + '-title'\"\n priority=\"link\"\n [pTooltip]=\"primaryLabel\"\n [label]=\"primaryLabel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit()\"\n >\n </s-button>\n }\n\n <div #labelTemplate>\n <ng-content select=\"[labelTemplate]\"></ng-content>\n </div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n [ngClass]=\"{\n 'ui-grid-col-6 global-search-item__text-align--right': isSmallSize(),\n 'global-search-item__italic': !secondaryLabel,\n }\"\n class=\"label\"\n [pTooltip]=\"secondaryLabel\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >{{ secondaryLabel ? secondaryLabel : secondaryEmptyLabel }}</span\n >\n }\n\n <div #descriptionTemplate>\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n </div>\n\n @if (!descriptionTemplate.children.length && !isMediumSize() && !isSmallSize()) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [ngClass]=\"{ 'global-search-item__italic': !secondaryLabel }\"\n [pTooltip]=\"tertiaryLabel\"\n tooltipPosition=\"top\"\n showDelay=\"500\"\n >\n {{ tertiaryLabel ? tertiaryLabel : tertiaryEmptyLabel }}\n </span>\n }\n </div>\n @if (!isSmallSize()) {\n <div class=\"global-search-item__container--width-40 global-search__dropdown--template\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n }\n </div>\n</ng-template>\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\n\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\n/**\n * @description Componente de busca global com input, dropdown de resultados, estado\n * de carregamento, empty state e suporte a itens customizáveis via `GlobalSearchDropdownItemComponent`.\n *\n * @example\n * ```html\n * <s-global-search\n * totalItensLabel=\"resultados\"\n * showMoreLabel=\"Ver mais\"\n * [totalElements]=\"total\"\n * (search)=\"onBusca($event)\" />\n * ```\n *\n * @category Structure\n */\n@Component({\n selector: 's-global-search',\n templateUrl: './global-search.component.html',\n styleUrls: ['./global-search.component.scss'],\n animations: [\n trigger('expandableContent', [\n state('*', style({ height: '0' })),\n state('false', style({ height: '0' })),\n state('true', style({ height: '*' })),\n transition('* => true', animate('200ms ease-out')),\n transition('false <=> true', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class GlobalSearchComponent {\n public static nextId = 0;\n\n @ViewChild('globalSearch', { static: false })\n public globalSearch: ElementRef | null = null;\n\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n /** @description Tempo de debounce em ms antes de emitir o evento de busca. @default 500 */\n @Input()\n public delay = 500;\n\n /** @description Label que acompanha o total de resultados. Campo obrigatório. */\n @Input({ required: true })\n public totalItensLabel!: string;\n\n /** @description Rótulo do link para exibir mais resultados. Campo obrigatório. */\n @Input({ required: true })\n public showMoreLabel!: string;\n\n /** @description Placeholder do input de busca. */\n @Input()\n public placeholder?: string;\n\n /** @description Exibe indicador de carregamento no dropdown. @default false */\n @Input()\n public isLoading = false;\n\n /** @description Número total de resultados encontrados. */\n @Input()\n public totalElements?: number;\n\n /** @description Título do empty state quando não há resultados. */\n @Input()\n public emptyTitle?: string;\n\n /** @description Descrição do empty state exibida abaixo do título. */\n @Input()\n public emptyDescription?: string;\n\n /** @description Classe do ícone exibido no empty state. */\n @Input()\n public emptyIcon?: string;\n\n /** @description Exibe o rodapé com o link \"ver mais\" e contagem de resultados. @default true */\n @Input() showFooter = true;\n\n @ContentChildren(GlobalSearchDropdownItemComponent)\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent> | null = null;\n\n /** @description Emitido ao digitar no campo de busca, com o valor atual da pesquisa. */\n @Output()\n public searched = new EventEmitter<string>();\n\n /** @description Emitido quando o campo de busca ganha ou perde foco (`true` = focado). */\n @Output()\n public focused = new EventEmitter<boolean>();\n\n /** @description Emitido ao clicar no link para exibir mais resultados. */\n @Output()\n public moreShown = new EventEmitter<void>();\n\n public search: string | null = null;\n public wasSearched = false;\n public isModalLoading = false;\n public expanded = true;\n\n constructor(private readonly _cdr: ChangeDetectorRef) {}\n\n public onChange() {\n const search = this.search;\n setTimeout(() => {\n if (this.search === search) {\n this._canShowGlobalSearchActive();\n this.searched.emit(this.search ?? '');\n }\n }, this.delay);\n }\n\n public focusIn() {\n this.focused.emit(true);\n }\n\n public focusOut() {\n this.focused.emit(false);\n }\n\n public showMore() {\n this.moreShown.emit();\n }\n\n public close() {\n this.search = null;\n this.wasSearched = false;\n this.dropdownItens = null;\n this.isModalLoading = false;\n this._removeActiveClassByGlobalSearch();\n }\n\n private _removeActiveClassByGlobalSearch() {\n if (isNullOrUndefined(this.globalSearch)) return;\n\n this.globalSearch.nativeElement.classList.remove('global-search__input-active');\n }\n\n private _canShowGlobalSearchActive() {\n this.wasSearched = !!this.search;\n if (this.search) {\n if (isNullOrUndefined(this.globalSearch)) return;\n\n this.globalSearch.nativeElement.classList.add('global-search__input-active');\n } else {\n this._removeActiveClassByGlobalSearch();\n this.close();\n }\n this._cdr.detectChanges();\n }\n}\n\n","<div class=\"p-inputGroup\">\n <input\n #globalSearch\n class=\"global-search__input\"\n [(ngModel)]=\"search\"\n (ngModelChange)=\"onChange()\"\n pInputText\n [placeholder]=\"placeholder\"\n (focus)=\"focusIn()\"\n (blur)=\"focusOut()\"\n />\n <span class=\"p-inputGroup-addon global-search__span\">\n <em class=\"fas fa-search\"></em>\n </span>\n\n @if (wasSearched) {\n <div class=\"global-search__modal\">\n <div\n *sLoadingState=\"isLoading && !isModalLoading\"\n class=\"global-search__loader\"\n >\n @if ((dropdownItens && dropdownItens.length > 0) || isLoading) {\n <div class=\"global-search__container\">\n @if (dropdownItens && dropdownItens.length > 0) {\n <div>\n <div class=\"global-search__modal--total-itens-title\">\n <span class=\"ui-grid-col-11 no-space\">{{ totalItensLabel }}</span>\n <span\n class=\"ui-grid-col-1 no-space global-search__modal--total-itens-title-icon\"\n (click)=\"close()\"\n >\n <em class=\"fas fa-times\"></em>\n </span>\n </div>\n <div\n class=\"no-space global-search__dropdown--itens\"\n [@expandableContent]=\"expanded\"\n >\n @for (item of dropdownItens; track item.id) {\n <div class=\"s-object-card-field no-space global-search__dropdown--itens-container\">\n <ng-container *ngTemplateOutlet=\"item.content\"></ng-container>\n </div>\n }\n </div>\n\n @if (showFooter) {\n <div class=\"ui-grid-col-12 global-search__modal--footer\">\n <s-button\n class=\"global-search__show-more\"\n (click)=\"showMore()\"\n priority=\"link\"\n >\n {{ showMoreLabel }}\n </s-button>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if ((!dropdownItens || !dropdownItens.length) && !isLoading) {\n <s-empty-state\n [title]=\"emptyTitle ?? ''\"\n [description]=\"emptyDescription\"\n ngClass=\"global-search__empty-state--icon\"\n [iconClass]=\"emptyIcon ? emptyIcon : 'fas fa-search'\"\n >\n </s-empty-state>\n }\n </div>\n </div>\n }\n\n @if (wasSearched) {\n <div\n class=\"global-search__background\"\n (click)=\"close()\"\n ></div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { EmptyStateModule } from \"@seniorsistemas/angular-components/empty-state\";\nimport { InfiniteScrollModule } from '@seniorsistemas/angular-components/infinite-scroll';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\nimport { GlobalSearchDropdownItemComponent } from './components/dropdown/global-search-dropdown-item.component';\nimport { GlobalSearchComponent } from './global-search.component';\n\n@NgModule({\n declarations: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ],\n imports: [\n CommonModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n InfiniteScrollModule,\n EmptyStateModule\n ],\n exports: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n EmptyStateModule\n ]\n})\nexport class GlobalSearchModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAUa,iCAAiC,CAAA;AACnC,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;AAGlB,IAAA,EAAE,GAAG,CAAiC,8BAAA,EAAA,iCAAiC,CAAC,MAAM,EAAE,EAAE,CAAC;AAGnF,IAAA,YAAY,CAAU;AAGtB,IAAA,mBAAmB,CAAU;AAG7B,IAAA,kBAAkB,CAAU;AAG5B,IAAA,WAAW,CAAU;AAGrB,IAAA,QAAQ,CAAU;AAGlB,IAAA,SAAS,CAAU;AAGnB,IAAA,cAAc,CAAU;AAGxB,IAAA,aAAa,CAAU;IAGvB,IAAI,GAAyB,UAAU,CAAC;IAGxC,QAAQ,GAA4B,IAAI,CAAC;AAGzC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;IAGvC,kBAAkB,GAA8B,IAAI,CAAC;IAGrD,OAAO,GAA4B,IAAI,CAAC;IAExC,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;KACjC;IAEM,WAAW,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;KAChC;IAEM,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,GAAG,QAAQ,GAAG,OAAO,CAAC;KACtD;IAEO,eAAe,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;KACnC;wGA3DQ,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iCAAiC,EAuC5B,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,EAGrB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,8DCpD1B,miGA2EA,EAAA,MAAA,EAAA,CAAA,+oCAAA,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,EAAA,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,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDjEa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACI,+BAA+B,EAAA,QAAA,EAAA,miGAAA,EAAA,MAAA,EAAA,CAAA,+oCAAA,CAAA,EAAA,CAAA;8BAQlC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAIC,kBAAkB,EAAA,CAAA;sBADxB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAIA,kBAAkB,EAAA,CAAA;sBADxB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI3C,OAAO,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEpC5C;;;;;;;;;;;;;;AAcG;MAeU,qBAAqB,CAAA;AAqED,IAAA,IAAA,CAAA;AApEtB,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;IAGlB,YAAY,GAAsB,IAAI,CAAC;;AAIvC,IAAA,EAAE,GAAG,CAAmB,gBAAA,EAAA,iCAAiC,CAAC,MAAM,EAAE,EAAE,CAAC;;IAIrE,KAAK,GAAG,GAAG,CAAC;;AAIZ,IAAA,eAAe,CAAU;;AAIzB,IAAA,aAAa,CAAU;;AAIvB,IAAA,WAAW,CAAU;;IAIrB,SAAS,GAAG,KAAK,CAAC;;AAIlB,IAAA,aAAa,CAAU;;AAIvB,IAAA,UAAU,CAAU;;AAIpB,IAAA,gBAAgB,CAAU;;AAI1B,IAAA,SAAS,CAAU;;IAGjB,UAAU,GAAG,IAAI,CAAC;IAGpB,aAAa,GAAwD,IAAI,CAAC;;AAI1E,IAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;;AAItC,IAAA,OAAO,GAAG,IAAI,YAAY,EAAW,CAAC;;AAItC,IAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IAErC,MAAM,GAAkB,IAAI,CAAC;IAC7B,WAAW,GAAG,KAAK,CAAC;IACpB,cAAc,GAAG,KAAK,CAAC;IACvB,QAAQ,GAAG,IAAI,CAAC;AAEvB,IAAA,WAAA,CAA6B,IAAuB,EAAA;QAAvB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmB;KAAI;IAEjD,QAAQ,GAAA;AACX,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;gBACxB,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;aACzC;AACL,SAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAClB;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEM,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEM,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;IAEM,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,gCAAgC,EAAE,CAAC;KAC3C;IAEO,gCAAgC,GAAA;AACpC,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;YAAE,OAAO;QAEjD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;KACnF;IAEO,0BAA0B,GAAA;QAC9B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;gBAAE,OAAO;YAEjD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;SAChF;aAAM;YACH,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7B;wGAtHQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAiDb,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,SAAA,EAAA,iCAAiC,EC9FtD,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kiHAiFA,ED9CgB,MAAA,EAAA,CAAA,wmEAAA,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,EAAA,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,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,mBAAmB,EAAE;gBACzB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,gBAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClD,gBAAA,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC1D,CAAC;AACL,SAAA,EAAA,CAAA,CAAA;;4FAEQ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA;wBACR,OAAO,CAAC,mBAAmB,EAAE;4BACzB,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;4BAClC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;4BACtC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,4BAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClD,4BAAA,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;yBAC1D,CAAC;AACL,qBAAA,EAAA,QAAA,EAAA,kiHAAA,EAAA,MAAA,EAAA,CAAA,wmEAAA,CAAA,EAAA,CAAA;sFAMM,YAAY,EAAA,CAAA;sBADlB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAKrC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAKC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAKC,eAAe,EAAA,CAAA;sBADrB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKlB,aAAa,EAAA,CAAA;sBADnB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKlB,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAKC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAKC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAKC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAKC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAGC,aAAa,EAAA,CAAA;sBADnB,eAAe;uBAAC,iCAAiC,CAAA;gBAK3C,QAAQ,EAAA,CAAA;sBADd,MAAM;gBAKA,OAAO,EAAA,CAAA;sBADb,MAAM;gBAKA,SAAS,EAAA,CAAA;sBADf,MAAM;;;MEhEE,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBAzBvB,qBAAqB;AACrB,YAAA,iCAAiC,aAGjC,YAAY;YACZ,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,aAAa;YACb,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,oBAAoB;AACpB,YAAA,gBAAgB,aAGhB,qBAAqB;YACrB,iCAAiC;YACjC,aAAa;YACb,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAGX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YArBvB,YAAY;YACZ,eAAe;YACf,WAAW;YACX,mBAAmB;YACnB,aAAa;YACb,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,oBAAoB;AACpB,YAAA,gBAAgB,EAKhB,aAAa;YACb,eAAe;YACf,YAAY;YACZ,kBAAkB;YAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;;4FAGX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA3B9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,qBAAqB;wBACrB,iCAAiC;AACpC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,mBAAmB;wBACnB,aAAa;wBACb,eAAe;wBACf,YAAY;wBACZ,kBAAkB;wBAClB,oBAAoB;wBACpB,gBAAgB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,qBAAqB;wBACrB,iCAAiC;wBACjC,aAAa;wBACb,eAAe;wBACf,YAAY;wBACZ,kBAAkB;wBAClB,gBAAgB;AACnB,qBAAA;AACJ,iBAAA,CAAA;;;ACzCD;;AAEG;;;;"}
@@ -62,8 +62,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
62
62
  type: Output
63
63
  }] } });
64
64
 
65
+ /**
66
+ * @description Componente de menu em grade que exibe uma coleção de itens como cards clicáveis.
67
+ * Suporta seleção de item ativo e pode utilizar ícones do Font Awesome ou ícones padrão.
68
+ *
69
+ * @example
70
+ * ```html
71
+ * <s-grid-menu
72
+ * [items]="menuItems"
73
+ * [selectable]="true"
74
+ * [(selected)]="selectedItem"
75
+ * />
76
+ * ```
77
+ *
78
+ * @category Navegação
79
+ */
65
80
  class GridMenuComponent {
66
81
  previousGridMenuItemClicked;
82
+ /**
83
+ * @description Lista de itens exibidos no grid. Aceita um único item ou um array de `GridMenuItem`.
84
+ * Valores nulos ou indefinidos resultam em uma lista vazia.
85
+ */
67
86
  set items(items) {
68
87
  if (isNullOrUndefined(items)) {
69
88
  this.itemsArray = [];
@@ -72,10 +91,30 @@ class GridMenuComponent {
72
91
  this.itemsArray = Array.isArray(items) ? items : [items];
73
92
  }
74
93
  }
94
+ /**
95
+ * @description Quando `true`, utiliza classes de ícones do Font Awesome nos itens do grid.
96
+ * Quando `false`, utiliza o sistema de ícones padrão do projeto.
97
+ *
98
+ * @default false
99
+ */
75
100
  useFontAwesomeIcons = false;
76
101
  itemsArray = [];
102
+ /**
103
+ * @description Habilita o modo de seleção do grid. Quando `true`, permite que o usuário
104
+ * clique em um item para selecioná-lo, marcando-o como ativo.
105
+ *
106
+ * @default false
107
+ */
77
108
  selectable = false;
109
+ /**
110
+ * @description Item atualmente selecionado no grid. Usado em conjunto com `selectable = true`
111
+ * e suporta two-way binding via `[(selected)]`.
112
+ */
78
113
  selected;
114
+ /**
115
+ * @description Emitido quando o usuário seleciona um novo item no grid.
116
+ * Retorna o `GridMenuItem` selecionado. Usado para two-way binding com `[(selected)]`.
117
+ */
79
118
  selectedChange = new EventEmitter();
80
119
  ngOnChanges(changes) {
81
120
  if (changes['selected'] && changes['selected'].isFirstChange()) {
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-grid-menu.mjs","sources":["../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.module.ts","../../projects/angular-components/grid-menu/src/seniorsistemas-angular-components-grid-menu.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { GridMenuItem } from '../../types/grid-menu-item';\n\n@Component({\n selector: 's-grid-menu-item',\n templateUrl: './grid-menu-item.component.html',\n styleUrls: ['./grid-menu-item.component.scss'],\n})\nexport class GridMenuItemComponent {\n @Input({ required: true })\n public item!: GridMenuItem;\n\n @Input()\n public iconIsFromFontAwesome = false;\n\n @Output() clickedGridMenuItem = new EventEmitter<GridMenuItem>();\n\n public fontAwesomePrefix: 'fal' | 'fas' = 'fal';\n\n public onClick(): void {\n if (this.disabled) {\n return;\n }\n this.item.action?.();\n this.clickedGridMenuItem.emit(this.item);\n }\n\n public onMouseEnter() {\n if (this.disabled) {\n return;\n }\n this.fontAwesomePrefix = 'fas';\n }\n\n public onMouseLeave() {\n if (this.disabled) {\n return;\n }\n this.fontAwesomePrefix = 'fal';\n }\n\n public get iconFontAwesomeClassName() {\n const prefix = this.item.active ? 'fas' : this.fontAwesomePrefix;\n return `${prefix} ${this.item.icon}`;\n }\n\n public get initialLetter(): string {\n let initialLetter = '';\n if (this.item.label) {\n const words = this.item.label.split(' ', 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n public get disabled(): boolean {\n return typeof this.item?.disabled === 'function' ? !!this.item.disabled() : !!this.item?.disabled;\n }\n}\n","@if (item) {\n <button\n class=\"icon-button\"\n [class.icon-button-active]=\"item.active\"\n [class.icon-button--disabled]=\"disabled\"\n (sInteractiveContent)=\"onClick()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled ? -1 : 0\"\n [class.icon-font-awesome]=\"iconIsFromFontAwesome\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"icon-wrapper\"\n [class.icon-image]=\"!iconIsFromFontAwesome\"\n >\n @if (item.icon) {\n @if (iconIsFromFontAwesome) {\n <i [class]=\"iconFontAwesomeClassName\"> </i>\n } @else {\n <span\n class=\"icon\"\n style=\"background-image: url('{{ item.icon }}');\"\n >\n </span>\n }\n } @else if (!item.icon) {\n <span class=\"initials\">{{ initialLetter }}</span>\n }\n </div>\n <span class=\"title\">{{ item.label }}</span>\n </button>\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { GridMenuItem } from './types/grid-menu-item';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n selector: 's-grid-menu',\n templateUrl: './grid-menu.component.html',\n styleUrls: ['./grid-menu.component.scss'],\n})\nexport class GridMenuComponent implements OnChanges {\n private previousGridMenuItemClicked: GridMenuItem | undefined;\n @Input()\n public set items(items: GridMenuItem[] | GridMenuItem) {\n if (isNullOrUndefined(items)) {\n this.itemsArray = [];\n } else {\n this.itemsArray = Array.isArray(items) ? (items as GridMenuItem[]) : [items];\n }\n }\n\n @Input() useFontAwesomeIcons = false;\n\n public itemsArray: GridMenuItem[] = [];\n\n @Input() selectable = false;\n\n @Input() selected!: GridMenuItem;\n\n @Output() selectedChange = new EventEmitter<GridMenuItem>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selected'] && changes['selected'].isFirstChange()) {\n if (this.selectable) {\n this.previousGridMenuItemClicked = this.selected;\n this.selected.active = true;\n }\n }\n }\n\n onClickGridMenuItem(gridMenuItem: GridMenuItem) {\n if (!this.selectable) {\n return;\n }\n if (this.previousGridMenuItemClicked) {\n this.previousGridMenuItemClicked.active = false;\n }\n gridMenuItem.active = !gridMenuItem.active;\n this.previousGridMenuItemClicked = gridMenuItem;\n this.selectedChange.next(gridMenuItem);\n }\n}\n","<section class=\"grid-menu\">\n @for (item of itemsArray; track $index) {\n <s-grid-menu-item\n [item]=\"item\"\n [iconIsFromFontAwesome]=\"useFontAwesomeIcons\"\n (clickedGridMenuItem)=\"onClickGridMenuItem($event)\"\n ></s-grid-menu-item>\n }\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GridMenuItemComponent } from './components/grid-menu-item/grid-menu-item.component';\nimport { GridMenuComponent } from './grid-menu.component';\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\n\n@NgModule({\n imports: [CommonModule, InteractiveContentDirective],\n declarations: [GridMenuItemComponent, GridMenuComponent],\n exports: [GridMenuItemComponent, GridMenuComponent],\n})\nexport class GridMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GridMenuItemComponent"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-grid-menu.mjs","sources":["../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.ts","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.component.html","../../projects/angular-components/grid-menu/src/lib/grid-menu/grid-menu.module.ts","../../projects/angular-components/grid-menu/src/seniorsistemas-angular-components-grid-menu.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { GridMenuItem } from '../../types/grid-menu-item';\n\n@Component({\n selector: 's-grid-menu-item',\n templateUrl: './grid-menu-item.component.html',\n styleUrls: ['./grid-menu-item.component.scss'],\n})\nexport class GridMenuItemComponent {\n @Input({ required: true })\n public item!: GridMenuItem;\n\n @Input()\n public iconIsFromFontAwesome = false;\n\n @Output() clickedGridMenuItem = new EventEmitter<GridMenuItem>();\n\n public fontAwesomePrefix: 'fal' | 'fas' = 'fal';\n\n public onClick(): void {\n if (this.disabled) {\n return;\n }\n this.item.action?.();\n this.clickedGridMenuItem.emit(this.item);\n }\n\n public onMouseEnter() {\n if (this.disabled) {\n return;\n }\n this.fontAwesomePrefix = 'fas';\n }\n\n public onMouseLeave() {\n if (this.disabled) {\n return;\n }\n this.fontAwesomePrefix = 'fal';\n }\n\n public get iconFontAwesomeClassName() {\n const prefix = this.item.active ? 'fas' : this.fontAwesomePrefix;\n return `${prefix} ${this.item.icon}`;\n }\n\n public get initialLetter(): string {\n let initialLetter = '';\n if (this.item.label) {\n const words = this.item.label.split(' ', 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n public get disabled(): boolean {\n return typeof this.item?.disabled === 'function' ? !!this.item.disabled() : !!this.item?.disabled;\n }\n}\n","@if (item) {\n <button\n class=\"icon-button\"\n [class.icon-button-active]=\"item.active\"\n [class.icon-button--disabled]=\"disabled\"\n (sInteractiveContent)=\"onClick()\"\n [disabled]=\"disabled\"\n [tabindex]=\"disabled ? -1 : 0\"\n [class.icon-font-awesome]=\"iconIsFromFontAwesome\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"icon-wrapper\"\n [class.icon-image]=\"!iconIsFromFontAwesome\"\n >\n @if (item.icon) {\n @if (iconIsFromFontAwesome) {\n <i [class]=\"iconFontAwesomeClassName\"> </i>\n } @else {\n <span\n class=\"icon\"\n style=\"background-image: url('{{ item.icon }}');\"\n >\n </span>\n }\n } @else if (!item.icon) {\n <span class=\"initials\">{{ initialLetter }}</span>\n }\n </div>\n <span class=\"title\">{{ item.label }}</span>\n </button>\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { GridMenuItem } from './types/grid-menu-item';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\n/**\n * @description Componente de menu em grade que exibe uma coleção de itens como cards clicáveis.\n * Suporta seleção de item ativo e pode utilizar ícones do Font Awesome ou ícones padrão.\n *\n * @example\n * ```html\n * <s-grid-menu\n * [items]=\"menuItems\"\n * [selectable]=\"true\"\n * [(selected)]=\"selectedItem\"\n * />\n * ```\n *\n * @category Navegação\n */\n@Component({\n selector: 's-grid-menu',\n templateUrl: './grid-menu.component.html',\n styleUrls: ['./grid-menu.component.scss'],\n})\nexport class GridMenuComponent implements OnChanges {\n private previousGridMenuItemClicked: GridMenuItem | undefined;\n\n /**\n * @description Lista de itens exibidos no grid. Aceita um único item ou um array de `GridMenuItem`.\n * Valores nulos ou indefinidos resultam em uma lista vazia.\n */\n @Input()\n public set items(items: GridMenuItem[] | GridMenuItem) {\n if (isNullOrUndefined(items)) {\n this.itemsArray = [];\n } else {\n this.itemsArray = Array.isArray(items) ? (items as GridMenuItem[]) : [items];\n }\n }\n\n /**\n * @description Quando `true`, utiliza classes de ícones do Font Awesome nos itens do grid.\n * Quando `false`, utiliza o sistema de ícones padrão do projeto.\n *\n * @default false\n */\n @Input() useFontAwesomeIcons = false;\n\n public itemsArray: GridMenuItem[] = [];\n\n /**\n * @description Habilita o modo de seleção do grid. Quando `true`, permite que o usuário\n * clique em um item para selecioná-lo, marcando-o como ativo.\n *\n * @default false\n */\n @Input() selectable = false;\n\n /**\n * @description Item atualmente selecionado no grid. Usado em conjunto com `selectable = true`\n * e suporta two-way binding via `[(selected)]`.\n */\n @Input() selected!: GridMenuItem;\n\n /**\n * @description Emitido quando o usuário seleciona um novo item no grid.\n * Retorna o `GridMenuItem` selecionado. Usado para two-way binding com `[(selected)]`.\n */\n @Output() selectedChange = new EventEmitter<GridMenuItem>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selected'] && changes['selected'].isFirstChange()) {\n if (this.selectable) {\n this.previousGridMenuItemClicked = this.selected;\n this.selected.active = true;\n }\n }\n }\n\n onClickGridMenuItem(gridMenuItem: GridMenuItem) {\n if (!this.selectable) {\n return;\n }\n if (this.previousGridMenuItemClicked) {\n this.previousGridMenuItemClicked.active = false;\n }\n gridMenuItem.active = !gridMenuItem.active;\n this.previousGridMenuItemClicked = gridMenuItem;\n this.selectedChange.next(gridMenuItem);\n }\n}\n\n","<section class=\"grid-menu\">\n @for (item of itemsArray; track $index) {\n <s-grid-menu-item\n [item]=\"item\"\n [iconIsFromFontAwesome]=\"useFontAwesomeIcons\"\n (clickedGridMenuItem)=\"onClickGridMenuItem($event)\"\n ></s-grid-menu-item>\n }\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GridMenuItemComponent } from './components/grid-menu-item/grid-menu-item.component';\nimport { GridMenuComponent } from './grid-menu.component';\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\n\n@NgModule({\n imports: [CommonModule, InteractiveContentDirective],\n declarations: [GridMenuItemComponent, GridMenuComponent],\n exports: [GridMenuItemComponent, GridMenuComponent],\n})\nexport class GridMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GridMenuItemComponent"],"mappings":"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"}
@@ -87,8 +87,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
87
87
  args: ['arrowElement', { read: ElementRef, static: true }]
88
88
  }] } });
89
89
 
90
+ /**
91
+ * @description Diretiva que exibe um popover de ajuda ao clicar no elemento hospedeiro.
92
+ * O popover suporta conteúdo como texto simples ou `TemplateRef`, além de botão de fechar,
93
+ * ícone, cabeçalho, rodapé e posição configurável. Pode ser acionado programaticamente.
94
+ *
95
+ * @example
96
+ * ```html
97
+ * <button [sHelpPopover]="'Informe aqui o seu CPF'" popoverPosition="right">?</button>
98
+ * ```
99
+ *
100
+ * @category Overlay
101
+ */
90
102
  class HelpPopoverDirective {
91
- MUTATION_OBSERVER_CONFIG = { attributes: true, childList: true, subtree: true };
103
+ MUTATION_OBSERVER_CONFIG = {
104
+ attributes: true,
105
+ childList: true,
106
+ subtree: true,
107
+ };
92
108
  OBSERVER_CALLBACK = () => {
93
109
  if (!this.componentRef) {
94
110
  return;
@@ -98,22 +114,60 @@ class HelpPopoverDirective {
98
114
  RESIZE_OBSERVER = () => {
99
115
  this.onResize$.next();
100
116
  };
117
+ /**
118
+ * @description Conteúdo do popover. Aceita uma `string` com texto simples ou um `TemplateRef`
119
+ * para renderizar conteúdo Angular customizado dentro do popover.
120
+ */
101
121
  sHelpPopover = null;
122
+ /**
123
+ * @description Quando `true`, exibe o botão de fechar (X) no cabeçalho do popover.
124
+ *
125
+ * @default true
126
+ */
102
127
  closeButton = true;
128
+ /**
129
+ * @description Classe de ícone exibida no cabeçalho do popover (ex: classe de Font Awesome).
130
+ */
103
131
  popoverIcon = '';
132
+ /**
133
+ * @description Texto exibido no cabeçalho do popover.
134
+ */
104
135
  popoverHeader = '';
136
+ /**
137
+ * @description Texto exibido no rodapé do popover.
138
+ */
105
139
  popoverFooter = '';
140
+ /**
141
+ * @description Texto do botão de ação exibido no rodapé do popover.
142
+ * Ao clicar, emite o evento `buttonClicked`.
143
+ */
106
144
  popoverButtonText = '';
145
+ /**
146
+ * @description Alinhamento da seta indicadora em relação ao lado do popover.
147
+ * Valores aceitos: `'beginning'` (padrão), `'middle'`, `'end'`.
148
+ *
149
+ * @default 'beginning'
150
+ */
107
151
  popoverArrowPosition = 'beginning';
108
- _popoverPosition = 'bottom';
109
- get popoverPosition() {
110
- return this._popoverPosition;
111
- }
152
+ /**
153
+ * @description Posição do popover em relação ao elemento hospedeiro.
154
+ * Valores aceitos: `'top'`, `'bottom'` (padrão), `'left'`, `'right'`.
155
+ * O componente tenta reposicionar automaticamente caso não haja espaço.
156
+ *
157
+ * @default 'bottom'
158
+ */
112
159
  set popoverPosition(value) {
113
160
  this._popoverPosition = value;
114
161
  this.internalPosition = value;
115
162
  }
163
+ get popoverPosition() {
164
+ return this._popoverPosition;
165
+ }
166
+ /**
167
+ * @description Emitido quando o usuário clica no botão de ação do rodapé do popover.
168
+ */
116
169
  buttonClicked = new EventEmitter();
170
+ _popoverPosition = 'bottom';
117
171
  onDestroy$ = new Subject();
118
172
  componentRef = null;
119
173
  mutationObserverPopoverElement = null;
@@ -268,7 +322,7 @@ class HelpPopoverDirective {
268
322
  _horizontalLeft = popoverElementPosition.right - popoverWidth;
269
323
  }
270
324
  else if (this.popoverArrowPosition === 'middle') {
271
- _horizontalLeft = (popoverElementPosition.left + popoverElementPosition.elementWidth / 2) - (popoverWidth / 2);
325
+ _horizontalLeft = popoverElementPosition.left + popoverElementPosition.elementWidth / 2 - popoverWidth / 2;
272
326
  }
273
327
  return _horizontalLeft;
274
328
  }
@@ -285,7 +339,9 @@ class HelpPopoverDirective {
285
339
  top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight / 2}px - ${distanceArrowFromStart + arrowMiddle}px)`;
286
340
  }
287
341
  else if (this.popoverArrowPosition === 'end') {
288
- const distanceArrowFromEnd = (popoverContentPosition.top + popoverContentPosition.elementHeight) - (arrowElementPosition.top + arrowElementPosition.elementHeight);
342
+ const distanceArrowFromEnd = popoverContentPosition.top +
343
+ popoverContentPosition.elementHeight -
344
+ (arrowElementPosition.top + arrowElementPosition.elementHeight);
289
345
  top = `calc(${popoverElementPosition.top}px - ${popoverContentPosition.elementHeight}px + ${popoverElementPosition.elementHeight / 2}px + ${distanceArrowFromEnd + arrowMiddle}px)`;
290
346
  }
291
347
  return top;
@@ -300,21 +356,21 @@ class HelpPopoverDirective {
300
356
  return this.componentRef?.instance;
301
357
  }
302
358
  /**
303
- * Given the current position of the popover and the available space around
304
- * the trigger element, this function will return the position that the popover
305
- * will be set at.
306
- *
307
- * If the popover will fit at the given position, it will return the same
308
- * position.
309
- *
310
- * If the popover will not fit at the given position, it will return the position
311
- * that has the most available space (top or bottom).
312
- *
313
- * If there is no position with available space, it will return the given
314
- * position.
315
- *
316
- * @returns The position that the popover will be set at.
317
- */
359
+ * Given the current position of the popover and the available space around
360
+ * the trigger element, this function will return the position that the popover
361
+ * will be set at.
362
+ *
363
+ * If the popover will fit at the given position, it will return the same
364
+ * position.
365
+ *
366
+ * If the popover will not fit at the given position, it will return the position
367
+ * that has the most available space (top or bottom).
368
+ *
369
+ * If there is no position with available space, it will return the given
370
+ * position.
371
+ *
372
+ * @returns The position that the popover will be set at.
373
+ */
318
374
  get validPosition() {
319
375
  const { freeDistanceToBottom, freeDistanceToTop, freeDistanceToLeft, freeDistanceToRight } = this.getLeftoverContentAvailableForPopover();
320
376
  const popoverElementPosition = getElementPositionInfo(this.getPopoverElement);
@@ -351,7 +407,7 @@ class HelpPopoverDirective {
351
407
  {
352
408
  position: 'top',
353
409
  freeDistance: remainingSpaceTop,
354
- }
410
+ },
355
411
  ].filter((x) => x.freeDistance > 0);
356
412
  if (freePositions.length === 0) {
357
413
  return this.popoverPosition;
@@ -370,7 +426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
370
426
  type: Directive,
371
427
  args: [{
372
428
  selector: '[sHelpPopover]',
373
- exportAs: 'sHelpPopover'
429
+ exportAs: 'sHelpPopover',
374
430
  }]
375
431
  }], propDecorators: { sHelpPopover: [{
376
432
  type: Input