@seniorsistemas/angular-components 19.9.14 → 19.9.15-develop-11ab86f5

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 (513) hide show
  1. package/README.md +84 -2
  2. package/accordion/README.md +5 -4
  3. package/accordion/lib/accordion/accordion.module.d.ts +7 -0
  4. package/alert/lib/alert/alert.module.d.ts +7 -0
  5. package/badge/README.md +5 -4
  6. package/badge/lib/badge/badge.module.d.ts +10 -0
  7. package/bignumber-input/README.md +5 -4
  8. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +16 -39
  9. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +7 -0
  10. package/breadcrumb/README.md +5 -4
  11. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +5 -1
  12. package/button/lib/button/button.module.d.ts +7 -0
  13. package/calendar-mask/README.md +5 -4
  14. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +7 -0
  15. package/card/README.md +6 -5
  16. package/card/lib/card/card.component.d.ts +2 -0
  17. package/card/lib/card/card.module.d.ts +7 -0
  18. package/chat/README.md +11 -8
  19. package/chat/lib/chat/chat.module.d.ts +7 -0
  20. package/checkbox-list/README.md +5 -4
  21. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +7 -0
  22. package/chips/README.md +5 -4
  23. package/chips/lib/chips/chips.module.d.ts +7 -0
  24. package/code-editor/README.md +5 -4
  25. package/code-editor/lib/code-editor/code-editor.module.d.ts +7 -0
  26. package/collapse-link/README.md +5 -4
  27. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +7 -0
  28. package/common/lib/angular-components.module.d.ts +9 -0
  29. package/common/lib/provide-angular-components.d.ts +19 -0
  30. package/common/lib/svg-factory/svg-factory.module.d.ts +7 -0
  31. package/common/public-api.d.ts +1 -0
  32. package/content-generator/README.md +2 -2
  33. package/content-generator/lib/content-generator/content-generator.module.d.ts +7 -0
  34. package/control-errors/README.md +2 -2
  35. package/control-errors/lib/control-errors/control-errors.module.d.ts +7 -0
  36. package/country-phone-picker/README.md +2 -2
  37. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +1 -0
  38. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +7 -0
  39. package/currency/README.md +1 -1
  40. package/custom-fields/README.md +14 -3
  41. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +7 -0
  42. package/custom-fields/lib/custom-fields/models/custom-field-value-parser.d.ts +21 -0
  43. package/custom-fields/lib/custom-fields/models/index.d.ts +1 -0
  44. package/dialog/README.md +1 -1
  45. package/drawer/README.md +8 -4
  46. package/drawer/lib/drawer/drawer.module.d.ts +10 -0
  47. package/dynamic-form/README.md +18 -2
  48. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -1
  49. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +7 -0
  50. package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +10 -1
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +15 -15
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +8 -6
  53. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +5 -2
  54. package/dynamic-form/public-api.d.ts +0 -1
  55. package/editable-overlay/README.md +2 -2
  56. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +7 -0
  57. package/empty-state/README.md +5 -2
  58. package/empty-state/lib/empty-state/empty-state.module.d.ts +7 -0
  59. package/esm2022/accordion/lib/accordion/accordion.module.mjs +8 -1
  60. package/esm2022/alert/lib/alert/alert.module.mjs +8 -1
  61. package/esm2022/badge/lib/badge/badge.module.mjs +11 -1
  62. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +19 -127
  63. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +8 -1
  64. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +6 -2
  65. package/esm2022/button/lib/button/button.module.mjs +8 -1
  66. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +8 -1
  67. package/esm2022/card/lib/card/card.component.mjs +17 -3
  68. package/esm2022/card/lib/card/card.module.mjs +8 -1
  69. package/esm2022/chat/lib/chat/chat.module.mjs +8 -1
  70. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +8 -1
  71. package/esm2022/chips/lib/chips/chips/chips.component.mjs +3 -3
  72. package/esm2022/chips/lib/chips/chips.module.mjs +8 -1
  73. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +10 -1
  74. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +9 -15
  75. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +8 -1
  76. package/esm2022/common/lib/angular-components.module.mjs +10 -1
  77. package/esm2022/common/lib/provide-angular-components.mjs +22 -0
  78. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +8 -1
  79. package/esm2022/common/public-api.mjs +2 -1
  80. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +8 -1
  81. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +8 -1
  82. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +12 -7
  83. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +8 -1
  84. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +4 -3
  85. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -13
  86. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +8 -1
  87. package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +4 -3
  88. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-type.mjs +4 -2
  89. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-value-parser.mjs +46 -0
  90. package/esm2022/custom-fields/lib/custom-fields/models/index.mjs +2 -1
  91. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
  92. package/esm2022/drawer/lib/drawer/drawer.module.mjs +11 -1
  93. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -5
  94. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +8 -1
  95. package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +6 -2
  96. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  97. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  98. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +33 -10
  99. package/esm2022/dynamic-form/public-api.mjs +2 -7
  100. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +8 -1
  101. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +8 -1
  102. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +8 -1
  103. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +8 -1
  104. package/esm2022/file-picker/lib/file-picker/file-picker.service.mjs +4 -3
  105. package/esm2022/gantt/lib/gantt/gantt.module.mjs +8 -1
  106. package/esm2022/global-search/lib/global-search/global-search.module.mjs +19 -1
  107. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +8 -1
  108. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +8 -1
  109. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +12 -1
  110. package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +4 -3
  111. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +8 -1
  112. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +8 -1
  113. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +5 -5
  114. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +8 -1
  115. package/esm2022/input-group/lib/input-group/input-group.module.mjs +8 -1
  116. package/esm2022/input-mask/lib/input-mask/input-mask.module.mjs +8 -1
  117. package/esm2022/input-text/lib/input-text/input-text.module.mjs +8 -1
  118. package/esm2022/insights/lib/insights/insights.module.mjs +11 -1
  119. package/esm2022/kanban/lib/kanban/kanban-event.service.mjs +4 -3
  120. package/esm2022/kanban/lib/kanban/kanban.module.mjs +11 -1
  121. package/esm2022/label-value/lib/label-value/label-value.module.mjs +8 -1
  122. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +8 -1
  123. package/esm2022/locale/lib/locale/locale.module.mjs +14 -1
  124. package/esm2022/locale/lib/locale/locale.service.mjs +4 -3
  125. package/esm2022/locale/lib/locale/options/index.mjs +1 -13
  126. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +1 -1
  127. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +10 -2
  128. package/esm2022/locale/lib/locale/provide-locale.mjs +42 -0
  129. package/esm2022/locale/public-api.mjs +2 -1
  130. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +5 -1
  131. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +8 -1
  132. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +8 -1
  133. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +8 -1
  134. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +8 -1
  135. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +2 -2
  136. package/esm2022/number-input/lib/number-input/number-input.module.mjs +9 -2
  137. package/esm2022/numeric/lib/numeric.module.mjs +8 -1
  138. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +178 -15
  139. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.module.mjs +8 -1
  140. package/esm2022/object-card/lib/object-card/object-card.module.mjs +12 -1
  141. package/esm2022/panel/lib/panel/panel.module.mjs +11 -1
  142. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +8 -1
  143. package/esm2022/picklist/lib/picklist/picklist.module.mjs +8 -1
  144. package/esm2022/pin-code-field/lib/pin-code-field.module.mjs +8 -1
  145. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +8 -1
  146. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +8 -1
  147. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +8 -1
  148. package/esm2022/select/lib/select/select.component.mjs +16 -3
  149. package/esm2022/select-button/lib/select-button/select-button.module.mjs +8 -1
  150. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +8 -1
  151. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +8 -1
  152. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.service.mjs +4 -3
  153. package/esm2022/slider/lib/slider/slider.module.mjs +8 -1
  154. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +8 -1
  155. package/esm2022/split-button/lib/split-button/split-button.module.mjs +8 -1
  156. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +8 -1
  157. package/esm2022/stepper/lib/stepper/stepper.module.mjs +8 -1
  158. package/esm2022/structure/lib/structure/structure.module.mjs +8 -1
  159. package/esm2022/switch/lib/switch/switch.module.mjs +8 -1
  160. package/esm2022/table/lib/table/table.module.mjs +9 -1
  161. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +8 -1
  162. package/esm2022/template/lib/template/template.module.mjs +8 -1
  163. package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
  164. package/esm2022/text-area/lib/text-area.module.mjs +8 -1
  165. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +8 -1
  166. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +8 -1
  167. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +8 -1
  168. package/esm2022/tile/lib/tile/tile.module.mjs +11 -1
  169. package/esm2022/timeline/lib/timeline/timeline.module.mjs +8 -1
  170. package/esm2022/toast/lib/toast/toast.module.mjs +8 -1
  171. package/esm2022/token-list/lib/token-list/token-list.module.mjs +8 -1
  172. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +8 -1
  173. package/esm2022/topbar/lib/topbar/topbar.module.mjs +11 -1
  174. package/esm2022/tree/lib/tree/tree.module.mjs +8 -1
  175. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +8 -1
  176. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +7 -0
  177. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  178. package/fesm2022/seniorsistemas-angular-components-alert.mjs +7 -0
  179. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  180. package/fesm2022/seniorsistemas-angular-components-badge.mjs +10 -0
  181. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  182. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +25 -126
  183. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  184. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -1
  185. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  186. package/fesm2022/seniorsistemas-angular-components-button.mjs +7 -0
  187. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  188. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +7 -0
  189. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  190. package/fesm2022/seniorsistemas-angular-components-card.mjs +23 -2
  191. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  192. package/fesm2022/seniorsistemas-angular-components-chat.mjs +7 -0
  193. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  194. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -0
  195. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  196. package/fesm2022/seniorsistemas-angular-components-chips.mjs +9 -2
  197. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  198. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +164 -160
  199. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  200. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +7 -0
  201. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  202. package/fesm2022/seniorsistemas-angular-components-common.mjs +38 -2
  203. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  204. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +7 -0
  205. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  206. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +7 -0
  207. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  208. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +21 -8
  209. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  210. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +75 -15
  211. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  212. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +2 -2
  213. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  214. package/fesm2022/seniorsistemas-angular-components-drawer.mjs +10 -0
  215. package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
  216. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +54 -212
  217. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  218. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +7 -0
  219. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  220. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +7 -0
  221. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  222. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -0
  223. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  224. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +10 -2
  225. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  226. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +7 -0
  227. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  228. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +18 -0
  229. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  230. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +7 -0
  231. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  232. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +7 -0
  233. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  234. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +14 -2
  235. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  236. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +7 -0
  237. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  238. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +7 -0
  239. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  240. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +11 -4
  241. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  242. package/fesm2022/seniorsistemas-angular-components-input-group.mjs +7 -0
  243. package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -1
  244. package/fesm2022/seniorsistemas-angular-components-input-mask.mjs +7 -0
  245. package/fesm2022/seniorsistemas-angular-components-input-mask.mjs.map +1 -1
  246. package/fesm2022/seniorsistemas-angular-components-input-text.mjs +7 -0
  247. package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
  248. package/fesm2022/seniorsistemas-angular-components-insights.mjs +10 -0
  249. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  250. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +13 -2
  251. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  252. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +7 -0
  253. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  254. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -0
  255. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  256. package/fesm2022/seniorsistemas-angular-components-locale.mjs +58 -5
  257. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  258. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +11 -0
  259. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  260. package/fesm2022/seniorsistemas-angular-components-mask.mjs +7 -0
  261. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  262. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +7 -0
  263. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  264. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +7 -0
  265. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  266. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +9 -2
  267. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  268. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +184 -14
  269. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  270. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +7 -0
  271. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  272. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +11 -0
  273. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  274. package/fesm2022/seniorsistemas-angular-components-panel.mjs +10 -0
  275. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  276. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +7 -0
  277. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  278. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +7 -0
  279. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  280. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +7 -0
  281. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  282. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +7 -0
  283. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  284. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +7 -0
  285. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +7 -0
  287. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +7 -0
  289. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-select.mjs +15 -2
  291. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-shared.mjs +7 -0
  293. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +10 -2
  295. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-slider.mjs +7 -0
  297. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -0
  299. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +7 -0
  301. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +7 -0
  303. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +7 -0
  305. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-structure.mjs +7 -0
  307. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-switch.mjs +7 -0
  309. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +7 -0
  311. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-table.mjs +8 -0
  313. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-template.mjs +7 -0
  315. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +9 -2
  317. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +7 -0
  319. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -0
  321. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +7 -0
  323. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-tile.mjs +10 -0
  325. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +7 -0
  327. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-toast.mjs +7 -0
  329. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +7 -0
  331. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +7 -0
  333. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +10 -0
  335. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-tree.mjs +7 -0
  337. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +7 -0
  339. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  340. package/fieldset/README.md +2 -2
  341. package/fieldset/lib/fieldset/fieldset.module.d.ts +7 -0
  342. package/file-picker/README.md +2 -2
  343. package/file-picker/lib/file-picker/file-picker.module.d.ts +7 -0
  344. package/file-upload/README.md +1 -1
  345. package/gantt/README.md +2 -2
  346. package/gantt/lib/gantt/gantt.module.d.ts +7 -0
  347. package/global-search/README.md +5 -2
  348. package/global-search/lib/global-search/global-search.module.d.ts +18 -0
  349. package/grid-menu/README.md +5 -4
  350. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +7 -0
  351. package/help-popover/README.md +5 -4
  352. package/help-popover/lib/help-popover/help-popover.module.d.ts +7 -0
  353. package/ia-insight/README.md +1 -1
  354. package/image-cropper/README.md +6 -5
  355. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +11 -0
  356. package/infinite-scroll/README.md +5 -4
  357. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +7 -0
  358. package/info-sign/README.md +5 -4
  359. package/info-sign/lib/info-sign/info-sign.module.d.ts +7 -0
  360. package/inline-edit/README.md +5 -4
  361. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +7 -0
  362. package/input-group/lib/input-group/input-group.module.d.ts +7 -0
  363. package/input-mask/lib/input-mask/input-mask.module.d.ts +7 -0
  364. package/input-text/lib/input-text/input-text.module.d.ts +7 -0
  365. package/insights/README.md +6 -4
  366. package/insights/lib/insights/insights.module.d.ts +10 -0
  367. package/kanban/README.md +6 -4
  368. package/kanban/lib/kanban/kanban.module.d.ts +10 -0
  369. package/label-value/README.md +5 -4
  370. package/label-value/lib/label-value/label-value.module.d.ts +7 -0
  371. package/loading-state/README.md +9 -5
  372. package/loading-state/lib/loading-state/loading-state.module.d.ts +7 -0
  373. package/locale/lib/locale/locale.module.d.ts +13 -0
  374. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +2 -2
  375. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +20 -1
  376. package/locale/lib/locale/provide-locale.d.ts +18 -0
  377. package/locale/public-api.d.ts +1 -0
  378. package/localized-number-input/README.md +32 -8
  379. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +4 -0
  380. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +7 -0
  381. package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
  382. package/mouse-events/README.md +5 -4
  383. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +7 -0
  384. package/navigation-button/README.md +5 -4
  385. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +7 -0
  386. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  387. package/number-input/lib/number-input/number-input.module.d.ts +8 -1
  388. package/numeric/README.md +6 -5
  389. package/numeric/lib/numeric.module.d.ts +7 -0
  390. package/numeric-mask/README.md +44 -1
  391. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +65 -4
  392. package/numeric-mask/lib/numeric-mask/numeric-mask.module.d.ts +7 -0
  393. package/object-card/README.md +11 -4
  394. package/object-card/lib/object-card/object-card.module.d.ts +11 -0
  395. package/package.json +1 -1
  396. package/panel/README.md +8 -4
  397. package/panel/lib/panel/panel.module.d.ts +10 -0
  398. package/password-strength/README.md +6 -3
  399. package/password-strength/lib/password-strength/password-strength.module.d.ts +7 -0
  400. package/picklist/README.md +8 -5
  401. package/picklist/lib/picklist/picklist.module.d.ts +7 -0
  402. package/pin-code-field/lib/pin-code-field.module.d.ts +7 -0
  403. package/product-header/README.md +2 -2
  404. package/profile-picture-picker/README.md +6 -3
  405. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +7 -0
  406. package/progressbar/README.md +6 -3
  407. package/progressbar/lib/progressbar/progressbar.module.d.ts +7 -0
  408. package/rating-scale/README.md +6 -3
  409. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +7 -0
  410. package/schematics/collection.json +40 -0
  411. package/schematics/migrations/migrate-app-to-standalone/index.d.ts +32 -0
  412. package/schematics/migrations/migrate-app-to-standalone/index.js +98 -0
  413. package/schematics/migrations/migrate-app-to-standalone/index.js.map +1 -0
  414. package/schematics/migrations/migrate-deprecated-apis/index.d.ts +49 -0
  415. package/schematics/migrations/migrate-deprecated-apis/index.js +660 -0
  416. package/schematics/migrations/migrate-deprecated-apis/index.js.map +1 -0
  417. package/schematics/migrations/migrate-deprecated-datepicker/index.d.ts +31 -0
  418. package/schematics/migrations/migrate-deprecated-datepicker/index.js +115 -0
  419. package/schematics/migrations/migrate-deprecated-datepicker/index.js.map +1 -0
  420. package/schematics/migrations/migrate-deprecated-dynamic-form/index.d.ts +52 -0
  421. package/schematics/migrations/migrate-deprecated-dynamic-form/index.js +661 -0
  422. package/schematics/migrations/migrate-deprecated-dynamic-form/index.js.map +1 -0
  423. package/schematics/migrations/migrate-deprecated-imports/index.d.ts +23 -0
  424. package/schematics/migrations/migrate-deprecated-imports/index.js +335 -0
  425. package/schematics/migrations/migrate-deprecated-imports/index.js.map +1 -0
  426. package/schematics/migrations/migrate-deprecated-selectors/index.d.ts +15 -0
  427. package/schematics/migrations/migrate-deprecated-selectors/index.js +76 -0
  428. package/schematics/migrations/migrate-deprecated-selectors/index.js.map +1 -0
  429. package/schematics/migrations/migrate-modules-to-standalone/index.d.ts +51 -0
  430. package/schematics/migrations/migrate-modules-to-standalone/index.js +632 -0
  431. package/schematics/migrations/migrate-modules-to-standalone/index.js.map +1 -0
  432. package/schematics/migrations/migrate-modules-to-standalone/modules-map.json +1656 -0
  433. package/schematics/migrations/migrate-v20/index.d.ts +9 -0
  434. package/schematics/migrations/migrate-v20/index.js +90 -0
  435. package/schematics/migrations/migrate-v20/index.js.map +1 -0
  436. package/schematics/migrations/migrate-v20/items.d.ts +7 -0
  437. package/schematics/migrations/migrate-v20/items.js +54 -0
  438. package/schematics/migrations/migrate-v20/items.js.map +1 -0
  439. package/schematics/migrations/migrate-v20/plan.d.ts +32 -0
  440. package/schematics/migrations/migrate-v20/plan.js +29 -0
  441. package/schematics/migrations/migrate-v20/plan.js.map +1 -0
  442. package/schematics/migrations.json +5 -1
  443. package/schematics/schema/app-standalone.schema.json +21 -0
  444. package/schematics/schema/migrate-v20.schema.json +33 -0
  445. package/schematics/schema/scope.schema.json +17 -0
  446. package/schematics/utils/ast-utils.js +16 -0
  447. package/schematics/utils/ast-utils.js.map +1 -1
  448. package/schematics/utils/eol.d.ts +5 -0
  449. package/schematics/utils/eol.js +17 -0
  450. package/schematics/utils/eol.js.map +1 -0
  451. package/schematics/utils/prompt-utils.d.ts +62 -0
  452. package/schematics/utils/prompt-utils.js +166 -0
  453. package/schematics/utils/prompt-utils.js.map +1 -0
  454. package/schematics/utils/report.d.ts +27 -0
  455. package/schematics/utils/report.js +70 -0
  456. package/schematics/utils/report.js.map +1 -0
  457. package/schematics/utils/scope.d.ts +17 -0
  458. package/schematics/utils/scope.js +55 -0
  459. package/schematics/utils/scope.js.map +1 -0
  460. package/schematics/utils/selection.d.ts +21 -0
  461. package/schematics/utils/selection.js +60 -0
  462. package/schematics/utils/selection.js.map +1 -0
  463. package/schematics/utils/symbol-utils.d.ts +31 -0
  464. package/schematics/utils/symbol-utils.js +202 -0
  465. package/schematics/utils/symbol-utils.js.map +1 -0
  466. package/schematics/utils/template-utils.d.ts +62 -0
  467. package/schematics/utils/template-utils.js +165 -0
  468. package/schematics/utils/template-utils.js.map +1 -0
  469. package/schematics/utils/tsconfig-paths.d.ts +5 -0
  470. package/schematics/utils/tsconfig-paths.js +73 -0
  471. package/schematics/utils/tsconfig-paths.js.map +1 -0
  472. package/select/lib/select/select.component.d.ts +8 -0
  473. package/select-button/README.md +6 -3
  474. package/select-button/lib/select-button/select-button.module.d.ts +7 -0
  475. package/shared/lib/shared/border-button/border-button.module.d.ts +7 -0
  476. package/sidebar/README.md +2 -2
  477. package/slide-in-bar/README.md +5 -5
  478. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +7 -0
  479. package/slider/README.md +6 -3
  480. package/slider/lib/slider/slider.module.d.ts +7 -0
  481. package/speech-recognition/README.md +6 -3
  482. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +7 -0
  483. package/split-button/README.md +6 -3
  484. package/split-button/lib/split-button/split-button.module.d.ts +7 -0
  485. package/stats-card/README.md +6 -3
  486. package/stats-card/lib/stats-card/stats-card.module.d.ts +7 -0
  487. package/stepper/README.md +6 -3
  488. package/stepper/lib/stepper/stepper.module.d.ts +7 -0
  489. package/structure/lib/structure/structure.module.d.ts +7 -0
  490. package/switch/README.md +6 -3
  491. package/switch/lib/switch/switch.module.d.ts +7 -0
  492. package/table/README.md +12 -4
  493. package/table/lib/table/table.module.d.ts +8 -0
  494. package/table-header/lib/table-header/table-header-checkox.module.d.ts +7 -0
  495. package/template/README.md +0 -11
  496. package/template/lib/template/template.module.d.ts +7 -0
  497. package/text-area/lib/text-area.module.d.ts +7 -0
  498. package/text-area-ia/README.md +1 -1
  499. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +7 -0
  500. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +7 -0
  501. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +7 -0
  502. package/tile/lib/tile/tile.module.d.ts +10 -0
  503. package/timeline/lib/timeline/timeline.module.d.ts +7 -0
  504. package/toast/lib/toast/toast.module.d.ts +7 -0
  505. package/token-list/lib/token-list/token-list.module.d.ts +7 -0
  506. package/tooltip/lib/tooltip/tooltip.module.d.ts +7 -0
  507. package/topbar/lib/topbar/topbar.module.d.ts +10 -0
  508. package/tree/lib/tree/tree.module.d.ts +7 -0
  509. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +7 -0
  510. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +0 -664
  511. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +0 -29
  512. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +0 -96
  513. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +0 -124
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, model, output, forwardRef, Directive, NgModule } from '@angular/core';
2
+ import { input, model, forwardRef, Directive, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { NumericMaskDirective } from '@seniorsistemas/angular-components/numeric-mask';
5
5
 
@@ -12,11 +12,17 @@ var BignumberAlignmentOption;
12
12
  BignumberAlignmentOption["LEFT"] = "left";
13
13
  })(BignumberAlignmentOption || (BignumberAlignmentOption = {}));
