@seniorsistemas/angular-components 19.7.3-bugfix-ptfgap-1271-ddfd6e7b → 19.7.4

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 (646) hide show
  1. package/accordion/README.md +1 -0
  2. package/accordion/lib/accordion/accordion.component.d.ts +1 -1
  3. package/accordion/lib/accordion/accordion.module.d.ts +1 -6
  4. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +1 -1
  5. package/alert/README.md +1 -1
  6. package/alert/lib/alert/alert.component.d.ts +1 -1
  7. package/alert/lib/alert/alert.module.d.ts +1 -2
  8. package/autocomplete/README.md +1 -1
  9. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +1 -1
  10. package/badge/lib/badge/badge.component.d.ts +1 -1
  11. package/badge/lib/badge/badge.module.d.ts +3 -7
  12. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +1 -1
  13. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +1 -2
  14. package/breadcrumb/README.md +9 -5
  15. package/button/README.md +1 -0
  16. package/calendar-mask/README.md +4 -2
  17. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +1 -1
  18. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +1 -2
  19. package/card/lib/card/card.component.d.ts +1 -1
  20. package/card/lib/card/card.module.d.ts +1 -3
  21. package/chat/lib/chat/chat.component.d.ts +2 -1
  22. package/chat/lib/chat/chat.module.d.ts +3 -6
  23. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +1 -1
  24. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +1 -1
  25. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +1 -3
  26. package/chips/lib/chips/chip-item/chip-item.component.d.ts +1 -1
  27. package/chips/lib/chips/chips/chips.component.d.ts +1 -1
  28. package/chips/lib/chips/chips.module.d.ts +1 -6
  29. package/code-editor/README.md +1 -1
  30. package/code-editor/lib/code-editor/code-editor.component.d.ts +1 -1
  31. package/code-editor/lib/code-editor/code-editor.module.d.ts +1 -3
  32. package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +1 -3
  33. package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -12
  34. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +1 -1
  35. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +1 -2
  36. package/common/deprecated-selector/README.md +120 -47
  37. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +1 -1
  38. package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +1 -1
  39. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -1
  40. package/common/lib/svg-factory/svg-factory.module.d.ts +1 -4
  41. package/confirm-dialog/README.md +3 -1
  42. package/content-generator/README.md +2 -2
  43. package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -1
  44. package/content-generator/lib/content-generator/content-generator.module.d.ts +1 -10
  45. package/control-errors/lib/control-errors/control-errors.component.d.ts +2 -2
  46. package/control-errors/lib/control-errors/control-errors.module.d.ts +1 -3
  47. package/country-phone-picker/README.md +1 -1
  48. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -1
  49. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +1 -5
  50. package/currency/README.md +1 -1
  51. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +1 -1
  52. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +1 -7
  53. package/datepicker/README.md +44 -11
  54. package/datepicker/lib/datepicker/datepicker.component.d.ts +1 -0
  55. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +3 -5
  56. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
  57. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +1 -1
  58. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +1 -2
  59. package/editor/README.md +8 -0
  60. package/empty-state/lib/empty-state/empty-state.component.d.ts +1 -1
  61. package/empty-state/lib/empty-state/empty-state.module.d.ts +1 -3
  62. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +1 -1
  63. package/esm2022/accordion/lib/accordion/accordion.component.mjs +3 -3
  64. package/esm2022/accordion/lib/accordion/accordion.module.mjs +4 -10
  65. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +17 -8
  66. package/esm2022/alert/lib/alert/alert.component.mjs +4 -4
  67. package/esm2022/alert/lib/alert/alert.module.mjs +4 -6
  68. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +4 -4
  69. package/esm2022/badge/lib/badge/badge.component.mjs +7 -6
  70. package/esm2022/badge/lib/badge/badge.module.mjs +4 -9
  71. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +3 -2
  72. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +4 -7
  73. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +6 -7
  74. package/esm2022/button/lib/button/button.component.mjs +3 -3
  75. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +3 -2
  76. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +4 -6
  77. package/esm2022/card/lib/card/card.component.mjs +4 -4
  78. package/esm2022/card/lib/card/card.module.mjs +4 -7
  79. package/esm2022/chat/lib/chat/chat.component.mjs +8 -7
  80. package/esm2022/chat/lib/chat/chat.module.mjs +7 -11
  81. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +6 -6
  82. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +4 -5
  83. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +6 -7
  84. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +4 -7
  85. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +5 -5
  86. package/esm2022/chips/lib/chips/chips/chips.component.mjs +7 -7
  87. package/esm2022/chips/lib/chips/chips.module.mjs +4 -10
  88. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +4 -4
  89. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +8 -11
  90. package/esm2022/code-editor/lib/code-editor/core/facades/core-facade.mjs +1 -7
  91. package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.mjs +22 -47
  92. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +4 -4
  93. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +4 -6
  94. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +3 -3
  95. package/esm2022/common/lib/svg-factory/components/senior-icon/senior-icon.component.mjs +3 -3
  96. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +4 -3
  97. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +4 -14
  98. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +28 -16
  99. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +4 -42
  100. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
  101. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +6 -9
  102. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -14
  103. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +6 -28
  104. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +6 -6
  105. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +9 -35
  106. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +6 -3
  107. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
  108. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +4 -6
  109. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +3 -3
  110. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
  111. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +5 -3
  112. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +3 -3
  113. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +3 -2
  114. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +4 -6
  115. package/esm2022/editor/lib/editor/editor.component.mjs +4 -4
  116. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +4 -4
  117. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +4 -7
  118. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +4 -4
  119. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +5 -5
  120. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +4 -7
  121. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +10 -11
  122. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +4 -11
  123. package/esm2022/gantt/lib/gantt/components/side-table/side-table.component.mjs +5 -5
  124. package/esm2022/gantt/lib/gantt/gantt.component.mjs +4 -4
  125. package/esm2022/gantt/lib/gantt/gantt.module.mjs +4 -12
  126. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +6 -7
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +17 -10
  128. package/esm2022/global-search/lib/global-search/global-search.module.mjs +15 -33
  129. package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +5 -4
  130. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +4 -4
  131. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +4 -7
  132. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +5 -5
  133. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +3 -2
  134. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +5 -14
  135. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +7 -8
  136. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +4 -10
  137. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +4 -3
  138. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +4 -6
  139. package/esm2022/info-sign/lib/info-sign/components/info-sign/info-sign.component.mjs +6 -6
  140. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +4 -3
  141. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +4 -8
  142. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +14 -10
  143. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.mjs +7 -6
  144. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +6 -6
  145. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +34 -20
  146. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +6 -6
  147. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.mjs +7 -7
  148. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +16 -15
  149. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +3 -3
  150. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +4 -89
  151. package/esm2022/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.mjs +6 -6
  152. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +11 -10
  153. package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +7 -7
  154. package/esm2022/insights/lib/insights/insights.component.mjs +4 -5
  155. package/esm2022/insights/lib/insights/insights.module.mjs +4 -34
  156. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +18 -22
  157. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +9 -8
  158. package/esm2022/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +6 -6
  159. package/esm2022/kanban/lib/kanban/kanban.component.mjs +20 -11
  160. package/esm2022/kanban/lib/kanban/kanban.module.mjs +4 -41
  161. package/esm2022/label-value/lib/label-value/label-value.component.mjs +8 -8
  162. package/esm2022/label-value/lib/label-value/label-value.module.mjs +4 -10
  163. package/esm2022/lib/locale/fallback.mjs +3 -2
  164. package/esm2022/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.mjs +3 -3
  165. package/esm2022/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.mjs +4 -4
  166. package/esm2022/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.mjs +4 -4
  167. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +13 -7
  168. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +3 -2
  169. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +4 -20
  170. package/esm2022/locale/lib/locale/locale.module.mjs +6 -8
  171. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +6 -5
  172. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +16 -15
  173. package/esm2022/locale/lib/locale/pipes/localized-currency-impure.pipe.mjs +6 -5
  174. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +11 -10
  175. package/esm2022/locale/lib/locale/pipes/localized-date-impure.pipe.mjs +6 -5
  176. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +3 -2
  177. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +10 -7
  178. package/esm2022/locale/lib/locale/pipes/localized-time-impure.pipe.mjs +6 -5
  179. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +3 -2
  180. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +7 -4
  181. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +4 -6
  182. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +3 -3
  183. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +3 -2
  184. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +3 -2
  185. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +5 -7
  186. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +8 -8
  187. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +4 -8
  188. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +3 -2
  189. package/esm2022/number-input/lib/number-input/number-input.module.mjs +4 -6
  190. package/esm2022/numeric/lib/numeric.module.mjs +4 -6
  191. package/esm2022/numeric/lib/numeric.pipe.mjs +6 -3
  192. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +8 -3
  193. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +7 -8
  194. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +6 -8
  195. package/esm2022/object-card/lib/object-card/object-card.component.mjs +6 -6
  196. package/esm2022/object-card/lib/object-card/object-card.module.mjs +4 -10
  197. package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
  198. package/esm2022/panel/lib/panel/panel.component.mjs +15 -7
  199. package/esm2022/panel/lib/panel/panel.module.mjs +7 -10
  200. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +4 -4
  201. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +4 -3
  202. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +4 -7
  203. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +5 -6
  204. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +9 -10
  205. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +5 -11
  206. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -6
  207. package/esm2022/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.mjs +4 -4
  208. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +5 -5
  209. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +4 -9
  210. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +5 -5
  211. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +6 -14
  212. package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +3 -4
  213. package/esm2022/select/lib/select/select.component.mjs +3 -5
  214. package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +5 -5
  215. package/esm2022/select-button/lib/select-button/select-button.component.mjs +6 -6
  216. package/esm2022/select-button/lib/select-button/select-button.module.mjs +6 -13
  217. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +5 -5
  218. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +7 -10
  219. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +5 -5
  220. package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +4 -7
  221. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +6 -6
  222. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +7 -9
  223. package/esm2022/slider/lib/slider/slider.component.mjs +6 -6
  224. package/esm2022/slider/lib/slider/slider.module.mjs +6 -9
  225. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +4 -5
  226. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +5 -13
  227. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -5
  228. package/esm2022/split-button/lib/split-button/split-button.module.mjs +4 -6
  229. package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
  230. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +6 -6
  231. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +4 -8
  232. package/esm2022/stepper/lib/stepper/stepper.component.mjs +6 -6
  233. package/esm2022/stepper/lib/stepper/stepper.module.mjs +4 -7
  234. package/esm2022/structure/lib/structure/footer.component.mjs +3 -2
  235. package/esm2022/structure/lib/structure/header.component.mjs +5 -4
  236. package/esm2022/structure/lib/structure/structure.module.mjs +5 -7
  237. package/esm2022/switch/lib/switch/switch.component.mjs +4 -5
  238. package/esm2022/switch/lib/switch/switch.module.mjs +4 -6
  239. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +6 -3
  240. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +17 -9
  241. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +4 -4
  242. package/esm2022/table/lib/table/table.module.mjs +4 -34
  243. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +19 -16
  244. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +4 -8
  245. package/esm2022/template/lib/template/template.module.mjs +4 -5
  246. package/esm2022/text-area/lib/text-area/text-area.component.mjs +9 -9
  247. package/esm2022/text-area/lib/text-area.module.mjs +5 -24
  248. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +5 -5
  249. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +7 -9
  250. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.mjs +6 -6
  251. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.mjs +9 -9
  252. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +25 -14
  253. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +4 -4
  254. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +6 -14
  255. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +7 -7
  256. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +3 -3
  257. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +4 -4
  258. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +6 -6
  259. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +4 -3
  260. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +4 -20
  261. package/esm2022/tile/lib/tile/tile.component.mjs +6 -6
  262. package/esm2022/tile/lib/tile/tile.module.mjs +4 -7
  263. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.mjs +6 -6
  264. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.mjs +5 -5
  265. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.mjs +4 -4
  266. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.mjs +5 -5
  267. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.mjs +3 -3
  268. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.mjs +5 -5
  269. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.mjs +7 -7
  270. package/esm2022/timeline/lib/timeline/timeline.component.mjs +5 -6
  271. package/esm2022/timeline/lib/timeline/timeline.module.mjs +4 -20
  272. package/esm2022/toast/lib/toast/toast.component.mjs +4 -4
  273. package/esm2022/toast/lib/toast/toast.module.mjs +6 -7
  274. package/esm2022/token-list/lib/token-list/token-list.component.mjs +4 -4
  275. package/esm2022/token-list/lib/token-list/token-list.module.mjs +4 -6
  276. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +3 -4
  277. package/esm2022/topbar/lib/topbar/topbar.component.mjs +3 -3
  278. package/esm2022/topbar/lib/topbar/topbar.module.mjs +7 -10
  279. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +6 -5
  280. package/esm2022/tree/lib/tree/tree.component.mjs +5 -5
  281. package/esm2022/tree/lib/tree/tree.module.mjs +4 -10
  282. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +5 -5
  283. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +4 -6
  284. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +20 -17
  285. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-alert.mjs +6 -8
  287. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +3 -3
  289. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-badge.mjs +8 -12
  291. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -7
  293. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -6
  295. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
  297. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +5 -6
  299. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -9
  301. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-chat.mjs +15 -16
  303. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -10
  305. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +3 -4
  307. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-chips.mjs +14 -18
  309. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +26 -59
  311. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +6 -8
  313. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-common.mjs +9 -16
  315. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +28 -52
  317. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +5 -8
  319. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -37
  321. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +12 -35
  323. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +5 -2
  325. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +2 -2
  327. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -11
  329. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +5 -6
  331. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-editor.mjs +3 -3
  333. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +8 -11
  335. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +6 -9
  337. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +11 -18
  339. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +9 -16
  341. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -47
  343. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +8 -10
  345. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +10 -17
  347. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +8 -14
  349. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +5 -6
  351. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +9 -11
  353. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +64 -121
  355. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -47
  357. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +86 -113
  359. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +10 -16
  361. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +40 -46
  363. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-locale.mjs +40 -31
  365. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +9 -8
  367. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-mask.mjs +4 -3
  369. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  370. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +55 -56
  371. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  372. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +9 -13
  373. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  374. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +6 -6
  375. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  376. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +7 -2
  377. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  378. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +8 -7
  379. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  380. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +14 -21
  381. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  382. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
  383. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  384. package/fesm2022/seniorsistemas-angular-components-panel.mjs +17 -11
  385. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  386. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +8 -9
  387. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  388. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +4 -5
  389. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  390. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +11 -17
  391. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  392. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +15 -15
  393. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  394. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +8 -15
  395. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  396. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +9 -15
  397. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  398. package/fesm2022/seniorsistemas-angular-components-select.mjs +4 -6
  399. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  400. package/fesm2022/seniorsistemas-angular-components-shared.mjs +8 -11
  401. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  402. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +7 -10
  403. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  404. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -9
  405. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  406. package/fesm2022/seniorsistemas-angular-components-slider.mjs +8 -11
  407. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  408. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -15
  409. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  410. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +6 -8
  411. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  412. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
  413. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  414. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +8 -12
  415. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  416. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +8 -11
  417. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  418. package/fesm2022/seniorsistemas-angular-components-structure.mjs +18 -18
  419. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  420. package/fesm2022/seniorsistemas-angular-components-switch.mjs +6 -9
  421. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  422. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +20 -21
  423. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  424. package/fesm2022/seniorsistemas-angular-components-table.mjs +27 -45
  425. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  426. package/fesm2022/seniorsistemas-angular-components-template.mjs +3 -4
  427. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  428. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +12 -30
  429. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  430. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -8
  431. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  432. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +45 -37
  433. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  434. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +14 -25
  435. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  436. package/fesm2022/seniorsistemas-angular-components-tile.mjs +8 -12
  437. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  438. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +58 -124
  439. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  440. package/fesm2022/seniorsistemas-angular-components-toast.mjs +4 -5
  441. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  442. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -8
  443. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  444. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -2
  445. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  446. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +5 -8
  447. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  448. package/fesm2022/seniorsistemas-angular-components-tree.mjs +10 -13
  449. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  450. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +6 -8
  451. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  452. package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
  453. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  454. package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
  455. package/fieldset/lib/fieldset/fieldset.module.d.ts +1 -3
  456. package/file-picker/lib/file-picker/file-picker.component.d.ts +1 -1
  457. package/file-picker/lib/file-picker/file-picker.module.d.ts +1 -7
  458. package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +1 -1
  459. package/gantt/lib/gantt/gantt.component.d.ts +1 -1
  460. package/gantt/lib/gantt/gantt.module.d.ts +1 -4
  461. package/global-search/README.md +12 -1
  462. package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +1 -1
  463. package/global-search/lib/global-search/global-search.component.d.ts +1 -1
  464. package/global-search/lib/global-search/global-search.module.d.ts +8 -12
  465. package/grid-menu/README.md +27 -2
  466. package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +1 -1
  467. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +1 -1
  468. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +1 -3
  469. package/help-popover/README.md +2 -2
  470. package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +1 -1
  471. package/help-popover/lib/help-popover/help-popover.directive.d.ts +1 -1
  472. package/help-popover/lib/help-popover/help-popover.module.d.ts +2 -5
  473. package/ia-insight/README.md +1 -1
  474. package/image-cropper/README.md +2 -2
  475. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +1 -1
  476. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +3 -8
  477. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
  478. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +1 -2
  479. package/info-sign/README.md +1 -1
  480. package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +2 -2
  481. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -1
  482. package/info-sign/lib/info-sign/info-sign.module.d.ts +1 -4
  483. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +7 -6
  484. package/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.d.ts +4 -4
  485. package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +4 -4
  486. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +5 -4
  487. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +4 -4
  488. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +4 -4
  489. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +5 -4
  490. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +1 -1
  491. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +1 -23
  492. package/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.d.ts +1 -1
  493. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +2 -1
  494. package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +1 -1
  495. package/insights/lib/insights/insights.component.d.ts +1 -1
  496. package/insights/lib/insights/insights.module.d.ts +3 -12
  497. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +5 -5
  498. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +4 -4
  499. package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +1 -1
  500. package/kanban/lib/kanban/kanban.component.d.ts +1 -1
  501. package/kanban/lib/kanban/kanban.module.d.ts +3 -13
  502. package/label-value/lib/label-value/label-value.component.d.ts +1 -1
  503. package/label-value/lib/label-value/label-value.module.d.ts +1 -6
  504. package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +1 -1
  505. package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +1 -1
  506. package/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.d.ts +1 -1
  507. package/loading-state/lib/loading-state/loading-state.component.d.ts +1 -1
  508. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -1
  509. package/loading-state/lib/loading-state/loading-state.module.d.ts +1 -6
  510. package/locale/lib/locale/locale.module.d.ts +1 -2
  511. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +3 -3
  512. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +3 -3
  513. package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +3 -3
  514. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +3 -3
  515. package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +3 -3
  516. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +1 -1
  517. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +2 -2
  518. package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +3 -3
  519. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +1 -1
  520. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +2 -1
  521. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +1 -2
  522. package/mask/lib/mask/mask-formatter.module.d.ts +1 -1
  523. package/mask/lib/mask/mask-formatter.pipe.d.ts +1 -1
  524. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +1 -1
  525. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +3 -4
  526. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -1
  527. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +1 -4
  528. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  529. package/number-input/lib/number-input/number-input.module.d.ts +1 -2
  530. package/numeric/lib/numeric.module.d.ts +1 -2
  531. package/numeric/lib/numeric.pipe.d.ts +1 -1
  532. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +1 -0
  533. package/object-card/README.md +13 -1
  534. package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +1 -1
  535. package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +1 -1
  536. package/object-card/lib/object-card/object-card.component.d.ts +1 -1
  537. package/object-card/lib/object-card/object-card.module.d.ts +5 -10
  538. package/package.json +13 -13
  539. package/panel/lib/panel/panel.component.d.ts +6 -1
  540. package/panel/lib/panel/panel.module.d.ts +2 -4
  541. package/password-strength/lib/password-strength/password-strength.component.d.ts +1 -1
  542. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -1
  543. package/password-strength/lib/password-strength/password-strength.module.d.ts +2 -4
  544. package/picklist/README.md +74 -2
  545. package/product-header/README.md +1 -1
  546. package/profile-picture-picker/README.md +1 -1
  547. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +1 -1
  548. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +1 -7
  549. package/progressbar/README.md +0 -1
  550. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +2 -1
  551. package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +1 -1
  552. package/progressbar/lib/progressbar/progressbar.component.d.ts +1 -1
  553. package/progressbar/lib/progressbar/progressbar.module.d.ts +1 -5
  554. package/radio-button/README.md +0 -1
  555. package/rating-scale/README.md +1 -1
  556. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +2 -2
  557. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +1 -3
  558. package/select/lib/select/select.component.d.ts +1 -1
  559. package/select-button/README.md +1 -1
  560. package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +1 -1
  561. package/select-button/lib/select-button/select-button.component.d.ts +1 -1
  562. package/select-button/lib/select-button/select-button.module.d.ts +1 -3
  563. package/shared/lib/shared/border-button/border-button.component.d.ts +1 -1
  564. package/shared/lib/shared/border-button/border-button.module.d.ts +1 -3
  565. package/sidebar/lib/sidebar/sidebar.component.d.ts +1 -1
  566. package/sidebar/lib/sidebar/sidebar.module.d.ts +2 -4
  567. package/slide-in-bar/README.md +1 -1
  568. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +1 -1
  569. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +1 -2
  570. package/slider/README.md +1 -1
  571. package/slider/lib/slider/slider.component.d.ts +1 -1
  572. package/slider/lib/slider/slider.module.d.ts +1 -3
  573. package/speech-recognition/README.md +1 -1
  574. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +1 -1
  575. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +1 -3
  576. package/split-button/README.md +1 -1
  577. package/split-button/lib/split-button/split-button.component.d.ts +1 -1
  578. package/split-button/lib/split-button/split-button.module.d.ts +1 -2
  579. package/spotlight/README.md +1 -1
  580. package/star-rating/README.md +1 -1
  581. package/stats-card/README.md +1 -1
  582. package/stats-card/lib/stats-card/stats-card.component.d.ts +1 -1
  583. package/stats-card/lib/stats-card/stats-card.module.d.ts +1 -4
  584. package/stepper/lib/stepper/stepper.component.d.ts +1 -1
  585. package/stepper/lib/stepper/stepper.module.d.ts +1 -3
  586. package/structure/lib/structure/footer.component.d.ts +1 -1
  587. package/structure/lib/structure/header.component.d.ts +1 -1
  588. package/structure/lib/structure/structure.module.d.ts +1 -2
  589. package/switch/lib/switch/switch.component.d.ts +1 -1
  590. package/switch/lib/switch/switch.module.d.ts +1 -2
  591. package/table/README.md +9 -8
  592. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  593. package/table/lib/table/table-column/table-columns.component.d.ts +1 -1
  594. package/table/lib/table/table-paging/table-paging.component.d.ts +1 -1
  595. package/table/lib/table/table.module.d.ts +5 -12
  596. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  597. package/table-header/lib/table-header/table-header-checkox.module.d.ts +1 -4
  598. package/template/README.md +177 -0
  599. package/template/lib/template/template.module.d.ts +2 -3
  600. package/text-area/lib/text-area/text-area.component.d.ts +1 -1
  601. package/text-area/lib/text-area.module.d.ts +1 -5
  602. package/text-area-ia/README.md +1 -1
  603. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -1
  604. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +1 -2
  605. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  606. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +2 -2
  607. package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +5 -4
  608. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +1 -1
  609. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +1 -8
  610. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -1
  611. package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +1 -1
  612. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +1 -1
  613. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +1 -1
  614. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -1
  615. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +1 -6
  616. package/tile/lib/tile/tile.component.d.ts +1 -1
  617. package/tile/lib/tile/tile.module.d.ts +3 -5
  618. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +1 -1
  619. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +1 -1
  620. package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +1 -1
  621. package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +1 -1
  622. package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +1 -1
  623. package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +1 -1
  624. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +1 -1
  625. package/timeline/lib/timeline/timeline.component.d.ts +1 -1
  626. package/timeline/lib/timeline/timeline.module.d.ts +1 -5
  627. package/toast/lib/toast/toast.component.d.ts +1 -1
  628. package/toast/lib/toast/toast.module.d.ts +3 -3
  629. package/token-list/lib/token-list/token-list.component.d.ts +1 -1
  630. package/token-list/lib/token-list/token-list.module.d.ts +1 -2
  631. package/tooltip/lib/tooltip/tooltip.module.d.ts +1 -2
  632. package/topbar/lib/topbar/topbar.component.d.ts +1 -1
  633. package/topbar/lib/topbar/topbar.module.d.ts +3 -5
  634. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -1
  635. package/tree/lib/tree/tree.component.d.ts +1 -1
  636. package/tree/lib/tree/tree.module.d.ts +1 -6
  637. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -1
  638. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +1 -2
  639. package/esm2022/insights/lib/insights/components/insights-card/components/index.mjs +0 -2
  640. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.mjs +0 -20
  641. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.mjs +0 -19
  642. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.mjs +0 -33
  643. package/insights/lib/insights/components/insights-card/components/index.d.ts +0 -1
  644. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -10
  645. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -9
  646. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -13
