@seniorsistemas/angular-components 19.0.4 → 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 (472) 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-models.d.ts +11 -0
  8. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +19 -23
  9. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +25 -0
  10. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +10 -0
  11. package/breadcrumb/public-api.d.ts +4 -2
  12. package/button/lib/button/button.component.d.ts +103 -1
  13. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
  14. package/card/lib/card/card.component.d.ts +18 -0
  15. package/chat/lib/chat/chat.component.d.ts +20 -2
  16. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
  17. package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
  18. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
  19. package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
  20. package/chips/lib/chips/chips/chips.component.d.ts +41 -0
  21. package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
  22. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
  23. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  24. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
  25. package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
  26. package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
  27. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
  28. package/currency/lib/currency.service.d.ts +15 -2
  29. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
  30. package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
  31. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
  32. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
  33. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
  34. package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
  35. package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
  36. package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
  37. package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
  38. package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
  39. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
  40. package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
  41. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
  42. package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
  43. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
  44. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
  45. package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
  46. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
  47. package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
  50. package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
  53. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
  54. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
  55. package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
  56. package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
  57. package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
  58. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
  59. package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
  60. package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
  61. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
  62. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
  63. package/dynamic-form/public-api.d.ts +1 -0
  64. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
  65. package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
  66. package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
  67. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
  68. package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
  69. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
  70. package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
  71. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
  72. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb-models.mjs +2 -0
  73. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +39 -98
  74. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +120 -0
  75. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +19 -0
  76. package/esm2022/breadcrumb/public-api.mjs +4 -3
  77. package/esm2022/button/lib/button/button.component.mjs +107 -3
  78. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
  79. package/esm2022/card/lib/card/card.component.mjs +21 -6
  80. package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
  81. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
  82. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
  83. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
  84. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
  85. package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
  86. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
  87. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
  88. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
  89. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +21 -2
  90. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +32 -2
  91. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
  92. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
  93. package/esm2022/currency/lib/currency.service.mjs +21 -8
  94. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
  95. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
  96. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
  97. package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
  98. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
  99. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
  100. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
  101. package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
  102. package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
  103. package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
  104. package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
  105. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
  106. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  107. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  108. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
  109. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
  110. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
  111. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
  112. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  113. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
  114. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
  115. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
  116. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
  117. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  118. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
  119. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  120. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  121. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
  122. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
  123. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
  124. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  125. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
  126. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
  127. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  128. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  129. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
  130. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
  131. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
  132. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
  133. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
  134. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
  135. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
  136. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  137. package/esm2022/dynamic-form/public-api.mjs +2 -2
  138. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
  139. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +61 -2
  140. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
  141. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +49 -2
  142. package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
  143. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
  144. package/esm2022/global-search/lib/global-search/global-search.component.mjs +31 -2
  145. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
  146. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
  147. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
  148. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +41 -4
  149. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
  150. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
  151. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  152. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
  153. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
  154. package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
  155. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
  156. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
  157. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +1 -1
  158. package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
  159. package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
  160. package/esm2022/lib/locale/fallback.mjs +4 -2
  161. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
  162. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
  163. package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
  164. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
  165. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
  166. package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
  167. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
  168. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +21 -2
  169. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
  170. package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
  171. package/esm2022/numeric/lib/numeric.service.mjs +21 -1
  172. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
  173. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
  174. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
  175. package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
  176. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  177. package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
  178. package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
  179. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
  180. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
  181. package/esm2022/picklist/lib/picklist/picklist.component.mjs +34 -3
  182. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
  183. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +87 -3
  184. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
  185. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
  186. package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
  187. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
  188. package/esm2022/select/lib/select/select.component.mjs +35 -1
  189. package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
  190. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
  191. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
  192. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
  193. package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
  194. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
  195. package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
  196. package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
  197. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
  198. package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
  199. package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
  200. package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
  201. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
  202. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
  203. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
  204. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
  205. package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
  206. package/esm2022/template/lib/template/template.directive.mjs +14 -2
  207. package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
  208. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
  209. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
  210. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +65 -46
  211. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
  212. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +35 -2
  213. package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
  214. package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
  215. package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
  216. package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
  217. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
  218. package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
  219. package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
  220. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
  221. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
  222. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  223. package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
  224. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  225. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
  226. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  227. package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
  228. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  229. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
  230. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  231. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +93 -37
  232. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  233. package/fesm2022/seniorsistemas-angular-components-button.mjs +106 -2
  234. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  235. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
  236. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  237. package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
  238. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  239. package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
  240. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  241. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
  242. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  243. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
  244. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  245. package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
  246. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  247. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
  248. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  249. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
  250. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  251. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
  252. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  253. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +20 -1
  254. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  255. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +31 -1
  256. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  257. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
  258. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  259. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
  260. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  261. package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
  262. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  263. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
  264. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  265. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
  266. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  267. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +38 -13
  268. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  269. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
  270. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  271. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +60 -1
  272. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  273. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
  274. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  275. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +48 -1
  276. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  277. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
  278. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  279. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -2
  280. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  281. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
  282. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  283. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +81 -25
  284. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  285. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +39 -2
  286. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  287. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
  288. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  289. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
  290. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  291. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +17 -2
  292. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  293. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
  294. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  295. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
  296. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  297. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -12
  298. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  299. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
  300. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  301. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
  302. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  303. package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
  304. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  305. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
  306. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  307. package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
  308. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  309. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
  310. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  311. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +20 -1
  312. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  313. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
  314. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  315. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
  316. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  317. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
  318. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  319. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +25 -2
  320. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  321. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
  323. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
  325. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
  327. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +33 -2
  329. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
  331. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +86 -2
  333. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
  335. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
  337. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
  339. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
  341. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
  343. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
  345. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
  347. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
  349. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
  351. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
  353. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
  355. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
  357. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
  359. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
  361. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
  363. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
  365. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
  367. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-table.mjs +16 -1
  369. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  370. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
  371. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  372. package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
  373. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  374. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
  375. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  376. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
  377. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  378. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
  379. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  380. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +99 -47
  381. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  382. package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
  383. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  384. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
  385. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  386. package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
  387. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  388. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
  389. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  390. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
  391. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  392. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
  393. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  394. package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
  395. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  396. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
  397. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  398. package/fesm2022/seniorsistemas-angular-components.mjs +3 -1
  399. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  400. package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
  401. package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
  402. package/gantt/lib/gantt/gantt.component.d.ts +31 -0
  403. package/global-search/lib/global-search/global-search.component.d.ts +29 -0
  404. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
  405. package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
  406. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
  407. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
  408. package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
  409. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  410. package/insights/lib/insights/insights.component.d.ts +22 -0
  411. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
  412. package/kanban/lib/kanban/kanban.component.d.ts +25 -5
  413. package/label-value/lib/label-value/label-value.component.d.ts +13 -0
  414. package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
  415. package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
  416. package/locale/lib/locale/locale.service.d.ts +7 -0
  417. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  418. package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
  419. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
  420. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
  421. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
  422. package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
  423. package/numeric/lib/numeric.pipe.d.ts +15 -0
  424. package/numeric/lib/numeric.service.d.ts +20 -0
  425. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
  426. package/object-card/lib/object-card/object-card.component.d.ts +23 -0
  427. package/optional-fields/editor/editor-field.d.ts +19 -0
  428. package/package.json +7 -7
  429. package/paginator/lib/paginator/paginator.component.d.ts +19 -0
  430. package/panel/lib/panel/panel.component.d.ts +24 -3
  431. package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
  432. package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
  433. package/picklist/lib/picklist/picklist.component.d.ts +29 -0
  434. package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
  435. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
  436. package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
  437. package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
  438. package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
  439. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
  440. package/select/lib/select/select.component.d.ts +34 -0
  441. package/select-button/lib/select-button/select-button.component.d.ts +34 -0
  442. package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
  443. package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
  444. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
  445. package/slider/lib/slider/slider.component.d.ts +72 -0
  446. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
  447. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  448. package/star-rating/star-rating/star-rating.component.d.ts +16 -0
  449. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  450. package/stepper/lib/stepper/stepper.component.d.ts +19 -0
  451. package/structure/lib/structure/footer.component.d.ts +10 -0
  452. package/switch/lib/switch/switch.component.d.ts +20 -0
  453. package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
  454. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
  455. package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
  456. package/tabs/lib/tabs/tabs.component.d.ts +28 -0
  457. package/template/lib/template/template.directive.d.ts +12 -0
  458. package/text-area/lib/text-area/text-area.component.d.ts +27 -0
  459. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
  460. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
  461. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +3 -1
  462. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +31 -1
  463. package/tile/lib/tile/tile.component.d.ts +25 -0
  464. package/timeline/lib/timeline/timeline.component.d.ts +24 -0
  465. package/toast/lib/toast/toast.component.d.ts +22 -2
  466. package/token-list/lib/token-list/token-list.component.d.ts +21 -0
  467. package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
  468. package/topbar/lib/topbar/topbar.component.d.ts +17 -0
  469. package/tree/lib/tree/tree.component.d.ts +27 -0
  470. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
  471. package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +0 -10
  472. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.module.mjs +0 -20