14
14
  /**
15
- * @deprecated Utilize a diretiva `BigNumberInput` ao invés desta.
15
+ * @deprecated Utilize a diretiva `sNumericMask` ao invés desta.
16
16
  * @description Diretiva de máscara para campos de entrada de números de grande precisão,
17
17
  * adaptada do `CurrencyMaskDirective`. Permite configurar precisão, escala,
18
18
  * separadores decimais e de milhar de acordo com o locale da aplicação.
19
19
  *
20
+ * `precision`, o `maxLength` nativo, o `placeholder` auto-calculado, `pasteRejected` e a
21
+ * preservação de separador explícito entre trocas de locale são herdados de
22
+ * `NumericMaskDirective` (lá são opt-in; aqui ficam sempre ativos por causa do default de
23
+ * `precision`). Esta classe só mapeia os aliases depreciados próprios dela (`scale`,
24
+ * `thousandsSeparator`) para os inputs reais da base.
25
+ *
20
26
  * @example
21
27
  * ```html
22
28
  * <input sBignumberInput [precision]="15" [scale]="2" [allowNegative]="false" />
@@ -89,36 +95,13 @@ class BignumberInputDirective extends NumericMaskDirective {
89
95
  */
90
96
  blockDecimalOverflow = input(false);
91
97
  /**
92
- * @description Texto de placeholder exibido quando o campo está vazio.
93
- */
94
- placeholder = model(undefined);
95
- maxLength;
96
- /**
97
- * @description Emitido quando uma colagem (paste) é rejeitada pela validação do campo.
98
- * Emite a string colada que foi recusada.
98
+ * Maps this directive's own deprecated aliases (`scale`, `thousandsSeparator`) into the
99
+ * base's real inputs (`minDecimalPlaces`/`maxDecimalPlaces`/`thousandSeparator`) before
100
+ * delegating to `NumericMaskDirective`, which recalculates `maxLength`/`placeholder` from
101
+ * whichever of its own tracked inputs changed. Recalculates once more afterwards for the
102
+ * alias-driven changes, which the base has no knowledge of.
99
103
  */