@@ -1,11 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, ElementRef, ViewChildren, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i2 from '@seniorsistemas/angular-components/locale';
6
- import { LocaleModule } from '@seniorsistemas/angular-components/locale';
7
- import * as i3 from '@ngx-translate/core';
8
- import { TranslateModule } from '@ngx-translate/core';
2
+ import { Component, Input, inject, DestroyRef, ElementRef, ViewChildren, NgModule } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
+ import { AsyncPipe, NgClass } from '@angular/common';
5
+ import { LocalizedDatePipe } from '@seniorsistemas/angular-components/locale';
6
+ import * as i1 from '@ngx-translate/core';
7
+ import { TranslatePipe, TranslateModule } from '@ngx-translate/core';
9
8
 
10
9
  /**
11
10
  * @description Componente que renderiza uma única mensagem de chat.
@@ -37,11 +36,11 @@ class ChatMessageComponent {
37
36
  return match ? match[0] : null;
38
37
  }
39
38
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
40
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatMessageComponent, selector: "s-chat-message", inputs: { message: "message" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"chat-message\" [class.chat-message--mine]=\"message.isMine\">\n <div class=\"chat-message-wrapper\">\n <div class=\"header\">\n <img class=\"thumbnail\" [src]=\"message.thumbnailUrl\" alt=\"Thumbnail\" />\n <span class=\"name\">{{ message.senderName }}</span>\n <span *ngIf=\"message.sentAt\" class=\"date\">{{ message.sentAt | localizedDate: \"L LTS\" | async }}</span>\n </div>\n <p class=\"body\">{{ message.text }}</p>\n\n <div *ngIf=\"message.attachmentUrl\" class=\"attachment\">\n <span class=\"attachment-label\">{{ \"platform.angular_components.attachment\" | translate }}:</span>\n <a class=\"attachment-anchor\" [href]=\"message.attachmentUrl\" [download]=\"fileName\">{{ fileName }}</a>\n </div>\n </div>\n</div>\n", styles: [".chat-message{display:flex;justify-content:flex-start;padding:10px 20px}.chat-message .chat-message-wrapper{background-color:#cabbd0;border-radius:16px 16px 16px 0;display:inline-flex;flex-direction:column;max-width:85%;padding:20px}.chat-message .chat-message-wrapper .header{align-items:center;color:#000;display:flex;font-family:Open Sans,sans-serif;gap:8px}.chat-message .chat-message-wrapper .header .thumbnail{border-radius:50%;height:32px;object-fit:cover;object-position:center;width:32px;background-color:#fff}.chat-message .chat-message-wrapper .header .name{font-size:14px;font-weight:700}.chat-message .chat-message-wrapper .header .date{font-size:12px}.chat-message .chat-message-wrapper .body{color:#000;font-family:Open Sans,sans-serif;font-size:12px}.chat-message .chat-message-wrapper .attachment{align-items:center;display:flex;gap:10px;margin-top:12px;-webkit-user-select:none;user-select:none;flex-wrap:wrap}.chat-message .chat-message-wrapper .attachment-label{color:#0e1119;font-family:Open Sans,sans-serif;font-size:12px;font-weight:700}.chat-message .chat-message-wrapper .attachment-anchor{background-color:#fff;border-radius:4px;padding:0 12px;text-decoration:none}.chat-message--mine{justify-content:flex-end}.chat-message--mine .chat-message-wrapper{background-color:#eeebf2;border-radius:16px 16px 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.LocalizedDatePipe, name: "localizedDate" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatMessageComponent, isStandalone: true, selector: "s-chat-message", inputs: { message: "message" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"flex py-[10px] px-5\"\r\n [class.justify-end]=\"message.isMine\"\r\n>\r\n <div\r\n class=\"inline-flex flex-col max-w-[85%] p-5\"\r\n [ngClass]=\"message.isMine\r\n ? 'bg-grayscale-10 rounded-tl-[16px] rounded-tr-[16px] rounded-br-none rounded-bl-[16px]'\r\n : 'bg-clairvoyant-100 rounded-tl-[16px] rounded-tr-[16px] rounded-br-[16px] rounded-bl-none'\"\r\n >\r\n <div class=\"flex items-center text-grayscale-100 font-open-sans gap-2\">\r\n <img\r\n class=\"rounded-[50%] overflow-hidden h-8 w-8 object-cover object-center bg-grayscale-0\"\r\n [src]=\"message.thumbnailUrl\"\r\n alt=\"Thumbnail\"\r\n />\r\n <span class=\"text-sm font-bold\">{{ message.senderName }}</span>\r\n @if (message.sentAt) {\r\n <span class=\"text-xs\">{{ message.sentAt | localizedDate: 'L LTS' | async }}</span>\r\n }\r\n </div>\r\n <p class=\"text-grayscale-100 font-open-sans text-xs\">{{ message.text }}</p>\r\n\r\n @if (message.attachmentUrl) {\r\n <div class=\"flex items-center gap-[10px] mt-3 select-none flex-wrap\">\r\n <span class=\"text-grayscale-100 font-open-sans text-xs font-bold\">{{ 'platform.angular_components.attachment' | translate }}:</span>\r\n <a\r\n class=\"bg-grayscale-0 rounded-medium px-3 no-underline\"\r\n [href]=\"message.attachmentUrl\"\r\n [download]=\"fileName\"\r\n >{{ fileName }}</a\r\n >\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: LocalizedDatePipe, name: "localizedDate" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
41
40
  }
42
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatMessageComponent, decorators: [{
43
42
  type: Component,
44
- args: [{ selector: 's-chat-message', template: "<div class=\"chat-message\" [class.chat-message--mine]=\"message.isMine\">\n <div class=\"chat-message-wrapper\">\n <div class=\"header\">\n <img class=\"thumbnail\" [src]=\"message.thumbnailUrl\" alt=\"Thumbnail\" />\n <span class=\"name\">{{ message.senderName }}</span>\n <span *ngIf=\"message.sentAt\" class=\"date\">{{ message.sentAt | localizedDate: \"L LTS\" | async }}</span>\n </div>\n <p class=\"body\">{{ message.text }}</p>\n\n <div *ngIf=\"message.attachmentUrl\" class=\"attachment\">\n <span class=\"attachment-label\">{{ \"platform.angular_components.attachment\" | translate }}:</span>\n <a class=\"attachment-anchor\" [href]=\"message.attachmentUrl\" [download]=\"fileName\">{{ fileName }}</a>\n </div>\n </div>\n</div>\n", styles: [".chat-message{display:flex;justify-content:flex-start;padding:10px 20px}.chat-message .chat-message-wrapper{background-color:#cabbd0;border-radius:16px 16px 16px 0;display:inline-flex;flex-direction:column;max-width:85%;padding:20px}.chat-message .chat-message-wrapper .header{align-items:center;color:#000;display:flex;font-family:Open Sans,sans-serif;gap:8px}.chat-message .chat-message-wrapper .header .thumbnail{border-radius:50%;height:32px;object-fit:cover;object-position:center;width:32px;background-color:#fff}.chat-message .chat-message-wrapper .header .name{font-size:14px;font-weight:700}.chat-message .chat-message-wrapper .header .date{font-size:12px}.chat-message .chat-message-wrapper .body{color:#000;font-family:Open Sans,sans-serif;font-size:12px}.chat-message .chat-message-wrapper .attachment{align-items:center;display:flex;gap:10px;margin-top:12px;-webkit-user-select:none;user-select:none;flex-wrap:wrap}.chat-message .chat-message-wrapper .attachment-label{color:#0e1119;font-family:Open Sans,sans-serif;font-size:12px;font-weight:700}.chat-message .chat-message-wrapper .attachment-anchor{background-color:#fff;border-radius:4px;padding:0 12px;text-decoration:none}.chat-message--mine{justify-content:flex-end}.chat-message--mine .chat-message-wrapper{background-color:#eeebf2;border-radius:16px 16px 0}\n"] }]
43
+ args: [{ selector: 's-chat-message', standalone: true, imports: [AsyncPipe, NgClass, LocalizedDatePipe, TranslatePipe], template: "<div\r\n class=\"flex py-[10px] px-5\"\r\n [class.justify-end]=\"message.isMine\"\r\n>\r\n <div\r\n class=\"inline-flex flex-col max-w-[85%] p-5\"\r\n [ngClass]=\"message.isMine\r\n ? 'bg-grayscale-10 rounded-tl-[16px] rounded-tr-[16px] rounded-br-none rounded-bl-[16px]'\r\n : 'bg-clairvoyant-100 rounded-tl-[16px] rounded-tr-[16px] rounded-br-[16px] rounded-bl-none'\"\r\n >\r\n <div class=\"flex items-center text-grayscale-100 font-open-sans gap-2\">\r\n <img\r\n class=\"rounded-[50%] overflow-hidden h-8 w-8 object-cover object-center bg-grayscale-0\"\r\n [src]=\"message.thumbnailUrl\"\r\n alt=\"Thumbnail\"\r\n />\r\n <span class=\"text-sm font-bold\">{{ message.senderName }}</span>\r\n @if (message.sentAt) {\r\n <span class=\"text-xs\">{{ message.sentAt | localizedDate: 'L LTS' | async }}</span>\r\n }\r\n </div>\r\n <p class=\"text-grayscale-100 font-open-sans text-xs\">{{ message.text }}</p>\r\n\r\n @if (message.attachmentUrl) {\r\n <div class=\"flex items-center gap-[10px] mt-3 select-none flex-wrap\">\r\n <span class=\"text-grayscale-100 font-open-sans text-xs font-bold\">{{ 'platform.angular_components.attachment' | translate }}:</span>\r\n <a\r\n class=\"bg-grayscale-0 rounded-medium px-3 no-underline\"\r\n [href]=\"message.attachmentUrl\"\r\n [download]=\"fileName\"\r\n >{{ fileName }}</a\r\n >\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n" }]
45
44
  }], propDecorators: { message: [{
46
45
  type: Input,
47
46
  args: [{ required: true }]
@@ -60,6 +59,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
60
59
  * @category Inputs
61
60
  */
