@seniorsistemas/angular-components 19.3.1 → 19.3.3

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 (260) hide show
  1. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.d.ts +1 -2
  2. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +0 -1
  3. package/chips/lib/chips/chips/chips.component.d.ts +1 -2
  4. package/code-editor/lib/code-editor/code-editor.component.d.ts +0 -2
  5. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +1 -3
  6. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -2
  7. package/content-generator/lib/content-generator/content-generator.component.d.ts +1 -6
  8. package/content-generator/lib/services/IAssist/iassist.service.d.ts +0 -3
  9. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -3
  10. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +0 -2
  11. package/currency/lib/currency.service.d.ts +0 -2
  12. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +3 -7
  13. package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +0 -2
  14. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +2 -4
  15. package/dynamic-form/dynamic-form/components/lookup/types/lookup-models.d.ts +4 -0
  16. package/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +2 -1
  17. package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -2
  18. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +1 -3
  19. package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -2
  20. package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -3
  21. package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -2
  22. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -3
  23. package/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.d.ts +1 -2
  24. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -3
  25. package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -2
  26. package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -2
  27. package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -2
  28. package/dynamic-form/public-api.d.ts +1 -0
  29. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +0 -2
  30. package/esm2022/badge/lib/badge/badge.component.mjs +3 -3
  31. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.component.mjs +10 -13
  32. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +7 -11
  33. package/esm2022/chips/lib/chips/chips/chips.component.mjs +5 -8
  34. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +6 -9
  35. package/esm2022/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.mjs +8 -13
  36. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +6 -10
  37. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +24 -30
  38. package/esm2022/content-generator/lib/services/IAssist/iassist.service.mjs +9 -12
  39. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +15 -23
  40. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +6 -9
  41. package/esm2022/currency/lib/currency.service.mjs +6 -9
  42. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -25
  43. package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +6 -9
  44. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +26 -35
  45. package/esm2022/dynamic-form/dynamic-form/components/lookup/types/lookup-models.mjs +2 -0
  46. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  47. package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +6 -10
  48. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +12 -17
  49. package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +5 -8
  50. package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +12 -17
  51. package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +5 -8
  52. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +13 -19
  53. package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-picker/file-picker-field.component.mjs +6 -10
  54. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +14 -19
  55. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +5 -8
  56. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +5 -8
  57. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +5 -8
  58. package/esm2022/dynamic-form/public-api.mjs +1 -1
  59. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +8 -11
  60. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +17 -21
  61. package/esm2022/gantt/lib/gantt/components/gantt/gantt.mjs +6 -2
  62. package/esm2022/gantt/lib/gantt/gantt.component.mjs +8 -4
  63. package/esm2022/global-search/lib/global-search/global-search.component.mjs +5 -8
  64. package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +7 -12
  65. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +5 -8
  66. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +6 -10
  67. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +9 -12
  68. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +14 -17
  69. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +12 -15
  70. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +15 -19
  71. package/esm2022/interactive-content/lib/interactive-content/interactive-content.directive.mjs +5 -8
  72. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +10 -13
  73. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +10 -13
  74. package/esm2022/kanban/lib/kanban/kanban.component.mjs +23 -17
  75. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +10 -16
  76. package/esm2022/locale/lib/locale/locale.service.mjs +8 -12
  77. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +6 -9
  78. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +6 -9
  79. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +6 -9
  80. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +6 -9
  81. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +6 -9
  82. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +6 -9
  83. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +5 -8
  84. package/esm2022/numeric/lib/numeric.pipe.mjs +8 -12
  85. package/esm2022/numeric/lib/numeric.service.mjs +6 -9
  86. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +8 -11
  87. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +10 -16
  88. package/esm2022/picklist/lib/picklist/picklist.component.mjs +5 -8
  89. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +15 -19
  90. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -11
  91. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +5 -4
  92. package/esm2022/select-button/lib/select-button/select-button.component.mjs +3 -3
  93. package/esm2022/shared/lib/accessibility/paginator-accessibility.directive.mjs +8 -13
  94. package/esm2022/shared/lib/accessibility/table-checkbox-accessibility.directive.mjs +5 -8
  95. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +9 -12
  96. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +12 -16
  97. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.service.mjs +12 -16
  98. package/esm2022/speech-recognition/lib/speech-recognition/text-to-speech.service.mjs +8 -10
  99. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -8
  100. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +7 -7
  101. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +19 -28
  102. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +9 -16
  103. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +11 -13
  104. package/esm2022/text-area/lib/text-area/text-area.component.mjs +5 -8
  105. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +8 -11
  106. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +16 -24
  107. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +8 -11
  108. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +12 -16
  109. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +13 -25
  110. package/esm2022/toast/lib/toast/toast.service.mjs +7 -12
  111. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +10 -14
  112. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +6 -10
  113. package/fesm2022/seniorsistemas-angular-components-badge.mjs +2 -2
  114. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  115. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +10 -12
  116. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  117. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +6 -10
  118. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  119. package/fesm2022/seniorsistemas-angular-components-chips.mjs +4 -7
  120. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  121. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +10 -18
  122. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  123. package/fesm2022/seniorsistemas-angular-components-common.mjs +5 -9
  124. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  125. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +29 -40
  126. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  127. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +16 -28
  128. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  129. package/fesm2022/seniorsistemas-angular-components-currency.mjs +5 -8
  130. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -1
  131. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +45 -59
  132. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  133. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +111 -163
  134. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  135. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +4 -8
  136. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  137. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +17 -22
  138. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  139. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +12 -4
  140. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  141. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +4 -7
  142. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  143. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +6 -11
  144. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  145. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +4 -7
  146. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  147. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +5 -9
  148. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  149. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +29 -38
  150. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  151. package/fesm2022/seniorsistemas-angular-components-insights.mjs +17 -22
  152. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  153. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +4 -7
  154. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  155. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +30 -30
  156. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  157. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -15
  158. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  159. package/fesm2022/seniorsistemas-angular-components-locale.mjs +22 -41
  160. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  161. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +5 -8
  162. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  163. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +4 -7
  164. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  165. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +9 -16
  166. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  167. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +13 -24
  168. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  169. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +4 -7
  170. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  171. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +14 -21
  172. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  173. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +11 -14
  174. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  175. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +2 -2
  176. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  177. package/fesm2022/seniorsistemas-angular-components-shared.mjs +10 -18
  178. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  179. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -10
  180. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  181. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +23 -34
  182. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  183. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +4 -7
  184. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  185. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +10 -12
  186. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  187. package/fesm2022/seniorsistemas-angular-components-table.mjs +29 -46
  188. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  189. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +4 -7
  190. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  191. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -9
  192. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  193. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +30 -55
  194. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  195. package/fesm2022/seniorsistemas-angular-components-toast.mjs +6 -11
  196. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  197. package/fesm2022/seniorsistemas-angular-components-tree.mjs +9 -14
  198. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  199. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +5 -9
  200. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  201. package/file-picker/lib/file-picker/file-picker.component.d.ts +0 -4
  202. package/file-upload/README.md +9 -37
  203. package/gantt/lib/gantt/gantt.component.d.ts +1 -0
  204. package/global-search/lib/global-search/global-search.component.d.ts +1 -2
  205. package/ia-insight/README.md +17 -0
  206. package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +1 -2
  207. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -2
  208. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -2
  209. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +1 -2
  210. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -2
  211. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -2
  212. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +0 -4
  213. package/interactive-content/lib/interactive-content/interactive-content.directive.d.ts +1 -2
  214. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +0 -2
  215. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +0 -2
  216. package/kanban/lib/kanban/kanban.component.d.ts +2 -2
  217. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -2
  218. package/locale/lib/locale/locale.service.d.ts +0 -3
  219. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +0 -2
  220. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +0 -2
  221. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +0 -2
  222. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +0 -2
  223. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +0 -2
  224. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +0 -2
  225. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -2
  226. package/numeric/lib/numeric.pipe.d.ts +0 -3
  227. package/numeric/lib/numeric.service.d.ts +0 -2
  228. package/package.json +1 -1
  229. package/password-strength/lib/password-strength/password-strength.component.d.ts +0 -2
  230. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -2
  231. package/picklist/lib/picklist/picklist.component.d.ts +1 -2
  232. package/product-header/README.md +17 -0
  233. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +0 -4
  234. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -2
  235. package/progressbar/lib/progressbar/progressbar.module.d.ts +2 -1
  236. package/shared/lib/accessibility/paginator-accessibility.directive.d.ts +1 -3
  237. package/shared/lib/accessibility/table-checkbox-accessibility.directive.d.ts +1 -2
  238. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +0 -2
  239. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -4
  240. package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +1 -5
  241. package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +1 -3
  242. package/split-button/lib/split-button/split-button.component.d.ts +1 -2
  243. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  244. package/table/lib/table/table-column/table-columns.component.d.ts +2 -6
  245. package/table/lib/table/table-paging/table-paging.component.d.ts +0 -3
  246. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  247. package/text-area/lib/text-area/text-area.component.d.ts +1 -2
  248. package/text-area-ia/README.md +17 -0
  249. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +0 -2
  250. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -3
  251. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -2
  252. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -2
  253. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -5
  254. package/toast/lib/toast/toast.service.d.ts +0 -2
  255. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -3
  256. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -2
  257. package/confirm-dialog/README.md +0 -226
  258. package/numeric-mask/README.md +0 -395
  259. package/pin-code-field/README.md +0 -366
  260. package/spotlight/README.md +0 -311
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-locale.mjs","sources":["../../projects/angular-components/locale/src/lib/locale/options/calendar.ts","../../projects/angular-components/locale/src/lib/locale/options/number.ts","../../projects/angular-components/locale/src/lib/locale/options/index.ts","../../projects/angular-components/locale/src/lib/locale/locale.service.ts","../../projects/angular-components/locale/src/lib/locale/apply-localized-mask.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-bignumber.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-bignumber-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-currency.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-currency-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-date.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-date-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-number.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-time.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-time-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/locale.module.ts","../../projects/angular-components/locale/src/seniorsistemas-angular-components-locale.ts"],"sourcesContent":["export interface ICalendarLocaleOptions {\n hourFormat?: string;\n dateFormat?: string;\n firstDayOfWeek?: number;\n today?: string;\n clear?: string;\n dayNames?: string[];\n dayNamesShort?: string[];\n dayNamesMin?: string[];\n monthNamesShort?: string[];\n monthNames?: string[];\n}\n\nexport class CalendarLocaleOptions implements ICalendarLocaleOptions {\n public hourFormat? = '24';\n public dateFormat? = 'dd/mm/yy';\n public firstDayOfWeek? = 0;\n public today? = 'Hoje';\n public clear? = 'Limpar';\n public dayNames?: string[] = ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'];\n public dayNamesShort?: string[] = ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'];\n public dayNamesMin?: string[] = ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'];\n public monthNamesShort?: string[] = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];\n public monthNames?: string[] = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];\n\n constructor(config: ICalendarLocaleOptions = {}) {\n this.clear = config?.clear ?? this.clear;\n this.dateFormat = config?.dateFormat ?? this.dateFormat;\n this.dayNames = config?.dayNames ?? this.dayNames;\n this.dayNamesMin = config?.dayNamesMin ?? this.dayNamesMin;\n this.firstDayOfWeek = config?.firstDayOfWeek ?? this.firstDayOfWeek;\n this.hourFormat = config?.hourFormat ?? this.hourFormat;\n this.monthNames = config?.monthNames ?? this.monthNames;\n this.monthNamesShort = config?.monthNamesShort ?? this.monthNamesShort;\n this.today = config?.today ?? this.today;\n }\n}\n","export interface INumberLocaleOptions {\n thousandsSeparator?: string;\n decimalSeparator?: string;\n currencySymbol?: string;\n}\n\nexport class NumberLocaleOptions implements INumberLocaleOptions {\n public thousandsSeparator? = \".\";\n public decimalSeparator? = \",\";\n public currencySymbol? = \"R$\";\n\n constructor(config: INumberLocaleOptions = {}) {\n Object.assign(this, config);\n }\n}\n","import { CalendarLocaleOptions } from './calendar';\nimport { NumberLocaleOptions } from './number';\n\nexport interface ILocaleOptions {\n locale?: string;\n calendar?: CalendarLocaleOptions;\n number?: NumberLocaleOptions;\n}\n\nexport class LocaleOptions implements ILocaleOptions {\n locale? = 'pt-BR';\n calendar = new CalendarLocaleOptions({});\n number = new NumberLocaleOptions();\n\n constructor(config: ILocaleOptions = {}) {\n this.calendar = config.calendar ?? this.calendar;\n this.number = config.number ?? this.number;\n this.locale = config.locale ?? this.locale;\n // Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n\n// /**\n// * @deprecated\n// */\n// export const DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();\n\n// /**\n// * @deprecated\n// */\n// export const DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();\n\n// /**\n// * @deprecated\n// */\n// export const DEFAULT_LOCALE_OPTIONS = new LocaleOptions();\n\nexport * from './calendar';\nexport * from './number';\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport moment from 'moment';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { ILocaleOptions, LocaleOptions } from './options/index';\n\nimport 'moment/locale/es';\nimport 'moment/locale/pt-br';\n\n/**\n * @description Serviço de localização que obtém e armazena o locale do usuário\n * a partir da plataforma Senior. Fornece separadores decimais e de milhar,\n * configurações de calendário e opções de formato PrimeNG com base no locale ativo.\n *\n * @category Locale\n */\n@Injectable()\nexport class LocaleService {\n private locale?: string;\n private localeOptions?: LocaleOptions;\n private readonly localeOptionsAddress = 'https://cdn.senior.com.br/primeng/locales';\n private readonly localeOptionsVersion = '3.0.0';\n private readonly VALID_MOMENT_LANGUAGES = {\n spanish: ['es-do', 'es-mx', 'es-us', 'es'],\n english: ['en', 'en-au', 'en-ca', 'en-gb', 'en-ie', 'en-il', 'en-in', 'en-nz', 'en-sg'],\n };\n\n constructor(\n private readonly http: HttpClient,\n private readonly cookieService: CookieService,\n ) {}\n\n get(): Observable<LocaleOptions> {\n return this.localeOptions\n ? of(this.localeOptions)\n : this.getLocaleConfig().pipe(\n tap(\n (localeOptions: LocaleOptions) =>\n (this.localeOptions = { ...localeOptions, locale: this.locale }),\n ),\n );\n }\n\n getLocale(): Observable<string> {\n return this.locale\n ? of(this.locale)\n : from(this.getUserData()).pipe(\n map((userData: any) => {\n const locale = <string>userData.locale || <string>userData.tenantLocale || 'pt-BR';\n this.locale = locale;\n return this.locale;\n }),\n );\n }\n\n /**\n * Returns an object with the locale options based on the user's locale(platform locale).\n * @return The locale options object.\n */\n getLocaleOptions(): LocaleOptions | undefined {\n return this.localeOptions;\n }\n\n private getUserData() {\n try {\n return of(JSON.parse(this.cookieService.get('com.senior.token')));\n } catch (ex) {\n console.warn('Unable to obtain user locale from cookie, calling getUser');\n return user.getUserData();\n }\n }\n\n /**\n * Set valid locale for moment js locale based on user current locale.\n * Sometimes the locale from user not exists in locale of moment, for example, is valid user with language 'es-CO' but for the momentjs the locale 'es-CO' not exist, so with this function will be applied the 'es' locale.\n * @param userLocale\n * @returns valid locale based in user locale.\n */\n private parseUserLocaleToMoment(userLocale: string): string {\n userLocale = userLocale.toLowerCase();\n if (userLocale.startsWith('es') && !this.VALID_MOMENT_LANGUAGES.spanish.includes(userLocale)) {\n userLocale = 'es';\n }\n if (userLocale.startsWith('en') && !this.VALID_MOMENT_LANGUAGES.english.includes(userLocale)) {\n userLocale = 'en';\n }\n return userLocale;\n }\n\n private getLocaleConfig(): Observable<LocaleOptions> {\n return this.getLocale().pipe(\n switchMap((locale: string) => {\n moment.locale(this.parseUserLocaleToMoment(locale));\n\n return this.http\n .get<ILocaleOptions>(`${this.localeOptionsAddress}/${this.localeOptionsVersion}/${locale}.json`)\n .pipe(map((response) => new LocaleOptions({ ...response, locale })));\n }),\n catchError((err: any) => {\n console.warn(`Error getting locale configuration. Using fallback.`, err);\n return user.getUserData();\n }),\n );\n }\n\n getGroupingSeparator(): string | undefined {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: 'decimal',\n useGrouping: true,\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n // The default groupingSeparator for 'fr' is the character code 8239. We need it to be the regular space.\n if (this.locale?.includes('fr')) return ' ';\n\n return numberFormat.formatToParts(1000).find((part) => part.type === 'group')?.value;\n }\n\n getDecimalSeparator(): string | undefined {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: 'decimal',\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n return numberFormat.formatToParts(1.2).find((part) => part.type === 'decimal')?.value;\n }\n}\n\n","import BigNumber from 'bignumber.js';\n\nexport interface LocalizedBignumberOptions {\n decimalSeparator?: string;\n thousandsSeparator?: string;\n scale?: number;\n prefix?: string;\n suffix?: string;\n allowNegative?: boolean;\n}\n\nexport function applyLocalizedMask(\n rawValue: any,\n options: Required<LocalizedBignumberOptions>,\n isNumber: boolean,\n): string {\n const { allowNegative, decimalSeparator, scale, prefix, suffix, thousandsSeparator } = options;\n const value = isNumber ? new BigNumber(rawValue).toFixed(scale).toString() : String(rawValue);\n const onlyNumbers = value.replace(/\\D/g, '');\n if (!onlyNumbers) {\n return '';\n }\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) || '0';\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !integerPart && !decimalPart;\n const operator = String(value).includes('-') && allowNegative && !isZero ? '-' : '';\n return `${operator}${prefix}${newValue}${suffix}`;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport BigNumber from \"bignumber.js\";\nimport { applyLocalizedMask, LocalizedBignumberOptions } from \"../apply-localized-mask\";\n\nexport type { LocalizedBignumberOptions };\n\n@Pipe({\n name: \"localizedBignumber\",\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n constructor(\n private localeService: LocaleService\n ) {}\n\n public transform(value?: any, options?: LocalizedBignumberOptions): any {\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value?: any, options?: LocalizedBignumberOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const configs: Required<LocalizedBignumberOptions> = {\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? \"R$\",\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? \".\",\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? \",\",\n scale: options?.scale ?? 2,\n suffix: options?.suffix ?? \"\",\n allowNegative: options?.allowNegative ?? true,\n };\n const isNumber = !(new BigNumber(value).isNaN());\n return applyLocalizedMask(value, configs, isNumber);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocalizedBignumberOptions, LocalizedBignumberPipe } from \"./localized-bignumber.pipe\";\n\n@Pipe({\n name: \"localizedBignumberImpure\",\n pure: false,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public override transform(value?: any, options?: LocalizedBignumberOptions): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { INumberLocaleOptions, NumberLocaleOptions } from \"../options\";\n\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\n scale?: number;\n}\n\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\n public scale = 2;\n\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\n super(config);\n }\n}\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrency\",\n})\nexport class LocalizedCurrencyPipe implements PipeTransform {\n constructor(private localeService: LocaleService) { }\n\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\n if (!options) {\n options = new LocalizedCurrencyPipeOptions();\n }\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const config = { ...localeConfig.number, ...options };\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\n\n const rawValue = Number(value).toFixed(scale);\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, ``)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator!) || `0`;\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !Number(onlyNumbers);\n const operator = rawValue.includes(\"-\") && !isZero ? \"-\" : \"\";\n return `${operator}${currencySymbol}${newValue}`;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from \"./localized-currency.pipe\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrencyImpure\",\n pure: false,\n})\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\n public override transform(value?: any, options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions()): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport moment from 'moment';\nimport { map } from 'rxjs/operators';\n\nimport { LocaleService } from '../locale.service';\n\n@Pipe({\n name: 'localizedDate',\n})\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = 'L LTS'): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\n }\n}\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateImpure\",\n pure: false,\n})\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { from } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({ name: \"localizedNumber\" })\nexport class LocalizedNumberPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n transform(value: number | string, minimumFractionDigits?: number) {\n return from(this.localeService.getLocale()).pipe(\n map((locale: string) => {\n const numericValue = Number(value);\n\n if (!value && isNaN(numericValue)) return;\n\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: minimumFractionDigits || 0,\n }).format(Number(value));\n })\n );\n }\n}\n\nexport interface Locale {\n localidade?: string;\n tenantLocale?: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\nimport { map } from 'rxjs/operators';\n\nimport { LocaleService } from '../locale.service';\n\n@Pipe({\n name: 'localizedTime',\n})\nexport class LocalizedTimePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = 'LTS'): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value, 'HH:mm:ss').format(format) : value)));\n }\n}\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedTimePipe } from \"./localized-time.pipe\";\n\n@Pipe({\n name: \"localizedTimeImpure\",\n pure: false,\n})\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { LocaleService } from './locale.service';\nimport { LocalizedBignumberImpurePipe } from './pipes/localized-bignumber-impure.pipe';\nimport { LocalizedBignumberPipe } from './pipes/localized-bignumber.pipe';\nimport { LocalizedCurrencyImpurePipe } from './pipes/localized-currency-impure.pipe';\nimport { LocalizedCurrencyPipe } from './pipes/localized-currency.pipe';\nimport { LocalizedDateImpurePipe } from './pipes/localized-date-impure.pipe';\nimport { LocalizedDatePipe } from './pipes/localized-date.pipe';\nimport { LocalizedNumberPipe } from './pipes/localized-number.pipe';\nimport { LocalizedTimeImpurePipe } from './pipes/localized-time-impure.pipe';\nimport { LocalizedTimePipe } from './pipes/localized-time.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ],\n declarations: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ],\n})\nexport class LocaleModule {\n public static forRoot(): ModuleWithProviders<LocaleModule> {\n return {\n ngModule: LocaleModule,\n providers: [\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ],\n };\n }\n\n public static forChild(): ModuleWithProviders<LocaleModule> {\n return {\n ngModule: LocaleModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.LocaleService"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-locale.mjs","sources":["../../projects/angular-components/locale/src/lib/locale/options/calendar.ts","../../projects/angular-components/locale/src/lib/locale/options/number.ts","../../projects/angular-components/locale/src/lib/locale/options/index.ts","../../projects/angular-components/locale/src/lib/locale/locale.service.ts","../../projects/angular-components/locale/src/lib/locale/apply-localized-mask.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-bignumber.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-bignumber-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-currency.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-currency-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-date.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-date-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-number.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-time.pipe.ts","../../projects/angular-components/locale/src/lib/locale/pipes/localized-time-impure.pipe.ts","../../projects/angular-components/locale/src/lib/locale/locale.module.ts","../../projects/angular-components/locale/src/seniorsistemas-angular-components-locale.ts"],"sourcesContent":["export interface ICalendarLocaleOptions {\n hourFormat?: string;\n dateFormat?: string;\n firstDayOfWeek?: number;\n today?: string;\n clear?: string;\n dayNames?: string[];\n dayNamesShort?: string[];\n dayNamesMin?: string[];\n monthNamesShort?: string[];\n monthNames?: string[];\n}\n\nexport class CalendarLocaleOptions implements ICalendarLocaleOptions {\n public hourFormat? = '24';\n public dateFormat? = 'dd/mm/yy';\n public firstDayOfWeek? = 0;\n public today? = 'Hoje';\n public clear? = 'Limpar';\n public dayNames?: string[] = ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'];\n public dayNamesShort?: string[] = ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'];\n public dayNamesMin?: string[] = ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'];\n public monthNamesShort?: string[] = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];\n public monthNames?: string[] = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];\n\n constructor(config: ICalendarLocaleOptions = {}) {\n this.clear = config?.clear ?? this.clear;\n this.dateFormat = config?.dateFormat ?? this.dateFormat;\n this.dayNames = config?.dayNames ?? this.dayNames;\n this.dayNamesMin = config?.dayNamesMin ?? this.dayNamesMin;\n this.firstDayOfWeek = config?.firstDayOfWeek ?? this.firstDayOfWeek;\n this.hourFormat = config?.hourFormat ?? this.hourFormat;\n this.monthNames = config?.monthNames ?? this.monthNames;\n this.monthNamesShort = config?.monthNamesShort ?? this.monthNamesShort;\n this.today = config?.today ?? this.today;\n }\n}\n","export interface INumberLocaleOptions {\n thousandsSeparator?: string;\n decimalSeparator?: string;\n currencySymbol?: string;\n}\n\nexport class NumberLocaleOptions implements INumberLocaleOptions {\n public thousandsSeparator? = \".\";\n public decimalSeparator? = \",\";\n public currencySymbol? = \"R$\";\n\n constructor(config: INumberLocaleOptions = {}) {\n Object.assign(this, config);\n }\n}\n","import { CalendarLocaleOptions } from './calendar';\nimport { NumberLocaleOptions } from './number';\n\nexport interface ILocaleOptions {\n locale?: string;\n calendar?: CalendarLocaleOptions;\n number?: NumberLocaleOptions;\n}\n\nexport class LocaleOptions implements ILocaleOptions {\n locale? = 'pt-BR';\n calendar = new CalendarLocaleOptions({});\n number = new NumberLocaleOptions();\n\n constructor(config: ILocaleOptions = {}) {\n this.calendar = config.calendar ?? this.calendar;\n this.number = config.number ?? this.number;\n this.locale = config.locale ?? this.locale;\n // Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n\n// /**\n// * @deprecated\n// */\n// export const DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();\n\n// /**\n// * @deprecated\n// */\n// export const DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();\n\n// /**\n// * @deprecated\n// */\n// export const DEFAULT_LOCALE_OPTIONS = new LocaleOptions();\n\nexport * from './calendar';\nexport * from './number';\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { user } from '@seniorsistemas/senior-platform-data';\nimport moment from 'moment';\nimport { from, Observable, of } from 'rxjs';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\n\nimport { ILocaleOptions, LocaleOptions } from './options/index';\n\nimport 'moment/locale/es';\nimport 'moment/locale/pt-br';\n\n/**\n * @description Serviço de localização que obtém e armazena o locale do usuário\n * a partir da plataforma Senior. Fornece separadores decimais e de milhar,\n * configurações de calendário e opções de formato PrimeNG com base no locale ativo.\n *\n * @category Locale\n */\n@Injectable()\nexport class LocaleService {\n private readonly http = inject(HttpClient);\n private readonly cookieService = inject(CookieService);\n\n private locale?: string;\n private localeOptions?: LocaleOptions;\n private readonly localeOptionsAddress = 'https://cdn.senior.com.br/primeng/locales';\n private readonly localeOptionsVersion = '3.0.0';\n private readonly VALID_MOMENT_LANGUAGES = {\n spanish: ['es-do', 'es-mx', 'es-us', 'es'],\n english: ['en', 'en-au', 'en-ca', 'en-gb', 'en-ie', 'en-il', 'en-in', 'en-nz', 'en-sg'],\n };\n\n get(): Observable<LocaleOptions> {\n return this.localeOptions\n ? of(this.localeOptions)\n : this.getLocaleConfig().pipe(\n tap(\n (localeOptions: LocaleOptions) =>\n (this.localeOptions = { ...localeOptions, locale: this.locale }),\n ),\n );\n }\n\n getLocale(): Observable<string> {\n return this.locale\n ? of(this.locale)\n : from(this.getUserData()).pipe(\n map((userData: any) => {\n const locale = <string>userData.locale || <string>userData.tenantLocale || 'pt-BR';\n this.locale = locale;\n return this.locale;\n }),\n );\n }\n\n /**\n * Returns an object with the locale options based on the user's locale(platform locale).\n * @return The locale options object.\n */\n getLocaleOptions(): LocaleOptions | undefined {\n return this.localeOptions;\n }\n\n private getUserData() {\n try {\n return of(JSON.parse(this.cookieService.get('com.senior.token')));\n } catch (ex) {\n console.warn('Unable to obtain user locale from cookie, calling getUser');\n return user.getUserData();\n }\n }\n\n /**\n * Set valid locale for moment js locale based on user current locale.\n * Sometimes the locale from user not exists in locale of moment, for example, is valid user with language 'es-CO' but for the momentjs the locale 'es-CO' not exist, so with this function will be applied the 'es' locale.\n * @param userLocale\n * @returns valid locale based in user locale.\n */\n private parseUserLocaleToMoment(userLocale: string): string {\n userLocale = userLocale.toLowerCase();\n if (userLocale.startsWith('es') && !this.VALID_MOMENT_LANGUAGES.spanish.includes(userLocale)) {\n userLocale = 'es';\n }\n if (userLocale.startsWith('en') && !this.VALID_MOMENT_LANGUAGES.english.includes(userLocale)) {\n userLocale = 'en';\n }\n return userLocale;\n }\n\n private getLocaleConfig(): Observable<LocaleOptions> {\n return this.getLocale().pipe(\n switchMap((locale: string) => {\n moment.locale(this.parseUserLocaleToMoment(locale));\n\n return this.http\n .get<ILocaleOptions>(`${this.localeOptionsAddress}/${this.localeOptionsVersion}/${locale}.json`)\n .pipe(map((response) => new LocaleOptions({ ...response, locale })));\n }),\n catchError((err: any) => {\n console.warn(`Error getting locale configuration. Using fallback.`, err);\n return user.getUserData();\n }),\n );\n }\n\n getGroupingSeparator(): string | undefined {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: 'decimal',\n useGrouping: true,\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n // The default groupingSeparator for 'fr' is the character code 8239. We need it to be the regular space.\n if (this.locale?.includes('fr')) return ' ';\n\n return numberFormat.formatToParts(1000).find((part) => part.type === 'group')?.value;\n }\n\n getDecimalSeparator(): string | undefined {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: 'decimal',\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n return numberFormat.formatToParts(1.2).find((part) => part.type === 'decimal')?.value;\n }\n}\n\n","import BigNumber from 'bignumber.js';\n\nexport interface LocalizedBignumberOptions {\n decimalSeparator?: string;\n thousandsSeparator?: string;\n scale?: number;\n prefix?: string;\n suffix?: string;\n allowNegative?: boolean;\n}\n\nexport function applyLocalizedMask(\n rawValue: any,\n options: Required<LocalizedBignumberOptions>,\n isNumber: boolean,\n): string {\n const { allowNegative, decimalSeparator, scale, prefix, suffix, thousandsSeparator } = options;\n const value = isNumber ? new BigNumber(rawValue).toFixed(scale).toString() : String(rawValue);\n const onlyNumbers = value.replace(/\\D/g, '');\n if (!onlyNumbers) {\n return '';\n }\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, '')\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) || '0';\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !integerPart && !decimalPart;\n const operator = String(value).includes('-') && allowNegative && !isZero ? '-' : '';\n return `${operator}${prefix}${newValue}${suffix}`;\n}\n","import { Pipe, PipeTransform, inject } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport BigNumber from \"bignumber.js\";\nimport { applyLocalizedMask, LocalizedBignumberOptions } from \"../apply-localized-mask\";\n\nexport type { LocalizedBignumberOptions };\n\n@Pipe({\n name: \"localizedBignumber\",\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n private localeService = inject(LocaleService);\n\n\n public transform(value?: any, options?: LocalizedBignumberOptions): any {\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value?: any, options?: LocalizedBignumberOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const configs: Required<LocalizedBignumberOptions> = {\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? \"R$\",\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? \".\",\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? \",\",\n scale: options?.scale ?? 2,\n suffix: options?.suffix ?? \"\",\n allowNegative: options?.allowNegative ?? true,\n };\n const isNumber = !(new BigNumber(value).isNaN());\n return applyLocalizedMask(value, configs, isNumber);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocalizedBignumberOptions, LocalizedBignumberPipe } from \"./localized-bignumber.pipe\";\n\n@Pipe({\n name: \"localizedBignumberImpure\",\n pure: false,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public override transform(value?: any, options?: LocalizedBignumberOptions): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform, inject } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { INumberLocaleOptions, NumberLocaleOptions } from \"../options\";\n\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\n scale?: number;\n}\n\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\n public scale = 2;\n\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\n super(config);\n }\n}\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrency\",\n})\nexport class LocalizedCurrencyPipe implements PipeTransform {\n private localeService = inject(LocaleService);\n\n\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\n if (!options) {\n options = new LocalizedCurrencyPipeOptions();\n }\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const config = { ...localeConfig.number, ...options };\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\n\n const rawValue = Number(value).toFixed(scale);\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, ``)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator!) || `0`;\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !Number(onlyNumbers);\n const operator = rawValue.includes(\"-\") && !isZero ? \"-\" : \"\";\n return `${operator}${currencySymbol}${newValue}`;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from \"./localized-currency.pipe\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrencyImpure\",\n pure: false,\n})\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\n public override transform(value?: any, options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions()): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport moment from 'moment';\nimport { map } from 'rxjs/operators';\n\nimport { LocaleService } from '../locale.service';\n\n@Pipe({\n name: 'localizedDate',\n})\nexport class LocalizedDatePipe implements PipeTransform {\n private localeService = inject(LocaleService);\n\n\n public transform(value: any, format: string = 'L LTS'): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\n }\n}\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateImpure\",\n pure: false,\n})\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\n","import { Pipe, PipeTransform, inject } from \"@angular/core\";\nimport { from } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({ name: \"localizedNumber\" })\nexport class LocalizedNumberPipe implements PipeTransform {\n private localeService = inject(LocaleService);\n\n\n transform(value: number | string, minimumFractionDigits?: number) {\n return from(this.localeService.getLocale()).pipe(\n map((locale: string) => {\n const numericValue = Number(value);\n\n if (!value && isNaN(numericValue)) return;\n\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: minimumFractionDigits || 0,\n }).format(Number(value));\n })\n );\n }\n}\n\nexport interface Locale {\n localidade?: string;\n tenantLocale?: string;\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport moment from 'moment';\nimport { map } from 'rxjs/operators';\n\nimport { LocaleService } from '../locale.service';\n\n@Pipe({\n name: 'localizedTime',\n})\nexport class LocalizedTimePipe implements PipeTransform {\n private localeService = inject(LocaleService);\n\n\n public transform(value: any, format: string = 'LTS'): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value, 'HH:mm:ss').format(format) : value)));\n }\n}\n\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedTimePipe } from \"./localized-time.pipe\";\n\n@Pipe({\n name: \"localizedTimeImpure\",\n pure: false,\n})\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { LocaleService } from './locale.service';\nimport { LocalizedBignumberImpurePipe } from './pipes/localized-bignumber-impure.pipe';\nimport { LocalizedBignumberPipe } from './pipes/localized-bignumber.pipe';\nimport { LocalizedCurrencyImpurePipe } from './pipes/localized-currency-impure.pipe';\nimport { LocalizedCurrencyPipe } from './pipes/localized-currency.pipe';\nimport { LocalizedDateImpurePipe } from './pipes/localized-date-impure.pipe';\nimport { LocalizedDatePipe } from './pipes/localized-date.pipe';\nimport { LocalizedNumberPipe } from './pipes/localized-number.pipe';\nimport { LocalizedTimeImpurePipe } from './pipes/localized-time-impure.pipe';\nimport { LocalizedTimePipe } from './pipes/localized-time.pipe';\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ],\n declarations: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ],\n})\nexport class LocaleModule {\n public static forRoot(): ModuleWithProviders<LocaleModule> {\n return {\n ngModule: LocaleModule,\n providers: [\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ],\n };\n }\n\n public static forChild(): ModuleWithProviders<LocaleModule> {\n return {\n ngModule: LocaleModule,\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { forwardRef, Directive, Input, NgModule } from '@angular/core';
2
+ import { inject, forwardRef, Directive, Input, NgModule } from '@angular/core';
3
3
  import { NG_VALIDATORS } from '@angular/forms';