@@ -49,7 +49,7 @@ class GlobalSearchDropdownItemComponent {
49
49
  return this.size === 'standart';
50
50
  }
51
51
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchDropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchDropdownItemComponent, selector: "s-global-search-dropdown-item", inputs: { id: "id", primaryLabel: "primaryLabel", secondaryEmptyLabel: "secondaryEmptyLabel", tertiaryEmptyLabel: "tertiaryEmptyLabel", imageSource: "imageSource", imageAlt: "imageAlt", iconClass: "iconClass", secondaryLabel: "secondaryLabel", tertiaryLabel: "tertiaryLabel", size: "size", template: "template" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<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", styles: [".global-search-dropdown{align-items:center;display:flex;height:100%;border-bottom:solid 1px #ccc;padding:15px 5px;margin:0 10px}::ng-deep .no-padding{padding:0!important;min-width:0px!important}::ng-deep .s-button-with-text{min-width:0px!important}.global-search-item__italic{font-style:italic}.global-search-item__container{margin-left:10px;width:100%}.global-search-item__container,.global-search-item__container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.global-search-item__container .label{color:#333;display:block}.global-search-item__container .description{color:#999;display:block}.global-search-item__container--width-60{width:60%}.global-search-item__container--width-40{width:40%}.global-search-item__text-align--right{text-align:right;padding:2px 0 0 15px}.global-search__dropdown--template{display:flex;flex-direction:column;text-align:right!important}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.global-search-item__container{flex:1}}@media (max-width: 767px){.global-search-item__container,.global-search-item__container span{white-space:normal}}.global-search-item__container:only-child{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i3.ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: i4.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchDropdownItemComponent, selector: "s-global-search-dropdown-item", inputs: { id: "id", primaryLabel: "primaryLabel", secondaryEmptyLabel: "secondaryEmptyLabel", tertiaryEmptyLabel: "tertiaryEmptyLabel", imageSource: "imageSource", imageAlt: "imageAlt", iconClass: "iconClass", secondaryLabel: "secondaryLabel", tertiaryLabel: "tertiaryLabel", size: "size", template: "template" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "thumbnailComponent", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "<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", styles: [".global-search-dropdown{align-items:center;display:flex;height:100%;border-bottom:solid 1px #ccc;padding:15px 5px;margin:0 10px}::ng-deep .no-padding{padding:0!important;min-width:0px!important}::ng-deep .s-button-with-text{min-width:0px!important}.global-search-item__italic{font-style:italic}.global-search-item__container{margin-left:10px;width:100%}.global-search-item__container,.global-search-item__container span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.global-search-item__container .label{color:#333;display:block}.global-search-item__container .description{color:#999;display:block}.global-search-item__container--width-60{width:60%}.global-search-item__container--width-40{width:40%}.global-search-item__text-align--right{text-align:right;padding:2px 0 0 15px}.global-search__dropdown--template{display:flex;flex-direction:column;text-align:right!important}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.global-search-item__container{flex:1}}@media (max-width: 767px){.global-search-item__container,.global-search-item__container span{white-space:normal}}.global-search-item__container:only-child{margin-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i3.ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: i4.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "menuAriaLabel", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
53
53
  }
54
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchDropdownItemComponent, decorators: [{
55
55
  type: Component,
@@ -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;
@@ -156,7 +185,7 @@ class GlobalSearchComponent {
156
185
  this._cdr.detectChanges();
157
186
  }
158
187
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GlobalSearchComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
159
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchComponent, selector: "s-global-search", inputs: { id: "id", delay: "delay", totalItensLabel: "totalItensLabel", showMoreLabel: "showMoreLabel", placeholder: "placeholder", isLoading: "isLoading", totalElements: "totalElements", emptyTitle: "emptyTitle", emptyDescription: "emptyDescription", emptyIcon: "emptyIcon", showFooter: "showFooter" }, outputs: { searched: "searched", focused: "focused", moreShown: "moreShown" }, queries: [{ propertyName: "dropdownItens", predicate: GlobalSearchDropdownItemComponent }], viewQueries: [{ propertyName: "globalSearch", first: true, predicate: ["globalSearch"], descendants: true }], ngImport: i0, template: "<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", styles: [".p-inputGroup{display:flex;max-width:100%}.global-search__input{border-radius:20px 0 0 20px;border-right:none;cursor:pointer;height:25px;min-height:25px;padding:0 0 0 15px;transition:all .3s;width:136px}.global-search__input:active,.global-search__input:focus,.global-search__input-active{border-bottom:solid 1px #428bca;border-left:solid 1px #428bca;border-top:solid 1px #428bca;cursor:default;transition:all .3s;width:466px}.global-search__input:active,.global-search__input:focus+.global-search__span{border-bottom:solid 1px #428bca;border-left:none;border-right:solid 1px #428bca;border-top:solid 1px #428bca;transition:all .3s}.global-search__span{align-items:center;background:transparent;border:1px solid #ccc;border-left:none;border-radius:0 20px 20px 0;display:flex;height:25px;justify-content:center;padding:0 8px;transition:all .3s}.global-search__modal{background:#fff;border-radius:5px;box-shadow:0 2px 8px #0006;margin-top:60px;min-height:50px;position:absolute;width:500px;z-index:6}.global-search__modal--total-itens-title{border-bottom:solid 1px #ccc;color:#333;font-weight:600;height:50px;padding:15px}.global-search__modal--footer{border-top:solid 1px #ccc;height:50px}.global-search__modal--total-itens-title-icon{cursor:pointer;text-align:right}.global-search__container{min-height:50px;width:100%}.global-search__dropdown--itens{max-height:510px;overflow:auto}.global-search__dropdown--itens-container:hover{background:#dbe0e4}.global-search__background{background:#0006;cursor:pointer;height:calc(100vh - 70px);left:0;margin-top:50px;position:absolute;width:100%;z-index:5}.no-space{margin:0;padding:0}.global-search__show-more{display:flex;flex-direction:column}.global-search__show-more--button{color:#428bca!important}.modal{height:calc(100vh - 90px);left:1%;position:absolute;width:98%}.global-search__empty-state--icon{margin:42px 134px}::ng-deep s-global-search{width:100%}::ng-deep s-global-search .global-search__loader{border-radius:5px!important;width:100%}::ng-deep s-global-search .global-search__empty-state--icon .empty-state .icon{font-size:40px}::ng-deep s-global-search .s-button-priority-link{color:#428bca}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: i5.LoadingStateDirective, selector: "[sLoadingState]", inputs: ["sLoadingState"] }, { kind: "component", type: i6.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }], animations: [
188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GlobalSearchComponent, selector: "s-global-search", inputs: { id: "id", delay: "delay", totalItensLabel: "totalItensLabel", showMoreLabel: "showMoreLabel", placeholder: "placeholder", isLoading: "isLoading", totalElements: "totalElements", emptyTitle: "emptyTitle", emptyDescription: "emptyDescription", emptyIcon: "emptyIcon", showFooter: "showFooter" }, outputs: { searched: "searched", focused: "focused", moreShown: "moreShown" }, queries: [{ propertyName: "dropdownItens", predicate: GlobalSearchDropdownItemComponent }], viewQueries: [{ propertyName: "globalSearch", first: true, predicate: ["globalSearch"], descendants: true }], ngImport: i0, template: "<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", styles: [".p-inputGroup{display:flex;max-width:100%}.global-search__input{border-radius:20px 0 0 20px;border-right:none;cursor:pointer;height:25px;min-height:25px;padding:0 0 0 15px;transition:all .3s;width:136px}.global-search__input:active,.global-search__input:focus,.global-search__input-active{border-bottom:solid 1px #428bca;border-left:solid 1px #428bca;border-top:solid 1px #428bca;cursor:default;transition:all .3s;width:466px}.global-search__input:active,.global-search__input:focus+.global-search__span{border-bottom:solid 1px #428bca;border-left:none;border-right:solid 1px #428bca;border-top:solid 1px #428bca;transition:all .3s}.global-search__span{align-items:center;background:transparent;border:1px solid #ccc;border-left:none;border-radius:0 20px 20px 0;display:flex;height:25px;justify-content:center;padding:0 8px;transition:all .3s}.global-search__modal{background:#fff;border-radius:5px;box-shadow:0 2px 8px #0006;margin-top:60px;min-height:50px;position:absolute;width:500px;z-index:6}.global-search__modal--total-itens-title{border-bottom:solid 1px #ccc;color:#333;font-weight:600;height:50px;padding:15px}.global-search__modal--footer{border-top:solid 1px #ccc;height:50px}.global-search__modal--total-itens-title-icon{cursor:pointer;text-align:right}.global-search__container{min-height:50px;width:100%}.global-search__dropdown--itens{max-height:510px;overflow:auto}.global-search__dropdown--itens-container:hover{background:#dbe0e4}.global-search__background{background:#0006;cursor:pointer;height:calc(100vh - 70px);left:0;margin-top:50px;position:absolute;width:100%;z-index:5}.no-space{margin:0;padding:0}.global-search__show-more{display:flex;flex-direction:column}.global-search__show-more--button{color:#428bca!important}.modal{height:calc(100vh - 90px);left:1%;position:absolute;width:98%}.global-search__empty-state--icon{margin:42px 134px}::ng-deep s-global-search{width:100%}::ng-deep s-global-search .global-search__loader{border-radius:5px!important;width:100%}::ng-deep s-global-search .global-search__empty-state--icon .empty-state .icon{font-size:40px}::ng-deep s-global-search .s-button-priority-link{color:#428bca}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$1.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "menuAriaLabel", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: i5.LoadingStateDirective, selector: "[sLoadingState]", inputs: ["sLoadingState"] }, { kind: "component", type: i6.EmptyStateComponent, selector: "s-empty-state", inputs: ["id", "title", "iconClass", "description", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "secondaryActionLabel", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }], animations: [
160
189
  trigger('expandableContent', [
161
190
  state('*', style({ height: '0' })),
162
191
  state('false', style({ height: '0' })),
@@ -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":"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"}
@@ -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":";;;;;;;MASa,qBAAqB,CAAA;AAEvB,IAAA,IAAI,CAAgB;IAGpB,qBAAqB,GAAG,KAAK,CAAC;AAE3B,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAgB,CAAC;IAE1D,iBAAiB,GAAkB,KAAK,CAAC;IAEzC,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5C;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;AACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAClC;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;AACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;KAClC;AAED,IAAA,IAAW,wBAAwB,GAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjE,OAAO,CAAA,EAAG,MAAM,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA,CAAE,CAAC;KACxC;AAED,IAAA,IAAW,aAAa,GAAA;QACpB,IAAI,aAAa,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,YAAA,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAClB,gBAAA,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACrD;SACJ;AACD,QAAA,OAAO,aAAa,CAAC;KACxB;AAED,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,KAAK,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;KACrG;wGApDQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,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,2LCTlC,ioCAiCA,EAAA,MAAA,EAAA,CAAA,wjDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDxBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,ioCAAA,EAAA,MAAA,EAAA,CAAA,wjDAAA,CAAA,EAAA,CAAA;8BAMrB,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,qBAAqB,EAAA,CAAA;sBAD3B,KAAK;gBAGI,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;;;MENE,iBAAiB,CAAA;AAClB,IAAA,2BAA2B,CAA2B;IAC9D,IACW,KAAK,CAAC,KAAoC,EAAA;AACjD,QAAA,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACxB;aAAM;AACH,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAI,KAAwB,GAAG,CAAC,KAAK,CAAC,CAAC;SAChF;KACJ;IAEQ,mBAAmB,GAAG,KAAK,CAAC;IAE9B,UAAU,GAAmB,EAAE,CAAC;IAE9B,UAAU,GAAG,KAAK,CAAC;AAEnB,IAAA,QAAQ,CAAgB;AAEvB,IAAA,cAAc,GAAG,IAAI,YAAY,EAAgB,CAAC;AAE5D,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,EAAE;AAC5D,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjD,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;aAC/B;SACJ;KACJ;AAED,IAAA,mBAAmB,CAAC,YAA0B,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO;SACV;AACD,QAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;AAClC,YAAA,IAAI,CAAC,2BAA2B,CAAC,MAAM,GAAG,KAAK,CAAC;SACnD;AACD,QAAA,YAAY,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;AAC3C,QAAA,IAAI,CAAC,2BAA2B,GAAG,YAAY,CAAC;AAChD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC1C;wGAxCQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,+OCV9B,yTASA,EAAA,MAAA,EAAA,CAAA,gHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDCa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACI,aAAa,EAAA,QAAA,EAAA,yTAAA,EAAA,MAAA,EAAA,CAAA,gHAAA,CAAA,EAAA,CAAA;8BAOZ,KAAK,EAAA,CAAA;sBADf,KAAK;gBASG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAIG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MEjBE,cAAc,CAAA;wGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAd,cAAc,EAAA,YAAA,EAAA,CAHR,qBAAqB,EAAE,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAD7C,YAAY,EAAE,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAEzC,qBAAqB,EAAE,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAEzC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAJb,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAIb,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,2BAA2B,CAAC;AACpD,oBAAA,YAAY,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;AACxD,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;AACtD,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
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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"}
@@ -77,7 +77,7 @@ class HelpPopoverComponent {
77
77
  this.closed.complete();
78
78
  }
79
79
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HelpPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HelpPopoverComponent, selector: "s-help-popover", viewQueries: [{ propertyName: "arrowElement", first: true, predicate: ["arrowElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"popover-container\"\n [style.visibility]=\"visible ? 'visible' : 'hidden'\"\n [class.popover-container-top]=\"position === 'top'\"\n [class.popover-container-right]=\"position === 'right'\"\n [class.popover-container-bottom]=\"position === 'bottom'\"\n [class.popover-container-left]=\"position === 'left'\"\n>\n <div\n class=\"arrow-container\"\n [class.arrow-container-beginning]=\"arrowPosition === 'beginning'\"\n [class.arrow-container-middle]=\"arrowPosition === 'middle'\"\n [class.arrow-container-end]=\"arrowPosition === 'end'\"\n >\n <div\n class=\"arrow\"\n #arrowElement\n ></div>\n </div>\n <div class=\"popover\">\n @if (hasHeaderContainer) {\n <div\n class=\"popover-header-container\"\n [class.space-between]=\"hasIcon || hasHeaderText\"\n [class.flex-end]=\"!(hasIcon || hasHeaderText) && closeButton\"\n >\n @if (hasIcon || hasHeaderText) {\n <div class=\"popover-header-container-text\">\n @if (hasIcon) {\n <div class=\"popover-icon\">\n <i [class]=\"icon\"></i>\n </div>\n }\n @if (hasHeaderText) {\n <div class=\"popover-header-text\">\n {{ header }}\n </div>\n }\n </div>\n }\n @if (closeButton) {\n <div class=\"popover-close-button\">\n <i\n class=\"fas fa-times\"\n (click)=\"close()\"\n ></i>\n </div>\n }\n </div>\n }\n\n <div class=\"popover-content\">\n @if (contentIsString) {\n {{ popoverContent }}\n } @else {\n <ng-container *ngTemplateOutlet=\"popoverContentTemplateRef\"></ng-container>\n }\n </div>\n\n @if (hasFooter) {\n <div class=\"separator\"></div>\n <div\n class=\"popover-footer-container\"\n [class.space-between]=\"hasFooterText\"\n [class.flex-end]=\"!hasFooterText\"\n >\n @if (hasFooterText) {\n <p class=\"popover-footer-text\">\n {{ footer }}\n </p>\n }\n @if (button && button.length > 0) {\n <div class=\"popover-footer-button\">\n <s-button\n [label]=\"button\"\n priority=\"primary\"\n size=\"small\"\n (clicked)=\"clickButton()\"\n [disabled]=\"false\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: [":host{display:block;width:fit-content}.popover-container{z-index:1050;position:relative}.popover-container .space-between{justify-content:space-between}.popover-container .flex-end{justify-content:flex-end}.popover-container-top{display:flex;flex-direction:column-reverse}.popover-container-top .arrow{width:100%}.popover-container-top .arrow{width:0;height:0;position:relative;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #fff;border-bottom:0 solid transparent}.popover-container-bottom .arrow{width:100%}.popover-container-bottom .arrow{width:0;height:0;position:relative;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff;border-top:0 solid transparent}.popover-container-left{display:flex;flex-direction:row-reverse;align-items:center}.popover-container-left .arrow{height:100%}.popover-container-left .arrow{width:0;height:0;position:relative;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid #fff;border-right:0 solid transparent}.popover-container-right{display:flex;align-items:center}.popover-container-right .arrow{height:100%}.popover-container-right .arrow{width:0;height:0;position:relative;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #fff;border-left:0 solid transparent}.popover-container-top .arrow-container,.popover-container-bottom .arrow-container{display:flex}.popover-container-top .arrow-container-beginning,.popover-container-bottom .arrow-container-beginning{justify-content:flex-start}.popover-container-top .arrow-container-beginning .arrow,.popover-container-bottom .arrow-container-beginning .arrow{margin-left:12px}.popover-container-top .arrow-container-middle,.popover-container-bottom .arrow-container-middle{justify-content:center}.popover-container-top .arrow-container-end,.popover-container-bottom .arrow-container-end{justify-content:flex-end}.popover-container-top .arrow-container-end .arrow,.popover-container-bottom .arrow-container-end .arrow{margin-right:12px}.popover-container-left .arrow-container,.popover-container-right .arrow-container{display:flex;align-self:stretch}.popover-container-left .arrow-container-beginning,.popover-container-right .arrow-container-beginning{align-items:flex-start}.popover-container-left .arrow-container-beginning .arrow,.popover-container-right .arrow-container-beginning .arrow{margin-top:12px}.popover-container-left .arrow-container-middle,.popover-container-right .arrow-container-middle{align-items:center}.popover-container-left .arrow-container-end,.popover-container-right .arrow-container-end{align-items:flex-end}.popover-container-left .arrow-container-end .arrow,.popover-container-right .arrow-container-end .arrow{margin-bottom:12px}.popover-container .popover{min-width:200px;max-width:305px;width:fit-content;border-radius:3px;background:#fff;box-shadow:0 1px 5px #00000040}.popover-container .popover-header-container,.popover-container .popover-content,.popover-container .popover-footer-container{padding:8px}.popover-container .popover-close-button i{cursor:pointer}.popover-container .popover-footer-text{color:#212533;font-family:Open Sans;font-size:12px;font-style:normal;font-weight:400}.popover-container .popover-header-container{display:flex}.popover-container .popover-header-container-text{display:flex;justify-content:space-between;gap:8px}.popover-container .popover .separator{width:100%;border:1px solid #dedce5}.popover-container .popover-footer-container{display:flex;gap:8px;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HelpPopoverComponent, selector: "s-help-popover", viewQueries: [{ propertyName: "arrowElement", first: true, predicate: ["arrowElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div\n class=\"popover-container\"\n [style.visibility]=\"visible ? 'visible' : 'hidden'\"\n [class.popover-container-top]=\"position === 'top'\"\n [class.popover-container-right]=\"position === 'right'\"\n [class.popover-container-bottom]=\"position === 'bottom'\"\n [class.popover-container-left]=\"position === 'left'\"\n>\n <div\n class=\"arrow-container\"\n [class.arrow-container-beginning]=\"arrowPosition === 'beginning'\"\n [class.arrow-container-middle]=\"arrowPosition === 'middle'\"\n [class.arrow-container-end]=\"arrowPosition === 'end'\"\n >\n <div\n class=\"arrow\"\n #arrowElement\n ></div>\n </div>\n <div class=\"popover\">\n @if (hasHeaderContainer) {\n <div\n class=\"popover-header-container\"\n [class.space-between]=\"hasIcon || hasHeaderText\"\n [class.flex-end]=\"!(hasIcon || hasHeaderText) && closeButton\"\n >\n @if (hasIcon || hasHeaderText) {\n <div class=\"popover-header-container-text\">\n @if (hasIcon) {\n <div class=\"popover-icon\">\n <i [class]=\"icon\"></i>\n </div>\n }\n @if (hasHeaderText) {\n <div class=\"popover-header-text\">\n {{ header }}\n </div>\n }\n </div>\n }\n @if (closeButton) {\n <div class=\"popover-close-button\">\n <i\n class=\"fas fa-times\"\n (click)=\"close()\"\n ></i>\n </div>\n }\n </div>\n }\n\n <div class=\"popover-content\">\n @if (contentIsString) {\n {{ popoverContent }}\n } @else {\n <ng-container *ngTemplateOutlet=\"popoverContentTemplateRef\"></ng-container>\n }\n </div>\n\n @if (hasFooter) {\n <div class=\"separator\"></div>\n <div\n class=\"popover-footer-container\"\n [class.space-between]=\"hasFooterText\"\n [class.flex-end]=\"!hasFooterText\"\n >\n @if (hasFooterText) {\n <p class=\"popover-footer-text\">\n {{ footer }}\n </p>\n }\n @if (button && button.length > 0) {\n <div class=\"popover-footer-button\">\n <s-button\n [label]=\"button\"\n priority=\"primary\"\n size=\"small\"\n (clicked)=\"clickButton()\"\n [disabled]=\"false\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n }\n </div>\n }\n </div>\n</div>\n\n", styles: [":host{display:block;width:fit-content}.popover-container{z-index:1050;position:relative}.popover-container .space-between{justify-content:space-between}.popover-container .flex-end{justify-content:flex-end}.popover-container-top{display:flex;flex-direction:column-reverse}.popover-container-top .arrow{width:100%}.popover-container-top .arrow{width:0;height:0;position:relative;border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid #fff;border-bottom:0 solid transparent}.popover-container-bottom .arrow{width:100%}.popover-container-bottom .arrow{width:0;height:0;position:relative;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff;border-top:0 solid transparent}.popover-container-left{display:flex;flex-direction:row-reverse;align-items:center}.popover-container-left .arrow{height:100%}.popover-container-left .arrow{width:0;height:0;position:relative;border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid #fff;border-right:0 solid transparent}.popover-container-right{display:flex;align-items:center}.popover-container-right .arrow{height:100%}.popover-container-right .arrow{width:0;height:0;position:relative;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #fff;border-left:0 solid transparent}.popover-container-top .arrow-container,.popover-container-bottom .arrow-container{display:flex}.popover-container-top .arrow-container-beginning,.popover-container-bottom .arrow-container-beginning{justify-content:flex-start}.popover-container-top .arrow-container-beginning .arrow,.popover-container-bottom .arrow-container-beginning .arrow{margin-left:12px}.popover-container-top .arrow-container-middle,.popover-container-bottom .arrow-container-middle{justify-content:center}.popover-container-top .arrow-container-end,.popover-container-bottom .arrow-container-end{justify-content:flex-end}.popover-container-top .arrow-container-end .arrow,.popover-container-bottom .arrow-container-end .arrow{margin-right:12px}.popover-container-left .arrow-container,.popover-container-right .arrow-container{display:flex;align-self:stretch}.popover-container-left .arrow-container-beginning,.popover-container-right .arrow-container-beginning{align-items:flex-start}.popover-container-left .arrow-container-beginning .arrow,.popover-container-right .arrow-container-beginning .arrow{margin-top:12px}.popover-container-left .arrow-container-middle,.popover-container-right .arrow-container-middle{align-items:center}.popover-container-left .arrow-container-end,.popover-container-right .arrow-container-end{align-items:flex-end}.popover-container-left .arrow-container-end .arrow,.popover-container-right .arrow-container-end .arrow{margin-bottom:12px}.popover-container .popover{min-width:200px;max-width:305px;width:fit-content;border-radius:3px;background:#fff;box-shadow:0 1px 5px #00000040}.popover-container .popover-header-container,.popover-container .popover-content,.popover-container .popover-footer-container{padding:8px}.popover-container .popover-close-button i{cursor:pointer}.popover-container .popover-footer-text{color:#212533;font-family:Open Sans;font-size:12px;font-style:normal;font-weight:400}.popover-container .popover-header-container{display:flex}.popover-container .popover-header-container-text{display:flex;justify-content:space-between;gap:8px}.popover-container .popover .separator{width:100%;border:1px solid #dedce5}.popover-container .popover-footer-container{display:flex;gap:8px;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "menuAriaLabel", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }] });
81
81
  }
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HelpPopoverComponent, decorators: [{
83
83
  type: Component,
@@ -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