62
61
  class ChatComponent {
62
+ _destroyRef = inject(DestroyRef);
63
63
  /**
64
64
  * @description Lista de mensagens exibidas no chat.
65
65
  * Cada item é do tipo {@link ChatMessage}, contendo texto, remetente e demais metadados.
@@ -70,7 +70,7 @@ class ChatComponent {
70
70
  messageElements = null;
71
71
  ngAfterViewInit() {
72
72
  this.scrollToBottom();
73
- this.messageElements?.changes.subscribe(() => {
73
+ this.messageElements?.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
74
74
  this.scrollToBottom();
75
75
  });
76
76
  }
@@ -78,11 +78,11 @@ class ChatComponent {
78
78
  this.messageElements?.last?.nativeElement.scrollIntoView({ behavior: 'smooth' });
79
79
  }
80
80
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatComponent, selector: "s-chat", inputs: { messages: "messages" }, viewQueries: [{ propertyName: "messageElements", predicate: ["messageElements"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"chat-container\">\n <s-chat-message #messageElements *ngFor=\"let message of messages\" [message]=\"message\"> </s-chat-message>\n</div>\n", styles: [".chat-container{min-height:500px;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ChatMessageComponent, selector: "s-chat-message", inputs: ["message"] }] });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatComponent, isStandalone: true, selector: "s-chat", inputs: { messages: "messages" }, viewQueries: [{ propertyName: "messageElements", predicate: ["messageElements"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"min-h-[500px] overflow-auto\">\r\n @for (message of messages; track message) {\r\n <s-chat-message\r\n #messageElements\r\n [message]=\"message\"\r\n >\r\n </s-chat-message>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "component", type: ChatMessageComponent, selector: "s-chat-message", inputs: ["message"] }] });
82
82
  }
83
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComponent, decorators: [{
84
84
  type: Component,
85
- args: [{ selector: 's-chat', template: "<div class=\"chat-container\">\n <s-chat-message #messageElements *ngFor=\"let message of messages\" [message]=\"message\"> </s-chat-message>\n</div>\n", styles: [".chat-container{min-height:500px;overflow:auto}\n"] }]
85
+ args: [{ selector: 's-chat', standalone: true, imports: [ChatMessageComponent], template: "<div class=\"min-h-[500px] overflow-auto\">\r\n @for (message of messages; track message) {\r\n <s-chat-message\r\n #messageElements\r\n [message]=\"message\"\r\n >\r\n </s-chat-message>\r\n }\r\n</div>\r\n" }]
86
86
  }], propDecorators: { messages: [{
87
87
  type: Input
88
88
  }], messageElements: [{
@@ -92,14 +92,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
92
92
 
93
93
  class ChatModule {
94
94
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
95
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, declarations: [ChatComponent, ChatMessageComponent], imports: [CommonModule, LocaleModule, i3.TranslateModule], exports: [ChatComponent] });
96
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, imports: [CommonModule, LocaleModule, TranslateModule.forChild()] });
95
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, imports: [i1.TranslateModule, ChatComponent], exports: [ChatComponent] });
96
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, imports: [TranslateModule.forChild()] });
97
97
  }
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, decorators: [{
99
99
  type: NgModule,
100
100
  args: [{
101
- imports: [CommonModule, LocaleModule, TranslateModule.forChild()],
102
- declarations: [ChatComponent, ChatMessageComponent],
101
+ imports: [TranslateModule.forChild(), ChatComponent],
103
102
  exports: [ChatComponent],
104
103
  }]
105
104
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-chat.mjs","sources":["../../projects/angular-components/chat/src/lib/chat/components/chat-message/chat-message.component.ts","../../projects/angular-components/chat/src/lib/chat/components/chat-message/chat-message.component.html","../../projects/angular-components/chat/src/lib/chat/chat.component.ts","../../projects/angular-components/chat/src/lib/chat/chat.component.html","../../projects/angular-components/chat/src/lib/chat/chat.module.ts","../../projects/angular-components/chat/src/seniorsistemas-angular-components-chat.ts"],"sourcesContent":["import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\nimport { ChatMessage } from '../../types/chat-message';\n\n/**\n * @description Componente que renderiza uma única mensagem de chat.\n * Exibe o conteúdo textual, o remetente (próprio ou terceiro) e suporte a\n * anexos via `attachmentUrl`, exibindo o nome do arquivo automaticamente.\n *\n * @example\n * ```html\n * <s-chat-message [message]=\"item\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-chat-message',\n templateUrl: './chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n})\nexport class ChatMessageComponent implements OnChanges {\n /**\n * @description Objeto com os dados da mensagem a ser exibida,\n * incluindo texto, remetente e URL de anexo. Campo obrigatório.\n */\n @Input({ required: true })\n public message!: ChatMessage;\n\n public fileName: string | null = null;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['message']) {\n this.fileName = this.message.attachmentUrl ? this.getFileNameByUrl(this.message.attachmentUrl) : null;\n }\n }\n\n private getFileNameByUrl(path: string): string | null {\n const regex = /[^\\\\/]+$/;\n const match = regex.exec(path);\n return match ? match[0] : null;\n }\n}\n\n","<div class=\"chat-message\" [class.chat-message--mine]=\"message.isMine\">\n <div class=\"chat-message-wrapper\">\n <div class=\"header\">\n <img class=\"thumbnail\" [src]=\"message.thumbnailUrl\" alt=\"Thumbnail\" />\n <span class=\"name\">{{ message.senderName }}</span>\n <span *ngIf=\"message.sentAt\" class=\"date\">{{ message.sentAt | localizedDate: \"L LTS\" | async }}</span>\n </div>\n <p class=\"body\">{{ message.text }}</p>\n\n <div *ngIf=\"message.attachmentUrl\" class=\"attachment\">\n <span class=\"attachment-label\">{{ \"platform.angular_components.attachment\" | translate }}:</span>\n <a class=\"attachment-anchor\" [href]=\"message.attachmentUrl\" [download]=\"fileName\">{{ fileName }}</a>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, Input, QueryList, ViewChildren } from '@angular/core';\n\nimport { ChatMessage } from './types/chat-message';\n\n/**\n * @description Componente de interface de chat que exibe uma lista de mensagens\n * e faz scroll automático até a última mensagem sempre que novas são adicionadas.\n * Renderiza cada mensagem via {@link ChatMessageComponent}.\n *\n * @example\n * ```html\n * <s-chat [messages]=\"conversaMensagens\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-chat',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss'],\n})\nexport class ChatComponent implements AfterViewInit {\n /**\n * @description Lista de mensagens exibidas no chat.\n * Cada item é do tipo {@link ChatMessage}, contendo texto, remetente e demais metadados.\n *\n * @default []\n */\n @Input()\n public messages: ChatMessage[] = [];\n\n @ViewChildren('messageElements', { read: ElementRef })\n private readonly messageElements: null | QueryList<ElementRef<HTMLElement>> = null;\n\n public ngAfterViewInit(): void {\n this.scrollToBottom();\n\n this.messageElements?.changes.subscribe(() => {\n this.scrollToBottom();\n });\n }\n\n private scrollToBottom(): void {\n this.messageElements?.last?.nativeElement.scrollIntoView({ behavior: 'smooth' });\n }\n}\n\n","<div class=\"chat-container\">\n <s-chat-message #messageElements *ngFor=\"let message of messages\" [message]=\"message\"> </s-chat-message>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { ChatComponent } from \"./chat.component\";\nimport { ChatMessageComponent } from \"./components/chat-message/chat-message.component\";\nimport { LocaleModule } from \"@seniorsistemas/angular-components/locale\";\n\n@NgModule({\n imports: [CommonModule, LocaleModule, TranslateModule.forChild()],\n declarations: [ChatComponent, ChatMessageComponent],\n exports: [ChatComponent],\n})\nexport class ChatModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ChatMessageComponent","i1"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-chat.mjs","sources":["../../projects/angular-components/chat/src/lib/chat/components/chat-message/chat-message.component.ts","../../projects/angular-components/chat/src/lib/chat/components/chat-message/chat-message.component.html","../../projects/angular-components/chat/src/lib/chat/chat.component.ts","../../projects/angular-components/chat/src/lib/chat/chat.component.html","../../projects/angular-components/chat/src/lib/chat/chat.module.ts","../../projects/angular-components/chat/src/seniorsistemas-angular-components-chat.ts"],"sourcesContent":["import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\nimport { ChatMessage } from '../../types/chat-message';\r\nimport { AsyncPipe, NgClass } from '@angular/common';\r\nimport { LocalizedDatePipe } from '@seniorsistemas/angular-components/locale';\r\nimport { TranslatePipe } from '@ngx-translate/core';\r\n\r\n/**\r\n * @description Componente que renderiza uma única mensagem de chat.\r\n * Exibe o conteúdo textual, o remetente (próprio ou terceiro) e suporte a\r\n * anexos via `attachmentUrl`, exibindo o nome do arquivo automaticamente.\r\n *\r\n * @example\r\n * ```html\r\n * <s-chat-message [message]=\"item\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-chat-message',\r\n templateUrl: './chat-message.component.html',\r\n standalone: true,\r\n imports: [AsyncPipe, NgClass, LocalizedDatePipe, TranslatePipe],\r\n})\r\nexport class ChatMessageComponent implements OnChanges {\r\n /**\r\n * @description Objeto com os dados da mensagem a ser exibida,\r\n * incluindo texto, remetente e URL de anexo. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public message!: ChatMessage;\r\n\r\n public fileName: string | null = null;\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['message']) {\r\n this.fileName = this.message.attachmentUrl ? this.getFileNameByUrl(this.message.attachmentUrl) : null;\r\n }\r\n }\r\n\r\n private getFileNameByUrl(path: string): string | null {\r\n const regex = /[^\\\\/]+$/;\r\n const match = regex.exec(path);\r\n return match ? match[0] : null;\r\n }\r\n}\r\n","<div\r\n class=\"flex py-[10px] px-5\"\r\n [class.justify-end]=\"message.isMine\"\r\n>\r\n <div\r\n class=\"inline-flex flex-col max-w-[85%] p-5\"\r\n [ngClass]=\"message.isMine\r\n ? 'bg-grayscale-10 rounded-tl-[16px] rounded-tr-[16px] rounded-br-none rounded-bl-[16px]'\r\n : 'bg-clairvoyant-100 rounded-tl-[16px] rounded-tr-[16px] rounded-br-[16px] rounded-bl-none'\"\r\n >\r\n <div class=\"flex items-center text-grayscale-100 font-open-sans gap-2\">\r\n <img\r\n class=\"rounded-[50%] overflow-hidden h-8 w-8 object-cover object-center bg-grayscale-0\"\r\n [src]=\"message.thumbnailUrl\"\r\n alt=\"Thumbnail\"\r\n />\r\n <span class=\"text-sm font-bold\">{{ message.senderName }}</span>\r\n @if (message.sentAt) {\r\n <span class=\"text-xs\">{{ message.sentAt | localizedDate: 'L LTS' | async }}</span>\r\n }\r\n </div>\r\n <p class=\"text-grayscale-100 font-open-sans text-xs\">{{ message.text }}</p>\r\n\r\n @if (message.attachmentUrl) {\r\n <div class=\"flex items-center gap-[10px] mt-3 select-none flex-wrap\">\r\n <span class=\"text-grayscale-100 font-open-sans text-xs font-bold\">{{ 'platform.angular_components.attachment' | translate }}:</span>\r\n <a\r\n class=\"bg-grayscale-0 rounded-medium px-3 no-underline\"\r\n [href]=\"message.attachmentUrl\"\r\n [download]=\"fileName\"\r\n >{{ fileName }}</a\r\n >\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, DestroyRef, ElementRef, Input, QueryList, ViewChildren, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { ChatMessage } from './types/chat-message';\r\n\r\nimport { ChatMessageComponent as ChatMessageComponent_1 } from './components/chat-message/chat-message.component';\r\n\r\n/**\r\n * @description Componente de interface de chat que exibe uma lista de mensagens\r\n * e faz scroll automático até a última mensagem sempre que novas são adicionadas.\r\n * Renderiza cada mensagem via {@link ChatMessageComponent}.\r\n *\r\n * @example\r\n * ```html\r\n * <s-chat [messages]=\"conversaMensagens\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-chat',\r\n templateUrl: './chat.component.html',\r\n standalone: true,\r\n imports: [ChatMessageComponent_1],\r\n})\r\nexport class ChatComponent implements AfterViewInit {\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /**\r\n * @description Lista de mensagens exibidas no chat.\r\n * Cada item é do tipo {@link ChatMessage}, contendo texto, remetente e demais metadados.\r\n *\r\n * @default []\r\n */\r\n @Input()\r\n public messages: ChatMessage[] = [];\r\n\r\n @ViewChildren('messageElements', { read: ElementRef })\r\n private readonly messageElements: null | QueryList<ElementRef<HTMLElement>> = null;\r\n\r\n public ngAfterViewInit(): void {\r\n this.scrollToBottom();\r\n\r\n this.messageElements?.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\r\n this.scrollToBottom();\r\n });\r\n }\r\n\r\n private scrollToBottom(): void {\r\n this.messageElements?.last?.nativeElement.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n}\r\n","<div class=\"min-h-[500px] overflow-auto\">\r\n @for (message of messages; track message) {\r\n <s-chat-message\r\n #messageElements\r\n [message]=\"message\"\r\n >\r\n </s-chat-message>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { ChatComponent } from './chat.component';\r\n\r\n@NgModule({\r\n imports: [TranslateModule.forChild(), ChatComponent],\r\n exports: [ChatComponent],\r\n})\r\nexport class ChatModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ChatMessageComponent_1"],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { forwardRef, Component, Input, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/forms';
3
+ import * as i1 from '@angular/forms';
4
4
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
- import * as i1 from '@angular/common';
6
- import { CommonModule } from '@angular/common';
7
5
 
8
6
  /**
9
7
  * @description Componente de lista de checkboxes hierárquica, com suporte a estados
@@ -127,13 +125,13 @@ class CheckboxListComponent {
127
125
  }
128
126
  }
129
127
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
130
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CheckboxListComponent, selector: "s-checkbox-list", inputs: { data: "data" }, providers: [
128
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CheckboxListComponent, isStandalone: true, selector: "s-checkbox-list", inputs: { data: "data" }, providers: [
131
129
  {
132
130
  provide: NG_VALUE_ACCESSOR,
133
131
  useExisting: forwardRef(() => CheckboxListComponent),
134
132
  multi: true,
135
133
  },
136
- ], ngImport: i0, template: "<div class=\"checkbox\">\n <label>\n <div\n class=\"checkbox-wrapper\"\n [class.checkbox-wrapper--disabled]=\"state.disabled\"\n [class.checkbox-wrapper-inline]=\"renderType === 'inline'\"\n [class.checkbox-wrapper-block]=\"renderType === 'block'\"\n >\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [disabled]=\"state.disabled\"\n [ngClass]=\"{\n 'checkbox-input--checked': state.checked,\n 'checkbox-input--indeterminate': state.indeterminate,\n }\"\n (change)=\"onCheckboxChange()\"\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\n [attr.aria-disabled]=\"state.disabled\"\n />\n {{ data.label }}\n </div>\n </label>\n <div\n *ngIf=\"data.children && data.children.length\"\n class=\"checkbox-children\"\n >\n <s-checkbox-list\n *ngFor=\"let child of data.children\"\n [data]=\"child\"\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\n (ngModelChange)=\"updateParent()\"\n >\n </s-checkbox-list>\n </div>\n</div>\n", styles: [".checkbox{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.checkbox .checkbox-wrapper{color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;gap:12px}.checkbox .checkbox-wrapper-inline{align-items:center}.checkbox .checkbox-wrapper-block{flex-direction:column-reverse}.checkbox .checkbox-wrapper .checkbox-input{appearance:none;background-color:#fff;border:1px solid #c1c1cc;border-radius:4px;cursor:pointer;flex-shrink:0;height:20px;width:20px;position:relative}.checkbox .checkbox-wrapper .checkbox-input--checked{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--checked:after{border:solid white;border-width:0 2px 2px 0;content:\"\";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.checkbox .checkbox-wrapper .checkbox-input--indeterminate{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--indeterminate:after{background-color:#fff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}.checkbox .checkbox-wrapper:not(.checkbox-wrapper--disabled) .checkbox-input:not(.checkbox-input--checked):hover{background-color:#e5eaea;border-color:#ccc}.checkbox .checkbox-wrapper--disabled{opacity:.5;cursor:auto}.checkbox .checkbox-children{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxListComponent, selector: "s-checkbox-list", inputs: ["data"] }] });
134
+ ], ngImport: i0, template: "<div class=\"flex flex-col gap-[10px] mb-[10px]\">\r\n <label>\r\n <div\r\n class=\"flex text-grayscale-90 font-open-sans text-sm gap-3\"\r\n [class.items-center]=\"renderType === 'inline'\"\r\n [class.flex-col-reverse]=\"renderType === 'block'\"\r\n [class.opacity-50]=\"state.disabled\"\r\n [class.cursor-auto]=\"state.disabled\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-input appearance-none border rounded-medium cursor-pointer shrink-0 h-5 w-5 relative\"\r\n [class.bg-grayscale-0]=\"!state.checked && !state.indeterminate\"\r\n [class.border-grayscale-30]=\"!state.checked && !state.indeterminate\"\r\n [class.bg-criticality-blue]=\"state.checked || state.indeterminate\"\r\n [class.border-criticality-blue]=\"state.checked || state.indeterminate\"\r\n [class.checkbox-input--checked]=\"state.checked\"\r\n [class.checkbox-input--indeterminate]=\"state.indeterminate\"\r\n [class.hover:bg-hippie-blue-50]=\"!state.disabled && !state.checked && !state.indeterminate\"\r\n [disabled]=\"state.disabled\"\r\n (change)=\"onCheckboxChange()\"\r\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\r\n [attr.aria-disabled]=\"state.disabled\"\r\n />\r\n {{ data.label }}\r\n </div>\r\n </label>\r\n @if (data.children && data.children.length) {\r\n <div class=\"ml-5\">\r\n @for (child of data.children; track child) {\r\n <s-checkbox-list\r\n [data]=\"child\"\r\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\r\n (ngModelChange)=\"updateParent()\"\r\n >\r\n </s-checkbox-list>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".checkbox-input--checked:after{border:solid white;border-width:0 2px 2px 0;content:\"\";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.checkbox-input--indeterminate:after{background-color:#fff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}\n"], dependencies: [{ kind: "component", type: CheckboxListComponent, selector: "s-checkbox-list", inputs: ["data"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
137
135
  }
138
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListComponent, decorators: [{
139
137
  type: Component,
@@ -143,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
143
141
  useExisting: forwardRef(() => CheckboxListComponent),
144
142
  multi: true,
145
143
  },
146
- ], template: "<div class=\"checkbox\">\n <label>\n <div\n class=\"checkbox-wrapper\"\n [class.checkbox-wrapper--disabled]=\"state.disabled\"\n [class.checkbox-wrapper-inline]=\"renderType === 'inline'\"\n [class.checkbox-wrapper-block]=\"renderType === 'block'\"\n >\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [disabled]=\"state.disabled\"\n [ngClass]=\"{\n 'checkbox-input--checked': state.checked,\n 'checkbox-input--indeterminate': state.indeterminate,\n }\"\n (change)=\"onCheckboxChange()\"\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\n [attr.aria-disabled]=\"state.disabled\"\n />\n {{ data.label }}\n </div>\n </label>\n <div\n *ngIf=\"data.children && data.children.length\"\n class=\"checkbox-children\"\n >\n <s-checkbox-list\n *ngFor=\"let child of data.children\"\n [data]=\"child\"\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\n (ngModelChange)=\"updateParent()\"\n >\n </s-checkbox-list>\n </div>\n</div>\n", styles: [".checkbox{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.checkbox .checkbox-wrapper{color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;gap:12px}.checkbox .checkbox-wrapper-inline{align-items:center}.checkbox .checkbox-wrapper-block{flex-direction:column-reverse}.checkbox .checkbox-wrapper .checkbox-input{appearance:none;background-color:#fff;border:1px solid #c1c1cc;border-radius:4px;cursor:pointer;flex-shrink:0;height:20px;width:20px;position:relative}.checkbox .checkbox-wrapper .checkbox-input--checked{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--checked:after{border:solid white;border-width:0 2px 2px 0;content:\"\";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.checkbox .checkbox-wrapper .checkbox-input--indeterminate{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--indeterminate:after{background-color:#fff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}.checkbox .checkbox-wrapper:not(.checkbox-wrapper--disabled) .checkbox-input:not(.checkbox-input--checked):hover{background-color:#e5eaea;border-color:#ccc}.checkbox .checkbox-wrapper--disabled{opacity:.5;cursor:auto}.checkbox .checkbox-children{margin-left:20px}\n"] }]
144
+ ], standalone: true, imports: [CheckboxListComponent, FormsModule], template: "<div class=\"flex flex-col gap-[10px] mb-[10px]\">\r\n <label>\r\n <div\r\n class=\"flex text-grayscale-90 font-open-sans text-sm gap-3\"\r\n [class.items-center]=\"renderType === 'inline'\"\r\n [class.flex-col-reverse]=\"renderType === 'block'\"\r\n [class.opacity-50]=\"state.disabled\"\r\n [class.cursor-auto]=\"state.disabled\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-input appearance-none border rounded-medium cursor-pointer shrink-0 h-5 w-5 relative\"\r\n [class.bg-grayscale-0]=\"!state.checked && !state.indeterminate\"\r\n [class.border-grayscale-30]=\"!state.checked && !state.indeterminate\"\r\n [class.bg-criticality-blue]=\"state.checked || state.indeterminate\"\r\n [class.border-criticality-blue]=\"state.checked || state.indeterminate\"\r\n [class.checkbox-input--checked]=\"state.checked\"\r\n [class.checkbox-input--indeterminate]=\"state.indeterminate\"\r\n [class.hover:bg-hippie-blue-50]=\"!state.disabled && !state.checked && !state.indeterminate\"\r\n [disabled]=\"state.disabled\"\r\n (change)=\"onCheckboxChange()\"\r\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\r\n [attr.aria-disabled]=\"state.disabled\"\r\n />\r\n {{ data.label }}\r\n </div>\r\n </label>\r\n @if (data.children && data.children.length) {\r\n <div class=\"ml-5\">\r\n @for (child of data.children; track child) {\r\n <s-checkbox-list\r\n [data]=\"child\"\r\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\r\n (ngModelChange)=\"updateParent()\"\r\n >\r\n </s-checkbox-list>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [".checkbox-input--checked:after{border:solid white;border-width:0 2px 2px 0;content:\"\";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.checkbox-input--indeterminate:after{background-color:#fff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}\n"] }]
147
145
  }], propDecorators: { data: [{
148
146
  type: Input,
149
147
  args: [{ required: true }]
@@ -151,14 +149,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
151
149
 
152
150
  class CheckboxListModule {
153
151
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
154
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListModule, declarations: [CheckboxListComponent], imports: [CommonModule, FormsModule], exports: [CheckboxListComponent] });
155
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListModule, imports: [CommonModule, FormsModule] });
152
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListModule, imports: [CheckboxListComponent], exports: [CheckboxListComponent] });
153
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListModule, imports: [CheckboxListComponent] });
156
154
  }
157
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxListModule, decorators: [{
158
156
  type: NgModule,
159
157
  args: [{
160
- imports: [CommonModule, FormsModule],
161
- declarations: [CheckboxListComponent],
158
+ imports: [CheckboxListComponent],
162
159
  exports: [CheckboxListComponent],
163
160
  }]
164
161
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-checkbox-list.mjs","sources":["../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.component.ts","../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.component.html","../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.module.ts","../../projects/angular-components/checkbox-list/src/seniorsistemas-angular-components-checkbox-list.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CheckboxListData } from './models/checkbox-list-data';\nimport { CheckboxListChildren, CheckboxListState } from './models/checkbox-list-state';\n\n/**\n * @description Componente de lista de checkboxes hierárquica, com suporte a estados\n * pai/filho e indeterminado. Ao marcar/desmarcar o item pai, todos os filhos são\n * afetados, e o estado do pai é calculado automaticamente com base nos filhos.\n * Implementa {@link ControlValueAccessor} para uso em formulários Angular.\n *\n * @example\n * ```html\n * <s-checkbox-list\n * formControlName=\"permissoes\"\n * [data]=\"estruturaPermissoes\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-checkbox-list',\n templateUrl: './checkbox-list.component.html',\n styleUrls: ['./checkbox-list.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxListComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxListComponent implements ControlValueAccessor {\n /**\n * @description Estrutura de dados que define o item raiz e seus filhos.\n * Cada `CheckboxListData` pode conter o label, estado inicial e uma lista de filhos recursiva.\n * Campo obrigatório.\n */\n @Input({ required: true })\n public data!: CheckboxListData;\n\n public state: CheckboxListState = {\n checked: false,\n indeterminate: false,\n children: {},\n };\n\n private _onChange: (value: CheckboxListState) => void = () => {};\n private _onTouched: () => void = () => {};\n\n public writeValue(value: CheckboxListState): void {\n if (value) {\n this.state = value;\n } else {\n this.state = {\n checked: false,\n indeterminate: false,\n disabled: false,\n children: this._initializeChildren(this.data),\n };\n }\n }\n\n public get renderType() {\n return this.data.renderType ?? 'inline';\n }\n\n public registerOnChange(onChange: (value: CheckboxListState) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n private _initializeChildren(item: CheckboxListData): CheckboxListChildren {\n const childrenState: CheckboxListChildren = {};\n if (item.children) {\n item.children.forEach((child) => {\n childrenState[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n });\n }\n return childrenState;\n }\n\n public getCheckboxState(item: CheckboxListChildren | undefined, label: string) {\n if (item) {\n return item[label];\n } else {\n return {};\n }\n }\n\n public updateParent(): void {\n const _getProperty = (obj: CheckboxListChildren | undefined, field: string) => {\n if (obj) {\n return obj[field];\n } else {\n return null;\n }\n };\n if (this.data.children && this.data.children.length > 0) {\n const allChecked = this.data.children.every(\n (child) => _getProperty(this.state.children, child.label)?.checked,\n );\n const someChecked = this.data.children.some(\n (child) =>\n _getProperty(this.state.children, child.label)?.checked ||\n _getProperty(this.state.children, child.label)?.indeterminate,\n );\n this.state.checked = allChecked;\n this.state.indeterminate = !allChecked && someChecked;\n }\n this._onChange(this.state);\n this._onTouched();\n }\n\n public onCheckboxChange(): void {\n if (this.state.disabled) {\n return;\n }\n\n this.state.checked = !this.state.checked;\n this.state.indeterminate = false;\n this._toggleChildrenCheck(this.data, this.state, this.state.checked);\n this._onChange(this.state);\n this._onTouched();\n }\n\n private _toggleChildrenCheck(item: CheckboxListData, state: CheckboxListState, checked: boolean): void {\n if (item.children?.length) {\n item.children.forEach((child) => {\n if (state.children && !state.children[child.label]) {\n state.children[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n }\n if (state.children) {\n state.children[child.label].checked = checked;\n state.children[child.label].indeterminate = false;\n }\n if (child.children && state.children) {\n this._toggleChildrenCheck(child, state.children[child.label], checked);\n }\n });\n }\n }\n}\n\n","<div class=\"checkbox\">\n <label>\n <div\n class=\"checkbox-wrapper\"\n [class.checkbox-wrapper--disabled]=\"state.disabled\"\n [class.checkbox-wrapper-inline]=\"renderType === 'inline'\"\n [class.checkbox-wrapper-block]=\"renderType === 'block'\"\n >\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [disabled]=\"state.disabled\"\n [ngClass]=\"{\n 'checkbox-input--checked': state.checked,\n 'checkbox-input--indeterminate': state.indeterminate,\n }\"\n (change)=\"onCheckboxChange()\"\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\n [attr.aria-disabled]=\"state.disabled\"\n />\n {{ data.label }}\n </div>\n </label>\n <div\n *ngIf=\"data.children && data.children.length\"\n class=\"checkbox-children\"\n >\n <s-checkbox-list\n *ngFor=\"let child of data.children\"\n [data]=\"child\"\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\n (ngModelChange)=\"updateParent()\"\n >\n </s-checkbox-list>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxListComponent } from './checkbox-list.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [CheckboxListComponent],\n exports: [CheckboxListComponent],\n})\nexport class CheckboxListModule { }\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-checkbox-list.mjs","sources":["../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.component.ts","../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.component.html","../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.module.ts","../../projects/angular-components/checkbox-list/src/seniorsistemas-angular-components-checkbox-list.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { CheckboxListData } from './models/checkbox-list-data';\r\nimport { CheckboxListChildren, CheckboxListState } from './models/checkbox-list-state';\r\n\r\n/**\r\n * @description Componente de lista de checkboxes hierárquica, com suporte a estados\r\n * pai/filho e indeterminado. Ao marcar/desmarcar o item pai, todos os filhos são\r\n * afetados, e o estado do pai é calculado automaticamente com base nos filhos.\r\n * Implementa {@link ControlValueAccessor} para uso em formulários Angular.\r\n *\r\n * @example\r\n * ```html\r\n * <s-checkbox-list\r\n * formControlName=\"permissoes\"\r\n * [data]=\"estruturaPermissoes\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-checkbox-list',\r\n templateUrl: './checkbox-list.component.html',\r\n styles: [`\r\n .checkbox-input--checked::after {\r\n border: solid white;\r\n border-width: 0 2px 2px 0;\r\n content: \"\";\r\n height: 12px;\r\n left: 6px;\r\n position: absolute;\r\n top: 2px;\r\n transform: rotate(45deg);\r\n width: 6px;\r\n }\r\n .checkbox-input--indeterminate::after {\r\n background-color: white;\r\n content: \"\";\r\n height: 2px;\r\n left: 50%;\r\n position: absolute;\r\n top: 50%;\r\n transform: translate(-50%, -50%);\r\n width: 10px;\r\n }\r\n `],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxListComponent),\r\n multi: true,\r\n },\r\n ],\r\n standalone: true,\r\n imports: [CheckboxListComponent, FormsModule],\r\n})\r\nexport class CheckboxListComponent implements ControlValueAccessor {\r\n /**\r\n * @description Estrutura de dados que define o item raiz e seus filhos.\r\n * Cada `CheckboxListData` pode conter o label, estado inicial e uma lista de filhos recursiva.\r\n * Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public data!: CheckboxListData;\r\n\r\n public state: CheckboxListState = {\r\n checked: false,\r\n indeterminate: false,\r\n children: {},\r\n };\r\n\r\n private _onChange: (value: CheckboxListState) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n\r\n public writeValue(value: CheckboxListState): void {\r\n if (value) {\r\n this.state = value;\r\n } else {\r\n this.state = {\r\n checked: false,\r\n indeterminate: false,\r\n disabled: false,\r\n children: this._initializeChildren(this.data),\r\n };\r\n }\r\n }\r\n\r\n public get renderType() {\r\n return this.data.renderType ?? 'inline';\r\n }\r\n\r\n public registerOnChange(onChange: (value: CheckboxListState) => void): void {\r\n this._onChange = onChange;\r\n }\r\n\r\n public registerOnTouched(onTouched: () => void): void {\r\n this._onTouched = onTouched;\r\n }\r\n\r\n private _initializeChildren(item: CheckboxListData): CheckboxListChildren {\r\n const childrenState: CheckboxListChildren = {};\r\n if (item.children) {\r\n item.children.forEach((child) => {\r\n childrenState[child.label] = {\r\n checked: false,\r\n indeterminate: false,\r\n children: this._initializeChildren(child),\r\n };\r\n });\r\n }\r\n return childrenState;\r\n }\r\n\r\n public getCheckboxState(item: CheckboxListChildren | undefined, label: string) {\r\n if (item) {\r\n return item[label];\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n public updateParent(): void {\r\n const _getProperty = (obj: CheckboxListChildren | undefined, field: string) => {\r\n if (obj) {\r\n return obj[field];\r\n } else {\r\n return null;\r\n }\r\n };\r\n if (this.data.children && this.data.children.length > 0) {\r\n const allChecked = this.data.children.every(\r\n (child) => _getProperty(this.state.children, child.label)?.checked,\r\n );\r\n const someChecked = this.data.children.some(\r\n (child) =>\r\n _getProperty(this.state.children, child.label)?.checked ||\r\n _getProperty(this.state.children, child.label)?.indeterminate,\r\n );\r\n this.state.checked = allChecked;\r\n this.state.indeterminate = !allChecked && someChecked;\r\n }\r\n this._onChange(this.state);\r\n this._onTouched();\r\n }\r\n\r\n public onCheckboxChange(): void {\r\n if (this.state.disabled) {\r\n return;\r\n }\r\n\r\n this.state.checked = !this.state.checked;\r\n this.state.indeterminate = false;\r\n this._toggleChildrenCheck(this.data, this.state, this.state.checked);\r\n this._onChange(this.state);\r\n this._onTouched();\r\n }\r\n\r\n private _toggleChildrenCheck(item: CheckboxListData, state: CheckboxListState, checked: boolean): void {\r\n if (item.children?.length) {\r\n item.children.forEach((child) => {\r\n if (state.children && !state.children[child.label]) {\r\n state.children[child.label] = {\r\n checked: false,\r\n indeterminate: false,\r\n children: this._initializeChildren(child),\r\n };\r\n }\r\n if (state.children) {\r\n state.children[child.label].checked = checked;\r\n state.children[child.label].indeterminate = false;\r\n }\r\n if (child.children && state.children) {\r\n this._toggleChildrenCheck(child, state.children[child.label], checked);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-[10px] mb-[10px]\">\r\n <label>\r\n <div\r\n class=\"flex text-grayscale-90 font-open-sans text-sm gap-3\"\r\n [class.items-center]=\"renderType === 'inline'\"\r\n [class.flex-col-reverse]=\"renderType === 'block'\"\r\n [class.opacity-50]=\"state.disabled\"\r\n [class.cursor-auto]=\"state.disabled\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n class=\"checkbox-input appearance-none border rounded-medium cursor-pointer shrink-0 h-5 w-5 relative\"\r\n [class.bg-grayscale-0]=\"!state.checked && !state.indeterminate\"\r\n [class.border-grayscale-30]=\"!state.checked && !state.indeterminate\"\r\n [class.bg-criticality-blue]=\"state.checked || state.indeterminate\"\r\n [class.border-criticality-blue]=\"state.checked || state.indeterminate\"\r\n [class.checkbox-input--checked]=\"state.checked\"\r\n [class.checkbox-input--indeterminate]=\"state.indeterminate\"\r\n [class.hover:bg-hippie-blue-50]=\"!state.disabled && !state.checked && !state.indeterminate\"\r\n [disabled]=\"state.disabled\"\r\n (change)=\"onCheckboxChange()\"\r\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\r\n [attr.aria-disabled]=\"state.disabled\"\r\n />\r\n {{ data.label }}\r\n </div>\r\n </label>\r\n @if (data.children && data.children.length) {\r\n <div class=\"ml-5\">\r\n @for (child of data.children; track child) {\r\n <s-checkbox-list\r\n [data]=\"child\"\r\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\r\n (ngModelChange)=\"updateParent()\"\r\n >\r\n </s-checkbox-list>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { CheckboxListComponent } from './checkbox-list.component';\r\n\r\n@NgModule({\r\n imports: [CheckboxListComponent],\r\n exports: [CheckboxListComponent],\r\n})\r\nexport class CheckboxListModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
2
  import { model, input, output, signal, computed, forwardRef, Component } from '@angular/core';
4
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
@@ -85,17 +84,17 @@ class CheckboxComponent {
85
84
  useExisting: forwardRef(() => CheckboxComponent),
86
85
  multi: true,
87
86
  },
88
- ], ngImport: i0, template: "<div\n class=\"group flex cursor-pointer select-none gap-3 outline-none\"\n [class.cursor-not-allowed]=\"disabled()\"\n tabindex=\"0\"\n role=\"checkbox\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || label() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n (click)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n (blur)=\"onBlur()\"\n>\n <div\n class=\"rounded flex h-5 w-5 flex-shrink-0 items-center justify-center border border-grayscale-30\n transition-all duration-200 hover:border-grayscale-50\n group-focus-visible:ring-2 group-focus-visible:ring-primary group-focus-visible:ring-offset-1\"\n [class.bg-primary]=\"checked() || isIndeterminate()\"\n [class.hover:bg-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.bg-grayscale-0]=\"!checked() && !isIndeterminate()\"\n [class.border-primary]=\"checked() || isIndeterminate()\"\n [class.hover:border-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.opacity-50]=\"disabled()\"\n >\n @if (isIndeterminate()) {\n <svg\n class=\"h-3 w-3 text-grayscale-0\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 12h12\" />\n </svg>\n } @else {\n @if (checked()) {\n <svg\n class=\"text-white h-3 w-3\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M4.5 12.75l5.5 5.5 9.5-9.5\" />\n </svg>\n }\n }\n </div>\n\n @if (label()) {\n <span\n [class.opacity-50]=\"disabled()\"\n class=\"text-grayscale-90 ml-2\"\n aria-hidden=\"true\"\n >\n {{ label() }}\n </span>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] });
87
+ ], ngImport: i0, template: "<div\n class=\"group flex cursor-pointer select-none gap-3 outline-none\"\n [class.cursor-not-allowed]=\"disabled()\"\n tabindex=\"0\"\n role=\"checkbox\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || label() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n (click)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n (blur)=\"onBlur()\"\n>\n <div\n class=\"rounded flex h-5 w-5 flex-shrink-0 items-center justify-center border border-grayscale-30\n transition-all duration-200 hover:border-grayscale-50\n group-focus-visible:ring-2 group-focus-visible:ring-primary group-focus-visible:ring-offset-1\"\n [class.bg-primary]=\"checked() || isIndeterminate()\"\n [class.hover:bg-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.bg-grayscale-0]=\"!checked() && !isIndeterminate()\"\n [class.border-primary]=\"checked() || isIndeterminate()\"\n [class.hover:border-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.opacity-50]=\"disabled()\"\n >\n @if (isIndeterminate()) {\n <svg\n class=\"h-3 w-3 text-grayscale-0\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 12h12\" />\n </svg>\n } @else {\n @if (checked()) {\n <svg\n class=\"text-grayscale-0 h-3 w-3\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M4.5 12.75l5.5 5.5 9.5-9.5\" />\n </svg>\n }\n }\n </div>\n\n @if (label()) {\n <span\n [class.opacity-50]=\"disabled()\"\n class=\"text-grayscale-90 ml-2\"\n aria-hidden=\"true\"\n >\n {{ label() }}\n </span>\n }\n</div>\n" });
89
88
  }