4
+ import { LocaleService } from '@seniorsistemas/angular-components/locale';
4
5
  import { first } from 'rxjs/operators';
5
- import * as i1 from '@seniorsistemas/angular-components/locale';
6
6
  import { CommonModule } from '@angular/common';
7
7
 
8
8
  /**
@@ -19,7 +19,7 @@ import { CommonModule } from '@angular/common';
19
19
  * @category Inputs
20
20
  */
21
21
  class LocalizedNumberInputDirective {
22
- localeService;
22
+ localeService = inject(LocaleService);
23
23
  /** @description Separador decimal personalizado. Usa o do locale ativo se não informado. */
24
24
  decimalSeparator;
25
25
  /** @description Separador de milhar personalizado. Usa o do locale ativo se não informado. */
@@ -27,9 +27,6 @@ class LocalizedNumberInputDirective {
27
27
  /** @description Número máximo de casas decimais aceitas na validação. @default 2 */
28
28
  precision = 2;
29
29
  numberRegex;
30
- constructor(localeService) {
31
- this.localeService = localeService;
32
- }
33
30
  ngOnInit() {
34
31
  // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.
35
32
  // Exemplo: /^(\+?)(\-?)([0-9]{0,3})*((\,[0-9]{3,3})|((\,[0-9]{3,3})+(\,[0-9]{3,3}))|((\,[0-9]{3,3})+(\.[0-9]{1,10})))?$/g
@@ -50,7 +47,7 @@ class LocalizedNumberInputDirective {
50
47
  }
51
48
  return null;
52
49
  }
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalizedNumberInputDirective, deps: [{ token: i1.LocaleService }], target: i0.ɵɵFactoryTarget.Directive });
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalizedNumberInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
54
51
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: LocalizedNumberInputDirective, selector: "input[sLocalizedNumberInput]", inputs: { decimalSeparator: "decimalSeparator", thousandsSeparator: "thousandsSeparator", precision: "precision" }, providers: [
55
52
  {
56
53
  provide: NG_VALIDATORS,
@@ -71,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
71
68
  },
72
69
  ],
