@seniorsistemas/angular-components 19.0.5 → 19.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/accordion/lib/accordion/accordion.component.d.ts +25 -0
  2. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +60 -0
  3. package/alert/lib/alert/alert.component.d.ts +40 -0
  4. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +51 -0
  5. package/badge/lib/badge/badge.component.d.ts +20 -0
  6. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +46 -1
  7. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +12 -0
  8. package/button/lib/button/button.component.d.ts +101 -0
  9. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +24 -0
  10. package/card/lib/card/card.component.d.ts +18 -0
  11. package/chat/lib/chat/chat.component.d.ts +20 -2
  12. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +18 -2
  13. package/checkbox/lib/checkbox/checkbox.component.d.ts +23 -3
  14. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +20 -0
  15. package/chips/lib/chips/chip-item/chip-item.component.d.ts +15 -0
  16. package/chips/lib/chips/chips/chips.component.d.ts +41 -0
  17. package/code-editor/lib/code-editor/code-editor.component.d.ts +40 -0
  18. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +18 -0
  19. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  20. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +19 -0
  21. package/content-generator/lib/content-generator/content-generator.component.d.ts +30 -0
  22. package/control-errors/lib/control-errors/control-errors.component.d.ts +36 -0
  23. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +36 -0
  24. package/currency/lib/currency.service.d.ts +15 -2
  25. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +31 -0
  26. package/dialog/lib/src/dialog/dialog.component.d.ts +51 -0
  27. package/dialog/lib/src/dialog/services/dialog.service.d.ts +2 -2
  28. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +1 -1
  29. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +6 -5
  30. package/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.d.ts +5 -0
  31. package/dynamic-form/dynamic-form/configurations/structure/fieldset.d.ts +14 -0
  32. package/dynamic-form/dynamic-form/configurations/structure/row.d.ts +67 -0
  33. package/dynamic-form/dynamic-form/configurations/structure/section.d.ts +8 -0
  34. package/dynamic-form/dynamic-form/configurations/structure/structure.d.ts +19 -0
  35. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +21 -1
  36. package/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +45 -0
  37. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +59 -0
  38. package/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.d.ts +55 -0
  39. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +35 -0
  40. package/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +17 -0
  41. package/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.d.ts +23 -0
  42. package/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +66 -0
  43. package/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +15 -0
  44. package/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.d.ts +30 -0
  45. package/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.d.ts +47 -2
  46. package/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +26 -0
  47. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +18 -1
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/field.d.ts +44 -0
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +112 -4
  50. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +42 -3
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.d.ts +48 -0
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +62 -0
  53. package/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +34 -0
  54. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +63 -0
  55. package/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.d.ts +47 -1
  56. package/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.d.ts +23 -0
  57. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +37 -1
  58. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +65 -2
  59. package/dynamic-form/public-api.d.ts +1 -0
  60. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +16 -0
  61. package/empty-state/lib/empty-state/empty-state.component.d.ts +59 -0
  62. package/esm2022/accordion/lib/accordion/accordion.component.mjs +26 -1
  63. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +61 -1
  64. package/esm2022/alert/lib/alert/alert.component.mjs +41 -1
  65. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +52 -1
  66. package/esm2022/badge/lib/badge/badge.component.mjs +21 -1
  67. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +47 -2
  68. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +13 -1
  69. package/esm2022/button/lib/button/button.component.mjs +102 -1
  70. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +72 -47
  71. package/esm2022/card/lib/card/card.component.mjs +21 -6
  72. package/esm2022/chat/lib/chat/chat.component.mjs +23 -5
  73. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +20 -4
  74. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +24 -4
  75. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +22 -2
  76. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +17 -2
  77. package/esm2022/chips/lib/chips/chips/chips.component.mjs +42 -1
  78. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +41 -1
  79. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +19 -1
  80. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +6 -1
  81. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +20 -1
  82. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +31 -1
  83. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +37 -1
  84. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +37 -1
  85. package/esm2022/currency/lib/currency.service.mjs +21 -8
  86. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +32 -1
  87. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +66 -11
  88. package/esm2022/dialog/lib/src/dialog/services/dialog.service.mjs +13 -10
  89. package/esm2022/dialog/lib/src/dialog/services/internal-dialog.service.mjs +3 -3
  90. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +1 -1
  91. package/esm2022/dynamic-form/dynamic-form/components/lookup/models/lookup-api.model.mjs +2 -0
  92. package/esm2022/dynamic-form/dynamic-form/configurations/structure/fieldset.mjs +1 -1
  93. package/esm2022/dynamic-form/dynamic-form/configurations/structure/row.mjs +1 -1
  94. package/esm2022/dynamic-form/dynamic-form/configurations/structure/section.mjs +1 -1
  95. package/esm2022/dynamic-form/dynamic-form/configurations/structure/structure.mjs +1 -1
  96. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +22 -2
  97. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  98. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  99. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/blob-field.mjs +1 -1
  100. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-field.mjs +1 -1
  101. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/boolean-switch-field.mjs +1 -1
  102. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/button-field.mjs +1 -1
  103. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/calendar-field.mjs +1 -1
  104. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/checkbox-field.mjs +1 -1
  105. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/chips-field.mjs +1 -1
  106. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/content-generator-field.mjs +1 -1
  107. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/country-phone-picker-field.mjs +1 -1
  108. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  109. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -2
  110. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  111. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  112. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/password-field.mjs +1 -1
  113. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/profile-picture.mjs +1 -1
  114. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/radio-button-field.mjs +6 -1
  115. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  116. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/slider-field.mjs +1 -1
  117. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/star-rating-field.mjs +1 -1
  118. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-area-field.mjs +1 -1
  119. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  120. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +3 -3
  121. package/esm2022/dynamic-form/public-api.mjs +2 -2
  122. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +17 -1
  123. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +60 -1
  124. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +25 -5
  125. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +48 -1
  126. package/esm2022/gantt/lib/gantt/gantt.component.mjs +32 -1
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +30 -1
  128. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +40 -1
  129. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +83 -27
  130. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +40 -3
  131. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +18 -2
  132. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +33 -4
  133. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +16 -1
  134. package/esm2022/insights/lib/insights/insights.component.mjs +23 -1
  135. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +21 -1
  136. package/esm2022/kanban/lib/kanban/kanban.component.mjs +34 -16
  137. package/esm2022/label-value/lib/label-value/label-value.component.mjs +14 -1
  138. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +37 -1
  139. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +24 -1
  140. package/esm2022/locale/lib/locale/locale.service.mjs +8 -1
  141. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +17 -1
  142. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +13 -1
  143. package/esm2022/mouse-events/lib/mouse-events/double-click.directive.mjs +16 -3
  144. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +24 -10
  145. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +20 -1
  146. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +32 -12
  147. package/esm2022/numeric/lib/numeric.pipe.mjs +16 -1
  148. package/esm2022/numeric/lib/numeric.service.mjs +21 -1
  149. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +9 -6
  150. package/esm2022/object-card/lib/object-card/object-card.component.mjs +24 -1
  151. package/esm2022/optional-fields/editor/editor-field.mjs +1 -1
  152. package/esm2022/paginator/lib/paginator/paginator.component.mjs +20 -1
  153. package/esm2022/panel/lib/panel/panel.component.mjs +44 -23
  154. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +25 -1
  155. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +54 -1
  156. package/esm2022/picklist/lib/picklist/picklist.component.mjs +33 -2
  157. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +29 -34
  158. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +86 -2
  159. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +53 -3
  160. package/esm2022/radio-button/lib/radio-button/radio-button.component.mjs +28 -1
  161. package/esm2022/radio-button/lib/radio-button-group/radio-button-group.component.mjs +27 -1
  162. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +39 -7
  163. package/esm2022/select/lib/select/select.component.mjs +35 -1
  164. package/esm2022/select-button/lib/select-button/select-button.component.mjs +35 -1
  165. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +11 -3
  166. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +54 -1
  167. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +76 -36
  168. package/esm2022/slider/lib/slider/slider.component.mjs +90 -9
  169. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +25 -4
  170. package/esm2022/split-button/lib/split-button/split-button.component.mjs +24 -2
  171. package/esm2022/star-rating/star-rating/star-rating.component.mjs +17 -1
  172. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +32 -10
  173. package/esm2022/stepper/lib/stepper/stepper.component.mjs +20 -1
  174. package/esm2022/structure/lib/structure/footer.component.mjs +11 -1
  175. package/esm2022/switch/lib/switch/switch.component.mjs +22 -2
  176. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +16 -1
  177. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +29 -3
  178. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +33 -2
  179. package/esm2022/tabs/lib/tabs/tabs.component.mjs +35 -3
  180. package/esm2022/template/lib/template/template.directive.mjs +14 -2
  181. package/esm2022/text-area/lib/text-area/text-area.component.mjs +28 -1
  182. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +25 -1
  183. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +28 -3
  184. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +30 -1
  185. package/esm2022/tile/lib/tile/tile.component.mjs +26 -1
  186. package/esm2022/timeline/lib/timeline/timeline.component.mjs +26 -3
  187. package/esm2022/toast/lib/toast/toast.component.mjs +24 -4
  188. package/esm2022/token-list/lib/token-list/token-list.component.mjs +22 -1
  189. package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +66 -1
  190. package/esm2022/topbar/lib/topbar/topbar.component.mjs +18 -1
  191. package/esm2022/tree/lib/tree/tree.component.mjs +28 -1
  192. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +47 -1
  193. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +85 -0
  194. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  195. package/fesm2022/seniorsistemas-angular-components-alert.mjs +40 -0
  196. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  197. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +51 -0
  198. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  199. package/fesm2022/seniorsistemas-angular-components-badge.mjs +20 -0
  200. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  201. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +46 -1
  202. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  203. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +12 -0
  204. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  205. package/fesm2022/seniorsistemas-angular-components-button.mjs +101 -0
  206. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  207. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +71 -46
  208. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  209. package/fesm2022/seniorsistemas-angular-components-card.mjs +19 -4
  210. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  211. package/fesm2022/seniorsistemas-angular-components-chat.mjs +39 -5
  212. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  213. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +21 -1
  214. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  215. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +23 -3
  216. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  217. package/fesm2022/seniorsistemas-angular-components-chips.mjs +57 -1
  218. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  219. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +40 -0
  220. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  221. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +18 -0
  222. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  223. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -0
  224. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  225. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +19 -0
  226. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  227. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +30 -0
  228. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  229. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +36 -0
  230. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  231. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +36 -0
  232. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  233. package/fesm2022/seniorsistemas-angular-components-currency.mjs +19 -6
  234. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  235. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +31 -0
  236. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  237. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +74 -16
  238. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  239. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +29 -4
  240. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  241. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +16 -0
  242. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  243. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +59 -0
  244. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  245. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +21 -1
  246. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  247. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +47 -0
  248. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  249. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +31 -0
  250. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  251. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +29 -0
  252. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  253. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +39 -0
  254. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  255. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +80 -24
  256. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  257. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +38 -1
  258. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  259. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +17 -1
  260. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  261. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +30 -1
  262. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  263. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +15 -0
  264. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  265. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -0
  266. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  267. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +20 -0
  268. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  269. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +28 -10
  270. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  271. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +13 -0
  272. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  273. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +59 -0
  274. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  275. package/fesm2022/seniorsistemas-angular-components-locale.mjs +7 -0
  276. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  277. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +16 -0
  278. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  279. package/fesm2022/seniorsistemas-angular-components-mask.mjs +12 -0
  280. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  281. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +35 -8
  282. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  283. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +19 -0
  284. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  285. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +31 -11
  286. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  287. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +8 -5
  288. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  289. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +35 -0
  290. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  291. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +23 -0
  292. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  293. package/fesm2022/seniorsistemas-angular-components-optional-fields-editor.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +19 -0
  295. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-panel.mjs +39 -18
  297. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +77 -0
  299. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +32 -1
  301. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +28 -33
  303. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +85 -1
  305. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +52 -2
  307. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs +53 -0
  309. package/fesm2022/seniorsistemas-angular-components-radio-button.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +36 -4
  311. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +34 -0
  313. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-select.mjs +34 -0
  315. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-shared.mjs +9 -1
  317. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +53 -0
  319. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +71 -31
  321. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-slider.mjs +89 -8
  323. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +24 -3
  325. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +22 -0
  327. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +16 -0
  329. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +30 -8
  331. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +19 -0
  333. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-structure.mjs +10 -0
  335. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-switch.mjs +20 -0
  337. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +28 -2
  339. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-table.mjs +15 -0
  341. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +65 -2
  343. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-template.mjs +13 -1
  345. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +27 -0
  347. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +24 -0
  349. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +26 -1
  351. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +29 -0
  353. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-tile.mjs +25 -0
  355. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +25 -2
  357. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-toast.mjs +22 -2
  359. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +21 -0
  361. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +65 -0
  363. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +17 -0
  365. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-tree.mjs +27 -0
  367. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +46 -0
  369. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  370. package/fieldset/lib/fieldset/fieldset.component.d.ts +23 -3
  371. package/file-picker/lib/file-picker/file-picker.component.d.ts +47 -0
  372. package/gantt/lib/gantt/gantt.component.d.ts +31 -0
  373. package/global-search/lib/global-search/global-search.component.d.ts +29 -0
  374. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +39 -0
  375. package/help-popover/lib/help-popover/help-popover.directive.d.ts +67 -17
  376. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +38 -0
  377. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +15 -0
  378. package/info-sign/lib/info-sign/info-sign.directive.d.ts +30 -1
  379. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  380. package/insights/lib/insights/insights.component.d.ts +22 -0
  381. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +20 -0
  382. package/kanban/lib/kanban/kanban.component.d.ts +25 -5
  383. package/label-value/lib/label-value/label-value.component.d.ts +13 -0
  384. package/loading-state/lib/loading-state/loading-state.component.d.ts +36 -0
  385. package/loading-state/lib/loading-state/loading-state.directive.d.ts +23 -0
  386. package/locale/lib/locale/locale.service.d.ts +7 -0
  387. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  388. package/mask/lib/mask/mask-formatter.pipe.d.ts +12 -0
  389. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +13 -0
  390. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -2
  391. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +19 -0
  392. package/number-input/lib/number-input/number-input.directive.d.ts +19 -1
  393. package/numeric/lib/numeric.pipe.d.ts +15 -0
  394. package/numeric/lib/numeric.service.d.ts +20 -0
  395. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +5 -4
  396. package/object-card/lib/object-card/object-card.component.d.ts +23 -0
  397. package/optional-fields/editor/editor-field.d.ts +19 -0
  398. package/package.json +12 -12
  399. package/paginator/lib/paginator/paginator.component.d.ts +19 -0
  400. package/panel/lib/panel/panel.component.d.ts +24 -3
  401. package/password-strength/lib/password-strength/password-strength.component.d.ts +24 -0
  402. package/password-strength/lib/password-strength/password-strength.directive.d.ts +53 -0
  403. package/picklist/lib/picklist/picklist.component.d.ts +29 -0
  404. package/pin-code-field/lib/pin-code-field/pin-code-field.component.d.ts +28 -33
  405. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +85 -1
  406. package/progressbar/lib/progressbar/progressbar.component.d.ts +50 -0
  407. package/radio-button/lib/radio-button/radio-button.component.d.ts +27 -0
  408. package/radio-button/lib/radio-button-group/radio-button-group.component.d.ts +26 -0
  409. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +30 -2
  410. package/select/lib/select/select.component.d.ts +34 -0
  411. package/select-button/lib/select-button/select-button.component.d.ts +34 -0
  412. package/shared/lib/shared/border-button/border-button.component.d.ts +10 -2
  413. package/sidebar/lib/sidebar/sidebar.component.d.ts +53 -0
  414. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +53 -2
  415. package/slider/lib/slider/slider.component.d.ts +72 -0
  416. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +18 -0
  417. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  418. package/star-rating/star-rating/star-rating.component.d.ts +16 -0
  419. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  420. package/stepper/lib/stepper/stepper.component.d.ts +19 -0
  421. package/structure/lib/structure/footer.component.d.ts +10 -0
  422. package/switch/lib/switch/switch.component.d.ts +20 -0
  423. package/table/lib/table/table-column/table-columns.component.d.ts +15 -0
  424. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +18 -0
  425. package/tabs/lib/tab-item/tab-item.component.d.ts +31 -0
  426. package/tabs/lib/tabs/tabs.component.d.ts +28 -0
  427. package/template/lib/template/template.directive.d.ts +12 -0
  428. package/text-area/lib/text-area/text-area.component.d.ts +27 -0
  429. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +24 -0
  430. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +27 -2
  431. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +29 -0
  432. package/tile/lib/tile/tile.component.d.ts +25 -0
  433. package/timeline/lib/timeline/timeline.component.d.ts +24 -0
  434. package/toast/lib/toast/toast.component.d.ts +22 -2
  435. package/token-list/lib/token-list/token-list.component.d.ts +21 -0
  436. package/tooltip/lib/tooltip/tooltip.directive.d.ts +65 -0
  437. package/topbar/lib/topbar/topbar.component.d.ts +17 -0
  438. package/tree/lib/tree/tree.component.d.ts +27 -0
  439. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +46 -0
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-star-rating.mjs","sources":["../../projects/angular-components/star-rating/src/star-rating/star-rating.component.ts","../../projects/angular-components/star-rating/src/star-rating/star-rating.component.html","../../projects/angular-components/star-rating/src/seniorsistemas-angular-components-star-rating.ts"],"sourcesContent":["import { Component, computed, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\nimport { JustifyTypes } from './star-rating-models';\n\n@Component({\n selector: 's-star-rating',\n standalone: true,\n imports: [InteractiveContentDirective],\n templateUrl: './star-rating.component.html',\n styleUrl: './star-rating.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: StarRatingComponent,\n multi: true,\n },\n ],\n})\nexport class StarRatingComponent implements ControlValueAccessor {\n onChange: (value: number) => void = () => { };\n onTouched: (value: number) => void = () => { };\n\n selectedStar = model(0);\n starsRange = input(5);\n justifyContent = input<JustifyTypes>('center');\n disabled = model(false);\n\n protected readonly elementsRender = computed(() => {\n const elements = this.starsRange();\n return Array.from({ length: elements }).map((_x, $index) => $index)\n })\n\n writeValue(obj: number): void {\n if (obj !== null) {\n this.selectedStar.set(obj);\n }\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n\n onSelectStar(selectedIndex: number) {\n this.storeValue(selectedIndex);\n }\n\n private storeValue(selectedIndex: number) {\n if (this.disabled()) {\n return;\n }\n if (selectedIndex === this.selectedStar()) {\n selectedIndex = 0;\n }\n this.writeValue(selectedIndex);\n this.onChange(selectedIndex);\n this.onTouched(selectedIndex);\n }\n}\n","@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-star-rating.mjs","sources":["../../projects/angular-components/star-rating/src/star-rating/star-rating.component.ts","../../projects/angular-components/star-rating/src/star-rating/star-rating.component.html","../../projects/angular-components/star-rating/src/seniorsistemas-angular-components-star-rating.ts"],"sourcesContent":["import { Component, computed, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\nimport { JustifyTypes } from './star-rating-models';\n\n/**\n * @description Componente de avaliação por estrelas com suporte a `ControlValueAccessor`\n * para integração com formulários Angular. Permite configurar o número de estrelas,\n * alinhamento e estado desabilitado. Clicar na estrela já selecionada a deseleciona.\n *\n * @example\n * ```html\n * <s-star-rating [starsRange]=\"5\" formControlName=\"avaliacao\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-star-rating',\n standalone: true,\n imports: [InteractiveContentDirective],\n templateUrl: './star-rating.component.html',\n styleUrl: './star-rating.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: StarRatingComponent,\n multi: true,\n },\n ],\n})\nexport class StarRatingComponent implements ControlValueAccessor {\n onChange: (value: number) => void = () => {};\n onTouched: (value: number) => void = () => {};\n\n /** @description Índice da estrela atualmente selecionada (1-based). @default 0 */\n selectedStar = model(0);\n /** @description Número total de estrelas exibidas. @default 5 */\n starsRange = input(5);\n /** @description Alinhamento horizontal das estrelas. @default 'center' */\n justifyContent = input<JustifyTypes>('center');\n /** @description Desabilita a seleção de estrelas. @default false */\n disabled = model(false);\n\n protected readonly elementsRender = computed(() => {\n const elements = this.starsRange();\n return Array.from({ length: elements }).map((_x, $index) => $index);\n });\n\n writeValue(obj: number): void {\n if (obj !== null) {\n this.selectedStar.set(obj);\n }\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n onSelectStar(selectedIndex: number) {\n this.storeValue(selectedIndex);\n }\n\n private storeValue(selectedIndex: number) {\n if (this.disabled()) {\n return;\n }\n if (selectedIndex === this.selectedStar()) {\n selectedIndex = 0;\n }\n this.writeValue(selectedIndex);\n this.onChange(selectedIndex);\n this.onTouched(selectedIndex);\n }\n}\n\n","@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,18 +6,45 @@ import { BigNumber } from 'bignumber.js';
6
6
  import * as i2 from '@seniorsistemas/angular-components/tooltip';
7
7
  import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
8
8
 
9
+ /**
10
+ * @description Card de estatística que exibe um valor numérico com ícone,
11
+ * rótulo e animação de contagem. Suporta diferentes estilos visuais
12
+ * (borda, versão leve) e pode emitir evento ao ser clicado.
13
+ *
14
+ * @example
15
+ * ```html
16
+ * <s-stats-card
17
+ * label="Vendas"
18
+ * [value]="'1.234'"
19
+ * iconClass="fas fa-shopping-cart"
20
+ * color="#3399ff" />
21
+ * ```
22
+ *
23
+ * @category Summary
24
+ */
9
25
  class StatsCardComponent {
10
26
  static nextId = 0;
27
+ /** @description Identificador único do card no DOM. Gerado automaticamente se não informado. */
11
28
  id = `s-stats-card-${StatsCardComponent.nextId++}`;
29
+ /** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */
12
30
  label;
31
+ /** @description Exibe borda mesmo quando o card não está em destaque. @default false */
13
32
  alwaysWithBorder = false;
33
+ /** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */
14
34
  lightVersion = false;
35
+ /** @description Ativa o modo de cores claras para o card. @default true */
15
36
  lightMode = true;
37
+ /** @description Classe do ícone exibido no card. @default 'fa fa-bar-chart' */
16
38
  iconClass = 'fa fa-bar-chart';
39
+ /** @description Cor de destaque do card em formato CSS. @default '#339966' */
17
40
  color = '#339966';
41
+ /** @description Habilita a animação de contagem ao atualizar o valor. @default true */
18
42
  animateNumbers = true;
43
+ /** @description Habilita o cursor de ponteiro e o evento de clique. @default false */
19
44
  clickable = false;
45
+ /** @description Texto do tooltip exibido ao passar o mouse sobre o card. @default '' */
20
46
  tooltip = '';
47
+ /** @description Emitido quando o usuário clica no card (requer `clickable = true`). */
21
48
  clicked = new EventEmitter();
22
49
  displayValue;
23
50
  _ANIMATION_DURATION_MS = 200;
@@ -28,6 +55,7 @@ class StatsCardComponent {
28
55
  get value() {
29
56
  return this._value;
30
57
  }
58
+ /** @description Valor numérico exibido no card. Quando `animateNumbers` está ativo, a contagem é animada. */
31
59
  set value(value) {
32
60
  this._previousValue = this._value;
33
61
  this._value = String(value);
@@ -39,10 +67,7 @@ class StatsCardComponent {
39
67
  replaceNumericPositions(value, newValue) {
40
68
  const rawValue = value.replace(/[^\d]/g, '');
41
69
  const newValueString = newValue ? newValue.toString() : '';
42
- const formattedNewValue = newValueString
43
- .toString()
44
- .replace(/\D/g, '')
45
- .padStart(rawValue.length, '0');
70
+ const formattedNewValue = newValueString.toString().replace(/\D/g, '').padStart(rawValue.length, '0');
46
71
  let newValueIndex = 0;
47
72
  return value
48
73
  .split('')
@@ -60,10 +85,7 @@ class StatsCardComponent {
60
85
  const animationCount = animationDuration.dividedBy(stepDuration);
61
86
  const previousRawValue = new BigNumber(this._previousValue.replace(/\D/g, ''));
62
87
  const rawValue = new BigNumber(this.value.replace(/\D/g, ''));
63
- const incrementValue = rawValue
64
- .minus(previousRawValue)
65
- .absoluteValue()
66
- .dividedBy(animationCount);
88
+ const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);
67
89
  const incremental = previousRawValue.isLessThan(rawValue);
68
90
  clearInterval(this._intervalId);
69
91
  this.displayValue = this.replaceNumericPositions(this.value);
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-stats-card.mjs","sources":["../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.ts","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.html","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.module.ts","../../projects/angular-components/stats-card/src/seniorsistemas-angular-components-stats-card.ts"],"sourcesContent":["import {\n Component,\n Input,\n ViewEncapsulation,\n Output,\n EventEmitter,\n} from '@angular/core';\n\nimport { BigNumber } from 'bignumber.js';\n\n@Component({\n selector: 's-stats-card',\n templateUrl: './stats-card.component.html',\n styleUrls: ['./stats-card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n @Input({ required: true })\n public label!: string;\n\n @Input()\n public alwaysWithBorder = false;\n\n @Input()\n public lightVersion = false;\n\n @Input()\n public lightMode = true;\n\n @Input()\n public iconClass = 'fa fa-bar-chart';\n\n @Input()\n public color = '#339966';\n\n @Input()\n public animateNumbers = true;\n\n @Input()\n public clickable = false;\n\n @Input()\n public tooltip = '';\n\n @Output()\n public clicked = new EventEmitter<MouseEvent>();\n\n public displayValue?: string;\n\n private _ANIMATION_DURATION_MS = 200;\n private _STEP_DURATION_MS = 20;\n private _previousValue = '0';\n private _intervalId: any;\n private _value = '0';\n\n public get value() {\n return this._value;\n }\n\n @Input()\n public set value(value: string) {\n this._previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this._updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, '');\n const newValueString = newValue ? newValue.toString() : '';\n const formattedNewValue = newValueString\n .toString()\n .replace(/\\D/g, '')\n .padStart(rawValue.length, '0');\n let newValueIndex = 0;\n\n return value\n .split('')\n .map((char) => {\n const number = Number(char);\n if (number || char === '0')\n return formattedNewValue[newValueIndex++];\n return char;\n })\n .join('');\n }\n\n private _updateDisplayValue() {\n const animationDuration = new BigNumber(this._ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this._STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(\n this._previousValue.replace(/\\D/g, ''),\n );\n const rawValue = new BigNumber(this.value.replace(/\\D/g, ''));\n\n const incrementValue = rawValue\n .minus(previousRawValue)\n .absoluteValue()\n .dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this._intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this._intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(\n this.displayValue,\n counter,\n );\n }\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(\n this.displayValue,\n counter,\n );\n }\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this._intervalId);\n }\n }, this._STEP_DURATION_MS);\n }\n}\n","<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { StatsCardComponent } from './stats-card.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StatsCardComponent],\n exports: [StatsCardComponent],\n})\nexport class StatsCardModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAgBa,kBAAkB,CAAA;AACpB,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;AAGlB,IAAA,EAAE,GAAG,CAAgB,aAAA,EAAA,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;AAGnD,IAAA,KAAK,CAAU;IAGf,gBAAgB,GAAG,KAAK,CAAC;IAGzB,YAAY,GAAG,KAAK,CAAC;IAGrB,SAAS,GAAG,IAAI,CAAC;IAGjB,SAAS,GAAG,iBAAiB,CAAC;IAG9B,KAAK,GAAG,SAAS,CAAC;IAGlB,cAAc,GAAG,IAAI,CAAC;IAGtB,SAAS,GAAG,KAAK,CAAC;IAGlB,OAAO,GAAG,EAAE,CAAC;AAGb,IAAA,OAAO,GAAG,IAAI,YAAY,EAAc,CAAC;AAEzC,IAAA,YAAY,CAAU;IAErB,sBAAsB,GAAG,GAAG,CAAC;IAC7B,iBAAiB,GAAG,EAAE,CAAC;IACvB,cAAc,GAAG,GAAG,CAAC;AACrB,IAAA,WAAW,CAAM;IACjB,MAAM,GAAG,GAAG,CAAC;AAErB,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,IACW,KAAK,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAC/C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;KACvC;IAEM,uBAAuB,CAAC,KAAa,EAAE,QAAoB,EAAA;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC7C,QAAA,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QAC3D,MAAM,iBAAiB,GAAG,cAAc;AACnC,aAAA,QAAQ,EAAE;AACV,aAAA,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAClB,aAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,QAAA,OAAO,KAAK;aACP,KAAK,CAAC,EAAE,CAAC;AACT,aAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACV,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,YAAA,IAAI,MAAM,IAAI,IAAI,KAAK,GAAG;AACtB,gBAAA,OAAO,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;AAC9C,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;KACjB;IAEO,mBAAmB,GAAA;QACvB,MAAM,iBAAiB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAEjE,QAAA,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAClC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CACzC,CAAC;AACF,QAAA,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,QAAQ;aAC1B,KAAK,CAAC,gBAAgB,CAAC;AACvB,aAAA,aAAa,EAAE;aACf,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAE1D,QAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEhC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,OAAO,GAAG,gBAAgB,CAAC;AAE/B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAK;YAChC,IAAI,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;AAC7C,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAC5C,IAAI,CAAC,YAAY,EACjB,OAAO,CACV,CAAC;iBACL;AACD,gBAAA,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aAC1C;iBAAM,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;AACxD,gBAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAC5C,IAAI,CAAC,YAAY,EACjB,OAAO,CACV,CAAC;iBACL;AACD,gBAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aAC3C;iBAAM;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;AAE/B,gBAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACnC;AACL,SAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAC9B;wGAzHQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,6VChB/B,8oFAkFA,EAAA,MAAA,EAAA,CAAA,+0KAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDlEa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;+BACI,cAAc,EAAA,aAAA,EAGT,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,8oFAAA,EAAA,MAAA,EAAA,CAAA,+0KAAA,CAAA,EAAA,CAAA;8BAM9B,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAIlB,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,MAAM;gBAgBI,KAAK,EAAA,CAAA;sBADf,KAAK;;;MErDG,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAHT,kBAAkB,CAAA,EAAA,OAAA,EAAA,CADvB,YAAY,EAAE,aAAa,aAE3B,kBAAkB,CAAA,EAAA,CAAA,CAAA;yGAEnB,eAAe,EAAA,OAAA,EAAA,CAJd,YAAY,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAI5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAChC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-stats-card.mjs","sources":["../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.ts","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.component.html","../../projects/angular-components/stats-card/src/lib/stats-card/stats-card.module.ts","../../projects/angular-components/stats-card/src/seniorsistemas-angular-components-stats-card.ts"],"sourcesContent":["import { Component, Input, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\n\nimport { BigNumber } from 'bignumber.js';\n\n/**\n * @description Card de estatística que exibe um valor numérico com ícone,\n * rótulo e animação de contagem. Suporta diferentes estilos visuais\n * (borda, versão leve) e pode emitir evento ao ser clicado.\n *\n * @example\n * ```html\n * <s-stats-card\n * label=\"Vendas\"\n * [value]=\"'1.234'\"\n * iconClass=\"fas fa-shopping-cart\"\n * color=\"#3399ff\" />\n * ```\n *\n * @category Summary\n */\n@Component({\n selector: 's-stats-card',\n templateUrl: './stats-card.component.html',\n styleUrls: ['./stats-card.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n /** @description Identificador único do card no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n /** @description Rótulo descritivo da estatística exibida. Campo obrigatório. */\n @Input({ required: true })\n public label!: string;\n\n /** @description Exibe borda mesmo quando o card não está em destaque. @default false */\n @Input()\n public alwaysWithBorder = false;\n\n /** @description Ativa a versão visual leve (sem sombra e com fundo claro). @default false */\n @Input()\n public lightVersion = false;\n\n /** @description Ativa o modo de cores claras para o card. @default true */\n @Input()\n public lightMode = true;\n\n /** @description Classe do ícone exibido no card. @default 'fa fa-bar-chart' */\n @Input()\n public iconClass = 'fa fa-bar-chart';\n\n /** @description Cor de destaque do card em formato CSS. @default '#339966' */\n @Input()\n public color = '#339966';\n\n /** @description Habilita a animação de contagem ao atualizar o valor. @default true */\n @Input()\n public animateNumbers = true;\n\n /** @description Habilita o cursor de ponteiro e o evento de clique. @default false */\n @Input()\n public clickable = false;\n\n /** @description Texto do tooltip exibido ao passar o mouse sobre o card. @default '' */\n @Input()\n public tooltip = '';\n\n /** @description Emitido quando o usuário clica no card (requer `clickable = true`). */\n @Output()\n public clicked = new EventEmitter<MouseEvent>();\n\n public displayValue?: string;\n\n private _ANIMATION_DURATION_MS = 200;\n private _STEP_DURATION_MS = 20;\n private _previousValue = '0';\n private _intervalId: any;\n private _value = '0';\n\n public get value() {\n return this._value;\n }\n\n /** @description Valor numérico exibido no card. Quando `animateNumbers` está ativo, a contagem é animada. */\n @Input()\n public set value(value: string) {\n this._previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this._updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, '');\n const newValueString = newValue ? newValue.toString() : '';\n const formattedNewValue = newValueString.toString().replace(/\\D/g, '').padStart(rawValue.length, '0');\n let newValueIndex = 0;\n\n return value\n .split('')\n .map((char) => {\n const number = Number(char);\n if (number || char === '0') return formattedNewValue[newValueIndex++];\n return char;\n })\n .join('');\n }\n\n private _updateDisplayValue() {\n const animationDuration = new BigNumber(this._ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this._STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this._previousValue.replace(/\\D/g, ''));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, ''));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this._intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this._intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n }\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n if (this.displayValue) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n }\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this._intervalId);\n }\n }, this._STEP_DURATION_MS);\n }\n}\n\n","<div\n [id]=\"id\"\n class=\"s-stats-card\"\n [ngClass]=\"{\n 's-stats-card--always-border': alwaysWithBorder,\n 's-stats-card--light': lightMode,\n 's-stats-card--color': !lightMode,\n 's-stats-card--light-version': lightVersion,\n 's-stats-card--clickable': clickable,\n }\"\n (click)=\"clickable && clicked.next($event)\"\n>\n <div\n [id]=\"id + '-background'\"\n class=\"s-stats-card-background\"\n [ngStyle]=\"{ 'background-color': (!lightMode && color) || '' }\"\n ></div>\n <div\n [id]=\"id + '-overlay'\"\n class=\"s-stats-card-overlay\"\n ></div>\n\n <div\n [id]=\"id + '-info-container'\"\n class=\"s-stats-card-info-container\"\n >\n <div class=\"s-stats-card-info-inner-container\">\n <div\n [id]=\"id + '-icon-container'\"\n class=\"s-stats-card-icon-container\"\n [ngStyle]=\"{ 'background-color': (lightMode && color) || '' }\"\n >\n <span\n [id]=\"id + '-icon'\"\n [class]=\"iconClass\"\n [ngClass]=\"{ 's-stats-card-icon': true }\"\n [ngStyle]=\"{ color: (!lightMode && color) || '' }\"\n aria-hidden=\"true\"\n ></span>\n </div>\n\n <div\n [id]=\"id + '-text-container'\"\n class=\"s-stats-card-text-container\"\n >\n <h4\n [id]=\"id + '-label'\"\n class=\"s-stats-card-label\"\n [sTooltip]=\"label\"\n >\n {{ label }}\n </h4>\n <span\n [id]=\"id + '-value'\"\n class=\"s-stats-card-value\"\n [sTooltip]=\"displayValue\"\n >\n {{ displayValue }}\n </span>\n </div>\n </div>\n <div class=\"s-stats-card-content-inner-container\">\n <div\n #content\n class=\"s-stats-card-content-container\"\n >\n <ng-content></ng-content>\n </div>\n @if (content.children.length) {\n <div class=\"s-stats-card-content-separator\"></div>\n }\n </div>\n @if (tooltip) {\n <span\n class=\"s-status-card-tooltip\"\n [sTooltip]=\"tooltip\"\n >\n <i class=\"fa fa-info-circle s-status-card-tooltip-icon\"></i>\n </span>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { StatsCardComponent } from './stats-card.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StatsCardComponent],\n exports: [StatsCardComponent],\n})\nexport class StatsCardModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -15,11 +15,30 @@ var StepState;
15
15
  StepState["Warning"] = "warning";
16
16
  })(StepState || (StepState = {}));
17
17
 
18
+ /**
19
+ * @description Componente de progresso em etapas (stepper) com animações.
20
+ * Exibe uma linha do tempo horizontal de passos, permitindo navegar entre eles.
21
+ * Suporta passos ocultos e desabilitados. Também responde ao seletor legado `s-steps`.
22
+ *
23
+ * @example
24
+ * ```html
25
+ * <s-stepper
26
+ * [steps]="etapas"
27
+ * [activeIndex]="etapaAtiva"
28
+ * (stepSelected)="onEtapaSelecionada($event)" />
29
+ * ```
30
+ *
31
+ * @category Structure
32
+ */
18
33
  class StepperComponent {
19
34
  static nextId = 0;
35
+ /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
20
36
  id = `s-steps-${StepperComponent.nextId++}`;
37
+ /** @description Lista de etapas exibidas no stepper. Campo obrigatório. */
21
38
  steps;
39
+ /** @description Índice (0-based) da etapa atualmente ativa. Campo obrigatório. */
22
40
  activeIndex = 0;
41
+ /** @description Emitido quando o usuário clica em uma etapa não desabilitada. */
23
42
  stepSelected = new EventEmitter();
24
43
  get stepState() {
25
44
  return StepState;
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-stepper.mjs","sources":["../../projects/angular-components/stepper/src/lib/stepper/models/step-state.ts","../../projects/angular-components/stepper/src/lib/stepper/stepper.component.ts","../../projects/angular-components/stepper/src/lib/stepper/stepper.component.html","../../projects/angular-components/stepper/src/lib/stepper/stepper.module.ts","../../projects/angular-components/stepper/src/seniorsistemas-angular-components-stepper.ts"],"sourcesContent":["export enum StepState {\n Default = 'default',\n Success = 'success',\n Warning = 'warning',\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\n\nimport { Step } from './models/step';\nimport { StepSelectionEvent } from './models/step-selection-event';\nimport { StepState } from './models/step-state';\n\n@Component({\n selector: 's-stepper, s-steps',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-steps',\n newSelector: 's-stepper',\n removalVersion: '20.0.0',\n },\n },\n ],\n host: {\n 'aria-orientation': 'horizontal',\n role: 'tablist',\n 'tab-index': '0',\n },\n animations: [\n trigger('beforeActiveDesative', [\n state(\n 'active',\n style({\n 'background-position': 'left bottom',\n }),\n ),\n state(\n 'desactive',\n style({\n 'background-position': 'right bottom',\n }),\n ),\n transition('active => desactive', [animate('50ms 100ms linear')]),\n transition('desactive => active', [animate('50ms 250ms linear')]),\n ]),\n trigger('activeDesative', [\n state(\n 'active',\n style({\n 'background-position': 'left bottom',\n }),\n ),\n state(\n 'desactive',\n style({\n 'background-position': 'right bottom',\n }),\n ),\n transition('active => desactive', [animate('100ms 150ms linear')]),\n transition('desactive => active', [animate('100ms 150ms linear')]),\n ]),\n trigger('afterActiveDesative', [\n state(\n 'active',\n style({\n 'background-position': 'left bottom',\n }),\n ),\n state(\n 'desactive',\n style({\n 'background-position': 'right bottom',\n }),\n ),\n transition('active => desactive', [animate('50ms 250ms linear')]),\n transition('desactive => active', [animate('50ms 100ms linear')]),\n ]),\n ],\n})\nexport class StepperComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-steps-${StepperComponent.nextId++}`;\n\n @Input({ required: true })\n public steps!: Step[];\n\n @Input({ required: true })\n public activeIndex = 0;\n\n @Output()\n public stepSelected: EventEmitter<StepSelectionEvent> = new EventEmitter();\n\n public get stepState() {\n return StepState;\n }\n\n public get visibledStep() {\n return this.steps.filter((step: Step) => !step.hidden);\n }\n\n public stepClick(step: Step, index: number, event: any) {\n if (step.disabled || index === this.activeIndex) return;\n this.stepSelected.emit({ step, index, event });\n }\n\n public barAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex;\n return visited || activated;\n }\n\n public afterBarAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex - 1;\n return visited || activated;\n }\n}\n\n","<div\n [id]=\"id\"\n class=\"s-stepper-container\"\n>\n <ng-container\n *ngFor=\"\n let step of visibledStep;\n let i = index;\n let isFirst = first;\n let isLast = last\n \"\n >\n @if (!isFirst) {\n <div\n class=\"s-step-progress-bar\"\n [@activeDesative]=\"\n barAnimation(i, activeIndex) ? 'active' : 'desactive'\n \"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-disabled': step.disabled,\n 's-step-visited': i < activeIndex,\n 's-step-active': i === activeIndex,\n }\"\n ></div>\n }\n <div\n [id]=\"id + '-step-' + (step.id || i)\"\n class=\"s-step-header\"\n (click)=\"stepClick(step, i, $event)\"\n role=\"tab\"\n tabindex=\"0\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-controls]=\"step.ariaControls\"\n [attr.aria-labelledby]=\"!step.ariaLabel ? 'step-label-' + i : null\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"visibledStep.length\"\n [attr.aria-selected]=\"activeIndex === i\"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-visited': i < activeIndex,\n 's-step-active': i === activeIndex,\n 's-step-previous': i === activeIndex - 1,\n }\"\n >\n @if (!isFirst) {\n <div\n [@beforeActiveDesative]=\"\n barAnimation(i, activeIndex) ? 'active' : 'desactive'\n \"\n class=\"s-step-progress-bar-before\"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-disabled': step.disabled,\n 's-step-visited': i < activeIndex,\n 's-step-active': i === activeIndex,\n }\"\n ></div>\n }\n\n @if (!isLast) {\n <div\n [@afterActiveDesative]=\"\n afterBarAnimation(i, activeIndex)\n ? 'active'\n : 'desactive'\n \"\n class=\"s-step-progress-bar-after\"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-disabled': visibledStep[i + 1].disabled,\n 's-step-visited': i + 1 < activeIndex,\n 's-step-active': i === activeIndex - 1,\n }\"\n ></div>\n }\n <div\n class=\"s-step-index\"\n [ngClass]=\"{ 's-step-disabled': step.disabled }\"\n [sTooltip]=\"step.tooltip\"\n >\n <div class=\"s-step-index-content\">\n @if (\n step.state !== stepState.Warning &&\n (step.state === stepState.Success || activeIndex > i)\n ) {\n <span\n class=\"fas fa-check\"\n aria-hidden=\"true\"\n [attr.aria-label]=\"i + 1\"\n >\n </span>\n }\n @if (step.state === stepState.Warning) {\n <span\n class=\"fas fa-exclamation-triangle\"\n aria-hidden=\"true\"\n [attr.aria-label]=\"i + 1\"\n >\n </span>\n }\n @if (\n step.state !== stepState.Success &&\n step.state !== stepState.Warning &&\n activeIndex <= i\n ) {\n <span>{{ i + 1 }}</span>\n }\n </div>\n </div>\n <div\n [id]=\"'step-label-' + i\"\n class=\"s-step-label\"\n [ngClass]=\"{ 's-step-disabled': step.disabled }\"\n >\n <span>\n {{ step.label }}\n </span>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StepperComponent],\n exports: [StepperComponent],\n})\nexport class StepperModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-stepper.mjs","sources":["../../projects/angular-components/stepper/src/lib/stepper/models/step-state.ts","../../projects/angular-components/stepper/src/lib/stepper/stepper.component.ts","../../projects/angular-components/stepper/src/lib/stepper/stepper.component.html","../../projects/angular-components/stepper/src/lib/stepper/stepper.module.ts","../../projects/angular-components/stepper/src/seniorsistemas-angular-components-stepper.ts"],"sourcesContent":["export enum StepState {\n Default = 'default',\n Success = 'success',\n Warning = 'warning',\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';\n\nimport { Step } from './models/step';\nimport { StepSelectionEvent } from './models/step-selection-event';\nimport { StepState } from './models/step-state';\n\n/**\n * @description Componente de progresso em etapas (stepper) com animações.\n * Exibe uma linha do tempo horizontal de passos, permitindo navegar entre eles.\n * Suporta passos ocultos e desabilitados. Também responde ao seletor legado `s-steps`.\n *\n * @example\n * ```html\n * <s-stepper\n * [steps]=\"etapas\"\n * [activeIndex]=\"etapaAtiva\"\n * (stepSelected)=\"onEtapaSelecionada($event)\" />\n * ```\n *\n * @category Structure\n */\n@Component({\n selector: 's-stepper, s-steps',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-steps',\n newSelector: 's-stepper',\n removalVersion: '20.0.0',\n },\n },\n ],\n host: {\n 'aria-orientation': 'horizontal',\n role: 'tablist',\n 'tab-index': '0',\n },\n animations: [\n trigger('beforeActiveDesative', [\n state(\n 'active',\n style({\n 'background-position': 'left bottom',\n }),\n ),\n state(\n 'desactive',\n style({\n 'background-position': 'right bottom',\n }),\n ),\n transition('active => desactive', [animate('50ms 100ms linear')]),\n transition('desactive => active', [animate('50ms 250ms linear')]),\n ]),\n trigger('activeDesative', [\n state(\n 'active',\n style({\n 'background-position': 'left bottom',\n }),\n ),\n state(\n 'desactive',\n style({\n 'background-position': 'right bottom',\n }),\n ),\n transition('active => desactive', [animate('100ms 150ms linear')]),\n transition('desactive => active', [animate('100ms 150ms linear')]),\n ]),\n trigger('afterActiveDesative', [\n state(\n 'active',\n style({\n 'background-position': 'left bottom',\n }),\n ),\n state(\n 'desactive',\n style({\n 'background-position': 'right bottom',\n }),\n ),\n transition('active => desactive', [animate('50ms 250ms linear')]),\n transition('desactive => active', [animate('50ms 100ms linear')]),\n ]),\n ],\n})\nexport class StepperComponent {\n public static nextId = 0;\n\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-steps-${StepperComponent.nextId++}`;\n\n /** @description Lista de etapas exibidas no stepper. Campo obrigatório. */\n @Input({ required: true })\n public steps!: Step[];\n\n /** @description Índice (0-based) da etapa atualmente ativa. Campo obrigatório. */\n @Input({ required: true })\n public activeIndex = 0;\n\n /** @description Emitido quando o usuário clica em uma etapa não desabilitada. */\n @Output()\n public stepSelected: EventEmitter<StepSelectionEvent> = new EventEmitter();\n\n public get stepState() {\n return StepState;\n }\n\n public get visibledStep() {\n return this.steps.filter((step: Step) => !step.hidden);\n }\n\n public stepClick(step: Step, index: number, event: any) {\n if (step.disabled || index === this.activeIndex) return;\n this.stepSelected.emit({ step, index, event });\n }\n\n public barAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex;\n return visited || activated;\n }\n\n public afterBarAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex - 1;\n return visited || activated;\n }\n}\n\n","<div\n [id]=\"id\"\n class=\"s-stepper-container\"\n>\n <ng-container\n *ngFor=\"\n let step of visibledStep;\n let i = index;\n let isFirst = first;\n let isLast = last\n \"\n >\n @if (!isFirst) {\n <div\n class=\"s-step-progress-bar\"\n [@activeDesative]=\"\n barAnimation(i, activeIndex) ? 'active' : 'desactive'\n \"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-disabled': step.disabled,\n 's-step-visited': i < activeIndex,\n 's-step-active': i === activeIndex,\n }\"\n ></div>\n }\n <div\n [id]=\"id + '-step-' + (step.id || i)\"\n class=\"s-step-header\"\n (click)=\"stepClick(step, i, $event)\"\n role=\"tab\"\n tabindex=\"0\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-controls]=\"step.ariaControls\"\n [attr.aria-labelledby]=\"!step.ariaLabel ? 'step-label-' + i : null\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"visibledStep.length\"\n [attr.aria-selected]=\"activeIndex === i\"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-visited': i < activeIndex,\n 's-step-active': i === activeIndex,\n 's-step-previous': i === activeIndex - 1,\n }\"\n >\n @if (!isFirst) {\n <div\n [@beforeActiveDesative]=\"\n barAnimation(i, activeIndex) ? 'active' : 'desactive'\n \"\n class=\"s-step-progress-bar-before\"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-disabled': step.disabled,\n 's-step-visited': i < activeIndex,\n 's-step-active': i === activeIndex,\n }\"\n ></div>\n }\n\n @if (!isLast) {\n <div\n [@afterActiveDesative]=\"\n afterBarAnimation(i, activeIndex)\n ? 'active'\n : 'desactive'\n \"\n class=\"s-step-progress-bar-after\"\n [ngClass]=\"{\n 's-step-success': step.state === stepState.Success,\n 's-step-warning': step.state === stepState.Warning,\n 's-step-disabled': visibledStep[i + 1].disabled,\n 's-step-visited': i + 1 < activeIndex,\n 's-step-active': i === activeIndex - 1,\n }\"\n ></div>\n }\n <div\n class=\"s-step-index\"\n [ngClass]=\"{ 's-step-disabled': step.disabled }\"\n [sTooltip]=\"step.tooltip\"\n >\n <div class=\"s-step-index-content\">\n @if (\n step.state !== stepState.Warning &&\n (step.state === stepState.Success || activeIndex > i)\n ) {\n <span\n class=\"fas fa-check\"\n aria-hidden=\"true\"\n [attr.aria-label]=\"i + 1\"\n >\n </span>\n }\n @if (step.state === stepState.Warning) {\n <span\n class=\"fas fa-exclamation-triangle\"\n aria-hidden=\"true\"\n [attr.aria-label]=\"i + 1\"\n >\n </span>\n }\n @if (\n step.state !== stepState.Success &&\n step.state !== stepState.Warning &&\n activeIndex <= i\n ) {\n <span>{{ i + 1 }}</span>\n }\n </div>\n </div>\n <div\n [id]=\"'step-label-' + i\"\n class=\"s-step-label\"\n [ngClass]=\"{ 's-step-disabled': step.disabled }\"\n >\n <span>\n {{ step.label }}\n </span>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { StepperComponent } from './stepper.component';\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StepperComponent],\n exports: [StepperComponent],\n})\nexport class StepperModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -14,6 +14,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14
14
  }]
15
15
  }] });
16
16
 
17
+ /**
18
+ * @description Componente de rodapé da estrutura da página. Projeta conteúdo via ng-content.
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <s-footer>Rodapé da aplicação</s-footer>
23
+ * ```
24
+ *
25
+ * @category Structure
26
+ */
17
27
  class FooterComponent {
18
28
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
29
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FooterComponent, selector: "s-footer", ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-structure.mjs","sources":["../../projects/angular-components/structure/src/lib/structure/header.component.ts","../../projects/angular-components/structure/src/lib/structure/footer.component.ts","../../projects/angular-components/structure/src/lib/structure/structure.module.ts","../../projects/angular-components/structure/src/seniorsistemas-angular-components-structure.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n template: '<ng-content></ng-content>',\n})\nexport class FooterComponent { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header.component';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n declarations: [HeaderComponent, FooterComponent],\n imports: [CommonModule],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACxC,iBAAA,CAAA;;;MCCY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCMY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CAJT,eAAe,EAAE,eAAe,aACrC,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;oBAChD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC9C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-structure.mjs","sources":["../../projects/angular-components/structure/src/lib/structure/header.component.ts","../../projects/angular-components/structure/src/lib/structure/footer.component.ts","../../projects/angular-components/structure/src/lib/structure/structure.module.ts","../../projects/angular-components/structure/src/seniorsistemas-angular-components-structure.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {\n}\n","import { Component } from '@angular/core';\n\n/**\n * @description Componente de rodapé da estrutura da página. Projeta conteúdo via ng-content.\n *\n * @example\n * ```html\n * <s-footer>Rodapé da aplicação</s-footer>\n * ```\n *\n * @category Structure\n */\n@Component({\n selector: 's-footer',\n template: '<ng-content></ng-content>',\n})\nexport class FooterComponent {}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header.component';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n declarations: [HeaderComponent, FooterComponent],\n imports: [CommonModule],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACxC,iBAAA,CAAA;;;ACHD;;;;;;;;;AASG;MAKU,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCJY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CAJT,eAAe,EAAE,eAAe,aACrC,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHd,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAGb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;oBAChD,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC9C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
@@ -4,14 +4,34 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
6
6
 
7
+ /**
8
+ * @description Componente de chave tipo switch (liga/desliga) que implementa
9
+ * `ControlValueAccessor` para uso em formulários Angular. Suporta rótulos
10
+ * personalizados para os estados verdadeiro e falso, além de modo somente leitura.
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <s-switch formControlName="ativo" trueLabel="Ativo" falseLabel="Inativo" />
15
+ * ```
16
+ *
17
+ * @category Inputs
18
+ */
7
19
  class SwitchComponent {
20
+ /** @description Impede alterações pelo usuário sem desabilitar o campo. @default false */
8
21
  readonly = false;
22
+ /** @description Rótulo exibido quando o valor é `true`. */
9
23
  trueLabel;
24
+ /** @description Rótulo exibido quando o valor é `false`. */
10
25
  falseLabel;
26
+ /** @description `id` do elemento `<input>` interno para associação com `<label>`. */
11
27
  inputId;
28
+ /** @description Atributo `name` do `<input>` interno. */
12
29
  inputName;
30
+ /** @description Desabilita o componente, impedindo interação e alterações. @default false */
13
31
  disabled = false;
32
+ /** @description Emitido quando o valor do switch muda, com o novo estado booleano. */
14
33
  valueChanged = new EventEmitter();
34
+ /** @description Valor atual do switch. @default false */
15
35
  value = false;
16
36
  switchRef;
17
37
  _onChange;
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-switch.mjs","sources":["../../projects/angular-components/switch/src/lib/switch/switch.component.ts","../../projects/angular-components/switch/src/lib/switch/switch.component.html","../../projects/angular-components/switch/src/lib/switch/switch.module.ts","../../projects/angular-components/switch/src/seniorsistemas-angular-components-switch.ts"],"sourcesContent":["import {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input()\n public readonly = false;\n\n @Input()\n public trueLabel?: string;\n\n @Input()\n public falseLabel?: string;\n\n @Input()\n public inputId?: string;\n\n @Input()\n public inputName?: string;\n\n @Input()\n public disabled = false;\n\n @Output()\n public valueChanged = new EventEmitter<boolean>();\n\n @Input()\n public value = false;\n\n @ViewChild('switch', { static: true })\n public switchRef!: ElementRef;\n\n private _onChange?: (value: boolean) => void;\n private _onTouched?: (value: boolean) => void;\n\n @HostListener('focusin')\n public onFocusIn(): void {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement;\n switchElement.classList.add('switch--focus');\n }\n\n @HostListener('focusout')\n public onFocusOut(): void {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement;\n switchElement.classList.remove('switch--focus');\n }\n\n public writeValue(value: boolean): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: boolean) => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public toggleCheck() {\n this.value = !this.value;\n this.valueChanged.emit(this.value);\n\n if (this._onChange) {\n this._onChange(this.value);\n }\n\n if (this._onTouched) {\n this._onTouched(this.value);\n }\n }\n}\n","<div\n #switch\n class=\"switch\"\n [ngClass]=\"{ 'switch--disabled': disabled }\"\n>\n <label class=\"switch-toggle\">\n <input\n #input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"readonly || disabled\"\n (change)=\"toggleCheck()\"\n />\n <span class=\"slider\"></span>\n </label>\n <span class=\"label\">\n {{ value ? trueLabel : falseLabel }}\n </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SwitchComponent } from './switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-switch.mjs","sources":["../../projects/angular-components/switch/src/lib/switch/switch.component.ts","../../projects/angular-components/switch/src/lib/switch/switch.component.html","../../projects/angular-components/switch/src/lib/switch/switch.module.ts","../../projects/angular-components/switch/src/seniorsistemas-angular-components-switch.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * @description Componente de chave tipo switch (liga/desliga) que implementa\n * `ControlValueAccessor` para uso em formulários Angular. Suporta rótulos\n * personalizados para os estados verdadeiro e falso, além de modo somente leitura.\n *\n * @example\n * ```html\n * <s-switch formControlName=\"ativo\" trueLabel=\"Ativo\" falseLabel=\"Inativo\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n /** @description Impede alterações pelo usuário sem desabilitar o campo. @default false */\n @Input()\n public readonly = false;\n\n /** @description Rótulo exibido quando o valor é `true`. */\n @Input()\n public trueLabel?: string;\n\n /** @description Rótulo exibido quando o valor é `false`. */\n @Input()\n public falseLabel?: string;\n\n /** @description `id` do elemento `<input>` interno para associação com `<label>`. */\n @Input()\n public inputId?: string;\n\n /** @description Atributo `name` do `<input>` interno. */\n @Input()\n public inputName?: string;\n\n /** @description Desabilita o componente, impedindo interação e alterações. @default false */\n @Input()\n public disabled = false;\n\n /** @description Emitido quando o valor do switch muda, com o novo estado booleano. */\n @Output()\n public valueChanged = new EventEmitter<boolean>();\n\n /** @description Valor atual do switch. @default false */\n @Input()\n public value = false;\n\n @ViewChild('switch', { static: true })\n public switchRef!: ElementRef;\n\n private _onChange?: (value: boolean) => void;\n private _onTouched?: (value: boolean) => void;\n\n @HostListener('focusin')\n public onFocusIn(): void {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement;\n switchElement.classList.add('switch--focus');\n }\n\n @HostListener('focusout')\n public onFocusOut(): void {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement;\n switchElement.classList.remove('switch--focus');\n }\n\n public writeValue(value: boolean): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: boolean) => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public toggleCheck() {\n this.value = !this.value;\n this.valueChanged.emit(this.value);\n\n if (this._onChange) {\n this._onChange(this.value);\n }\n\n if (this._onTouched) {\n this._onTouched(this.value);\n }\n }\n}\n\n","<div\n #switch\n class=\"switch\"\n [ngClass]=\"{ 'switch--disabled': disabled }\"\n>\n <label class=\"switch-toggle\">\n <input\n #input\n [id]=\"inputId\"\n [name]=\"inputName\"\n type=\"checkbox\"\n [checked]=\"value\"\n [disabled]=\"readonly || disabled\"\n (change)=\"toggleCheck()\"\n />\n <span class=\"slider\"></span>\n </label>\n <span class=\"label\">\n {{ value ? trueLabel : falseLabel }}\n </span>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SwitchComponent } from './switch.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -9,13 +9,31 @@ import * as i3 from '@angular/forms';
9
9
  import { FormsModule } from '@angular/forms';
10
10
  import { CommonModule } from '@angular/common';
11
11
 
12
+ /**
13
+ * @description Componente de checkbox de cabeçalho para tabelas PrimeNG.
14
+ * Integra-se automaticamente ao `TableService` para sincronizar o estado
15
+ * de seleção total/parcial com as linhas da tabela.
16
+ *
17
+ * @example
18
+ * ```html
19
+ * <th>
20
+ * <s-table-header-checkbox [rowProps]="['id', 'name']" />
21
+ * </th>
22
+ * ```
23
+ *
24
+ * @category Data
25
+ */
12
26
  class TableHeaderCheckboxComponent {
13
27
  table;
14
28
  tableService;
15
29
  static nextId = 0;
30
+ /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
16
31
  id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;
32
+ /** @description Desabilita o checkbox de cabeçalho. @default false */
17
33
  disabled = false;
34
+ /** @description Lista de propriedades dos itens da linha usadas para identificação. */
18
35
  rowProps;
36
+ /** @description Quando `true`, usa o objeto completo da linha em vez de propriedades específicas. */
19
37
  useAllObject;
20
38
  checkboxItems = {
21
39
  label: '',
@@ -58,11 +76,19 @@ class TableHeaderCheckboxComponent {
58
76
  updateCheckedState() {
59
77
  if (this.table.filteredValue) {
60
78
  const val = this.table.filteredValue;
61
- return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();
79
+ return (val &&
80
+ val.length > 0 &&
81
+ this.table.selection &&
82
+ this.table.selection.length > 0 &&
83
+ this.isAllFilteredValuesChecked());
62
84
  }
63
85
  else {
64
86
  const val = this.table.value;
65
- return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();
87
+ return (val &&
88
+ val.length > 0 &&
89
+ this.table.selection &&
90
+ this.table.selection.length > 0 &&
91
+ this.isAllValuesChecked());
66
92
  }
67
93
  }
68
94
  onToggleCheckbox(checked) {
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-table-header.mjs","sources":["../../projects/angular-components/table-header/src/lib/table-header/table-header-checkbox.component.ts","../../projects/angular-components/table-header/src/lib/table-header/table-header-checkox.module.ts","../../projects/angular-components/table-header/src/seniorsistemas-angular-components-table-header.ts"],"sourcesContent":["import { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CheckboxListData, CheckboxListState } from '@seniorsistemas/angular-components/checkbox-list';\nimport { Table, TableService } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 's-table-header-checkbox',\n template: `\n <s-checkbox-list\n [(ngModel)]=\"checkboxState\"\n (ngModelChange)=\"onClick()\"\n [data]=\"checkboxItems\"\n />\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n\n @Input()\n public disabled = false;\n\n @Input()\n public rowProps?: string[];\n\n @Input()\n public useAllObject?: boolean;\n\n public checkboxItems: CheckboxListData = {\n label: '',\n };\n\n public checked = false;\n public hasFocus = false;\n public checkboxState: CheckboxListState = { checked: false };\n\n private _ngUnsubscribe = new Subject<void>();\n\n constructor(\n public readonly table: Table,\n public readonly tableService: TableService,\n ) {\n this.table.tableService.valueSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit(): void {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n }\n\n public onFocus(): void {\n this.hasFocus = true;\n }\n\n public onBlur(): void {\n this.hasFocus = false;\n }\n\n public isDisabled(): boolean {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n public onClick(): void {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean): void {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (!dataKey) return;\n\n if (checked) {\n const unselecteds = gridData\n .filter((record) => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord: any = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked(): boolean {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked(): boolean {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { TableHeaderCheckboxComponent } from './table-header-checkbox.component';\n\n@NgModule({\n imports: [CommonModule, CheckboxListModule, FormsModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-table-header.mjs","sources":["../../projects/angular-components/table-header/src/lib/table-header/table-header-checkbox.component.ts","../../projects/angular-components/table-header/src/lib/table-header/table-header-checkox.module.ts","../../projects/angular-components/table-header/src/seniorsistemas-angular-components-table-header.ts"],"sourcesContent":["import { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CheckboxListData, CheckboxListState } from '@seniorsistemas/angular-components/checkbox-list';\nimport { Table, TableService } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * @description Componente de checkbox de cabeçalho para tabelas PrimeNG.\n * Integra-se automaticamente ao `TableService` para sincronizar o estado\n * de seleção total/parcial com as linhas da tabela.\n *\n * @example\n * ```html\n * <th>\n * <s-table-header-checkbox [rowProps]=\"['id', 'name']\" />\n * </th>\n * ```\n *\n * @category Data\n */\n@Component({\n selector: 's-table-header-checkbox',\n template: `\n <s-checkbox-list\n [(ngModel)]=\"checkboxState\"\n (ngModelChange)=\"onClick()\"\n [data]=\"checkboxItems\"\n />\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n\n /** @description Desabilita o checkbox de cabeçalho. @default false */\n @Input()\n public disabled = false;\n\n /** @description Lista de propriedades dos itens da linha usadas para identificação. */\n @Input()\n public rowProps?: string[];\n\n /** @description Quando `true`, usa o objeto completo da linha em vez de propriedades específicas. */\n @Input()\n public useAllObject?: boolean;\n\n public checkboxItems: CheckboxListData = {\n label: '',\n };\n\n public checked = false;\n public hasFocus = false;\n public checkboxState: CheckboxListState = { checked: false };\n\n private _ngUnsubscribe = new Subject<void>();\n\n constructor(\n public readonly table: Table,\n public readonly tableService: TableService,\n ) {\n this.table.tableService.valueSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit(): void {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n }\n\n public onFocus(): void {\n this.hasFocus = true;\n }\n\n public onBlur(): void {\n this.hasFocus = false;\n }\n\n public isDisabled(): boolean {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n public onClick(): void {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return (\n val &&\n val.length > 0 &&\n this.table.selection &&\n this.table.selection.length > 0 &&\n this.isAllFilteredValuesChecked()\n );\n } else {\n const val = this.table.value;\n return (\n val &&\n val.length > 0 &&\n this.table.selection &&\n this.table.selection.length > 0 &&\n this.isAllValuesChecked()\n );\n }\n }\n\n public onToggleCheckbox(checked: boolean): void {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (!dataKey) return;\n\n if (checked) {\n const unselecteds = gridData\n .filter(\n (record) => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]),\n )\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord: any = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter(\n (record: any) => record[dataKey] !== data[dataKey],\n );\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked(): boolean {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked(): boolean {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { TableHeaderCheckboxComponent } from './table-header-checkbox.component';\n\n@NgModule({\n imports: [CommonModule, CheckboxListModule, FormsModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -225,6 +225,18 @@ const convertToMomentDateFormat = (format) => {
225
225
  .replace(/\byy\b/, "YYYY"); // year (four digits)
226
226
  };
227
227
 
228
+ /**
229
+ * @description Componente interno que renderiza uma linha de colunas da tabela,
230
+ * aplicando formatação localizada (data, número, moeda, token, etc.) para cada coluna.
231
+ * Normalmente usado dentro do contexto de uma tabela PrimeNG.
232
+ *
233
+ * @example
234
+ * ```html
235
+ * <s-table-columns [columns]="colunas" [rowValue]="linha" />
236
+ * ```
237
+ *
238
+ * @category Data
239
+ */
228
240
  class TableColumnsComponent {
229
241
  localeService;
230
242
  viewContainerRef;
@@ -232,8 +244,11 @@ class TableColumnsComponent {
232
244
  numericService;
233
245
  hostProjectConfigs;
234
246
  columnsTemplate = null;
247
+ /** @description Lista de configurações das colunas a serem renderizadas. @default [] */
235
248
  columns = [];
249
+ /** @description Objeto da linha com os valores a serem exibidos nas colunas. Campo obrigatório. */
236
250
  rowValue;
251
+ /** @description Opções de localização (calendário e número) usadas para formatação. @default null */
237
252
  locale = null;
238
253
  cellsData = [];
239
254
  formattedColumns = [];