90
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxComponent, decorators: [{
91
90
  type: Component,
92
- args: [{ selector: 's-checkbox', standalone: true, imports: [CommonModule], providers: [
91
+ args: [{ selector: 's-checkbox', standalone: true, imports: [], providers: [
93
92
  {
94
93
  provide: NG_VALUE_ACCESSOR,
95
94
  useExisting: forwardRef(() => CheckboxComponent),
96
95
  multi: true,
97
96
  },
98
- ], template: "<div\n class=\"group flex cursor-pointer select-none gap-3 outline-none\"\n [class.cursor-not-allowed]=\"disabled()\"\n tabindex=\"0\"\n role=\"checkbox\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || label() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n (click)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n (blur)=\"onBlur()\"\n>\n <div\n class=\"rounded flex h-5 w-5 flex-shrink-0 items-center justify-center border border-grayscale-30\n transition-all duration-200 hover:border-grayscale-50\n group-focus-visible:ring-2 group-focus-visible:ring-primary group-focus-visible:ring-offset-1\"\n [class.bg-primary]=\"checked() || isIndeterminate()\"\n [class.hover:bg-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.bg-grayscale-0]=\"!checked() && !isIndeterminate()\"\n [class.border-primary]=\"checked() || isIndeterminate()\"\n [class.hover:border-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.opacity-50]=\"disabled()\"\n >\n @if (isIndeterminate()) {\n <svg\n class=\"h-3 w-3 text-grayscale-0\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 12h12\" />\n </svg>\n } @else {\n @if (checked()) {\n <svg\n class=\"text-white h-3 w-3\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M4.5 12.75l5.5 5.5 9.5-9.5\" />\n </svg>\n }\n }\n </div>\n\n @if (label()) {\n <span\n [class.opacity-50]=\"disabled()\"\n class=\"text-grayscale-90 ml-2\"\n aria-hidden=\"true\"\n >\n {{ label() }}\n </span>\n }\n</div>\n" }]
97
+ ], template: "<div\n class=\"group flex cursor-pointer select-none gap-3 outline-none\"\n [class.cursor-not-allowed]=\"disabled()\"\n tabindex=\"0\"\n role=\"checkbox\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || label() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n (click)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n (blur)=\"onBlur()\"\n>\n <div\n class=\"rounded flex h-5 w-5 flex-shrink-0 items-center justify-center border border-grayscale-30\n transition-all duration-200 hover:border-grayscale-50\n group-focus-visible:ring-2 group-focus-visible:ring-primary group-focus-visible:ring-offset-1\"\n [class.bg-primary]=\"checked() || isIndeterminate()\"\n [class.hover:bg-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.bg-grayscale-0]=\"!checked() && !isIndeterminate()\"\n [class.border-primary]=\"checked() || isIndeterminate()\"\n [class.hover:border-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.opacity-50]=\"disabled()\"\n >\n @if (isIndeterminate()) {\n <svg\n class=\"h-3 w-3 text-grayscale-0\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 12h12\" />\n </svg>\n } @else {\n @if (checked()) {\n <svg\n class=\"text-grayscale-0 h-3 w-3\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M4.5 12.75l5.5 5.5 9.5-9.5\" />\n </svg>\n }\n }\n </div>\n\n @if (label()) {\n <span\n [class.opacity-50]=\"disabled()\"\n class=\"text-grayscale-90 ml-2\"\n aria-hidden=\"true\"\n >\n {{ label() }}\n </span>\n }\n</div>\n" }]
99
98
  }] });