73
70
  }]
74
- }], ctorParameters: () => [{ type: i1.LocaleService }], propDecorators: { decimalSeparator: [{
71
+ }], propDecorators: { decimalSeparator: [{
75
72
  type: Input
76
73
  }], thousandsSeparator: [{
77
74
  type: Input
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-localized-number-input.mjs","sources":["../../projects/angular-components/localized-number-input/src/lib/localized-number-input/localized-number-input.directive.ts","../../projects/angular-components/localized-number-input/src/lib/localized-number-input/localized-number-input.module.ts","../../projects/angular-components/localized-number-input/src/seniorsistemas-angular-components-localized-number-input.ts"],"sourcesContent":["import { Directive, forwardRef, Input, OnInit } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\n\nimport { first } from 'rxjs/operators';\n\n/**\n * @description Diretiva de validação para campos `<input>` que verificam se o valor digitado\n * é um número localizado válido (considerando separadores decimal e de milhar do locale ativo).\n * Ao ser integrada ao `NG_VALIDATORS`, adiciona o erro `invalidNumber` ao control quando\n * o valor não corresponde ao formato esperado.\n *\n * @example\n * ```html\n * <input sLocalizedNumberInput [precision]=\"4\" formControlName=\"valor\" />\n * ```\n *\n * @category Inputs\n */\n@Directive({\n selector: 'input[sLocalizedNumberInput]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\n /** @description Separador decimal personalizado. Usa o do locale ativo se não informado. */\n @Input()\n public decimalSeparator?: string;\n\n /** @description Separador de milhar personalizado. Usa o do locale ativo se não informado. */\n @Input()\n public thousandsSeparator?: string;\n\n /** @description Número máximo de casas decimais aceitas na validação. @default 2 */\n @Input()\n public precision = 2;\n\n private numberRegex?: string;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\n // Exemplo: /^(\\+?)(\\-?)([0-9]{0,3})*((\\,[0-9]{3,3})|((\\,[0-9]{3,3})+(\\,[0-9]{3,3}))|((\\,[0-9]{3,3})+(\\.[0-9]{1,10})))?$/g\n // tslint:disable-next-line: max-line-length\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n });\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex ?? '', 'g'))) {\n return { invalidNumber: true };\n }\n return null;\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LocalizedNumberInputDirective } from './localized-number-input.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LocalizedNumberInputDirective],\n exports: [LocalizedNumberInputDirective],\n})\nexport class LocalizedNumberInputModule {}\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-localized-number-input.mjs","sources":["../../projects/angular-components/localized-number-input/src/lib/localized-number-input/localized-number-input.directive.ts","../../projects/angular-components/localized-number-input/src/lib/localized-number-input/localized-number-input.module.ts","../../projects/angular-components/localized-number-input/src/seniorsistemas-angular-components-localized-number-input.ts"],"sourcesContent":["import { Directive, forwardRef, Input, OnInit, inject } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\n\nimport { first } from 'rxjs/operators';\n\n/**\n * @description Diretiva de validação para campos `<input>` que verificam se o valor digitado\n * é um número localizado válido (considerando separadores decimal e de milhar do locale ativo).\n * Ao ser integrada ao `NG_VALIDATORS`, adiciona o erro `invalidNumber` ao control quando\n * o valor não corresponde ao formato esperado.\n *\n * @example\n * ```html\n * <input sLocalizedNumberInput [precision]=\"4\" formControlName=\"valor\" />\n * ```\n *\n * @category Inputs\n */\n@Directive({\n selector: 'input[sLocalizedNumberInput]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\n private readonly localeService = inject(LocaleService);\n\n /** @description Separador decimal personalizado. Usa o do locale ativo se não informado. */\n @Input()\n public decimalSeparator?: string;\n\n /** @description Separador de milhar personalizado. Usa o do locale ativo se não informado. */\n @Input()\n public thousandsSeparator?: string;\n\n /** @description Número máximo de casas decimais aceitas na validação. @default 2 */\n @Input()\n public precision = 2;\n\n private numberRegex?: string;\n\n public ngOnInit(): void {\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\n // Exemplo: /^(\\+?)(\\-?)([0-9]{0,3})*((\\,[0-9]{3,3})|((\\,[0-9]{3,3})+(\\,[0-9]{3,3}))|((\\,[0-9]{3,3})+(\\.[0-9]{1,10})))?$/g\n // tslint:disable-next-line: max-line-length\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n });\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex ?? '', 'g'))) {\n return { invalidNumber: true };\n }\n return null;\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LocalizedNumberInputDirective } from './localized-number-input.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LocalizedNumberInputDirective],\n exports: [LocalizedNumberInputDirective],\n})\nexport class LocalizedNumberInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, forwardRef, Component, Input, Output, NgModule } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, EventEmitter, forwardRef, Component, Input, Output, NgModule } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
@@ -23,7 +23,7 @@ import { TooltipModule } from '@seniorsistemas/angular-components/tooltip';
23
23
  * @category Inputs