100
- pasteRejected = output();
101
- _decimalSeparatorExplicit = false;
102
- _thousandSeparatorExplicit = false;
103
- _lastAutoPlaceholder;
104
- constructor() {
105
- super();
106
- }
107
- ngOnInit() {
108
- super.ngOnInit();
109
- this.updatePlaceholder();
110
- }
111
- // ngOnChanges handles all signal writes reactively, avoiding the need for
112
- // effect() with allowSignalWrites. The decimalSeparator/thousandSeparator inputs
113
- // have truthy defaults, so ngOnChanges is necessary to distinguish "parent bound this"
114
- // from "it's just the default value".
115
104
  ngOnChanges(changes) {
116
- if (changes['decimalSeparator'] && this.decimalSeparator()) {
117
- this._decimalSeparatorExplicit = true;
118
- }
119
- if (changes['thousandSeparator'] && this.thousandSeparator()) {
120
- this._thousandSeparatorExplicit = true;
121
- }
122
105
  if (changes['thousandsSeparator']) {
123
106
  const val = this.thousandsSeparator();
124
107
  if (val !== undefined) {
@@ -130,101 +113,14 @@ class BignumberInputDirective extends NumericMaskDirective {
130
113
  this.minDecimalPlaces.set(this.scale());
131
114
  this.maxDecimalPlaces.set(this.scale());
132
115
  }
133
- if (changes['scale'] ||
134
- changes['decimalSeparator'] ||
135
- changes['thousandSeparator'] ||
136
- changes['thousandsSeparator'] ||
137
- changes['precision']) {
116
+ super.ngOnChanges(changes);
117
+ if (changes['scale'] || changes['thousandsSeparator']) {
138
118
  this.calculateMaxLength();
139
- }
140
- if (changes['scale'] || changes['decimalSeparator']) {
141
119
  this.updatePlaceholder();
142
120
  }
143
121
  }
144
- /**
145
- * Overrides base paste handler to add precision validation.
146
- * If the pasted value exceeds `precision` digits, the paste is rejected.
147
- */
148
- onPaste(event) {
149
- const pastedText = event.clipboardData?.getData('text') ?? '';
150
- const effectiveThousandSep = this.thousandsSeparator() ?? this.thousandSeparator();
151
- const numericText = pastedText
152
- .replace(new RegExp(`\\${effectiveThousandSep}`, 'g'), '')
153
- .replace(this.decimalSeparator(), '.');
154
- const [intPart, decimalPart = ''] = numericText.split('.');
155
- const totalDigits = intPart.replace(/\D/g, '').length + decimalPart.slice(0, this.scale()).length;
156
- if (totalDigits > this.precision()) {
157
- event.preventDefault();
158
- this.pasteRejected.emit(pastedText);
159
- return;
160
- }
161
- super.onPaste(event);
162
- }
163
- /**
164
- * Overrides locale-derived separators with explicitly set inputs, if provided.
165
- * If no explicit separator is set, the locale-derived value is used.
166
- */
167
- updateSeparators() {
168
- const explicitDecimal = this._decimalSeparatorExplicit ? this.decimalSeparator() : undefined;
169
- const explicitThousand = this._thousandSeparatorExplicit
170
- ? (this.thousandsSeparator() ?? this.thousandSeparator())
171
- : undefined;
172
- super.updateSeparators();
173
- if (explicitDecimal !== undefined) {
174
- this.decimalSeparator.set(explicitDecimal);
175
- }
176
- if (explicitThousand !== undefined) {
177
- this.thousandSeparator.set(explicitThousand);
178
- }
179
- this.calculateMaxLength();
180
- this.updatePlaceholder();
181
- }
182
- /**
183
- * Overrides base validator to add precision validation.
184
- * If the total number of significant digits exceeds `precision`, returns an `exceedsPrecision` error.
185
- */
186
- validate(control) {
187
- const baseErrors = super.validate(control);
188
- if (!control.value || !this.precision()) {
189
- return baseErrors ?? null;
190
- }
191
- const numericStr = String(control.value).replace('-', '');
192
- const [intPart, decimalPart = ''] = numericStr.split('.');
193
- const totalDigits = intPart.length + decimalPart.length;
194
- if (totalDigits > this.precision()) {
195
- return {
196
- ...baseErrors,
197
- exceedsPrecision: {
198
- precision: this.precision(),
199
- actual: totalDigits,
200
- },
201
- };
202
- }
203
- return baseErrors ?? null;
204
- }
205
- /**
206
- * Responsible to calculate the field maximum length considering the separators.
207
- */
208
- calculateMaxLength() {
209
- const decSepLength = this.decimalSeparator()?.length ?? 0;
210
- const effectiveThousandSep = this.thousandsSeparator() ?? this.thousandSeparator();
211
- const thoSepLength = effectiveThousandSep?.length ?? 0;
212
- const DIGITS_GROUP_SIZE = 3;
213
- let maxLength = this.precision() + (this.scale() ? decSepLength : 0);
214
- maxLength +=
215
- Math.ceil((this.precision() - (this.scale() ? this.scale() : 0)) / DIGITS_GROUP_SIZE - 1) * thoSepLength;
216
- this.maxLength = maxLength;
217
- }
218
- updatePlaceholder() {
219
- const scale = this.scale();
220
- const autoPlaceholder = scale ? `0${this.decimalSeparator()}${''.padEnd(scale, '0')}` : '0';
221
- if (this.placeholder() === undefined || this.placeholder() === this._lastAutoPlaceholder) {
222
- this.placeholder.set(autoPlaceholder);
223
- }
224
- this._lastAutoPlaceholder = autoPlaceholder;
225
- }
226
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
227
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: BignumberInputDirective, isStandalone: true, selector: "input[sBignumberInput]", inputs: { precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, minDecimalPlaces: { classPropertyName: "minDecimalPlaces", publicName: "minDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, maxDecimalPlaces: { classPropertyName: "maxDecimalPlaces", publicName: "maxDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandsSeparator: { classPropertyName: "thousandsSeparator", publicName: "thousandsSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, alignTo: { classPropertyName: "alignTo", publicName: "alignTo", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, blockDecimalOverflow: { classPropertyName: "blockDecimalOverflow", publicName: "blockDecimalOverflow", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minDecimalPlaces: "minDecimalPlacesChange", maxDecimalPlaces: "maxDecimalPlacesChange", decimalSeparator: "decimalSeparatorChange", thousandSeparator: "thousandSeparatorChange", placeholder: "placeholderChange", pasteRejected: "pasteRejected" }, host: { properties: { "attr.placeholder": "placeholder()", "attr.maxLength": "maxLength" } }, providers: [
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
123
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: BignumberInputDirective, isStandalone: true, selector: "input[sBignumberInput]", inputs: { precision: { classPropertyName: "precision", publicName: "precision", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, minDecimalPlaces: { classPropertyName: "minDecimalPlaces", publicName: "minDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, maxDecimalPlaces: { classPropertyName: "maxDecimalPlaces", publicName: "maxDecimalPlaces", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandsSeparator: { classPropertyName: "thousandsSeparator", publicName: "thousandsSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, alignTo: { classPropertyName: "alignTo", publicName: "alignTo", isSignal: true, isRequired: false, transformFunction: null }, allowNegative: { classPropertyName: "allowNegative", publicName: "allowNegative", isSignal: true, isRequired: false, transformFunction: null }, blockDecimalOverflow: { classPropertyName: "blockDecimalOverflow", publicName: "blockDecimalOverflow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { minDecimalPlaces: "minDecimalPlacesChange", maxDecimalPlaces: "maxDecimalPlacesChange", decimalSeparator: "decimalSeparatorChange", thousandSeparator: "thousandSeparatorChange" }, providers: [
228
124
  {
229
125
  provide: NG_VALUE_ACCESSOR,
230
126
  // NOSONAR - 'BignumberInputDirective' is deprecated.
@@ -237,10 +133,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
237
133
  type: Directive,
238
134
  args: [{
239
135
  selector: 'input[sBignumberInput]',
240
- host: {
241
- '[attr.placeholder]': 'placeholder()',
242
- '[attr.maxLength]': 'maxLength',
243
- },
244
136
  providers: [
245
137
  {
246
138
  provide: NG_VALUE_ACCESSOR,
@@ -251,8 +143,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
251
143
  ],
252
144
  standalone: true,
253
145
  }]
254
- }], ctorParameters: () => [] });
146
+ }] });
255
147
 
148
+ /**
149
+ * @deprecated Será removido na v20. Importe diretamente o standalone `BignumberInputDirective` (de
150
+ * `@seniorsistemas/angular-components/bignumber-input`) no lugar deste módulo.
151
+ *
152
+ * Migração automática (também executada pelo `ng update` na v20):
153
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
154
+ */
256
155
  class BignumberInputModule {
257
156
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
258
157
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: BignumberInputModule, imports: [BignumberInputDirective], exports: [BignumberInputDirective] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-bignumber-input.mjs","sources":["../../projects/angular-components/bignumber-input/src/lib/bignumber-input/bignumber-input.directive.ts","../../projects/angular-components/bignumber-input/src/lib/bignumber-input/bignumber-input.module.ts","../../projects/angular-components/bignumber-input/src/seniorsistemas-angular-components-bignumber-input.ts"],"sourcesContent":["import { Directive, forwardRef, input, model, OnChanges, OnInit, output, SimpleChanges } from '@angular/core';\r\nimport { AbstractControl, NG_VALUE_ACCESSOR, ValidationErrors } from '@angular/forms';\r\n\r\nimport { NumericMaskDirective } from '@seniorsistemas/angular-components/numeric-mask';\r\n\r\n/**\r\n * @deprecated Este enum não tem mais efeito. O alinhamento do campo é sempre `'right'`.\r\n */\r\nexport enum BignumberAlignmentOption {\r\n RIGHT = 'right',\r\n LEFT = 'left',\r\n}\r\n\r\n/**\r\n * @deprecated Utilize a diretiva `BigNumberInput` ao invés desta.\r\n * @description Diretiva de máscara para campos de entrada de números de grande precisão,\r\n * adaptada do `CurrencyMaskDirective`. Permite configurar precisão, escala,\r\n * separadores decimais e de milhar de acordo com o locale da aplicação.\r\n *\r\n * @example\r\n * ```html\r\n * <input sBignumberInput [precision]=\"15\" [scale]=\"2\" [allowNegative]=\"false\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: 'input[sBignumberInput]',\r\n host: {\r\n '[attr.placeholder]': 'placeholder()',\r\n '[attr.maxLength]': 'maxLength',\r\n },\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n // NOSONAR - 'BignumberInputDirective' is deprecated.\r\n useExisting: forwardRef(() => BignumberInputDirective),\r\n multi: true,\r\n },\r\n ],\r\n standalone: true,\r\n})\r\nexport class BignumberInputDirective extends NumericMaskDirective implements OnInit, OnChanges {\r\n /**\r\n * @description Número total de dígitos significativos aceitos pelo campo (parte inteira + parte decimal).\r\n *\r\n * Durante a digitação, o campo limita fisicamente o número de caracteres via `maxLength`.\r\n * Ao colar um valor que ultrapasse o limite, o evento `pasteRejected` é emitido e a colagem é cancelada.\r\n * Após sair do campo (blur) ou ao submeter o formulário, se o valor ultrapassar `precision`,\r\n * o campo ficará inválido com o erro `exceedsPrecision: { precision, actual }`.\r\n *\r\n * @default 15\r\n */\r\n public precision = input(15);\r\n\r\n /**\r\n * @deprecated Use `minDecimalPlaces` e `maxDecimalPlaces` ao invés deste.\r\n * @description Número de casas decimais exibidas e aceitas pelo campo.\r\n * Quando informado, repassa o valor para `minDecimalPlaces` e `maxDecimalPlaces`.\r\n *\r\n * @default 0\r\n */\r\n public scale = input(0);\r\n\r\n /**\r\n * @description Número mínimo de casas decimais exibidas.\r\n *\r\n * @default 0\r\n */\r\n public override minDecimalPlaces = model(0);\r\n\r\n /**\r\n * @description Número máximo de casas decimais aceitas.\r\n *\r\n * @default 0\r\n */\r\n public override maxDecimalPlaces = model(0);\r\n\r\n /**\r\n * @description Separador decimal personalizado. Quando não informado,\r\n * utiliza o separador definido pelo locale ativo da aplicação.\r\n */\r\n public override decimalSeparator = model(',');\r\n\r\n /**\r\n * @deprecated Use `thousandSeparator` ao invés deste.\r\n * @description Separador de milhar personalizado. Recomenda-se migrar para `thousandSeparator`.\r\n */\r\n public thousandsSeparator = input<string | undefined>(undefined);\r\n\r\n /**\r\n * @description Separador de milhar personalizado. Quando não informado,\r\n * utiliza o separador definido pelo locale ativo da aplicação.\r\n */\r\n public override thousandSeparator = model('.');\r\n\r\n /**\r\n * @deprecated Este input não tem mais efeito e pode ser removido.\r\n * O alinhamento do campo é sempre `'right'`, conforme o comportamento padrão da máscara numérica.\r\n */\r\n public alignTo = input<'left' | 'right'>('right');\r\n\r\n /**\r\n * @description Permite a entrada de valores negativos.\r\n *\r\n * @default true\r\n */\r\n public override allowNegative = input(true);\r\n\r\n /**\r\n * Preserves this deprecated directive's legacy behavior: NumericMaskDirective now\r\n * defaults to blocking decimal overflow while typing/pasting, but existing\r\n * sBignumberInput consumers should not have their input behavior changed silently.\r\n */\r\n public override blockDecimalOverflow = input(false);\r\n\r\n /**\r\n * @description Texto de placeholder exibido quando o campo está vazio.\r\n */\r\n public placeholder = model<string | undefined>(undefined);\r\n\r\n public maxLength?: number;\r\n\r\n /**\r\n * @description Emitido quando uma colagem (paste) é rejeitada pela validação do campo.\r\n * Emite a string colada que foi recusada.\r\n */\r\n public pasteRejected = output<string>();\r\n\r\n private _decimalSeparatorExplicit = false;\r\n private _thousandSeparatorExplicit = false;\r\n private _lastAutoPlaceholder: string | undefined;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public override ngOnInit(): void {\r\n super.ngOnInit();\r\n this.updatePlaceholder();\r\n }\r\n\r\n // ngOnChanges handles all signal writes reactively, avoiding the need for\r\n // effect() with allowSignalWrites. The decimalSeparator/thousandSeparator inputs\r\n // have truthy defaults, so ngOnChanges is necessary to distinguish \"parent bound this\"\r\n // from \"it's just the default value\".\r\n public override ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['decimalSeparator'] && this.decimalSeparator()) {\r\n this._decimalSeparatorExplicit = true;\r\n }\r\n if (changes['thousandSeparator'] && this.thousandSeparator()) {\r\n this._thousandSeparatorExplicit = true;\r\n }\r\n if (changes['thousandsSeparator']) {\r\n const val = this.thousandsSeparator();\r\n if (val !== undefined) {\r\n this._thousandSeparatorExplicit = true;\r\n this.thousandSeparator.set(val);\r\n }\r\n }\r\n if (changes['scale']) {\r\n this.minDecimalPlaces.set(this.scale());\r\n this.maxDecimalPlaces.set(this.scale());\r\n }\r\n if (\r\n changes['scale'] ||\r\n changes['decimalSeparator'] ||\r\n changes['thousandSeparator'] ||\r\n changes['thousandsSeparator'] ||\r\n changes['precision']\r\n ) {\r\n this.calculateMaxLength();\r\n }\r\n if (changes['scale'] || changes['decimalSeparator']) {\r\n this.updatePlaceholder();\r\n }\r\n }\r\n\r\n /**\r\n * Overrides base paste handler to add precision validation.\r\n * If the pasted value exceeds `precision` digits, the paste is rejected.\r\n */\r\n public override onPaste(event: ClipboardEvent): void {\r\n const pastedText = event.clipboardData?.getData('text') ?? '';\r\n const effectiveThousandSep = this.thousandsSeparator() ?? this.thousandSeparator();\r\n const numericText = pastedText\r\n .replace(new RegExp(`\\\\${effectiveThousandSep}`, 'g'), '')\r\n .replace(this.decimalSeparator(), '.');\r\n const [intPart, decimalPart = ''] = numericText.split('.');\r\n const totalDigits = intPart.replace(/\\D/g, '').length + decimalPart.slice(0, this.scale()).length;\r\n\r\n if (totalDigits > this.precision()) {\r\n event.preventDefault();\r\n this.pasteRejected.emit(pastedText);\r\n return;\r\n }\r\n\r\n super.onPaste(event);\r\n }\r\n\r\n /**\r\n * Overrides locale-derived separators with explicitly set inputs, if provided.\r\n * If no explicit separator is set, the locale-derived value is used.\r\n */\r\n protected override updateSeparators(): void {\r\n const explicitDecimal = this._decimalSeparatorExplicit ? this.decimalSeparator() : undefined;\r\n const explicitThousand = this._thousandSeparatorExplicit\r\n ? (this.thousandsSeparator() ?? this.thousandSeparator())\r\n : undefined;\r\n\r\n super.updateSeparators();\r\n\r\n if (explicitDecimal !== undefined) {\r\n this.decimalSeparator.set(explicitDecimal);\r\n }\r\n if (explicitThousand !== undefined) {\r\n this.thousandSeparator.set(explicitThousand);\r\n }\r\n\r\n this.calculateMaxLength();\r\n this.updatePlaceholder();\r\n }\r\n\r\n /**\r\n * Overrides base validator to add precision validation.\r\n * If the total number of significant digits exceeds `precision`, returns an `exceedsPrecision` error.\r\n */\r\n public override validate(control: AbstractControl): ValidationErrors | null {\r\n const baseErrors = super.validate(control);\r\n\r\n if (!control.value || !this.precision()) {\r\n return baseErrors ?? null;\r\n }\r\n\r\n const numericStr = String(control.value).replace('-', '');\r\n const [intPart, decimalPart = ''] = numericStr.split('.');\r\n const totalDigits = intPart.length + decimalPart.length;\r\n\r\n if (totalDigits > this.precision()) {\r\n return {\r\n ...baseErrors,\r\n exceedsPrecision: {\r\n precision: this.precision(),\r\n actual: totalDigits,\r\n },\r\n };\r\n }\r\n\r\n return baseErrors ?? null;\r\n }\r\n\r\n /**\r\n * Responsible to calculate the field maximum length considering the separators.\r\n */\r\n private calculateMaxLength(): void {\r\n const decSepLength = this.decimalSeparator()?.length ?? 0;\r\n const effectiveThousandSep = this.thousandsSeparator() ?? this.thousandSeparator();\r\n const thoSepLength = effectiveThousandSep?.length ?? 0;\r\n\r\n const DIGITS_GROUP_SIZE = 3;\r\n\r\n let maxLength = this.precision() + (this.scale() ? decSepLength : 0);\r\n maxLength +=\r\n Math.ceil((this.precision() - (this.scale() ? this.scale() : 0)) / DIGITS_GROUP_SIZE - 1) * thoSepLength;\r\n\r\n this.maxLength = maxLength;\r\n }\r\n\r\n private updatePlaceholder(): void {\r\n const scale = this.scale();\r\n const autoPlaceholder = scale ? `0${this.decimalSeparator()}${''.padEnd(scale, '0')}` : '0';\r\n\r\n if (this.placeholder() === undefined || this.placeholder() === this._lastAutoPlaceholder) {\r\n this.placeholder.set(autoPlaceholder);\r\n }\r\n\r\n this._lastAutoPlaceholder = autoPlaceholder;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n// NOSONAR - 'BignumberInputDirective' is deprecated.\r\nimport { BignumberInputDirective } from './bignumber-input.directive';\r\n\r\n@NgModule({\r\n imports: [BignumberInputDirective],\r\n // NOSONAR - 'BignumberInputDirective' is deprecated.\r\n exports: [BignumberInputDirective],\r\n})\r\nexport class BignumberInputModule {}\r\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-bignumber-input.mjs","sources":["../../projects/angular-components/bignumber-input/src/lib/bignumber-input/bignumber-input.directive.ts","../../projects/angular-components/bignumber-input/src/lib/bignumber-input/bignumber-input.module.ts","../../projects/angular-components/bignumber-input/src/seniorsistemas-angular-components-bignumber-input.ts"],"sourcesContent":["import { Directive, forwardRef, input, model, OnChanges, SimpleChanges } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { NumericMaskDirective } from '@seniorsistemas/angular-components/numeric-mask';\n\n/**\n * @deprecated Este enum não tem mais efeito. O alinhamento do campo é sempre `'right'`.\n */\nexport enum BignumberAlignmentOption {\n RIGHT = 'right',\n LEFT = 'left',\n}\n\n/**\n * @deprecated Utilize a diretiva `sNumericMask` ao invés desta.\n * @description Diretiva de máscara para campos de entrada de números de grande precisão,\n * adaptada do `CurrencyMaskDirective`. Permite configurar precisão, escala,\n * separadores decimais e de milhar de acordo com o locale da aplicação.\n *\n * `precision`, o `maxLength` nativo, o `placeholder` auto-calculado, `pasteRejected` e a\n * preservação de separador explícito entre trocas de locale são herdados de\n * `NumericMaskDirective` (lá são opt-in; aqui ficam sempre ativos por causa do default de\n * `precision`). Esta classe só mapeia os aliases depreciados próprios dela (`scale`,\n * `thousandsSeparator`) para os inputs reais da base.\n *\n * @example\n * ```html\n * <input sBignumberInput [precision]=\"15\" [scale]=\"2\" [allowNegative]=\"false\" />\n * ```\n *\n * @category Inputs\n */\n@Directive({\n selector: 'input[sBignumberInput]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // NOSONAR - 'BignumberInputDirective' is deprecated.\n useExisting: forwardRef(() => BignumberInputDirective),\n multi: true,\n },\n ],\n standalone: true,\n})\nexport class BignumberInputDirective extends NumericMaskDirective implements OnChanges {\n /**\n * @description Número total de dígitos significativos aceitos pelo campo (parte inteira + parte decimal).\n *\n * Durante a digitação, o campo limita fisicamente o número de caracteres via `maxLength`.\n * Ao colar um valor que ultrapasse o limite, o evento `pasteRejected` é emitido e a colagem é cancelada.\n * Após sair do campo (blur) ou ao submeter o formulário, se o valor ultrapassar `precision`,\n * o campo ficará inválido com o erro `exceedsPrecision: { precision, actual }`.\n *\n * @default 15\n */\n public override precision = input<number | undefined>(15);\n\n /**\n * @deprecated Use `minDecimalPlaces` e `maxDecimalPlaces` ao invés deste.\n * @description Número de casas decimais exibidas e aceitas pelo campo.\n * Quando informado, repassa o valor para `minDecimalPlaces` e `maxDecimalPlaces`.\n *\n * @default 0\n */\n public scale = input(0);\n\n /**\n * @description Número mínimo de casas decimais exibidas.\n *\n * @default 0\n */\n public override minDecimalPlaces = model(0);\n\n /**\n * @description Número máximo de casas decimais aceitas.\n *\n * @default 0\n */\n public override maxDecimalPlaces = model(0);\n\n /**\n * @description Separador decimal personalizado. Quando não informado,\n * utiliza o separador definido pelo locale ativo da aplicação.\n */\n public override decimalSeparator = model(',');\n\n /**\n * @deprecated Use `thousandSeparator` ao invés deste.\n * @description Separador de milhar personalizado. Recomenda-se migrar para `thousandSeparator`.\n */\n public thousandsSeparator = input<string | undefined>(undefined);\n\n /**\n * @description Separador de milhar personalizado. Quando não informado,\n * utiliza o separador definido pelo locale ativo da aplicação.\n */\n public override thousandSeparator = model('.');\n\n /**\n * @deprecated Este input não tem mais efeito e pode ser removido.\n * O alinhamento do campo é sempre `'right'`, conforme o comportamento padrão da máscara numérica.\n */\n public alignTo = input<'left' | 'right'>('right');\n\n /**\n * @description Permite a entrada de valores negativos.\n *\n * @default true\n */\n public override allowNegative = input(true);\n\n /**\n * Preserves this deprecated directive's legacy behavior: NumericMaskDirective now\n * defaults to blocking decimal overflow while typing/pasting, but existing\n * sBignumberInput consumers should not have their input behavior changed silently.\n */\n public override blockDecimalOverflow = input(false);\n\n /**\n * Maps this directive's own deprecated aliases (`scale`, `thousandsSeparator`) into the\n * base's real inputs (`minDecimalPlaces`/`maxDecimalPlaces`/`thousandSeparator`) before\n * delegating to `NumericMaskDirective`, which recalculates `maxLength`/`placeholder` from\n * whichever of its own tracked inputs changed. Recalculates once more afterwards for the\n * alias-driven changes, which the base has no knowledge of.\n */\n public override ngOnChanges(changes: SimpleChanges): void {\n if (changes['thousandsSeparator']) {\n const val = this.thousandsSeparator();\n if (val !== undefined) {\n this._thousandSeparatorExplicit = true;\n this.thousandSeparator.set(val);\n }\n }\n if (changes['scale']) {\n this.minDecimalPlaces.set(this.scale());\n this.maxDecimalPlaces.set(this.scale());\n }\n\n super.ngOnChanges(changes);\n\n if (changes['scale'] || changes['thousandsSeparator']) {\n this.calculateMaxLength();\n this.updatePlaceholder();\n }\n }\n}\n","import { NgModule } from '@angular/core';\r\n\r\n// NOSONAR - 'BignumberInputDirective' is deprecated.\r\nimport { BignumberInputDirective } from './bignumber-input.directive';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `BignumberInputDirective` (de\r\n * `@seniorsistemas/angular-components/bignumber-input`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [BignumberInputDirective],\r\n // NOSONAR - 'BignumberInputDirective' is deprecated.\r\n exports: [BignumberInputDirective],\r\n})\r\nexport class BignumberInputModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -162,7 +162,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
162
162
  }] } });