100
99
 
101
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-checkbox.mjs","sources":["../../projects/angular-components/checkbox/src/lib/checkbox/checkbox.component.ts","../../projects/angular-components/checkbox/src/lib/checkbox/checkbox.component.html","../../projects/angular-components/checkbox/src/seniorsistemas-angular-components-checkbox.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, computed, forwardRef, input, model, output, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * @description Componente de caixa de seleção (checkbox) com suporte a três estados:\n * marcado, desmarcado e indeterminado. Implementa {@link ControlValueAccessor} para\n * integração com Reactive Forms e Template-driven Forms do Angular.\n *\n * @example\n * ```html\n * <s-checkbox\n * formControlName=\"aceito\"\n * label=\"Aceito os termos de uso\"\n * [indeterminate]=\"parcialmenteSelecionado\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-checkbox',\n standalone: true,\n imports: [CommonModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n /** @description Controla o estado desabilitado via two-way binding. @default false */\n public disabled = model(false);\n /** @description Valor marcado/desmarcado do checkbox via two-way binding. @default false */\n public checked = model(false);\n /** @description Quando `true`, o checkbox inicia no estado indeterminado (traço) até a primeira interação do usuário. @default false */\n public indeterminate = input(false);\n /** @description Texto do label exibido ao lado do checkbox. @default '' */\n public label = input<string>('');\n /** @description Rótulo acessível para leitores de tela. Opcional, por padrão usa o valor de `label`. */\n public ariaLabel = input<string | undefined>(undefined);\n /** @description ID do elemento que descreve o checkbox (para usar `<label for=\"...\">`). Opcional. */\n public ariaLabelledBy = input<string | undefined>(undefined);\n\n /**\n * @description Emitido quando o valor do checkbox é alterado pelo usuário.\n * Emite o novo valor booleano (`true` para marcado, `false` para desmarcado).\n */\n public readonly checkedChange = output<boolean>();\n\n private _onChange: (value: boolean) => void = () => {};\n private _onTouched: () => void = () => {};\n private _hasUserInteracted = signal(false);\n\n /**\n * @description Computed que indica se o estado indeterminado deve ser exibido.\n * Retorna `true` enquanto `indeterminate` for `true` e o usuário não tiver interagido.\n */\n public readonly isIndeterminate = computed(() => this.indeterminate() && !this._hasUserInteracted());\n\n public toggle(): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.indeterminate() && !this._hasUserInteracted()) {\n this._hasUserInteracted.set(true);\n this.checked.set(true);\n this.emit(true);\n } else {\n const newValue = !this.checked();\n this.checked.set(newValue);\n this.emit(newValue);\n }\n }\n\n private emit(value: boolean): void {\n this._onChange(value);\n this.checkedChange.emit(value);\n }\n\n public writeValue(value: any): void {\n this.checked.set(!!value);\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled.set(disabled);\n }\n\n public onBlur(): void {\n this._onTouched();\n }\n}\n\n","<div\n class=\"group flex cursor-pointer select-none gap-3 outline-none\"\n [class.cursor-not-allowed]=\"disabled()\"\n tabindex=\"0\"\n role=\"checkbox\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || label() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n (click)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n (blur)=\"onBlur()\"\n>\n <div\n class=\"rounded flex h-5 w-5 flex-shrink-0 items-center justify-center border border-grayscale-30\n transition-all duration-200 hover:border-grayscale-50\n group-focus-visible:ring-2 group-focus-visible:ring-primary group-focus-visible:ring-offset-1\"\n [class.bg-primary]=\"checked() || isIndeterminate()\"\n [class.hover:bg-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.bg-grayscale-0]=\"!checked() && !isIndeterminate()\"\n [class.border-primary]=\"checked() || isIndeterminate()\"\n [class.hover:border-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.opacity-50]=\"disabled()\"\n >\n @if (isIndeterminate()) {\n <svg\n class=\"h-3 w-3 text-grayscale-0\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 12h12\" />\n </svg>\n } @else {\n @if (checked()) {\n <svg\n class=\"text-white h-3 w-3\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M4.5 12.75l5.5 5.5 9.5-9.5\" />\n </svg>\n }\n }\n </div>\n\n @if (label()) {\n <span\n [class.opacity-50]=\"disabled()\"\n class=\"text-grayscale-90 ml-2\"\n aria-hidden=\"true\"\n >\n {{ label() }}\n </span>\n }\n</div>\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-checkbox.mjs","sources":["../../projects/angular-components/checkbox/src/lib/checkbox/checkbox.component.ts","../../projects/angular-components/checkbox/src/lib/checkbox/checkbox.component.html","../../projects/angular-components/checkbox/src/seniorsistemas-angular-components-checkbox.ts"],"sourcesContent":["import { Component, computed, forwardRef, input, model, output, signal } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n/**\r\n * @description Componente de caixa de seleção (checkbox) com suporte a três estados:\r\n * marcado, desmarcado e indeterminado. Implementa {@link ControlValueAccessor} para\r\n * integração com Reactive Forms e Template-driven Forms do Angular.\r\n *\r\n * @example\r\n * ```html\r\n * <s-checkbox\r\n * formControlName=\"aceito\"\r\n * label=\"Aceito os termos de uso\"\r\n * [indeterminate]=\"parcialmenteSelecionado\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-checkbox',\r\n standalone: true,\r\n imports: [],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CheckboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n templateUrl: './checkbox.component.html',\r\n})\r\nexport class CheckboxComponent implements ControlValueAccessor {\r\n /** @description Controla o estado desabilitado via two-way binding. @default false */\r\n public disabled = model(false);\r\n /** @description Valor marcado/desmarcado do checkbox via two-way binding. @default false */\r\n public checked = model(false);\r\n /** @description Quando `true`, o checkbox inicia no estado indeterminado (traço) até a primeira interação do usuário. @default false */\r\n public indeterminate = input(false);\r\n /** @description Texto do label exibido ao lado do checkbox. @default '' */\r\n public label = input<string>('');\r\n /** @description Rótulo acessível para leitores de tela. Opcional, por padrão usa o valor de `label`. */\r\n public ariaLabel = input<string | undefined>(undefined);\r\n /** @description ID do elemento que descreve o checkbox (para usar `<label for=\"...\">`). Opcional. */\r\n public ariaLabelledBy = input<string | undefined>(undefined);\r\n\r\n /**\r\n * @description Emitido quando o valor do checkbox é alterado pelo usuário.\r\n * Emite o novo valor booleano (`true` para marcado, `false` para desmarcado).\r\n */\r\n public readonly checkedChange = output<boolean>();\r\n\r\n private _onChange: (value: boolean) => void = () => {};\r\n private _onTouched: () => void = () => {};\r\n private _hasUserInteracted = signal(false);\r\n\r\n /**\r\n * @description Computed que indica se o estado indeterminado deve ser exibido.\r\n * Retorna `true` enquanto `indeterminate` for `true` e o usuário não tiver interagido.\r\n */\r\n public readonly isIndeterminate = computed(() => this.indeterminate() && !this._hasUserInteracted());\r\n\r\n public toggle(): void {\r\n if (this.disabled()) {\r\n return;\r\n }\r\n\r\n if (this.indeterminate() && !this._hasUserInteracted()) {\r\n this._hasUserInteracted.set(true);\r\n this.checked.set(true);\r\n this.emit(true);\r\n } else {\r\n const newValue = !this.checked();\r\n this.checked.set(newValue);\r\n this.emit(newValue);\r\n }\r\n }\r\n\r\n private emit(value: boolean): void {\r\n this._onChange(value);\r\n this.checkedChange.emit(value);\r\n }\r\n\r\n public writeValue(value: any): void {\r\n this.checked.set(!!value);\r\n }\r\n\r\n public registerOnChange(onChange: (value: boolean) => void): void {\r\n this._onChange = onChange;\r\n }\r\n\r\n public registerOnTouched(onTouched: () => void): void {\r\n this._onTouched = onTouched;\r\n }\r\n\r\n public setDisabledState(disabled: boolean): void {\r\n this.disabled.set(disabled);\r\n }\r\n\r\n public onBlur(): void {\r\n this._onTouched();\r\n }\r\n}\r\n","<div\n class=\"group flex cursor-pointer select-none gap-3 outline-none\"\n [class.cursor-not-allowed]=\"disabled()\"\n tabindex=\"0\"\n role=\"checkbox\"\n [attr.aria-checked]=\"isIndeterminate() ? 'mixed' : checked()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel() || label() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n (click)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n (blur)=\"onBlur()\"\n>\n <div\n class=\"rounded flex h-5 w-5 flex-shrink-0 items-center justify-center border border-grayscale-30\n transition-all duration-200 hover:border-grayscale-50\n group-focus-visible:ring-2 group-focus-visible:ring-primary group-focus-visible:ring-offset-1\"\n [class.bg-primary]=\"checked() || isIndeterminate()\"\n [class.hover:bg-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.bg-grayscale-0]=\"!checked() && !isIndeterminate()\"\n [class.border-primary]=\"checked() || isIndeterminate()\"\n [class.hover:border-tarawera-500]=\"checked() || isIndeterminate()\"\n [class.opacity-50]=\"disabled()\"\n >\n @if (isIndeterminate()) {\n <svg\n class=\"h-3 w-3 text-grayscale-0\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 12h12\" />\n </svg>\n } @else {\n @if (checked()) {\n <svg\n class=\"text-grayscale-0 h-3 w-3\"\n fill=\"none\"\n stroke=\"white\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path d=\"M4.5 12.75l5.5 5.5 9.5-9.5\" />\n </svg>\n }\n }\n </div>\n\n @if (label()) {\n <span\n [class.opacity-50]=\"disabled()\"\n class=\"text-grayscale-90 ml-2\"\n aria-hidden=\"true\"\n >\n {{ label() }}\n </span>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,17 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Component, Input, Output, inject, ChangeDetectorRef, forwardRef, ElementRef, ContentChildren, ViewChild, HostListener, NgModule } from '@angular/core';
3
- import * as i1$1 from '@angular/forms';
4
- import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
- import * as i2$1 from 'primeng/keyfilter';
6
- import { KeyFilterModule } from 'primeng/keyfilter';
7
3
  import { __decorate } from 'tslib';
8
- import { CheckDisabled } from '@seniorsistemas/angular-components/shared';
9
- import * as i1 from '@seniorsistemas/angular-components/tooltip';
10
- import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
11
- import * as i2 from '@angular/common';
12
- import { NgTemplateOutlet } from '@angular/common';
4
+ import * as i1 from '@angular/forms';
5
+ import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
6
+ import { KeyFilter } from 'primeng/keyfilter';
13
7
  import { TemplateDirective } from '@seniorsistemas/angular-components/template';
14
8
  import { randomHash, isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
9
+ import { CheckDisabled } from '@seniorsistemas/angular-components/shared';
10
+ import { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';
11
+ import { NgTemplateOutlet, NgClass } from '@angular/common';
15
12
 
16
13
  /**
17
14
  * @description Componente interno de item individual de chip, utilizado pelo {@link ChipsComponent}.
@@ -52,7 +49,7 @@ class ChipItemComponent {
52
49
  return this.objectField ? this.dataRender[this.objectField] || '' : this.dataRender || '';
53
50
  }
54
51
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipItemComponent, selector: "s-chip-item", inputs: { dataRender: "dataRender", objectField: "objectField", disabled: "disabled", templateRef: "templateRef", itemIndex: "itemIndex", showTooltip: "showTooltip", maxLengthRenderWithoutTooltip: "maxLengthRenderWithoutTooltip" }, outputs: { clickRemove: "clickRemove", chipClicked: "chipClicked" }, ngImport: i0, template: "<ng-template #itemRender>\n <div\n class=\"chip-item\"\n [class.chip-item-disabled]=\"disabled\"\n (click)=\"onChipClicked($event)\" \n [sTooltip]=\"_rawText\"\n [showDelay]=\"0\"\n [visible]=\"showTooltip ? _rawText.length > maxLengthRenderWithoutTooltip : false\">\n @if(templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: dataRender, text: _text }\">\n </ng-container>\n } @else {\n {{ _text }}\n }\n <i class=\"fas fa-times\" (click)=\"clickedRemove($event)\"></i>\n </div>\n</ng-template>\n\n\n@if(objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(!objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender\"></ng-container>\n}\n", styles: [".chip-item{border-radius:4px;border:1px solid #888b99;background-color:#eeebf2;word-break:break-word;font-size:12px;font-weight:400;text-align:center;display:flex;align-items:center;gap:8px;padding:0 6px}.chip-item i{cursor:pointer}.chip-item:hover:not(.chip-item-disabled){background:#c1c1cc}.chip-item-disabled{opacity:.5}.chip-item-disabled i{cursor:default}\n"], dependencies: [{ kind: "directive", type: i1.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipItemComponent, isStandalone: true, selector: "s-chip-item", inputs: { dataRender: "dataRender", objectField: "objectField", disabled: "disabled", templateRef: "templateRef", itemIndex: "itemIndex", showTooltip: "showTooltip", maxLengthRenderWithoutTooltip: "maxLengthRenderWithoutTooltip" }, outputs: { clickRemove: "clickRemove", chipClicked: "chipClicked" }, ngImport: i0, template: "<ng-template #itemRender>\n <div\n class=\"rounded-medium border border-grayscale-50 bg-grayscale-10 break-words text-xs text-center flex items-center gap-2 px-1.5\"\n [ngClass]=\"{ 'hover:bg-grayscale-30': !disabled, 'opacity-50': disabled }\"\n (click)=\"onChipClicked($event)\" \n [sTooltip]=\"_rawText\"\n [showDelay]=\"0\"\n [visible]=\"showTooltip ? _rawText.length > maxLengthRenderWithoutTooltip : false\">\n @if(templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: dataRender, text: _text }\">\n </ng-container>\n } @else {\n {{ _text }}\n }\n <i class=\"fas fa-times\" [ngClass]=\"{ 'cursor-pointer': !disabled, 'cursor-default': disabled }\" (click)=\"clickedRemove($event)\"></i>\n </div>\n</ng-template>\n\n\n@if(objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(!objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender\"></ng-container>\n}\n", dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef", "checkTruncatedText"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
56
53
  }
57
54
  __decorate([
58
55
  CheckDisabled()
@@ -62,7 +59,7 @@ __decorate([
62
59
  ], ChipItemComponent.prototype, "onChipClicked", null);
63
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipItemComponent, decorators: [{
64
61
  type: Component,
65
- args: [{ selector: 's-chip-item', template: "<ng-template #itemRender>\n <div\n class=\"chip-item\"\n [class.chip-item-disabled]=\"disabled\"\n (click)=\"onChipClicked($event)\" \n [sTooltip]=\"_rawText\"\n [showDelay]=\"0\"\n [visible]=\"showTooltip ? _rawText.length > maxLengthRenderWithoutTooltip : false\">\n @if(templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: dataRender, text: _text }\">\n </ng-container>\n } @else {\n {{ _text }}\n }\n <i class=\"fas fa-times\" (click)=\"clickedRemove($event)\"></i>\n </div>\n</ng-template>\n\n\n@if(objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(!objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender\"></ng-container>\n}\n", styles: [".chip-item{border-radius:4px;border:1px solid #888b99;background-color:#eeebf2;word-break:break-word;font-size:12px;font-weight:400;text-align:center;display:flex;align-items:center;gap:8px;padding:0 6px}.chip-item i{cursor:pointer}.chip-item:hover:not(.chip-item-disabled){background:#c1c1cc}.chip-item-disabled{opacity:.5}.chip-item-disabled i{cursor:default}\n"] }]
62
+ args: [{ selector: 's-chip-item', standalone: true, imports: [TooltipDirective, NgTemplateOutlet, NgClass], template: "<ng-template #itemRender>\n <div\n class=\"rounded-medium border border-grayscale-50 bg-grayscale-10 break-words text-xs text-center flex items-center gap-2 px-1.5\"\n [ngClass]=\"{ 'hover:bg-grayscale-30': !disabled, 'opacity-50': disabled }\"\n (click)=\"onChipClicked($event)\" \n [sTooltip]=\"_rawText\"\n [showDelay]=\"0\"\n [visible]=\"showTooltip ? _rawText.length > maxLengthRenderWithoutTooltip : false\">\n @if(templateRef) {\n <ng-container\n *ngTemplateOutlet=\"templateRef; context: { $implicit: dataRender, text: _text }\">\n </ng-container>\n } @else {\n {{ _text }}\n }\n <i class=\"fas fa-times\" [ngClass]=\"{ 'cursor-pointer': !disabled, 'cursor-default': disabled }\" (click)=\"clickedRemove($event)\"></i>\n </div>\n</ng-template>\n\n\n@if(objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(!objectField && !templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender;\"></ng-container>\n}\n\n@if(templateRef) {\n <ng-container *ngTemplateOutlet=\"itemRender\"></ng-container>\n}\n" }]
66
63
  }], propDecorators: { dataRender: [{
67
64
  type: Input,
68
65
  args: [{ required: true }]
@@ -278,13 +275,13 @@ class ChipsComponent {
278
275
  this.onTouched(this.value);
279
276
  }
280
277
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
281
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipsComponent, selector: "s-chips", inputs: { disabled: "disabled", field: "field", value: "value", placeholder: "placeholder", max: "max", maxLength: "maxLength", inputId: "inputId", allowDuplicated: "allowDuplicated", caseSensitiveDuplication: "caseSensitiveDuplication", addOnTab: "addOnTab", addOnBlur: "addOnBlur", separator: "separator", autofocus: "autofocus", infoLabel: "infoLabel", keyFilter: "keyFilter", showTooltip: "showTooltip", maxLengthRenderWithoutTooltip: "maxLengthRenderWithoutTooltip" }, outputs: { added: "added", removed: "removed", focused: "focused", focusLost: "focusLost", chipClicked: "chipClicked", valueChange: "valueChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, providers: [
278
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChipsComponent, isStandalone: true, selector: "s-chips", inputs: { disabled: "disabled", field: "field", value: "value", placeholder: "placeholder", max: "max", maxLength: "maxLength", inputId: "inputId", allowDuplicated: "allowDuplicated", caseSensitiveDuplication: "caseSensitiveDuplication", addOnTab: "addOnTab", addOnBlur: "addOnBlur", separator: "separator", autofocus: "autofocus", infoLabel: "infoLabel", keyFilter: "keyFilter", showTooltip: "showTooltip", maxLengthRenderWithoutTooltip: "maxLengthRenderWithoutTooltip" }, outputs: { added: "added", removed: "removed", focused: "focused", focusLost: "focusLost", chipClicked: "chipClicked", valueChange: "valueChange" }, host: { listeners: { "document:keydown": "onKeydown($event)" } }, providers: [
282
279
  {
283
280
  provide: NG_VALUE_ACCESSOR,
284
281
  useExisting: forwardRef(() => ChipsComponent),
285
282
  multi: true,
286
283
  },
287
- ], queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ul class=\"chips-container\" [class.chips-container--focused]=\"isFocused\">\n @for(item of value; track $index) {\n <li>\n <s-chip-item\n [templateRef]=\"chipTemplate\"\n [dataRender]=\"item\"\n [objectField]=\"field\"\n [itemIndex]=\"$index\"\n [disabled]=\"disabled\"\n [showTooltip]=\"showTooltip\"\n [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n (clickRemove)=\"removeItem($event)\"\n (chipClicked)=\"onChipClicked($event)\">\n </s-chip-item>\n </li>\n }\n\n @if(keyFilter) {\n <input\n #input\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n [pKeyFilter]=\"keyFilter\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }@else {\n <input\n #input\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }\n</ul>\n@if(infoLabel) {\n <span class=\"info-label\">\n {{ infoLabel }}\n </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{border:1px solid #c13018}.chips-container{width:100%;padding:6px;display:flex;flex-wrap:wrap;align-items:center;border-radius:3px;border:1px solid #c1c1cc;background-color:#fff;list-style:none;gap:8px;min-height:35px}.chips-container input{background-color:#fff;width:100%;border:none;flex:1}.chips-container input:focus-visible{outline:none}.chips-container--focused{outline:2px solid #428bca}.info-label{color:#888b99;font-size:12px;font-style:normal;font-weight:400}\n"], dependencies: [{ kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { kind: "component", type: ChipItemComponent, selector: "s-chip-item", inputs: ["dataRender", "objectField", "disabled", "templateRef", "itemIndex", "showTooltip", "maxLengthRenderWithoutTooltip"], outputs: ["clickRemove", "chipClicked"] }] });
284
+ ], queries: [{ propertyName: "templates", predicate: TemplateDirective }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ul\n class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border border-grayscale-30 bg-grayscale-0 list-none gap-2 min-h-[35px]\"\n [class.outline]=\"isFocused\"\n [class.outline-2]=\"isFocused\"\n [class.outline-criticality-blue]=\"isFocused\">\n @for(item of value; track $index) {\n <li>\n <s-chip-item\n [templateRef]=\"chipTemplate\"\n [dataRender]=\"item\"\n [objectField]=\"field\"\n [itemIndex]=\"$index\"\n [disabled]=\"disabled\"\n [showTooltip]=\"showTooltip\"\n [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n (clickRemove)=\"removeItem($event)\"\n (chipClicked)=\"onChipClicked($event)\">\n </s-chip-item>\n </li>\n }\n\n @if(keyFilter) {\n <input\n #input\n class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n [pKeyFilter]=\"keyFilter\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }@else {\n <input\n #input\n class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }\n</ul>\n@if(infoLabel) {\n <span class=\"text-grayscale-50 text-xs\">\n {{ infoLabel }}\n </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{--tw-border-opacity: 1;border-color:rgb(193 48 24 / var(--tw-border-opacity, 1))}\n"], dependencies: [{ kind: "component", type: ChipItemComponent, selector: "s-chip-item", inputs: ["dataRender", "objectField", "disabled", "templateRef", "itemIndex", "showTooltip", "maxLengthRenderWithoutTooltip"], outputs: ["clickRemove", "chipClicked"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }] });
288
285
  }
289
286
  __decorate([
290
287
  CheckDisabled()
@@ -300,7 +297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
300
297
  useExisting: forwardRef(() => ChipsComponent),
301
298
  multi: true,
302
299
  },
303
- ], template: "<ul class=\"chips-container\" [class.chips-container--focused]=\"isFocused\">\n @for(item of value; track $index) {\n <li>\n <s-chip-item\n [templateRef]=\"chipTemplate\"\n [dataRender]=\"item\"\n [objectField]=\"field\"\n [itemIndex]=\"$index\"\n [disabled]=\"disabled\"\n [showTooltip]=\"showTooltip\"\n [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n (clickRemove)=\"removeItem($event)\"\n (chipClicked)=\"onChipClicked($event)\">\n </s-chip-item>\n </li>\n }\n\n @if(keyFilter) {\n <input\n #input\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n [pKeyFilter]=\"keyFilter\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }@else {\n <input\n #input\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }\n</ul>\n@if(infoLabel) {\n <span class=\"info-label\">\n {{ infoLabel }}\n </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{border:1px solid #c13018}.chips-container{width:100%;padding:6px;display:flex;flex-wrap:wrap;align-items:center;border-radius:3px;border:1px solid #c1c1cc;background-color:#fff;list-style:none;gap:8px;min-height:35px}.chips-container input{background-color:#fff;width:100%;border:none;flex:1}.chips-container input:focus-visible{outline:none}.chips-container--focused{outline:2px solid #428bca}.info-label{color:#888b99;font-size:12px;font-style:normal;font-weight:400}\n"] }]
300
+ ], standalone: true, imports: [ChipItemComponent, FormsModule, KeyFilter], template: "<ul\n class=\"chips-container w-full p-1.5 flex flex-wrap items-center rounded-small border border-grayscale-30 bg-grayscale-0 list-none gap-2 min-h-[35px]\"\n [class.outline]=\"isFocused\"\n [class.outline-2]=\"isFocused\"\n [class.outline-criticality-blue]=\"isFocused\">\n @for(item of value; track $index) {\n <li>\n <s-chip-item\n [templateRef]=\"chipTemplate\"\n [dataRender]=\"item\"\n [objectField]=\"field\"\n [itemIndex]=\"$index\"\n [disabled]=\"disabled\"\n [showTooltip]=\"showTooltip\"\n [maxLengthRenderWithoutTooltip]=\"maxLengthRenderWithoutTooltip\"\n (clickRemove)=\"removeItem($event)\"\n (chipClicked)=\"onChipClicked($event)\">\n </s-chip-item>\n </li>\n }\n\n @if(keyFilter) {\n <input\n #input\n class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n [pKeyFilter]=\"keyFilter\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }@else {\n <input\n #input\n class=\"bg-grayscale-0 w-full border-none flex-1 focus-visible:outline-none\"\n [disabled]=\"disabled || max === value.length\"\n [placeholder]=\"placeholder || ''\"\n [maxlength]=\"maxLength\"\n [id]=\"inputId\"\n [(ngModel)]=\"newItem\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputLostFocus($event)\">\n }\n</ul>\n@if(infoLabel) {\n <span class=\"text-grayscale-50 text-xs\">\n {{ infoLabel }}\n </span>\n}\n", styles: [":host.ng-invalid.ng-dirty .chips-container{--tw-border-opacity: 1;border-color:rgb(193 48 24 / var(--tw-border-opacity, 1))}\n"] }]
304
301
  }], propDecorators: { disabled: [{
305
302
  type: Input
306
303
  }], field: [{
@@ -360,14 +357,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
360
357
 
361
358
  class ChipsModule {
362
359
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
363
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, declarations: [ChipsComponent, ChipItemComponent], imports: [FormsModule, TooltipModule, KeyFilterModule, NgTemplateOutlet], exports: [ChipsComponent] });
364
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, imports: [FormsModule, TooltipModule, KeyFilterModule] });
360
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, imports: [ChipsComponent], exports: [ChipsComponent] });
361
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, imports: [ChipsComponent] });
365
362
  }
366
363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipsModule, decorators: [{
367
364
  type: NgModule,
368
365
  args: [{
369
- declarations: [ChipsComponent, ChipItemComponent],
370
- imports: [FormsModule, TooltipModule, KeyFilterModule, NgTemplateOutlet],
366
+ imports: [ChipsComponent],
371
367
  exports: [ChipsComponent],
372
368
  }]
373
369
  }] });