24
24
  */
25
25
  class NavigationButtonComponent {
26
- changeDetectorRef;
26
+ changeDetectorRef = inject(ChangeDetectorRef);
27
27
  /** @description Lista de etapas de navegação. Campo obrigatório. */
28
28
  steps;
29
29
  /** @description Valor padrão a ser selecionado ao inicializar o componente. */
@@ -40,9 +40,6 @@ class NavigationButtonComponent {
40
40
  _onChange;
41
41
  _onTouched;
42
42
  _value;
43
- constructor(changeDetectorRef) {
44
- this.changeDetectorRef = changeDetectorRef;
45
- }
46
43
  ngOnInit() {
47
44
  this._createTieredMenuItems();
48
45
  if (this.changeOnInit) {
@@ -124,7 +121,7 @@ class NavigationButtonComponent {
124
121
  });
125
122
  });
126
123
  }
127
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavigationButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
128
125
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NavigationButtonComponent, selector: "s-navigation-button", inputs: { steps: "steps", defaultValue: "defaultValue", tooltip: "tooltip", changeOnInit: "changeOnInit" }, outputs: { stepChanged: "stepChanged" }, providers: [
129
126
  {
130
127
  provide: NG_VALUE_ACCESSOR,
@@ -142,7 +139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
142
139
  multi: true,
143
140
  },
144
141
  ], template: "<div\n class=\"navigation-button\"\n [ngClass]=\"{ 'navigation-button--disabled': isDisabled }\"\n>\n <button\n class=\"option option--previous\"\n [ngClass]=\"{ 'option--disabled': currentIndex === 0 }\"\n (click)=\"onPrevious()\"\n >\n <i class=\"fas fa-chevron-left\"></i>\n </button>\n\n @if (steps[currentIndex].tooltip || tooltip) {\n <button\n [sTooltip]=\"steps[currentIndex].tooltip || tooltip\"\n class=\"step\"\n sTieredMenu\n [items]=\"tieredMenuItems\"\n [focusedItem]=\"tieredMenuItems[currentIndex]\"\n >\n {{ steps[currentIndex].label }}\n </button>\n } @else {\n <button class=\"step\">\n {{ steps[currentIndex].label }}\n </button>\n }\n <button\n class=\"option option--next\"\n [ngClass]=\"{ 'option--disabled': currentIndex === steps.length - 1 }\"\n (click)=\"onNext()\"\n >\n <i class=\"fas fa-chevron-right\"></i>\n </button>\n</div>\n", styles: [".navigation-button{display:inline-flex}.navigation-button .option,.navigation-button .step{background-color:#428bca;border:none;color:#fff}.navigation-button:not(.navigation-button--disabled) .step{cursor:pointer}.navigation-button:not(.navigation-button--disabled) .step:hover{background-color:#063951}.navigation-button .option{padding:8px 12px}.navigation-button .option--previous{border-radius:16px 0 0 16px}.navigation-button .option--next{border-radius:0 16px 16px 0}.navigation-button .option--disabled{opacity:.5}.navigation-button .option:not(.option--disabled):hover{cursor:pointer;background-color:#063951}.navigation-button .step{font-family:Open Sans,sans-serif;font-size:14px;padding:8px 16px;text-align:center}.navigation-button--disabled{opacity:.5}\n"] }]