163
163
 
164
164
  /**
165
- * @deprecated utilizar DynamicBreadcrumbComponent (standalone)
165
+ * @deprecated Será removido na v20. Importe diretamente o standalone `DynamicBreadcrumbComponent` (de
166
+ * `@seniorsistemas/angular-components/breadcrumb`) no lugar deste módulo.
167
+ *
168
+ * Migração automática (também executada pelo `ng update` na v20):
169
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
166
170
  */
167
171
  class BreadcrumbModule {
168
172
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-breadcrumb.mjs","sources":["../../projects/angular-components/breadcrumb/src/lib/breadcrumb/breadcrumb.component.ts","../../projects/angular-components/breadcrumb/src/lib/breadcrumb/breadcrumb.component.html","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.ts","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.html","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.ts","../../projects/angular-components/breadcrumb/src/seniorsistemas-angular-components-breadcrumb.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, inject, input } from '@angular/core';\r\nimport { Router, RouterModule } from '@angular/router';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\r\n\r\nimport { BreadcrumbItem } from './breadcrumb-models';\r\n\r\n/**\r\n * @description Componente de trilha de navegação (breadcrumb) que detecta automaticamente\r\n * a rota ativa do Angular Router e constrói o caminho hierárquico de páginas.\r\n * Cada segmento da rota precisa ter a propriedade `routeTitle` definida nos `data` da rota.\r\n *\r\n * @example\r\n * ```html\r\n * <s-breadcrumb homeUrl=\"/home\" targetHomeUrl=\"_self\" />\r\n * ```\r\n *\r\n * @category Navegação\r\n */\r\n@Component({\r\n selector: 's-breadcrumb-list',\r\n standalone: true,\r\n imports: [TranslateModule, InteractiveContentDirective, RouterModule, NgTemplateOutlet],\r\n templateUrl: './breadcrumb.component.html',\r\n})\r\nexport class BreadcrumbListComponent {\r\n public readonly items = input.required<BreadcrumbItem[]>();\r\n\r\n private readonly router = inject(Router);\r\n\r\n protected onActivateRoute(activatedBreadcrumb: BreadcrumbItem): void {\r\n if (!activatedBreadcrumb.routerLink || activatedBreadcrumb.disabled) {\r\n return;\r\n }\r\n\r\n const routerLink = Array.isArray(activatedBreadcrumb.routerLink)\r\n ? activatedBreadcrumb.routerLink\r\n : [activatedBreadcrumb.routerLink];\r\n\r\n if (activatedBreadcrumb.queryParams) {\r\n this.router.navigate(routerLink, { queryParams: activatedBreadcrumb.queryParams });\r\n } else {\r\n this.router.navigate(routerLink, { queryParamsHandling: 'preserve' });\r\n }\r\n }\r\n}\r\n","<nav\n [attr.aria-label]=\"'platform.angular_components.breadcrumb_aria_label' | translate\"\n class=\"mb-4 mt-4\"\n>\n <ol class=\"flex select-none flex-wrap items-center gap-3 pb-3 pt-3 [&_li]:font-open-sans [&_li]:text-sm\">\n @for (breadcrumbItem of items(); track $index; let first = $first; let last = $last) {\n <li class=\"flex items-center gap-3\">\n @if (!first) {\n <i\n class=\"fas fa-chevron-right\"\n aria-hidden=\"true\"\n ></i>\n }\n\n <ng-template #iconTemplate>\n <i\n [class]=\"breadcrumbItem.icon + (first ? ' text-criticality-blue' : '')\"\n aria-hidden=\"true\"\n ></i>\n </ng-template>\n\n @if (first && breadcrumbItem.icon && breadcrumbItem.disabledIcon) {\n <span\n class=\"flex items-center gap-1\"\n aria-hidden=\"true\"\n >\n <i\n [class]=\"breadcrumbItem.icon + ' text-grayscale-30'\"\n aria-hidden=\"true\"\n ></i>\n </span>\n }\n\n @if (breadcrumbItem.url) {\n <a\n [href]=\"breadcrumbItem.url\"\n [target]=\"breadcrumbItem.target\"\n class=\"flex items-center gap-1 rounded-medium text-criticality-blue focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [attr.aria-label]=\"\n (first ? 'Início: ' : 'Navegar para ') +\n breadcrumbItem.label +\n (last ? ' (página atual)' : '')\n \"\n >\n @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n }\n @if (breadcrumbItem.label && !breadcrumbItem.hideLabel && !first) {\n <span>{{ breadcrumbItem.label }}</span>\n <span class=\"sr-only\"> (link externo)</span>\n }\n </a>\n } @else if (breadcrumbItem.routerLink && !breadcrumbItem.disabled) {\n <a\n [routerLink]=\"breadcrumbItem.routerLink\"\n [queryParams]=\"breadcrumbItem.queryParams\"\n [queryParamsHandling]=\"breadcrumbItem.queryParams ? null : 'preserve'\"\n [target]=\"breadcrumbItem.target\"\n (sInteractiveContent)=\"onActivateRoute(breadcrumbItem)\"\n class=\"flex cursor-pointer items-center gap-1 rounded-medium text-primary hover:no-underline focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [attr.aria-label]=\"\n (first ? 'Início: ' : '') + breadcrumbItem.label + (last ? ' (página atual)' : '')\n \"\n >\n @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n }\n @if (breadcrumbItem.label && !breadcrumbItem.hideLabel) {\n <span>{{ breadcrumbItem.label }}</span>\n <span class=\"sr-only\"> (navegação interna)</span>\n }\n </a>\n } @else {\n <span\n class=\"flex items-center gap-1\"\n [attr.aria-current]=\"last ? 'page' : null\"\n >\n @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n }\n @if (breadcrumbItem.label && !breadcrumbItem.hideLabel && !first) {\n <span>{{ breadcrumbItem.label }}</span>\n }\n </span>\n }\n </li>\n }\n </ol>\n</nav>\n\n","import { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';\nimport {\n DEPRECATED_CONFIG,\n DeprecatedSelectorDirective,\n} from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BreadcrumbItem } from '../breadcrumb/breadcrumb-models';\nimport { BreadcrumbListComponent } from '../breadcrumb/breadcrumb.component';\n\n@Component({\n standalone: true,\n imports: [BreadcrumbListComponent],\n selector: 's-breadcrumb, s-dynamic-breadcrumb',\n templateUrl: './dynamic-breadcrumb.component.html',\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-breadcrumb',\n newSelector: 's-dynamic-breadcrumb',\n removalVersion: '20.0.0',\n },\n },\n ],\n})\nexport class DynamicBreadcrumbComponent implements OnDestroy {\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _router = inject(Router);\n\n @Input()\n public homeUrl?: string;\n\n @Input()\n public targetHomeUrl = '_self';\n\n public items: BreadcrumbItem[] = [];\n public title?: string;\n\n private readonly _ngUnsubscribe = new Subject<void>();\n\n constructor() {\n this._router.events\n .pipe(\n takeUntil(this._ngUnsubscribe),\n filter((event) => event instanceof NavigationEnd),\n )\n .subscribe(() => this._onNavigationEnd());\n }\n\n public ngOnDestroy() {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private _onNavigationEnd() {\n const currentRoute = this._activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this._getValidChildren(currentRoute);\n\n this.title = this._getCurrentTitle(validRoutes) ?? '';\n this.items = this._getCurrentItems(validRoutes) || [];\n const currentHome = this._getCurrentHome(validRoutes);\n if (currentHome) {\n this.items.unshift(currentHome);\n }\n }\n\n private _getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid =\n route.routeConfig?.path &&\n (route.routeConfig?.component || route.routeConfig?.loadComponent) &&\n route.outlet === PRIMARY_OUTLET;\n return route.children.reduce(\n (validRoutes, child) => [...validRoutes, ...this._getValidChildren(child)],\n valid ? [route] : [],\n );\n }\n\n private _getCurrentTitle(routes: ActivatedRoute[]): string | null {\n const last = routes.at(-1);\n\n if (last?.routeConfig) {\n return this._getTitle(last);\n }\n\n return null;\n }\n\n private _getCurrentHome(routes: ActivatedRoute[]) {\n let currentHome: BreadcrumbItem | undefined;\n\n if (this.homeUrl) {\n currentHome = { url: this.homeUrl, icon: 'fa fa-home', target: this.targetHomeUrl };\n } else if (routes.length) {\n currentHome = {\n ...this._getMenuItem(routes[0], routes.length === 1),\n disabledIcon: routes.length === 1,\n hideLabel: routes.length > 1,\n icon: 'fa fa-home',\n };\n }\n\n return currentHome;\n }\n\n private _getCurrentItems(routes: ActivatedRoute[]): BreadcrumbItem[] {\n if (!routes.length) {\n return [];\n }\n\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) {\n return items.map((route, i) => this._getMenuItem(route, i === items.length - 1));\n }\n\n return [];\n }\n\n private _getMenuItem(route: ActivatedRoute, disabled = false): BreadcrumbItem {\n const label = this._getTitle(route);\n const routerLink = ['/', ...route.pathFromRoot.flatMap((item) => item.snapshot.url.map((url) => url.path))];\n\n return {\n disabled,\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n };\n }\n\n private _getTitle(route: ActivatedRoute): string {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data['routeTitle'];\n\n if (!title) {\n throw new Error(`No routeTitle defined for the route /${routeConfig?.path}`);\n }\n return title;\n }\n}\n\n","<h1 class=\"sds-page-title\">{{ title }}</h1>\n<s-breadcrumb-list [items]=\"items\" />\n\n","import { NgModule } from '@angular/core';\n\nimport { DynamicBreadcrumbComponent } from './dynamic-breadcrumb.component';\n/**\n * @deprecated utilizar DynamicBreadcrumbComponent (standalone)\n */\n@NgModule({\n imports: [DynamicBreadcrumbComponent],\n exports: [DynamicBreadcrumbComponent],\n})\nexport class BreadcrumbModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-breadcrumb.mjs","sources":["../../projects/angular-components/breadcrumb/src/lib/breadcrumb/breadcrumb.component.ts","../../projects/angular-components/breadcrumb/src/lib/breadcrumb/breadcrumb.component.html","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.ts","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.html","../../projects/angular-components/breadcrumb/src/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.ts","../../projects/angular-components/breadcrumb/src/seniorsistemas-angular-components-breadcrumb.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, inject, input } from '@angular/core';\r\nimport { Router, RouterModule } from '@angular/router';\r\n\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\r\n\r\nimport { BreadcrumbItem } from './breadcrumb-models';\r\n\r\n/**\r\n * @description Componente de trilha de navegação (breadcrumb) que detecta automaticamente\r\n * a rota ativa do Angular Router e constrói o caminho hierárquico de páginas.\r\n * Cada segmento da rota precisa ter a propriedade `routeTitle` definida nos `data` da rota.\r\n *\r\n * @example\r\n * ```html\r\n * <s-breadcrumb homeUrl=\"/home\" targetHomeUrl=\"_self\" />\r\n * ```\r\n *\r\n * @category Navegação\r\n */\r\n@Component({\r\n selector: 's-breadcrumb-list',\r\n standalone: true,\r\n imports: [TranslateModule, InteractiveContentDirective, RouterModule, NgTemplateOutlet],\r\n templateUrl: './breadcrumb.component.html',\r\n})\r\nexport class BreadcrumbListComponent {\r\n public readonly items = input.required<BreadcrumbItem[]>();\r\n\r\n private readonly router = inject(Router);\r\n\r\n protected onActivateRoute(activatedBreadcrumb: BreadcrumbItem): void {\r\n if (!activatedBreadcrumb.routerLink || activatedBreadcrumb.disabled) {\r\n return;\r\n }\r\n\r\n const routerLink = Array.isArray(activatedBreadcrumb.routerLink)\r\n ? activatedBreadcrumb.routerLink\r\n : [activatedBreadcrumb.routerLink];\r\n\r\n if (activatedBreadcrumb.queryParams) {\r\n this.router.navigate(routerLink, { queryParams: activatedBreadcrumb.queryParams });\r\n } else {\r\n this.router.navigate(routerLink, { queryParamsHandling: 'preserve' });\r\n }\r\n }\r\n}\r\n","<nav\n [attr.aria-label]=\"'platform.angular_components.breadcrumb_aria_label' | translate\"\n class=\"mb-4 mt-4\"\n>\n <ol class=\"flex select-none flex-wrap items-center gap-3 pb-3 pt-3 [&_li]:font-open-sans [&_li]:text-sm\">\n @for (breadcrumbItem of items(); track $index; let first = $first; let last = $last) {\n <li class=\"flex items-center gap-3\">\n @if (!first) {\n <i\n class=\"fas fa-chevron-right\"\n aria-hidden=\"true\"\n ></i>\n }\n\n <ng-template #iconTemplate>\n <i\n [class]=\"breadcrumbItem.icon + (first ? ' text-criticality-blue' : '')\"\n aria-hidden=\"true\"\n ></i>\n </ng-template>\n\n @if (first && breadcrumbItem.icon && breadcrumbItem.disabledIcon) {\n <span\n class=\"flex items-center gap-1\"\n aria-hidden=\"true\"\n >\n <i\n [class]=\"breadcrumbItem.icon + ' text-grayscale-30'\"\n aria-hidden=\"true\"\n ></i>\n </span>\n }\n\n @if (breadcrumbItem.url) {\n <a\n [href]=\"breadcrumbItem.url\"\n [target]=\"breadcrumbItem.target\"\n class=\"flex items-center gap-1 rounded-medium text-criticality-blue focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [attr.aria-label]=\"\n (first ? 'Início: ' : 'Navegar para ') +\n breadcrumbItem.label +\n (last ? ' (página atual)' : '')\n \"\n >\n @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n }\n @if (breadcrumbItem.label && !breadcrumbItem.hideLabel && !first) {\n <span>{{ breadcrumbItem.label }}</span>\n <span class=\"sr-only\"> (link externo)</span>\n }\n </a>\n } @else if (breadcrumbItem.routerLink && !breadcrumbItem.disabled) {\n <a\n [routerLink]=\"breadcrumbItem.routerLink\"\n [queryParams]=\"breadcrumbItem.queryParams\"\n [queryParamsHandling]=\"breadcrumbItem.queryParams ? null : 'preserve'\"\n [target]=\"breadcrumbItem.target\"\n (sInteractiveContent)=\"onActivateRoute(breadcrumbItem)\"\n class=\"flex cursor-pointer items-center gap-1 rounded-medium text-primary hover:no-underline focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[3px] focus-visible:outline-[var(--s-focus-ring-color,#0090ff)]\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [attr.aria-label]=\"\n (first ? 'Início: ' : '') + breadcrumbItem.label + (last ? ' (página atual)' : '')\n \"\n >\n @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n }\n @if (breadcrumbItem.label && !breadcrumbItem.hideLabel) {\n <span>{{ breadcrumbItem.label }}</span>\n <span class=\"sr-only\"> (navegação interna)</span>\n }\n </a>\n } @else {\n <span\n class=\"flex items-center gap-1\"\n [attr.aria-current]=\"last ? 'page' : null\"\n >\n @if (breadcrumbItem.icon && !(first && breadcrumbItem.disabledIcon)) {\n <ng-container *ngTemplateOutlet=\"iconTemplate\"></ng-container>\n }\n @if (breadcrumbItem.label && !breadcrumbItem.hideLabel && !first) {\n <span>{{ breadcrumbItem.label }}</span>\n }\n </span>\n }\n </li>\n }\n </ol>\n</nav>\n\n","import { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router';\nimport {\n DEPRECATED_CONFIG,\n DeprecatedSelectorDirective,\n} from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BreadcrumbItem } from '../breadcrumb/breadcrumb-models';\nimport { BreadcrumbListComponent } from '../breadcrumb/breadcrumb.component';\n\n@Component({\n standalone: true,\n imports: [BreadcrumbListComponent],\n selector: 's-breadcrumb, s-dynamic-breadcrumb',\n templateUrl: './dynamic-breadcrumb.component.html',\n hostDirectives: [DeprecatedSelectorDirective],\n providers: [\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-breadcrumb',\n newSelector: 's-dynamic-breadcrumb',\n removalVersion: '20.0.0',\n },\n },\n ],\n})\nexport class DynamicBreadcrumbComponent implements OnDestroy {\n private readonly _activatedRoute = inject(ActivatedRoute);\n private readonly _router = inject(Router);\n\n @Input()\n public homeUrl?: string;\n\n @Input()\n public targetHomeUrl = '_self';\n\n public items: BreadcrumbItem[] = [];\n public title?: string;\n\n private readonly _ngUnsubscribe = new Subject<void>();\n\n constructor() {\n this._router.events\n .pipe(\n takeUntil(this._ngUnsubscribe),\n filter((event) => event instanceof NavigationEnd),\n )\n .subscribe(() => this._onNavigationEnd());\n }\n\n public ngOnDestroy() {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private _onNavigationEnd() {\n const currentRoute = this._activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this._getValidChildren(currentRoute);\n\n this.title = this._getCurrentTitle(validRoutes) ?? '';\n this.items = this._getCurrentItems(validRoutes) || [];\n const currentHome = this._getCurrentHome(validRoutes);\n if (currentHome) {\n this.items.unshift(currentHome);\n }\n }\n\n private _getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid =\n route.routeConfig?.path &&\n (route.routeConfig?.component || route.routeConfig?.loadComponent) &&\n route.outlet === PRIMARY_OUTLET;\n return route.children.reduce(\n (validRoutes, child) => [...validRoutes, ...this._getValidChildren(child)],\n valid ? [route] : [],\n );\n }\n\n private _getCurrentTitle(routes: ActivatedRoute[]): string | null {\n const last = routes.at(-1);\n\n if (last?.routeConfig) {\n return this._getTitle(last);\n }\n\n return null;\n }\n\n private _getCurrentHome(routes: ActivatedRoute[]) {\n let currentHome: BreadcrumbItem | undefined;\n\n if (this.homeUrl) {\n currentHome = { url: this.homeUrl, icon: 'fa fa-home', target: this.targetHomeUrl };\n } else if (routes.length) {\n currentHome = {\n ...this._getMenuItem(routes[0], routes.length === 1),\n disabledIcon: routes.length === 1,\n hideLabel: routes.length > 1,\n icon: 'fa fa-home',\n };\n }\n\n return currentHome;\n }\n\n private _getCurrentItems(routes: ActivatedRoute[]): BreadcrumbItem[] {\n if (!routes.length) {\n return [];\n }\n\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) {\n return items.map((route, i) => this._getMenuItem(route, i === items.length - 1));\n }\n\n return [];\n }\n\n private _getMenuItem(route: ActivatedRoute, disabled = false): BreadcrumbItem {\n const label = this._getTitle(route);\n const routerLink = ['/', ...route.pathFromRoot.flatMap((item) => item.snapshot.url.map((url) => url.path))];\n\n return {\n disabled,\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n };\n }\n\n private _getTitle(route: ActivatedRoute): string {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data['routeTitle'];\n\n if (!title) {\n throw new Error(`No routeTitle defined for the route /${routeConfig?.path}`);\n }\n return title;\n }\n}\n\n","<h1 class=\"sds-page-title\">{{ title }}</h1>\n<s-breadcrumb-list [items]=\"items\" />\n\n","import { NgModule } from '@angular/core';\n\nimport { DynamicBreadcrumbComponent } from './dynamic-breadcrumb.component';\n/**\n * @deprecated Será removido na v20. Importe diretamente o standalone `DynamicBreadcrumbComponent` (de\n * `@seniorsistemas/angular-components/breadcrumb`) no lugar deste módulo.\n *\n * Migração automática (também executada pelo `ng update` na v20):\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\n */\n@NgModule({\n imports: [DynamicBreadcrumbComponent],\n exports: [DynamicBreadcrumbComponent],\n})\nexport class BreadcrumbModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -225,6 +225,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
225
225
  type: Output
226
226
  }] } });