145
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { steps: [{
142
+ }], propDecorators: { steps: [{
146
143
  type: Input,
147
144
  args: [{ required: true }]
148
145
  }], defaultValue: [{
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-navigation-button.mjs","sources":["../../projects/angular-components/navigation-button/src/lib/navigation-button/navigation-button.component.ts","../../projects/angular-components/navigation-button/src/lib/navigation-button/navigation-button.component.html","../../projects/angular-components/navigation-button/src/lib/navigation-button/navigation-button.module.ts","../../projects/angular-components/navigation-button/src/seniorsistemas-angular-components-navigation-button.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n OnInit,\n AfterViewInit,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { NavigationButtonItem } from './models/navigation-button-item';\nimport { NavigationButtonStepChangedInfo } from './models';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\n\n/**\n * @description Componente de navegação por etapas que exibe o estado atual (step)\n * com suporte a avanço, retrocesso e seleção direta via dropdown (`TieredMenu`).\n * Implementa `ControlValueAccessor` para integração com formulários Angular.\n *\n * @example\n * ```html\n * <s-navigation-button\n * [steps]=\"etapas\"\n * (stepChanged)=\"onEtapaMudou($event)\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-navigation-button',\n templateUrl: './navigation-button.component.html',\n styleUrls: ['./navigation-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NavigationButtonComponent),\n multi: true,\n },\n ],\n})\nexport class NavigationButtonComponent implements ControlValueAccessor, OnInit, AfterViewInit {\n /** @description Lista de etapas de navegação. Campo obrigatório. */\n @Input({ required: true })\n public steps!: NavigationButtonItem[];\n\n /** @description Valor padrão a ser selecionado ao inicializar o componente. */\n @Input()\n public defaultValue: unknown;\n\n /** @description Texto exibido no tooltip do botão principal. */\n @Input()\n public tooltip?: string;\n\n /** @description Quando `true`, emite `stepChanged` durante a inicialização com a etapa atual. @default false */\n @Input()\n public changeOnInit = false;\n\n /** @description Emitido quando o usuário navega para uma nova etapa, com informações da etapa anterior e atual. */\n @Output()\n public stepChanged: EventEmitter<NavigationButtonStepChangedInfo> = new EventEmitter();\n\n public currentIndex = 0;\n public isDisabled = false;\n public tieredMenuItems: TieredMenuItemData[] = [];\n\n private _onChange?: (value: unknown) => void;\n private _onTouched?: () => void;\n private _value: unknown;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n this._createTieredMenuItems();\n\n if (this.changeOnInit) {\n this.stepChanged.emit({\n previous: null,\n current: this.steps[this.currentIndex],\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this._setDefaultValue();\n }\n\n private _setDefaultValue(): void {\n if (this.defaultValue) {\n this._value = this.defaultValue;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n this.stepChanged.emit({\n previous: null,\n current: this.steps[this.currentIndex],\n });\n\n this.changeDetectorRef.detectChanges();\n }\n }\n\n public writeValue(value: unknown): void {\n this._value = value;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onNext(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex < this.steps.length - 1) {\n this.currentIndex++;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n public onPrevious(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex > 0) {\n this.currentIndex--;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n private _createTieredMenuItems() {\n this.steps.forEach((step: NavigationButtonItem) => {\n this.tieredMenuItems.push({\n label: step.label,\n command: () => {\n const index = this.steps.findIndex((s) => s === step);\n if (this.currentIndex !== index) {\n this._onChange && this._onChange(step.value);\n this.stepChanged.emit({\n previous: this.steps[this.currentIndex],\n current: step,\n });\n this.currentIndex = index;\n }\n\n this._onTouched && this._onTouched();\n },\n });\n });\n }\n}\n\n","<div\n class=\"navigation-button\"\n [ngClass]=\"{ 'navigation-button--disabled': isDisabled }\"\n>\n <button\n class=\"option option--previous\"\n [ngClass]=\"{ 'option--disabled': currentIndex === 0 }\"\n (click)=\"onPrevious()\"\n >\n <i class=\"fas fa-chevron-left\"></i>\n </button>\n\n @if (steps[currentIndex].tooltip || tooltip) {\n <button\n [sTooltip]=\"steps[currentIndex].tooltip || tooltip\"\n class=\"step\"\n sTieredMenu\n [items]=\"tieredMenuItems\"\n [focusedItem]=\"tieredMenuItems[currentIndex]\"\n >\n {{ steps[currentIndex].label }}\n </button>\n } @else {\n <button class=\"step\">\n {{ steps[currentIndex].label }}\n </button>\n }\n <button\n class=\"option option--next\"\n [ngClass]=\"{ 'option--disabled': currentIndex === steps.length - 1 }\"\n (click)=\"onNext()\"\n >\n <i class=\"fas fa-chevron-right\"></i>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NavigationButtonComponent } from './navigation-button.component';\nimport { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\n@NgModule({\n imports: [CommonModule, TieredMenuModule, TooltipModule],\n declarations: [NavigationButtonComponent],\n exports: [NavigationButtonComponent],\n})\nexport class NavigationButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;AAgBA;;;;;;;;;;;;;AAaG;MAaU,yBAAyB,CAAA;AA6BL,IAAA,iBAAA,CAAA;;AA1BtB,IAAA,KAAK,CAA0B;;AAI/B,IAAA,YAAY,CAAU;;AAItB,IAAA,OAAO,CAAU;;IAIjB,YAAY,GAAG,KAAK,CAAC;;AAIrB,IAAA,WAAW,GAAkD,IAAI,YAAY,EAAE,CAAC;IAEhF,YAAY,GAAG,CAAC,CAAC;IACjB,UAAU,GAAG,KAAK,CAAC;IACnB,eAAe,GAAyB,EAAE,CAAC;AAE1C,IAAA,SAAS,CAA4B;AACrC,IAAA,UAAU,CAAc;AACxB,IAAA,MAAM,CAAU;AAExB,IAAA,WAAA,CAA6B,iBAAoC,EAAA;QAApC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAAI;IAE9D,QAAQ,GAAA;QACX,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,gBAAA,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACzC,aAAA,CAAC,CAAC;SACN;KACJ;IAEM,eAAe,GAAA;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEO,gBAAgB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;YAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,gBAAA,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACzC,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SAC1C;KACJ;AAEM,IAAA,UAAU,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;KAChD;AAEM,IAAA,gBAAgB,CAAC,QAAkC,EAAA;AACtD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;AAEM,IAAA,iBAAiB,CAAC,SAAqB,EAAA;AAC1C,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC/B;AAEM,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAChC;IAEM,MAAM,GAAA;QACT,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAE/C,QAAA,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9C,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;SAChD;AAED,QAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;KACxC;IAEM,UAAU,GAAA;QACb,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAE/C,QAAA,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9C,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;SAChD;AAED,QAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;KACxC;IAEO,sBAAsB,GAAA;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAA0B,KAAI;AAC9C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,MAAK;AACV,oBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;AACtD,oBAAA,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;wBAC7B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7C,wBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;4BAClB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,4BAAA,OAAO,EAAE,IAAI;AAChB,yBAAA,CAAC,CAAC;AACH,wBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;qBAC7B;AAED,oBAAA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;iBACxC;AACJ,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;wGArIQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EARvB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA;AACJ,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxCL,siCAmCA,EAAA,MAAA,EAAA,CAAA,iwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDOa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAGpB,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,4BAAA,KAAK,EAAE,IAAI;AACd,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,siCAAA,EAAA,MAAA,EAAA,CAAA,iwBAAA,CAAA,EAAA,CAAA;sFAKM,KAAK,EAAA,CAAA;sBADX,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAKlB,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAKC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAKC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,MAAM;;;MEjDE,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAtB,sBAAsB,EAAA,YAAA,EAAA,CAHhB,yBAAyB,CAD9B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAA,OAAA,EAAA,CAE7C,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAE1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAJrB,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAI9C,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,aAAa,CAAC;oBACxD,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACvC,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-navigation-button.mjs","sources":["../../projects/angular-components/navigation-button/src/lib/navigation-button/navigation-button.component.ts","../../projects/angular-components/navigation-button/src/lib/navigation-button/navigation-button.component.html","../../projects/angular-components/navigation-button/src/lib/navigation-button/navigation-button.module.ts","../../projects/angular-components/navigation-button/src/seniorsistemas-angular-components-navigation-button.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, forwardRef, OnInit, AfterViewInit, ChangeDetectorRef, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { NavigationButtonItem } from './models/navigation-button-item';\nimport { NavigationButtonStepChangedInfo } from './models';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\n\n/**\n * @description Componente de navegação por etapas que exibe o estado atual (step)\n * com suporte a avanço, retrocesso e seleção direta via dropdown (`TieredMenu`).\n * Implementa `ControlValueAccessor` para integração com formulários Angular.\n *\n * @example\n * ```html\n * <s-navigation-button\n * [steps]=\"etapas\"\n * (stepChanged)=\"onEtapaMudou($event)\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-navigation-button',\n templateUrl: './navigation-button.component.html',\n styleUrls: ['./navigation-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NavigationButtonComponent),\n multi: true,\n },\n ],\n})\nexport class NavigationButtonComponent implements ControlValueAccessor, OnInit, AfterViewInit {\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n /** @description Lista de etapas de navegação. Campo obrigatório. */\n @Input({ required: true })\n public steps!: NavigationButtonItem[];\n\n /** @description Valor padrão a ser selecionado ao inicializar o componente. */\n @Input()\n public defaultValue: unknown;\n\n /** @description Texto exibido no tooltip do botão principal. */\n @Input()\n public tooltip?: string;\n\n /** @description Quando `true`, emite `stepChanged` durante a inicialização com a etapa atual. @default false */\n @Input()\n public changeOnInit = false;\n\n /** @description Emitido quando o usuário navega para uma nova etapa, com informações da etapa anterior e atual. */\n @Output()\n public stepChanged: EventEmitter<NavigationButtonStepChangedInfo> = new EventEmitter();\n\n public currentIndex = 0;\n public isDisabled = false;\n public tieredMenuItems: TieredMenuItemData[] = [];\n\n private _onChange?: (value: unknown) => void;\n private _onTouched?: () => void;\n private _value: unknown;\n\n public ngOnInit(): void {\n this._createTieredMenuItems();\n\n if (this.changeOnInit) {\n this.stepChanged.emit({\n previous: null,\n current: this.steps[this.currentIndex],\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this._setDefaultValue();\n }\n\n private _setDefaultValue(): void {\n if (this.defaultValue) {\n this._value = this.defaultValue;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n this.stepChanged.emit({\n previous: null,\n current: this.steps[this.currentIndex],\n });\n\n this.changeDetectorRef.detectChanges();\n }\n }\n\n public writeValue(value: unknown): void {\n this._value = value;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onNext(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex < this.steps.length - 1) {\n this.currentIndex++;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n public onPrevious(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex > 0) {\n this.currentIndex--;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n private _createTieredMenuItems() {\n this.steps.forEach((step: NavigationButtonItem) => {\n this.tieredMenuItems.push({\n label: step.label,\n command: () => {\n const index = this.steps.findIndex((s) => s === step);\n if (this.currentIndex !== index) {\n this._onChange && this._onChange(step.value);\n this.stepChanged.emit({\n previous: this.steps[this.currentIndex],\n current: step,\n });\n this.currentIndex = index;\n }\n\n this._onTouched && this._onTouched();\n },\n });\n });\n }\n}\n\n","<div\n class=\"navigation-button\"\n [ngClass]=\"{ 'navigation-button--disabled': isDisabled }\"\n>\n <button\n class=\"option option--previous\"\n [ngClass]=\"{ 'option--disabled': currentIndex === 0 }\"\n (click)=\"onPrevious()\"\n >\n <i class=\"fas fa-chevron-left\"></i>\n </button>\n\n @if (steps[currentIndex].tooltip || tooltip) {\n <button\n [sTooltip]=\"steps[currentIndex].tooltip || tooltip\"\n class=\"step\"\n sTieredMenu\n [items]=\"tieredMenuItems\"\n [focusedItem]=\"tieredMenuItems[currentIndex]\"\n >\n {{ steps[currentIndex].label }}\n </button>\n } @else {\n <button class=\"step\">\n {{ steps[currentIndex].label }}\n </button>\n }\n <button\n class=\"option option--next\"\n [ngClass]=\"{ 'option--disabled': currentIndex === steps.length - 1 }\"\n (click)=\"onNext()\"\n >\n <i class=\"fas fa-chevron-right\"></i>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NavigationButtonComponent } from './navigation-button.component';\nimport { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\n@NgModule({\n imports: [CommonModule, TieredMenuModule, TooltipModule],\n declarations: [NavigationButtonComponent],\n exports: [NavigationButtonComponent],\n})\nexport class NavigationButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Pipe, NgModule } from '@angular/core';
2
+ import { inject, Injectable, Pipe, NgModule } from '@angular/core';
3
3
  import { currencies } from '@seniorsistemas/angular-components/currency';
4
+ import { LocaleService } from '@seniorsistemas/angular-components/locale';
4
5
  import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
5
- import * as i1 from '@seniorsistemas/angular-components/locale';
6
6
  import { of } from 'rxjs';
7
7
  import { map } from 'rxjs/operators';
8
8
  import { CommonModule } from '@angular/common';
@@ -28,10 +28,7 @@ import { CommonModule } from '@angular/common';
28
28
  * @category Numeric
29
29
  */
30
30
  class NumericService {
31
- localeService;
32
- constructor(localeService) {
33
- this.localeService = localeService;
34
- }
31
+ localeService = inject(LocaleService);
35
32
  /**
36
33
  * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).
37
34
  * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.
@@ -104,7 +101,7 @@ class NumericService {
104
101
  // so we use the base implementation.
105
102
  return baseType;
106
103
  }
107
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericService, deps: [{ token: i1.LocaleService }], target: i0.ɵɵFactoryTarget.Injectable });
104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
108
105
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericService, providedIn: 'root' });
109
106
  }
110
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericService, decorators: [{
@@ -112,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
112
109
  args: [{
113
110
  providedIn: 'root',
114
111
  }]
115
- }], ctorParameters: () => [{ type: i1.LocaleService }] });
112
+ }] });
116
113
 
117
114
  /**
118
115
  * @description Angular pipe for formatting numeric values according to the active locale.
@@ -130,12 +127,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
130
127
  * @category Numeric
131
128
  */
132
129
  class NumericPipe {
133
- numericService;
134
- localeService;
135
- constructor(numericService, localeService) {
136
- this.numericService = numericService;
137
- this.localeService = localeService;
138
- }
130
+ numericService = inject(NumericService);
131
+ localeService = inject(LocaleService);
139
132
  transform(value, options) {
140
133
  return options?.locale
141
134
  ? of(this.numericService.instant(value, options))
@@ -144,13 +137,13 @@ class NumericPipe {
144
137
  numberFormatOptions: options?.numberFormatOptions,
145
138
  })));
146
139
  }
147
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, deps: [{ token: NumericService }, { token: i1.LocaleService }], target: i0.ɵɵFactoryTarget.Pipe });
140
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
148
141
  static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, name: "numeric" });
149
142
  }
150
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericPipe, decorators: [{
151
144
  type: Pipe,
152
145
  args: [{ name: 'numeric' }]
153
- }], ctorParameters: () => [{ type: NumericService }, { type: i1.LocaleService }] });
146
+ }] });
154
147
 