227
227
 
228
+ /**
229
+ * @deprecated Será removido na v20. Importe diretamente o standalone `ButtonComponent` (de
230
+ * `@seniorsistemas/angular-components/button`) no lugar deste módulo.
231
+ *
232
+ * Migração automática (também executada pelo `ng update` na v20):
233
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
234
+ */
228
235
  class ButtonModule {
229
236
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
230
237
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ButtonModule, imports: [ButtonComponent], exports: [ButtonComponent] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-button.mjs","sources":["../../projects/angular-components/button/src/lib/button/button.component.ts","../../projects/angular-components/button/src/lib/button/button.component.html","../../projects/angular-components/button/src/lib/button/button.module.ts","../../projects/angular-components/button/src/seniorsistemas-angular-components-button.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnChanges, output, Output, SimpleChanges } from '@angular/core';\n\nimport { NgClass, NgStyle } from '@angular/common';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { TieredMenuItemData, TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\nimport { TooltipModule, TooltipPositions } from '@seniorsistemas/angular-components/tooltip';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\nimport { ButtonAnimations } from './models/button-animations';\nimport { ButtonBadgeConfig } from './models/button-badge-config';\nimport { ButtonPriority } from './models/button-priority';\n\n/**\n * @description Componente de botão versátil que suporta ícones, tooltip, menu de opções\n * (tiered menu), badge, animações e diferentes prioridades visuais. Pode ser configurado\n * como botão de ação simples, botão com menu dropdown ou botão deslizante (slide).\n *\n * @example\n * ```html\n * <s-button\n * label=\"Salvar\"\n * iconClass=\"fas fa-save\"\n * priority=\"primary\"\n * (clicked)=\"onSave()\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n host: {\n '[class.s-button-with-badge]': '!!badge',\n },\n standalone: true,\n imports: [NgClass, NgStyle, BadgeModule, TieredMenuModule, TooltipModule],\n})\nexport class ButtonComponent implements OnChanges {\n @HostBinding('style.min-width')\n public minWidth = '40px';\n\n /**\n * @description Identificador único do elemento botão no DOM.\n * Gerado automaticamente se não informado.\n */\n @Input()\n public id? = `s-button-${randomHash()}`;\n\n /**\n * @description Texto exibido dentro do botão.\n */\n @Input()\n public label?: string;\n\n /**\n * @description Texto do tooltip exibido ao passar o mouse sobre o botão.\n */\n @Input()\n public tooltip?: string;\n\n /**\n * @description Posição do tooltip em relação ao botão.\n *\n * @default 'top'\n */\n @Input()\n public tooltipPosition: TooltipPositions = 'top';\n\n /**\n * @description Classe de ícone exibida à esquerda do label (ex.: `'fas fa-save'`).\n */\n @Input()\n public iconClass?: string;\n\n /**\n * @description Classe de ícone exibida à direita do label.\n */\n @Input()\n public rightIconClass?: string;\n\n /**\n * @description Exibe o ícone de caret (seta) quando o botão possui um menu de opções.\n *\n * @default true\n */\n @Input()\n public caret = true;\n\n /**\n * @description Classe CSS adicional aplicada ao elemento `<button>` interno.\n *\n * @default ''\n */\n @Input()\n public styleClass = '';\n\n /**\n * @description Z-index base do painel do menu dropdown associado ao botão.\n *\n * @default 0\n */\n @Input()\n public baseZIndex = 0;\n\n /**\n * @description Desabilita o botão, impedindo cliques e interação do usuário.\n *\n * @default false\n */\n @Input()\n public disabled = false;\n\n /**\n * @description Aplica estilo auxiliar (menos destaque visual) ao botão.\n *\n * @default false\n */\n @Input()\n public auxiliary = false;\n\n /**\n * @description Tipo do elemento `<button>` HTML (`'button'`, `'submit'`, `'reset'`).\n *\n * @default 'button'\n */\n @Input()\n public type? = 'button';\n\n /**\n * @description Prioridade visual do botão, que determina seu estilo.\n * Aceita `'primary'`, `'default'`, `'danger'`, `'link'`, entre outros.\n *\n * @default 'primary'\n */\n @Input()\n public priority?: ButtonPriority = 'primary';\n\n /**\n * @description Lista de itens do menu dropdown exibido ao clicar no caret do botão.\n *\n * @default []\n */\n @Input()\n public menuOptions: TieredMenuItemData[] = [];\n\n /**\n * @description Tamanho visual do botão. Aceita `'default'` ou `'small'`.\n *\n * @default 'default'\n */\n @Input()\n public size?: 'default' | 'small' = 'default';\n\n /**\n * @description Habilita o modo slide, que exibe uma animação de deslize ao passar o mouse.\n * Requer `priority` igual a `'default'` ou `'link'` e um `label` definido.\n *\n * @default false\n */\n @Input()\n public slide = false;\n\n /**\n * @description Tipo de animação aplicada ao botão (`'rotate'`, `'pulse'`, etc.).\n */\n @Input()\n public animation?: ButtonAnimations;\n\n /**\n * @description Configuração do badge exibido sobre o botão, com contador ou indicador visual.\n */\n @Input()\n public badge?: ButtonBadgeConfig;\n\n /**\n * @description Cor aplicada ao ícone do botão, sobrescrevendo a cor padrão do tema.\n */\n @Input()\n public iconColor?: string;\n\n /**\n * @description Texto alternativo para o menu associado ao botão, utilizado para acessibilidade.\n */\n @Input()\n public menuAriaLabel?: string;\n\n /**\n * @description Texto alternativo para quando o botão não tiver um texto explicito, utilizado para acessibilidade.\n */\n @Input()\n public ariaLabel?: string;\n\n /**\n * @description Emitido ao clicar no botão, desde que não esteja desabilitado.\n */\n @Output()\n public clicked: EventEmitter<any> = new EventEmitter();\n\n public isMenuOpen = false;\n\n tieredMenuOpened = output<void>();\n\n tieredMenuClosed = output<void>();\n\n public validateSlideButton(): boolean {\n return !!(this.slide && (this.priority === 'default' || this.priority === 'link') && this.label?.length);\n }\n\n public ngOnChanges(_: SimpleChanges): void {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n\n const isMultiple = this.menuOptions?.length;\n\n if (hasText || (hasIcon && isMultiple)) {\n this.minWidth = '80px';\n }\n if (hasText && hasIcon && isMultiple) {\n this.minWidth = '100px';\n }\n }\n\n public isRotateAnimation(): boolean {\n return this.animation === 'rotate';\n }\n\n public onTieredMenuOpened(): void {\n this.isMenuOpen = true;\n this.tieredMenuOpened.emit();\n }\n\n public onTieredMenuClosed(): void {\n this.isMenuOpen = false;\n this.tieredMenuClosed.emit();\n }\n}\n\n","<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n class=\"inline-flex items-center justify-center border border-solid cursor-pointer font-open-sans text-sm max-w-full min-w-[40px] outline-none overflow-visible py-[5px] px-[10px] relative no-underline normal-case transition-[background-color,border-color,color] duration-200 ease-out text-grayscale-0 disabled:cursor-text disabled:opacity-50\"\n [ngClass]=\"{\n 'rounded-medium': !auxiliary,\n 'rounded-[20px]': auxiliary && !(iconClass && !label && !menuOptions.length),\n 'rounded-[50%]': auxiliary && !!(iconClass && !label && !menuOptions.length),\n 'h-[35px]': size !== 'small',\n 'h-[25px]': size === 'small',\n 'max-w-6 max-h-6 min-w-6': size === 'small' && !!(iconClass && !label && !menuOptions.length),\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': !!iconClass,\n 's-button-with-text': !!label,\n 's-button-only-icon': !!(iconClass && !label && !menuOptions.length),\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || !!rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon inline-flex items-center justify-center': true,\n 'mr-[10px]': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text block overflow-hidden text-ellipsis whitespace-nowrap\"\n [ngClass]=\"{\n 'mr-[10px]': !!rightIconClass || menuOptions.length,\n 'ml-[10px]': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon inline-flex items-center justify-center': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"z-[99] relative right-[15px] bottom-[16px]\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n","import { NgModule } from '@angular/core';\n\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n imports: [\n ButtonComponent,\n ],\n exports: [ButtonComponent],\n})\nexport class ButtonModule { }\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-button.mjs","sources":["../../projects/angular-components/button/src/lib/button/button.component.ts","../../projects/angular-components/button/src/lib/button/button.component.html","../../projects/angular-components/button/src/lib/button/button.module.ts","../../projects/angular-components/button/src/seniorsistemas-angular-components-button.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnChanges, output, Output, SimpleChanges } from '@angular/core';\n\nimport { NgClass, NgStyle } from '@angular/common';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { TieredMenuItemData, TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\nimport { TooltipModule, TooltipPositions } from '@seniorsistemas/angular-components/tooltip';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\nimport { ButtonAnimations } from './models/button-animations';\nimport { ButtonBadgeConfig } from './models/button-badge-config';\nimport { ButtonPriority } from './models/button-priority';\n\n/**\n * @description Componente de botão versátil que suporta ícones, tooltip, menu de opções\n * (tiered menu), badge, animações e diferentes prioridades visuais. Pode ser configurado\n * como botão de ação simples, botão com menu dropdown ou botão deslizante (slide).\n *\n * @example\n * ```html\n * <s-button\n * label=\"Salvar\"\n * iconClass=\"fas fa-save\"\n * priority=\"primary\"\n * (clicked)=\"onSave()\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n host: {\n '[class.s-button-with-badge]': '!!badge',\n },\n standalone: true,\n imports: [NgClass, NgStyle, BadgeModule, TieredMenuModule, TooltipModule],\n})\nexport class ButtonComponent implements OnChanges {\n @HostBinding('style.min-width')\n public minWidth = '40px';\n\n /**\n * @description Identificador único do elemento botão no DOM.\n * Gerado automaticamente se não informado.\n */\n @Input()\n public id? = `s-button-${randomHash()}`;\n\n /**\n * @description Texto exibido dentro do botão.\n */\n @Input()\n public label?: string;\n\n /**\n * @description Texto do tooltip exibido ao passar o mouse sobre o botão.\n */\n @Input()\n public tooltip?: string;\n\n /**\n * @description Posição do tooltip em relação ao botão.\n *\n * @default 'top'\n */\n @Input()\n public tooltipPosition: TooltipPositions = 'top';\n\n /**\n * @description Classe de ícone exibida à esquerda do label (ex.: `'fas fa-save'`).\n */\n @Input()\n public iconClass?: string;\n\n /**\n * @description Classe de ícone exibida à direita do label.\n */\n @Input()\n public rightIconClass?: string;\n\n /**\n * @description Exibe o ícone de caret (seta) quando o botão possui um menu de opções.\n *\n * @default true\n */\n @Input()\n public caret = true;\n\n /**\n * @description Classe CSS adicional aplicada ao elemento `<button>` interno.\n *\n * @default ''\n */\n @Input()\n public styleClass = '';\n\n /**\n * @description Z-index base do painel do menu dropdown associado ao botão.\n *\n * @default 0\n */\n @Input()\n public baseZIndex = 0;\n\n /**\n * @description Desabilita o botão, impedindo cliques e interação do usuário.\n *\n * @default false\n */\n @Input()\n public disabled = false;\n\n /**\n * @description Aplica estilo auxiliar (menos destaque visual) ao botão.\n *\n * @default false\n */\n @Input()\n public auxiliary = false;\n\n /**\n * @description Tipo do elemento `<button>` HTML (`'button'`, `'submit'`, `'reset'`).\n *\n * @default 'button'\n */\n @Input()\n public type? = 'button';\n\n /**\n * @description Prioridade visual do botão, que determina seu estilo.\n * Aceita `'primary'`, `'default'`, `'danger'`, `'link'`, entre outros.\n *\n * @default 'primary'\n */\n @Input()\n public priority?: ButtonPriority = 'primary';\n\n /**\n * @description Lista de itens do menu dropdown exibido ao clicar no caret do botão.\n *\n * @default []\n */\n @Input()\n public menuOptions: TieredMenuItemData[] = [];\n\n /**\n * @description Tamanho visual do botão. Aceita `'default'` ou `'small'`.\n *\n * @default 'default'\n */\n @Input()\n public size?: 'default' | 'small' = 'default';\n\n /**\n * @description Habilita o modo slide, que exibe uma animação de deslize ao passar o mouse.\n * Requer `priority` igual a `'default'` ou `'link'` e um `label` definido.\n *\n * @default false\n */\n @Input()\n public slide = false;\n\n /**\n * @description Tipo de animação aplicada ao botão (`'rotate'`, `'pulse'`, etc.).\n */\n @Input()\n public animation?: ButtonAnimations;\n\n /**\n * @description Configuração do badge exibido sobre o botão, com contador ou indicador visual.\n */\n @Input()\n public badge?: ButtonBadgeConfig;\n\n /**\n * @description Cor aplicada ao ícone do botão, sobrescrevendo a cor padrão do tema.\n */\n @Input()\n public iconColor?: string;\n\n /**\n * @description Texto alternativo para o menu associado ao botão, utilizado para acessibilidade.\n */\n @Input()\n public menuAriaLabel?: string;\n\n /**\n * @description Texto alternativo para quando o botão não tiver um texto explicito, utilizado para acessibilidade.\n */\n @Input()\n public ariaLabel?: string;\n\n /**\n * @description Emitido ao clicar no botão, desde que não esteja desabilitado.\n */\n @Output()\n public clicked: EventEmitter<any> = new EventEmitter();\n\n public isMenuOpen = false;\n\n tieredMenuOpened = output<void>();\n\n tieredMenuClosed = output<void>();\n\n public validateSlideButton(): boolean {\n return !!(this.slide && (this.priority === 'default' || this.priority === 'link') && this.label?.length);\n }\n\n public ngOnChanges(_: SimpleChanges): void {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n\n const isMultiple = this.menuOptions?.length;\n\n if (hasText || (hasIcon && isMultiple)) {\n this.minWidth = '80px';\n }\n if (hasText && hasIcon && isMultiple) {\n this.minWidth = '100px';\n }\n }\n\n public isRotateAnimation(): boolean {\n return this.animation === 'rotate';\n }\n\n public onTieredMenuOpened(): void {\n this.isMenuOpen = true;\n this.tieredMenuOpened.emit();\n }\n\n public onTieredMenuClosed(): void {\n this.isMenuOpen = false;\n this.tieredMenuClosed.emit();\n }\n}\n\n","<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n class=\"inline-flex items-center justify-center border border-solid cursor-pointer font-open-sans text-sm max-w-full min-w-[40px] outline-none overflow-visible py-[5px] px-[10px] relative no-underline normal-case transition-[background-color,border-color,color] duration-200 ease-out text-grayscale-0 disabled:cursor-text disabled:opacity-50\"\n [ngClass]=\"{\n 'rounded-medium': !auxiliary,\n 'rounded-[20px]': auxiliary && !(iconClass && !label && !menuOptions.length),\n 'rounded-[50%]': auxiliary && !!(iconClass && !label && !menuOptions.length),\n 'h-[35px]': size !== 'small',\n 'h-[25px]': size === 'small',\n 'max-w-6 max-h-6 min-w-6': size === 'small' && !!(iconClass && !label && !menuOptions.length),\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': !!iconClass,\n 's-button-with-text': !!label,\n 's-button-only-icon': !!(iconClass && !label && !menuOptions.length),\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || !!rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [ariaLabel]=\"menuAriaLabel\"\n [attr.aria-haspopup]=\"menuOptions.length ? 'menu' : null\"\n [attr.aria-expanded]=\"menuOptions.length ? isMenuOpen : null\"\n [attr.aria-label]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (tieredMenuOpened)=\"onTieredMenuOpened()\"\n (tieredMenuClosed)=\"onTieredMenuClosed()\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon inline-flex items-center justify-center': true,\n 'mr-[10px]': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text block overflow-hidden text-ellipsis whitespace-nowrap\"\n [ngClass]=\"{\n 'mr-[10px]': !!rightIconClass || menuOptions.length,\n 'ml-[10px]': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon inline-flex items-center justify-center': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"z-[99] relative right-[15px] bottom-[16px]\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n\n","import { NgModule } from '@angular/core';\n\nimport { ButtonComponent } from './button.component';\n\n/**\n * @deprecated Será removido na v20. Importe diretamente o standalone `ButtonComponent` (de\n * `@seniorsistemas/angular-components/button`) no lugar deste módulo.\n *\n * Migração automática (também executada pelo `ng update` na v20):\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\n */\n@NgModule({\n imports: [\n ButtonComponent,\n ],\n exports: [ButtonComponent],\n})\nexport class ButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -636,6 +636,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
636
636
  args: ['keydown', ['$event']]
637
637
  }] } });
638
638
 
639
+ /**
640
+ * @deprecated Será removido na v20. Importe diretamente o standalone `CalendarMaskDirective` (de
641
+ * `@seniorsistemas/angular-components/calendar-mask`) no lugar deste módulo.
642
+ *
643
+ * Migração automática (também executada pelo `ng update` na v20):
644
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
645
+ */
639
646
  class CalendarMaskModule {
640
647
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
641
648
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, imports: [CalendarMaskDirective], exports: [CalendarMaskDirective] });