155
148
  class NumericModule {
156
149
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-numeric.mjs","sources":["../../projects/angular-components/numeric/src/lib/numeric.service.ts","../../projects/angular-components/numeric/src/lib/numeric.pipe.ts","../../projects/angular-components/numeric/src/lib/numeric.module.ts","../../projects/angular-components/numeric/src/seniorsistemas-angular-components-numeric.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { currencies, Currency } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.\n * Automatically uses the locale configured in `LocaleService` unless explicitly overridden.\n * Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.\n *\n * @example\n * ```typescript\n * // Inject the service\n * const numericService = inject(NumericService);\n *\n * // Format a number with the active locale\n * const formatted = numericService.instant(1234567.89);\n *\n * // Format as currency\n * const currency = numericService.instant(1234.5, {\n * numberFormatOptions: { style: 'currency', currency: 'BRL' }\n * });\n * ```\n * @category Numeric\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NumericService {\n constructor(private readonly localeService: LocaleService) {}\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ): string | null {\n if (isNullOrUndefined(value)) return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? 'pt-BR',\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currency ?? 'BRL')\n : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currencyDisplay ?? 'narrowSymbol')\n : undefined,\n minimumFractionDigits:\n (options?.numberFormatOptions?.minimumFractionDigits ?? options?.numberFormatOptions?.currency)\n ? (this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency! as Currency) ??\n undefined)\n : undefined,\n roundingMode: 'trunc',\n },\n };\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === 'number' || this.getType(value) === 'string'\n ? value\n : ((value as BigNumber).toString() as any),\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: Currency): number | null {\n if (!currency) return null;\n\n return currencies[currency]?.scale;\n }\n\n private getType(value: any): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== 'object' && baseType !== 'function') {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === 'string') {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === 'function' && Function.prototype.toString.call(value).startsWith('class')) {\n return 'class';\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === 'string' && className !== '') {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport BigNumber from 'bignumber.js';\nimport { of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { NumericService } from './numeric.service';\n\n/**\n * @description Angular pipe for formatting numeric values according to the active locale.\n * Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.\n * Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.\n *\n * @example\n * ```html\n * <!-- Basic usage -->\n * {{ 1234.56 | numeric | async }}\n *\n * <!-- With locale override and fraction digits -->\n * {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}\n * ```\n * @category Numeric\n */\n@Pipe({ name: 'numeric' })\nexport class NumericPipe implements PipeTransform {\n constructor(\n private readonly numericService: NumericService,\n private readonly localeService: LocaleService,\n ) {}\n\n transform(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ) {\n return options?.locale\n ? of(this.numericService.instant(value, options))\n : this.localeService.getLocale().pipe(\n map((locale) =>\n this.numericService.instant(value, {\n locale,\n numberFormatOptions: options?.numberFormatOptions,\n }),\n ),\n );\n }\n}\n\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { NumericPipe } from '../lib/numeric.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NumericPipe],\r\n exports: [NumericPipe],\r\n})\r\nexport class NumericModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NumericService","i2"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-numeric.mjs","sources":["../../projects/angular-components/numeric/src/lib/numeric.service.ts","../../projects/angular-components/numeric/src/lib/numeric.pipe.ts","../../projects/angular-components/numeric/src/lib/numeric.module.ts","../../projects/angular-components/numeric/src/seniorsistemas-angular-components-numeric.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { currencies, Currency } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.\n * Automatically uses the locale configured in `LocaleService` unless explicitly overridden.\n * Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.\n *\n * @example\n * ```typescript\n * // Inject the service\n * const numericService = inject(NumericService);\n *\n * // Format a number with the active locale\n * const formatted = numericService.instant(1234567.89);\n *\n * // Format as currency\n * const currency = numericService.instant(1234.5, {\n * numberFormatOptions: { style: 'currency', currency: 'BRL' }\n * });\n * ```\n * @category Numeric\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NumericService {\n private readonly localeService = inject(LocaleService);\n\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ): string | null {\n if (isNullOrUndefined(value)) return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? 'pt-BR',\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currency ?? 'BRL')\n : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currencyDisplay ?? 'narrowSymbol')\n : undefined,\n minimumFractionDigits:\n (options?.numberFormatOptions?.minimumFractionDigits ?? options?.numberFormatOptions?.currency)\n ? (this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency! as Currency) ??\n undefined)\n : undefined,\n roundingMode: 'trunc',\n },\n };\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === 'number' || this.getType(value) === 'string'\n ? value\n : ((value as BigNumber).toString() as any),\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: Currency): number | null {\n if (!currency) return null;\n\n return currencies[currency]?.scale;\n }\n\n private getType(value: any): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== 'object' && baseType !== 'function') {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === 'string') {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === 'function' && Function.prototype.toString.call(value).startsWith('class')) {\n return 'class';\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === 'string' && className !== '') {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport BigNumber from 'bignumber.js';\nimport { of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { NumericService } from './numeric.service';\n\n/**\n * @description Angular pipe for formatting numeric values according to the active locale.\n * Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.\n * Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.\n *\n * @example\n * ```html\n * <!-- Basic usage -->\n * {{ 1234.56 | numeric | async }}\n *\n * <!-- With locale override and fraction digits -->\n * {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}\n * ```\n * @category Numeric\n */\n@Pipe({ name: 'numeric' })\nexport class NumericPipe implements PipeTransform {\n private readonly numericService = inject(NumericService);\n private readonly localeService = inject(LocaleService);\n\n\n transform(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ) {\n return options?.locale\n ? of(this.numericService.instant(value, options))\n : this.localeService.getLocale().pipe(\n map((locale) =>\n this.numericService.instant(value, {\n locale,\n numberFormatOptions: options?.numberFormatOptions,\n }),\n ),\n );\n }\n}\n\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { NumericPipe } from '../lib/numeric.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NumericPipe],\r\n exports: [NumericPipe],\r\n})\r\nexport class NumericModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}