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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (513) hide show
  1. package/README.md +84 -2
  2. package/accordion/README.md +5 -4
  3. package/accordion/lib/accordion/accordion.module.d.ts +7 -0
  4. package/alert/lib/alert/alert.module.d.ts +7 -0
  5. package/badge/README.md +5 -4
  6. package/badge/lib/badge/badge.module.d.ts +10 -0
  7. package/bignumber-input/README.md +5 -4
  8. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +16 -39
  9. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +7 -0
  10. package/breadcrumb/README.md +5 -4
  11. package/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.d.ts +5 -1
  12. package/button/lib/button/button.module.d.ts +7 -0
  13. package/calendar-mask/README.md +5 -4
  14. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +7 -0
  15. package/card/README.md +6 -5
  16. package/card/lib/card/card.component.d.ts +2 -0
  17. package/card/lib/card/card.module.d.ts +7 -0
  18. package/chat/README.md +11 -8
  19. package/chat/lib/chat/chat.module.d.ts +7 -0
  20. package/checkbox-list/README.md +5 -4
  21. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +7 -0
  22. package/chips/README.md +5 -4
  23. package/chips/lib/chips/chips.module.d.ts +7 -0
  24. package/code-editor/README.md +5 -4
  25. package/code-editor/lib/code-editor/code-editor.module.d.ts +7 -0
  26. package/collapse-link/README.md +5 -4
  27. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +7 -0
  28. package/common/lib/angular-components.module.d.ts +9 -0
  29. package/common/lib/provide-angular-components.d.ts +19 -0
  30. package/common/lib/svg-factory/svg-factory.module.d.ts +7 -0
  31. package/common/public-api.d.ts +1 -0
  32. package/content-generator/README.md +2 -2
  33. package/content-generator/lib/content-generator/content-generator.module.d.ts +7 -0
  34. package/control-errors/README.md +2 -2
  35. package/control-errors/lib/control-errors/control-errors.module.d.ts +7 -0
  36. package/country-phone-picker/README.md +2 -2
  37. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +1 -0
  38. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +7 -0
  39. package/currency/README.md +1 -1
  40. package/custom-fields/README.md +14 -3
  41. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +7 -0
  42. package/custom-fields/lib/custom-fields/models/custom-field-value-parser.d.ts +21 -0
  43. package/custom-fields/lib/custom-fields/models/index.d.ts +1 -0
  44. package/dialog/README.md +1 -1
  45. package/drawer/README.md +8 -4
  46. package/drawer/lib/drawer/drawer.module.d.ts +10 -0
  47. package/dynamic-form/README.md +18 -2
  48. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +0 -1
  49. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +7 -0
  50. package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +10 -1
  51. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +15 -15
  52. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +8 -6
  53. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +5 -2
  54. package/dynamic-form/public-api.d.ts +0 -1
  55. package/editable-overlay/README.md +2 -2
  56. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +7 -0
  57. package/empty-state/README.md +5 -2
  58. package/empty-state/lib/empty-state/empty-state.module.d.ts +7 -0
  59. package/esm2022/accordion/lib/accordion/accordion.module.mjs +8 -1
  60. package/esm2022/alert/lib/alert/alert.module.mjs +8 -1
  61. package/esm2022/badge/lib/badge/badge.module.mjs +11 -1
  62. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +19 -127
  63. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +8 -1
  64. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +6 -2
  65. package/esm2022/button/lib/button/button.module.mjs +8 -1
  66. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +8 -1
  67. package/esm2022/card/lib/card/card.component.mjs +17 -3
  68. package/esm2022/card/lib/card/card.module.mjs +8 -1
  69. package/esm2022/chat/lib/chat/chat.module.mjs +8 -1
  70. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +8 -1
  71. package/esm2022/chips/lib/chips/chips/chips.component.mjs +3 -3
  72. package/esm2022/chips/lib/chips/chips.module.mjs +8 -1
  73. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +10 -1
  74. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +9 -15
  75. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +8 -1
  76. package/esm2022/common/lib/angular-components.module.mjs +10 -1
  77. package/esm2022/common/lib/provide-angular-components.mjs +22 -0
  78. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +8 -1
  79. package/esm2022/common/public-api.mjs +2 -1
  80. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +8 -1
  81. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +8 -1
  82. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +12 -7
  83. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +8 -1
  84. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +4 -3
  85. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -13
  86. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +8 -1
  87. package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +4 -3
  88. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-type.mjs +4 -2
  89. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-value-parser.mjs +46 -0
  90. package/esm2022/custom-fields/lib/custom-fields/models/index.mjs +2 -1
  91. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +3 -3
  92. package/esm2022/drawer/lib/drawer/drawer.module.mjs +11 -1
  93. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -5
  94. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +8 -1
  95. package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +6 -2
  96. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  97. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  98. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +33 -10
  99. package/esm2022/dynamic-form/public-api.mjs +2 -7
  100. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +8 -1
  101. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +8 -1
  102. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +8 -1
  103. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +8 -1
  104. package/esm2022/file-picker/lib/file-picker/file-picker.service.mjs +4 -3
  105. package/esm2022/gantt/lib/gantt/gantt.module.mjs +8 -1
  106. package/esm2022/global-search/lib/global-search/global-search.module.mjs +19 -1
  107. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +8 -1
  108. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +8 -1
  109. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +12 -1
  110. package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +4 -3
  111. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +8 -1
  112. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +8 -1
  113. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +5 -5
  114. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +8 -1
  115. package/esm2022/input-group/lib/input-group/input-group.module.mjs +8 -1
  116. package/esm2022/input-mask/lib/input-mask/input-mask.module.mjs +8 -1
  117. package/esm2022/input-text/lib/input-text/input-text.module.mjs +8 -1
  118. package/esm2022/insights/lib/insights/insights.module.mjs +11 -1
  119. package/esm2022/kanban/lib/kanban/kanban-event.service.mjs +4 -3
  120. package/esm2022/kanban/lib/kanban/kanban.module.mjs +11 -1
  121. package/esm2022/label-value/lib/label-value/label-value.module.mjs +8 -1
  122. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +8 -1
  123. package/esm2022/locale/lib/locale/locale.module.mjs +14 -1
  124. package/esm2022/locale/lib/locale/locale.service.mjs +4 -3
  125. package/esm2022/locale/lib/locale/options/index.mjs +1 -13
  126. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +1 -1
  127. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +10 -2
  128. package/esm2022/locale/lib/locale/provide-locale.mjs +42 -0
  129. package/esm2022/locale/public-api.mjs +2 -1
  130. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +5 -1
  131. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +8 -1
  132. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +8 -1
  133. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +8 -1
  134. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +8 -1
  135. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +2 -2
  136. package/esm2022/number-input/lib/number-input/number-input.module.mjs +9 -2
  137. package/esm2022/numeric/lib/numeric.module.mjs +8 -1
  138. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +178 -15
  139. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.module.mjs +8 -1
  140. package/esm2022/object-card/lib/object-card/object-card.module.mjs +12 -1
  141. package/esm2022/panel/lib/panel/panel.module.mjs +11 -1
  142. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +8 -1
  143. package/esm2022/picklist/lib/picklist/picklist.module.mjs +8 -1
  144. package/esm2022/pin-code-field/lib/pin-code-field.module.mjs +8 -1
  145. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +8 -1
  146. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +8 -1
  147. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +8 -1
  148. package/esm2022/select/lib/select/select.component.mjs +16 -3
  149. package/esm2022/select-button/lib/select-button/select-button.module.mjs +8 -1
  150. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +8 -1
  151. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +8 -1
  152. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.service.mjs +4 -3
  153. package/esm2022/slider/lib/slider/slider.module.mjs +8 -1
  154. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +8 -1
  155. package/esm2022/split-button/lib/split-button/split-button.module.mjs +8 -1
  156. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +8 -1
  157. package/esm2022/stepper/lib/stepper/stepper.module.mjs +8 -1
  158. package/esm2022/structure/lib/structure/structure.module.mjs +8 -1
  159. package/esm2022/switch/lib/switch/switch.module.mjs +8 -1
  160. package/esm2022/table/lib/table/table.module.mjs +9 -1
  161. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +8 -1
  162. package/esm2022/template/lib/template/template.module.mjs +8 -1
  163. package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
  164. package/esm2022/text-area/lib/text-area.module.mjs +8 -1
  165. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +8 -1
  166. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +8 -1
  167. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +8 -1
  168. package/esm2022/tile/lib/tile/tile.module.mjs +11 -1
  169. package/esm2022/timeline/lib/timeline/timeline.module.mjs +8 -1
  170. package/esm2022/toast/lib/toast/toast.module.mjs +8 -1
  171. package/esm2022/token-list/lib/token-list/token-list.module.mjs +8 -1
  172. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +8 -1
  173. package/esm2022/topbar/lib/topbar/topbar.module.mjs +11 -1
  174. package/esm2022/tree/lib/tree/tree.module.mjs +8 -1
  175. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +8 -1
  176. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +7 -0
  177. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  178. package/fesm2022/seniorsistemas-angular-components-alert.mjs +7 -0
  179. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  180. package/fesm2022/seniorsistemas-angular-components-badge.mjs +10 -0
  181. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  182. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +25 -126
  183. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  184. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -1
  185. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  186. package/fesm2022/seniorsistemas-angular-components-button.mjs +7 -0
  187. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  188. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +7 -0
  189. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  190. package/fesm2022/seniorsistemas-angular-components-card.mjs +23 -2
  191. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  192. package/fesm2022/seniorsistemas-angular-components-chat.mjs +7 -0
  193. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  194. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -0
  195. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  196. package/fesm2022/seniorsistemas-angular-components-chips.mjs +9 -2
  197. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  198. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +164 -160
  199. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  200. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +7 -0
  201. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  202. package/fesm2022/seniorsistemas-angular-components-common.mjs +38 -2
  203. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  204. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +7 -0
  205. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  206. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +7 -0
  207. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  208. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +21 -8
  209. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  210. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +75 -15
  211. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  212. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +2 -2
  213. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  214. package/fesm2022/seniorsistemas-angular-components-drawer.mjs +10 -0
  215. package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
  216. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +54 -212
  217. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  218. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +7 -0
  219. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  220. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +7 -0
  221. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  222. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -0
  223. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  224. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +10 -2
  225. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  226. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +7 -0
  227. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  228. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +18 -0
  229. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  230. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +7 -0
  231. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  232. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +7 -0
  233. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  234. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +14 -2
  235. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  236. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +7 -0
  237. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  238. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +7 -0
  239. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  240. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +11 -4
  241. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  242. package/fesm2022/seniorsistemas-angular-components-input-group.mjs +7 -0
  243. package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -1
  244. package/fesm2022/seniorsistemas-angular-components-input-mask.mjs +7 -0
  245. package/fesm2022/seniorsistemas-angular-components-input-mask.mjs.map +1 -1
  246. package/fesm2022/seniorsistemas-angular-components-input-text.mjs +7 -0
  247. package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
  248. package/fesm2022/seniorsistemas-angular-components-insights.mjs +10 -0
  249. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  250. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +13 -2
  251. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  252. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +7 -0
  253. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  254. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -0
  255. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  256. package/fesm2022/seniorsistemas-angular-components-locale.mjs +58 -5
  257. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  258. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +11 -0
  259. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  260. package/fesm2022/seniorsistemas-angular-components-mask.mjs +7 -0
  261. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  262. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +7 -0
  263. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  264. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +7 -0
  265. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  266. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +9 -2
  267. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  268. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +184 -14
  269. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  270. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +7 -0
  271. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  272. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +11 -0
  273. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  274. package/fesm2022/seniorsistemas-angular-components-panel.mjs +10 -0
  275. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  276. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +7 -0
  277. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  278. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +7 -0
  279. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  280. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +7 -0
  281. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  282. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +7 -0
  283. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  284. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +7 -0
  285. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +7 -0
  287. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +7 -0
  289. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-select.mjs +15 -2
  291. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-shared.mjs +7 -0
  293. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +10 -2
  295. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-slider.mjs +7 -0
  297. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -0
  299. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +7 -0
  301. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +7 -0
  303. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +7 -0
  305. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-structure.mjs +7 -0
  307. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-switch.mjs +7 -0
  309. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +7 -0
  311. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-table.mjs +8 -0
  313. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-template.mjs +7 -0
  315. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +9 -2
  317. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +7 -0
  319. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -0
  321. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +7 -0
  323. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-tile.mjs +10 -0
  325. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +7 -0
  327. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-toast.mjs +7 -0
  329. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +7 -0
  331. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +7 -0
  333. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +10 -0
  335. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-tree.mjs +7 -0
  337. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +7 -0
  339. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  340. package/fieldset/README.md +2 -2
  341. package/fieldset/lib/fieldset/fieldset.module.d.ts +7 -0
  342. package/file-picker/README.md +2 -2
  343. package/file-picker/lib/file-picker/file-picker.module.d.ts +7 -0
  344. package/file-upload/README.md +1 -1
  345. package/gantt/README.md +2 -2
  346. package/gantt/lib/gantt/gantt.module.d.ts +7 -0
  347. package/global-search/README.md +5 -2
  348. package/global-search/lib/global-search/global-search.module.d.ts +18 -0
  349. package/grid-menu/README.md +5 -4
  350. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +7 -0
  351. package/help-popover/README.md +5 -4
  352. package/help-popover/lib/help-popover/help-popover.module.d.ts +7 -0
  353. package/ia-insight/README.md +1 -1
  354. package/image-cropper/README.md +6 -5
  355. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +11 -0
  356. package/infinite-scroll/README.md +5 -4
  357. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +7 -0
  358. package/info-sign/README.md +5 -4
  359. package/info-sign/lib/info-sign/info-sign.module.d.ts +7 -0
  360. package/inline-edit/README.md +5 -4
  361. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +7 -0
  362. package/input-group/lib/input-group/input-group.module.d.ts +7 -0
  363. package/input-mask/lib/input-mask/input-mask.module.d.ts +7 -0
  364. package/input-text/lib/input-text/input-text.module.d.ts +7 -0
  365. package/insights/README.md +6 -4
  366. package/insights/lib/insights/insights.module.d.ts +10 -0
  367. package/kanban/README.md +6 -4
  368. package/kanban/lib/kanban/kanban.module.d.ts +10 -0
  369. package/label-value/README.md +5 -4
  370. package/label-value/lib/label-value/label-value.module.d.ts +7 -0
  371. package/loading-state/README.md +9 -5
  372. package/loading-state/lib/loading-state/loading-state.module.d.ts +7 -0
  373. package/locale/lib/locale/locale.module.d.ts +13 -0
  374. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +2 -2
  375. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +20 -1
  376. package/locale/lib/locale/provide-locale.d.ts +18 -0
  377. package/locale/public-api.d.ts +1 -0
  378. package/localized-number-input/README.md +32 -8
  379. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +4 -0
  380. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +7 -0
  381. package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
  382. package/mouse-events/README.md +5 -4
  383. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +7 -0
  384. package/navigation-button/README.md +5 -4
  385. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +7 -0
  386. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  387. package/number-input/lib/number-input/number-input.module.d.ts +8 -1
  388. package/numeric/README.md +6 -5
  389. package/numeric/lib/numeric.module.d.ts +7 -0
  390. package/numeric-mask/README.md +44 -1
  391. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +65 -4
  392. package/numeric-mask/lib/numeric-mask/numeric-mask.module.d.ts +7 -0
  393. package/object-card/README.md +11 -4
  394. package/object-card/lib/object-card/object-card.module.d.ts +11 -0
  395. package/package.json +1 -1
  396. package/panel/README.md +8 -4
  397. package/panel/lib/panel/panel.module.d.ts +10 -0
  398. package/password-strength/README.md +6 -3
  399. package/password-strength/lib/password-strength/password-strength.module.d.ts +7 -0
  400. package/picklist/README.md +8 -5
  401. package/picklist/lib/picklist/picklist.module.d.ts +7 -0
  402. package/pin-code-field/lib/pin-code-field.module.d.ts +7 -0
  403. package/product-header/README.md +2 -2
  404. package/profile-picture-picker/README.md +6 -3
  405. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +7 -0
  406. package/progressbar/README.md +6 -3
  407. package/progressbar/lib/progressbar/progressbar.module.d.ts +7 -0
  408. package/rating-scale/README.md +6 -3
  409. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +7 -0
  410. package/schematics/collection.json +40 -0
  411. package/schematics/migrations/migrate-app-to-standalone/index.d.ts +32 -0
  412. package/schematics/migrations/migrate-app-to-standalone/index.js +98 -0
  413. package/schematics/migrations/migrate-app-to-standalone/index.js.map +1 -0
  414. package/schematics/migrations/migrate-deprecated-apis/index.d.ts +49 -0
  415. package/schematics/migrations/migrate-deprecated-apis/index.js +660 -0
  416. package/schematics/migrations/migrate-deprecated-apis/index.js.map +1 -0
  417. package/schematics/migrations/migrate-deprecated-datepicker/index.d.ts +31 -0
  418. package/schematics/migrations/migrate-deprecated-datepicker/index.js +115 -0
  419. package/schematics/migrations/migrate-deprecated-datepicker/index.js.map +1 -0
  420. package/schematics/migrations/migrate-deprecated-dynamic-form/index.d.ts +52 -0
  421. package/schematics/migrations/migrate-deprecated-dynamic-form/index.js +661 -0
  422. package/schematics/migrations/migrate-deprecated-dynamic-form/index.js.map +1 -0
  423. package/schematics/migrations/migrate-deprecated-imports/index.d.ts +23 -0
  424. package/schematics/migrations/migrate-deprecated-imports/index.js +335 -0
  425. package/schematics/migrations/migrate-deprecated-imports/index.js.map +1 -0
  426. package/schematics/migrations/migrate-deprecated-selectors/index.d.ts +15 -0
  427. package/schematics/migrations/migrate-deprecated-selectors/index.js +76 -0
  428. package/schematics/migrations/migrate-deprecated-selectors/index.js.map +1 -0
  429. package/schematics/migrations/migrate-modules-to-standalone/index.d.ts +51 -0
  430. package/schematics/migrations/migrate-modules-to-standalone/index.js +632 -0
  431. package/schematics/migrations/migrate-modules-to-standalone/index.js.map +1 -0
  432. package/schematics/migrations/migrate-modules-to-standalone/modules-map.json +1656 -0
  433. package/schematics/migrations/migrate-v20/index.d.ts +9 -0
  434. package/schematics/migrations/migrate-v20/index.js +90 -0
  435. package/schematics/migrations/migrate-v20/index.js.map +1 -0
  436. package/schematics/migrations/migrate-v20/items.d.ts +7 -0
  437. package/schematics/migrations/migrate-v20/items.js +54 -0
  438. package/schematics/migrations/migrate-v20/items.js.map +1 -0
  439. package/schematics/migrations/migrate-v20/plan.d.ts +32 -0
  440. package/schematics/migrations/migrate-v20/plan.js +29 -0
  441. package/schematics/migrations/migrate-v20/plan.js.map +1 -0
  442. package/schematics/migrations.json +5 -1
  443. package/schematics/schema/app-standalone.schema.json +21 -0
  444. package/schematics/schema/migrate-v20.schema.json +33 -0
  445. package/schematics/schema/scope.schema.json +17 -0
  446. package/schematics/utils/ast-utils.js +16 -0
  447. package/schematics/utils/ast-utils.js.map +1 -1
  448. package/schematics/utils/eol.d.ts +5 -0
  449. package/schematics/utils/eol.js +17 -0
  450. package/schematics/utils/eol.js.map +1 -0
  451. package/schematics/utils/prompt-utils.d.ts +62 -0
  452. package/schematics/utils/prompt-utils.js +166 -0
  453. package/schematics/utils/prompt-utils.js.map +1 -0
  454. package/schematics/utils/report.d.ts +27 -0
  455. package/schematics/utils/report.js +70 -0
  456. package/schematics/utils/report.js.map +1 -0
  457. package/schematics/utils/scope.d.ts +17 -0
  458. package/schematics/utils/scope.js +55 -0
  459. package/schematics/utils/scope.js.map +1 -0
  460. package/schematics/utils/selection.d.ts +21 -0
  461. package/schematics/utils/selection.js +60 -0
  462. package/schematics/utils/selection.js.map +1 -0
  463. package/schematics/utils/symbol-utils.d.ts +31 -0
  464. package/schematics/utils/symbol-utils.js +202 -0
  465. package/schematics/utils/symbol-utils.js.map +1 -0
  466. package/schematics/utils/template-utils.d.ts +62 -0
  467. package/schematics/utils/template-utils.js +165 -0
  468. package/schematics/utils/template-utils.js.map +1 -0
  469. package/schematics/utils/tsconfig-paths.d.ts +5 -0
  470. package/schematics/utils/tsconfig-paths.js +73 -0
  471. package/schematics/utils/tsconfig-paths.js.map +1 -0
  472. package/select/lib/select/select.component.d.ts +8 -0
  473. package/select-button/README.md +6 -3
  474. package/select-button/lib/select-button/select-button.module.d.ts +7 -0
  475. package/shared/lib/shared/border-button/border-button.module.d.ts +7 -0
  476. package/sidebar/README.md +2 -2
  477. package/slide-in-bar/README.md +5 -5
  478. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +7 -0
  479. package/slider/README.md +6 -3
  480. package/slider/lib/slider/slider.module.d.ts +7 -0
  481. package/speech-recognition/README.md +6 -3
  482. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +7 -0
  483. package/split-button/README.md +6 -3
  484. package/split-button/lib/split-button/split-button.module.d.ts +7 -0
  485. package/stats-card/README.md +6 -3
  486. package/stats-card/lib/stats-card/stats-card.module.d.ts +7 -0
  487. package/stepper/README.md +6 -3
  488. package/stepper/lib/stepper/stepper.module.d.ts +7 -0
  489. package/structure/lib/structure/structure.module.d.ts +7 -0
  490. package/switch/README.md +6 -3
  491. package/switch/lib/switch/switch.module.d.ts +7 -0
  492. package/table/README.md +12 -4
  493. package/table/lib/table/table.module.d.ts +8 -0
  494. package/table-header/lib/table-header/table-header-checkox.module.d.ts +7 -0
  495. package/template/README.md +0 -11
  496. package/template/lib/template/template.module.d.ts +7 -0
  497. package/text-area/lib/text-area.module.d.ts +7 -0
  498. package/text-area-ia/README.md +1 -1
  499. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +7 -0
  500. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +7 -0
  501. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +7 -0
  502. package/tile/lib/tile/tile.module.d.ts +10 -0
  503. package/timeline/lib/timeline/timeline.module.d.ts +7 -0
  504. package/toast/lib/toast/toast.module.d.ts +7 -0
  505. package/token-list/lib/token-list/token-list.module.d.ts +7 -0
  506. package/tooltip/lib/tooltip/tooltip.module.d.ts +7 -0
  507. package/topbar/lib/topbar/topbar.module.d.ts +10 -0
  508. package/tree/lib/tree/tree.module.d.ts +7 -0
  509. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +7 -0
  510. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +0 -664
  511. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +0 -29
  512. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +0 -96
  513. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +0 -124
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-loading-state.mjs","sources":["../../projects/angular-components/loading-state/src/lib/loading-state/components/loading-state-indicators.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/components/logo-indicator/logo-indicator.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/logo-indicator/logo-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/components/dots-indicator/dots-indicator.components.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/dots-indicator/dots-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.directive.ts","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.module.ts","../../projects/angular-components/loading-state/src/seniorsistemas-angular-components-loading-state.ts"],"sourcesContent":["export enum LoadingStateIndicators {\n Dots = 'dots',\n Logo = 'logo',\n ProgressBar = 'progress-bar',\n}\n","import { Component, Input } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\n\r\nexport type ProgressBarIndicatorMode = 'percentage' | 'intermittent';\r\n\r\n@Component({\r\n selector: 's-progress-bar-indicator',\r\n templateUrl: './progress-bar-indicator.component.html',\r\n styleUrls: ['./progress-bar-indicator.component.scss'],\r\n standalone: true,\r\n imports: [NgStyle],\r\n})\r\nexport class ProgressBarIndicatorComponent {\r\n /**\r\n * @description Modo de exibição da barra.\r\n * - `'percentage'`: exibe o preenchimento proporcional ao `value` (0–100).\r\n * - `'intermittent'`: anima a barra indo e voltando indefinidamente.\r\n * @default 'intermittent'\r\n */\r\n @Input()\r\n public mode: ProgressBarIndicatorMode = 'intermittent';\r\n\r\n /**\r\n * @description Valor de progresso (0–100). Usado apenas no modo `'percentage'`.\r\n * @default 0\r\n */\r\n @Input()\r\n public value = 0;\r\n\r\n /**\r\n * @description Texto exibido abaixo da barra.\r\n * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\r\n */\r\n @Input()\r\n public label?: string;\r\n\r\n public get displayLabel(): string {\r\n if (this.label) {\r\n return this.label;\r\n }\r\n return this.mode === 'percentage' ? `${this.value}%` : 'Carregando...';\r\n }\r\n}\r\n","<div class=\"progress-bar-indicator\">\n <div class=\"progress-bar-track\">\n <div\n class=\"progress-bar-fill\"\n [class.progress-bar-fill--percentage]=\"mode === 'percentage'\"\n [class.progress-bar-fill--intermittent]=\"mode === 'intermittent'\"\n [ngStyle]=\"mode === 'percentage' ? { width: value + '%' } : {}\"\n ></div>\n </div>\n <span class=\"progress-bar-label\">{{ displayLabel }}</span>\n</div>\n","import { Component } from '@angular/core';\r\nimport { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';\r\n\r\n@Component({\r\n selector: 's-logo-indicator',\r\n templateUrl: './logo-indicator.component.html',\r\n styleUrls: ['./logo-indicator.component.scss'],\r\n standalone: true,\r\n imports: [SVGFactoryDirective],\r\n})\r\nexport class LoadingIndicatorComponent {}\r\n","<div class=\"logo-indicator\">\n <span *sSVGFactory=\"'senior'\"></span>\n</div>\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 's-dots-indicator',\r\n templateUrl: './dots-indicator.component.html',\r\n styleUrls: ['./dots-indicator.component.scss'],\r\n standalone: true,\r\n})\r\nexport class DotsIndicatorComponent {}\r\n","<div class=\"dots-indicator\">\n <div class=\"bounce bounce--1\"></div>\n <div class=\"bounce bounce--2\"></div>\n <div class=\"bounce bounce--3\"></div>\n</div>\n","import { Component, Input, OnDestroy, TemplateRef, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\r\nimport {\r\n ProgressBarIndicatorMode,\r\n ProgressBarIndicatorComponent,\r\n} from './components/progress-bar-indicator/progress-bar-indicator.component';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { LoadingIndicatorComponent } from './components/logo-indicator/logo-indicator.component';\r\nimport { DotsIndicatorComponent } from './components/dots-indicator/dots-indicator.components';\r\n\r\n/**\r\n * @description Componente de estado de carregamento que exibe um indicador animado enquanto\r\n * um processo assíncrono está em andamento. Suporta bloqueio da janela inteira\r\n * e diferentes tipos de indicadores visuais.\r\n * Também pode ser usado como diretiva estrutural `[sLoadingState]`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-loading-state [loading]=\"isLoading\" [blockWindow]=\"true\">\r\n * <p>Conteúdo carregado!</p>\r\n * </s-loading-state>\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-loading-state',\r\n templateUrl: './loading-state.component.html',\r\n styleUrls: ['./loading-state.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n ProgressBarIndicatorComponent,\r\n LoadingIndicatorComponent,\r\n DotsIndicatorComponent,\r\n NgTemplateOutlet,\r\n ],\r\n})\r\nexport class LoadingStateComponent implements OnDestroy {\r\n public static nextId = 0;\r\n\r\n /**\r\n * @description Tipo de indicador visual exibido durante o carregamento.\r\n * - `LoadingStateIndicators.Dots`: indicador de pontos animados (padrão).\r\n * - `LoadingStateIndicators.Logo`: indicador com logotipo animado.\r\n *\r\n * @default LoadingStateIndicators.Dots\r\n */\r\n @Input()\r\n public indicator: LoadingStateIndicators = LoadingStateIndicators.Dots;\r\n\r\n /**\r\n * @description Identificador único do componente. Gerado automaticamente se não informado.\r\n */\r\n @Input()\r\n public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\r\n\r\n /**\r\n * @description Quando `true`, bloqueia a janela inteira durante o carregamento,\r\n * sobrepondo todo o conteúdo da página com o indicador.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public blockWindow = false;\r\n\r\n /**\r\n * @description Controla o estado de carregamento do componente. Campo obrigatório.\r\n * Quando `true`, exibe o indicador de carregamento após um breve delay.\r\n * Quando `false`, remove o indicador após um breve delay (evita flash).\r\n */\r\n @Input({ required: true })\r\n public set loading(loading: boolean) {\r\n this._loading = loading;\r\n loading ? this.block() : this.unblock();\r\n }\r\n\r\n public get loading() {\r\n return this._loading;\r\n }\r\n\r\n /**\r\n * @description Modo da barra de progresso. Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`.\r\n * - `'percentage'`: exibe o preenchimento proporcional ao `progressBarValue`.\r\n * - `'intermittent'`: anima a barra indo e voltando.\r\n *\r\n * @default 'intermittent'\r\n */\r\n @Input()\r\n public progressBarMode: ProgressBarIndicatorMode = 'intermittent';\r\n\r\n /**\r\n * @description Valor de progresso (0–100). Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`\r\n * e `progressBarMode` é `'percentage'`.\r\n *\r\n * @default 0\r\n */\r\n @Input()\r\n public progressBarValue = 0;\r\n\r\n /**\r\n * @description Texto exibido abaixo da barra de progresso.\r\n * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\r\n */\r\n @Input()\r\n public progressBarLabel?: string;\r\n\r\n public contents: TemplateRef<any> | null = null;\r\n public blocking = false;\r\n\r\n private _loading = false;\r\n private BLOCK_TIMEOUT_VALUE = 300;\r\n private UNBLOCK_TIMEOUT_VALUE = 200;\r\n private blockTimeoutId: any;\r\n private unblockTimeoutId: any;\r\n\r\n public ngOnDestroy(): void {\r\n if (this.blockTimeoutId) {\r\n clearTimeout(this.blockTimeoutId);\r\n }\r\n\r\n if (this.unblockTimeoutId) {\r\n clearTimeout(this.unblockTimeoutId);\r\n }\r\n }\r\n\r\n public block(): void {\r\n if (this.unblockTimeoutId) {\r\n clearTimeout(this.unblockTimeoutId);\r\n this.unblockTimeoutId = undefined;\r\n }\r\n\r\n if (!this.blockTimeoutId) {\r\n this.blockTimeoutId = setTimeout(() => {\r\n this.blocking = true;\r\n this.blockTimeoutId = undefined;\r\n }, this.BLOCK_TIMEOUT_VALUE);\r\n }\r\n }\r\n\r\n public unblock(): void {\r\n if (this.blockTimeoutId) {\r\n clearTimeout(this.blockTimeoutId);\r\n this.blockTimeoutId = undefined;\r\n }\r\n\r\n if (!this.unblockTimeoutId) {\r\n this.unblockTimeoutId = setTimeout(() => {\r\n this.blocking = false;\r\n this.unblockTimeoutId = undefined;\r\n }, this.UNBLOCK_TIMEOUT_VALUE);\r\n }\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"s-loading-state\"\n [ngClass]=\"{\n 's-loading-state--loading': loading,\n 's-loading-state--blocking': blocking,\n 's-loading-state--fullscreen': blockWindow\n }\"\n>\n <div\n [id]=\"id + '-loader'\"\n class=\"loader\"\n >\n @if (indicator === 'progress-bar') {\n <div class=\"progress-bar-wrapper\">\n <s-progress-bar-indicator\n [mode]=\"progressBarMode\"\n [value]=\"progressBarValue\"\n [label]=\"progressBarLabel\"\n ></s-progress-bar-indicator>\n </div>\n } @else {\n <div\n [id]=\"id + '-spinner'\"\n class=\"spinner\"\n >\n @switch (indicator) {\n @case ('logo') {\n <s-logo-indicator></s-logo-indicator>\n }\n @case ('dots') {\n <s-dots-indicator></s-dots-indicator>\n }\n }\n </div>\n }\n <div\n [id]=\"id + '-overlay'\"\n class=\"overlay\"\n ></div>\n </div>\n <div\n [id]=\"id + '-contents'\"\n class=\"state-contents\"\n >\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n // NOSONAR - 'ComponentFactoryResolver' is deprecated.\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { LoadingStateComponent } from './loading-state.component';\r\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\r\nimport { ProgressBarIndicatorMode } from './components/progress-bar-indicator/progress-bar-indicator.component';\r\n\r\n/**\r\n * @description Diretiva estrutural que envolve o conteúdo da view com um indicador de carregamento.\r\n * É uma alternativa inline ao `LoadingStateComponent`, podendo ser aplicada diretamente\r\n * em containers existentes sem a necessidade de criar um wrapper explícito no template.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Forma simples (boolean) -->\r\n * <div *sLoadingState=\"isLoading\">Conteúdo</div>\r\n *\r\n * <!-- Forma com configuração -->\r\n * <div *sLoadingState=\"{ loading: isLoading, indicator: 'logo' }\">Conteúdo</div>\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Directive({\r\n selector: '[sLoadingState]',\r\n standalone: true,\r\n})\r\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\r\n private readonly target = inject(ViewContainerRef);\r\n private readonly template = inject<TemplateRef<any>>(TemplateRef);\r\n private readonly componentFactoryResolver = inject(ComponentFactoryResolver);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n /**\r\n * @description Controla o estado de carregamento da diretiva.\r\n * Aceita:\r\n * - `boolean`: ativa/desativa o carregamento com o indicador padrão (`dots`).\r\n * - objeto de configuração: permite definir indicador, modo e valor da barra de progresso.\r\n */\r\n @Input()\r\n public set sLoadingState(\r\n value:\r\n | boolean\r\n | {\r\n loading: boolean;\r\n indicator?: LoadingStateIndicators;\r\n progressBarMode?: ProgressBarIndicatorMode;\r\n progressBarValue?: number;\r\n progressBarLabel?: string;\r\n },\r\n ) {\r\n if (typeof value === 'boolean') {\r\n this._loading = value;\r\n this.indicator = LoadingStateIndicators.Dots;\r\n } else if (typeof value === 'object') {\r\n this._loading = value.loading;\r\n this.indicator = value.indicator ?? LoadingStateIndicators.Dots;\r\n this.progressBarMode = value.progressBarMode ?? 'intermittent';\r\n this.progressBarValue = value.progressBarValue ?? 0;\r\n this.progressBarLabel = value.progressBarLabel;\r\n }\r\n\r\n if (this.loaderComponent) {\r\n this.loaderComponent.instance.loading = this._loading;\r\n this.loaderComponent.instance.indicator = this.indicator;\r\n this.loaderComponent.instance.progressBarMode = this.progressBarMode;\r\n this.loaderComponent.instance.progressBarValue = this.progressBarValue;\r\n this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\r\n }\r\n }\r\n\r\n private _loading = false;\r\n private indicator = LoadingStateIndicators.Dots;\r\n private progressBarMode: ProgressBarIndicatorMode = 'intermittent';\r\n private progressBarValue = 0;\r\n private progressBarLabel?: string;\r\n private loaderComponent: ComponentRef<LoadingStateComponent> | null = null;\r\n\r\n public ngAfterViewInit() {\r\n this.createComponent();\r\n }\r\n\r\n private createComponent() {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\r\n this.loaderComponent = this.target.createComponent(factory);\r\n this.loaderComponent.instance.contents = this.template;\r\n this.loaderComponent.instance.loading = this._loading;\r\n this.loaderComponent.instance.indicator = this.indicator;\r\n this.loaderComponent.instance.progressBarMode = this.progressBarMode;\r\n this.loaderComponent.instance.progressBarValue = this.progressBarValue;\r\n this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.loaderComponent) {\r\n this.loaderComponent.destroy();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { LoadingStateComponent } from './loading-state.component';\r\nimport { LoadingStateDirective } from './loading-state.directive';\r\n\r\n@NgModule({\r\n imports: [LoadingStateComponent, LoadingStateDirective],\r\n exports: [LoadingStateComponent, LoadingStateDirective],\r\n})\r\nexport class LoadingStateModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;IAAY,uBAIX;AAJD,CAAA,UAAY,sBAAsB,EAAA;AAC9B,IAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,sBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,sBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAChC,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,GAIjC,EAAA,CAAA,CAAA;;MCQY,6BAA6B,CAAA;AACtC;;;;;AAKG;IAEI,IAAI,GAA6B,cAAc,CAAC;AAEvD;;;AAGG;IAEI,KAAK,GAAG,CAAC,CAAC;AAEjB;;;AAGG;AAEI,IAAA,KAAK,CAAU;AAEtB,IAAA,IAAW,YAAY,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,IAAI,CAAC,KAAK,CAAC;SACrB;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAA,CAAA,CAAG,GAAG,eAAe,CAAC;KAC1E;wGA7BQ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ1C,6dAWA,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAER,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGxB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,6dAAA,EAAA,MAAA,EAAA,CAAA,0yBAAA,CAAA,EAAA,CAAA;8BAUX,IAAI,EAAA,CAAA;sBADV,KAAK;gBAQC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAQC,KAAK,EAAA,CAAA;sBADX,KAAK;;;MEvBG,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVtC,uFAGA,EAAA,MAAA,EAAA,CAAA,mXAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKc,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAEpB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAPrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGhB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,uFAAA,EAAA,MAAA,EAAA,CAAA,mXAAA,CAAA,EAAA,CAAA;;;MEArB,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4ECRnC,8KAKA,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA,CAAA,CAAA;;4FDGa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,IAAI,EAAA,QAAA,EAAA,8KAAA,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA,CAAA;;;AEKpB;;;;;;;;;;;;;;AAcG;MAeU,qBAAqB,CAAA;AACvB,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;AAEzB;;;;;;AAMG;AAEI,IAAA,SAAS,GAA2B,sBAAsB,CAAC,IAAI,CAAC;AAEvE;;AAEG;AAEI,IAAA,EAAE,GAAG,CAAmB,gBAAA,EAAA,qBAAqB,CAAC,MAAM,EAAE,EAAE,CAAC;AAEhE;;;;;AAKG;IAEI,WAAW,GAAG,KAAK,CAAC;AAE3B;;;;AAIG;IACH,IACW,OAAO,CAAC,OAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,QAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;KAC3C;AAED,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;AAED;;;;;;AAMG;IAEI,eAAe,GAA6B,cAAc,CAAC;AAElE;;;;;AAKG;IAEI,gBAAgB,GAAG,CAAC,CAAC;AAE5B;;;AAGG;AAEI,IAAA,gBAAgB,CAAU;IAE1B,QAAQ,GAA4B,IAAI,CAAC;IACzC,QAAQ,GAAG,KAAK,CAAC;IAEhB,QAAQ,GAAG,KAAK,CAAC;IACjB,mBAAmB,GAAG,GAAG,CAAC;IAC1B,qBAAqB,GAAG,GAAG,CAAC;AAC5B,IAAA,cAAc,CAAM;AACpB,IAAA,gBAAgB,CAAM;IAEvB,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACrC;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACvC;KACJ;IAEM,KAAK,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACrC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAK;AAClC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,gBAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;AACpC,aAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAChC;KACJ;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;SACnC;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAK;AACpC,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AACtC,aAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;SAClC;KACJ;wGAlHQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxClC,kgDAmDA,EAAA,MAAA,EAAA,CAAA,4qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlBQ,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,6BAA6B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC7B,yBAAyB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,sBAAsB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAdjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,iBAGZ,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA;wBACL,OAAO;wBACP,6BAA6B;wBAC7B,yBAAyB;wBACzB,sBAAsB;wBACtB,gBAAgB;AACnB,qBAAA,EAAA,QAAA,EAAA,kgDAAA,EAAA,MAAA,EAAA,CAAA,4qDAAA,CAAA,EAAA,CAAA;8BAaM,SAAS,EAAA,CAAA;sBADf,KAAK;gBAOC,EAAE,EAAA,CAAA;sBADR,KAAK;gBAUC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBASK,OAAO,EAAA,CAAA;sBADjB,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAkBlB,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAUC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;gBAQC,gBAAgB,EAAA,CAAA;sBADtB,KAAK;;;AExFV;;;;;;;;;;;;;;;AAeG;MAKU,qBAAqB,CAAA;AACb,IAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClC,IAAA,QAAQ,GAAG,MAAM,CAAmB,WAAW,CAAC,CAAC;AACjD,IAAA,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAC5D,IAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEjD;;;;;AAKG;IACH,IACW,aAAa,CACpB,KAQO,EAAA;AAEP,QAAA,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC;SAChD;AAAM,aAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,sBAAsB,CAAC,IAAI,CAAC;YAChE,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC;YAC/D,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;SAClD;AAED,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;SAC1E;KACJ;IAEO,QAAQ,GAAG,KAAK,CAAC;AACjB,IAAA,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC;IACxC,eAAe,GAA6B,cAAc,CAAC;IAC3D,gBAAgB,GAAG,CAAC,CAAC;AACrB,IAAA,gBAAgB,CAAU;IAC1B,eAAe,GAA+C,IAAI,CAAC;IAEpE,eAAe,GAAA;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,eAAe,GAAA;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;QAC7F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACzD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACvE,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAEM,WAAW,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;SAClC;KACJ;wGAvEQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BAcc,aAAa,EAAA,CAAA;sBADvB,KAAK;;;MCzCG,kBAAkB,CAAA;wGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAHjB,qBAAqB,EAAE,qBAAqB,CAC5C,EAAA,OAAA,EAAA,CAAA,qBAAqB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;yGAE7C,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;AACvD,oBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;AAC1D,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-loading-state.mjs","sources":["../../projects/angular-components/loading-state/src/lib/loading-state/components/loading-state-indicators.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/components/logo-indicator/logo-indicator.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/logo-indicator/logo-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/components/dots-indicator/dots-indicator.components.ts","../../projects/angular-components/loading-state/src/lib/loading-state/components/dots-indicator/dots-indicator.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.component.ts","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.component.html","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.directive.ts","../../projects/angular-components/loading-state/src/lib/loading-state/loading-state.module.ts","../../projects/angular-components/loading-state/src/seniorsistemas-angular-components-loading-state.ts"],"sourcesContent":["export enum LoadingStateIndicators {\n Dots = 'dots',\n Logo = 'logo',\n ProgressBar = 'progress-bar',\n}\n","import { Component, Input } from '@angular/core';\r\nimport { NgStyle } from '@angular/common';\r\n\r\nexport type ProgressBarIndicatorMode = 'percentage' | 'intermittent';\r\n\r\n@Component({\r\n selector: 's-progress-bar-indicator',\r\n templateUrl: './progress-bar-indicator.component.html',\r\n styleUrls: ['./progress-bar-indicator.component.scss'],\r\n standalone: true,\r\n imports: [NgStyle],\r\n})\r\nexport class ProgressBarIndicatorComponent {\r\n /**\r\n * @description Modo de exibição da barra.\r\n * - `'percentage'`: exibe o preenchimento proporcional ao `value` (0–100).\r\n * - `'intermittent'`: anima a barra indo e voltando indefinidamente.\r\n * @default 'intermittent'\r\n */\r\n @Input()\r\n public mode: ProgressBarIndicatorMode = 'intermittent';\r\n\r\n /**\r\n * @description Valor de progresso (0–100). Usado apenas no modo `'percentage'`.\r\n * @default 0\r\n */\r\n @Input()\r\n public value = 0;\r\n\r\n /**\r\n * @description Texto exibido abaixo da barra.\r\n * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\r\n */\r\n @Input()\r\n public label?: string;\r\n\r\n public get displayLabel(): string {\r\n if (this.label) {\r\n return this.label;\r\n }\r\n return this.mode === 'percentage' ? `${this.value}%` : 'Carregando...';\r\n }\r\n}\r\n","<div class=\"progress-bar-indicator\">\n <div class=\"progress-bar-track\">\n <div\n class=\"progress-bar-fill\"\n [class.progress-bar-fill--percentage]=\"mode === 'percentage'\"\n [class.progress-bar-fill--intermittent]=\"mode === 'intermittent'\"\n [ngStyle]=\"mode === 'percentage' ? { width: value + '%' } : {}\"\n ></div>\n </div>\n <span class=\"progress-bar-label\">{{ displayLabel }}</span>\n</div>\n","import { Component } from '@angular/core';\r\nimport { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';\r\n\r\n@Component({\r\n selector: 's-logo-indicator',\r\n templateUrl: './logo-indicator.component.html',\r\n styleUrls: ['./logo-indicator.component.scss'],\r\n standalone: true,\r\n imports: [SVGFactoryDirective],\r\n})\r\nexport class LoadingIndicatorComponent {}\r\n","<div class=\"logo-indicator\">\n <span *sSVGFactory=\"'senior'\"></span>\n</div>\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 's-dots-indicator',\r\n templateUrl: './dots-indicator.component.html',\r\n styleUrls: ['./dots-indicator.component.scss'],\r\n standalone: true,\r\n})\r\nexport class DotsIndicatorComponent {}\r\n","<div class=\"dots-indicator\">\n <div class=\"bounce bounce--1\"></div>\n <div class=\"bounce bounce--2\"></div>\n <div class=\"bounce bounce--3\"></div>\n</div>\n","import { Component, Input, OnDestroy, TemplateRef, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\r\nimport {\r\n ProgressBarIndicatorMode,\r\n ProgressBarIndicatorComponent,\r\n} from './components/progress-bar-indicator/progress-bar-indicator.component';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { LoadingIndicatorComponent } from './components/logo-indicator/logo-indicator.component';\r\nimport { DotsIndicatorComponent } from './components/dots-indicator/dots-indicator.components';\r\n\r\n/**\r\n * @description Componente de estado de carregamento que exibe um indicador animado enquanto\r\n * um processo assíncrono está em andamento. Suporta bloqueio da janela inteira\r\n * e diferentes tipos de indicadores visuais.\r\n * Também pode ser usado como diretiva estrutural `[sLoadingState]`.\r\n *\r\n * @example\r\n * ```html\r\n * <s-loading-state [loading]=\"isLoading\" [blockWindow]=\"true\">\r\n * <p>Conteúdo carregado!</p>\r\n * </s-loading-state>\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-loading-state',\r\n templateUrl: './loading-state.component.html',\r\n styleUrls: ['./loading-state.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n NgClass,\r\n ProgressBarIndicatorComponent,\r\n LoadingIndicatorComponent,\r\n DotsIndicatorComponent,\r\n NgTemplateOutlet,\r\n ],\r\n})\r\nexport class LoadingStateComponent implements OnDestroy {\r\n public static nextId = 0;\r\n\r\n /**\r\n * @description Tipo de indicador visual exibido durante o carregamento.\r\n * - `LoadingStateIndicators.Dots`: indicador de pontos animados (padrão).\r\n * - `LoadingStateIndicators.Logo`: indicador com logotipo animado.\r\n *\r\n * @default LoadingStateIndicators.Dots\r\n */\r\n @Input()\r\n public indicator: LoadingStateIndicators = LoadingStateIndicators.Dots;\r\n\r\n /**\r\n * @description Identificador único do componente. Gerado automaticamente se não informado.\r\n */\r\n @Input()\r\n public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\r\n\r\n /**\r\n * @description Quando `true`, bloqueia a janela inteira durante o carregamento,\r\n * sobrepondo todo o conteúdo da página com o indicador.\r\n *\r\n * @default false\r\n */\r\n @Input()\r\n public blockWindow = false;\r\n\r\n /**\r\n * @description Controla o estado de carregamento do componente. Campo obrigatório.\r\n * Quando `true`, exibe o indicador de carregamento após um breve delay.\r\n * Quando `false`, remove o indicador após um breve delay (evita flash).\r\n */\r\n @Input({ required: true })\r\n public set loading(loading: boolean) {\r\n this._loading = loading;\r\n loading ? this.block() : this.unblock();\r\n }\r\n\r\n public get loading() {\r\n return this._loading;\r\n }\r\n\r\n /**\r\n * @description Modo da barra de progresso. Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`.\r\n * - `'percentage'`: exibe o preenchimento proporcional ao `progressBarValue`.\r\n * - `'intermittent'`: anima a barra indo e voltando.\r\n *\r\n * @default 'intermittent'\r\n */\r\n @Input()\r\n public progressBarMode: ProgressBarIndicatorMode = 'intermittent';\r\n\r\n /**\r\n * @description Valor de progresso (0–100). Usado quando `indicator` é `LoadingStateIndicators.ProgressBar`\r\n * e `progressBarMode` é `'percentage'`.\r\n *\r\n * @default 0\r\n */\r\n @Input()\r\n public progressBarValue = 0;\r\n\r\n /**\r\n * @description Texto exibido abaixo da barra de progresso.\r\n * Quando omitido, usa `'{value}%'` no modo `'percentage'` ou `'Carregando...'` no modo `'intermittent'`.\r\n */\r\n @Input()\r\n public progressBarLabel?: string;\r\n\r\n public contents: TemplateRef<any> | null = null;\r\n public blocking = false;\r\n\r\n private _loading = false;\r\n private BLOCK_TIMEOUT_VALUE = 300;\r\n private UNBLOCK_TIMEOUT_VALUE = 200;\r\n private blockTimeoutId: any;\r\n private unblockTimeoutId: any;\r\n\r\n public ngOnDestroy(): void {\r\n if (this.blockTimeoutId) {\r\n clearTimeout(this.blockTimeoutId);\r\n }\r\n\r\n if (this.unblockTimeoutId) {\r\n clearTimeout(this.unblockTimeoutId);\r\n }\r\n }\r\n\r\n public block(): void {\r\n if (this.unblockTimeoutId) {\r\n clearTimeout(this.unblockTimeoutId);\r\n this.unblockTimeoutId = undefined;\r\n }\r\n\r\n if (!this.blockTimeoutId) {\r\n this.blockTimeoutId = setTimeout(() => {\r\n this.blocking = true;\r\n this.blockTimeoutId = undefined;\r\n }, this.BLOCK_TIMEOUT_VALUE);\r\n }\r\n }\r\n\r\n public unblock(): void {\r\n if (this.blockTimeoutId) {\r\n clearTimeout(this.blockTimeoutId);\r\n this.blockTimeoutId = undefined;\r\n }\r\n\r\n if (!this.unblockTimeoutId) {\r\n this.unblockTimeoutId = setTimeout(() => {\r\n this.blocking = false;\r\n this.unblockTimeoutId = undefined;\r\n }, this.UNBLOCK_TIMEOUT_VALUE);\r\n }\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"s-loading-state\"\n [ngClass]=\"{\n 's-loading-state--loading': loading,\n 's-loading-state--blocking': blocking,\n 's-loading-state--fullscreen': blockWindow\n }\"\n>\n <div\n [id]=\"id + '-loader'\"\n class=\"loader\"\n >\n @if (indicator === 'progress-bar') {\n <div class=\"progress-bar-wrapper\">\n <s-progress-bar-indicator\n [mode]=\"progressBarMode\"\n [value]=\"progressBarValue\"\n [label]=\"progressBarLabel\"\n ></s-progress-bar-indicator>\n </div>\n } @else {\n <div\n [id]=\"id + '-spinner'\"\n class=\"spinner\"\n >\n @switch (indicator) {\n @case ('logo') {\n <s-logo-indicator></s-logo-indicator>\n }\n @case ('dots') {\n <s-dots-indicator></s-dots-indicator>\n }\n }\n </div>\n }\n <div\n [id]=\"id + '-overlay'\"\n class=\"overlay\"\n ></div>\n </div>\n <div\n [id]=\"id + '-contents'\"\n class=\"state-contents\"\n >\n <ng-container *ngTemplateOutlet=\"contents || originalContent\"></ng-container>\n <ng-template #originalContent>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n // NOSONAR - 'ComponentFactoryResolver' is deprecated.\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n Input,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n inject,\r\n} from '@angular/core';\r\n\r\nimport { LoadingStateComponent } from './loading-state.component';\r\nimport { LoadingStateIndicators } from './components/loading-state-indicators';\r\nimport { ProgressBarIndicatorMode } from './components/progress-bar-indicator/progress-bar-indicator.component';\r\n\r\n/**\r\n * @description Diretiva estrutural que envolve o conteúdo da view com um indicador de carregamento.\r\n * É uma alternativa inline ao `LoadingStateComponent`, podendo ser aplicada diretamente\r\n * em containers existentes sem a necessidade de criar um wrapper explícito no template.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Forma simples (boolean) -->\r\n * <div *sLoadingState=\"isLoading\">Conteúdo</div>\r\n *\r\n * <!-- Forma com configuração -->\r\n * <div *sLoadingState=\"{ loading: isLoading, indicator: 'logo' }\">Conteúdo</div>\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Directive({\r\n selector: '[sLoadingState]',\r\n standalone: true,\r\n})\r\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\r\n private readonly target = inject(ViewContainerRef);\r\n private readonly template = inject<TemplateRef<any>>(TemplateRef);\r\n private readonly componentFactoryResolver = inject(ComponentFactoryResolver);\r\n private readonly cdr = inject(ChangeDetectorRef);\r\n\r\n /**\r\n * @description Controla o estado de carregamento da diretiva.\r\n * Aceita:\r\n * - `boolean`: ativa/desativa o carregamento com o indicador padrão (`dots`).\r\n * - objeto de configuração: permite definir indicador, modo e valor da barra de progresso.\r\n */\r\n @Input()\r\n public set sLoadingState(\r\n value:\r\n | boolean\r\n | {\r\n loading: boolean;\r\n indicator?: LoadingStateIndicators;\r\n progressBarMode?: ProgressBarIndicatorMode;\r\n progressBarValue?: number;\r\n progressBarLabel?: string;\r\n },\r\n ) {\r\n if (typeof value === 'boolean') {\r\n this._loading = value;\r\n this.indicator = LoadingStateIndicators.Dots;\r\n } else if (typeof value === 'object') {\r\n this._loading = value.loading;\r\n this.indicator = value.indicator ?? LoadingStateIndicators.Dots;\r\n this.progressBarMode = value.progressBarMode ?? 'intermittent';\r\n this.progressBarValue = value.progressBarValue ?? 0;\r\n this.progressBarLabel = value.progressBarLabel;\r\n }\r\n\r\n if (this.loaderComponent) {\r\n this.loaderComponent.instance.loading = this._loading;\r\n this.loaderComponent.instance.indicator = this.indicator;\r\n this.loaderComponent.instance.progressBarMode = this.progressBarMode;\r\n this.loaderComponent.instance.progressBarValue = this.progressBarValue;\r\n this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\r\n }\r\n }\r\n\r\n private _loading = false;\r\n private indicator = LoadingStateIndicators.Dots;\r\n private progressBarMode: ProgressBarIndicatorMode = 'intermittent';\r\n private progressBarValue = 0;\r\n private progressBarLabel?: string;\r\n private loaderComponent: ComponentRef<LoadingStateComponent> | null = null;\r\n\r\n public ngAfterViewInit() {\r\n this.createComponent();\r\n }\r\n\r\n private createComponent() {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\r\n this.loaderComponent = this.target.createComponent(factory);\r\n this.loaderComponent.instance.contents = this.template;\r\n this.loaderComponent.instance.loading = this._loading;\r\n this.loaderComponent.instance.indicator = this.indicator;\r\n this.loaderComponent.instance.progressBarMode = this.progressBarMode;\r\n this.loaderComponent.instance.progressBarValue = this.progressBarValue;\r\n this.loaderComponent.instance.progressBarLabel = this.progressBarLabel;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.loaderComponent) {\r\n this.loaderComponent.destroy();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { LoadingStateComponent } from './loading-state.component';\r\nimport { LoadingStateDirective } from './loading-state.directive';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `LoadingStateComponent` e\r\n * `LoadingStateDirective` (de `@seniorsistemas/angular-components/loading-state`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [LoadingStateComponent, LoadingStateDirective],\r\n exports: [LoadingStateComponent, LoadingStateDirective],\r\n})\r\nexport class LoadingStateModule {}\r\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 { inject, Injectable, Pipe, NgModule } from '@angular/core';
2
+ import { inject, Injectable, Pipe, NgModule, makeEnvironmentProviders } from '@angular/core';
3
3
  import { HttpClient } from '@angular/common/http';
4
4
  import { user } from '@seniorsistemas/senior-platform-data';
5
5
  import moment from 'moment';
@@ -151,10 +151,11 @@ class LocaleService {
151
151
  return numberFormat.formatToParts(1.2).find((part) => part.type === 'decimal')?.value;
152
152
  }
153
153
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
154
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService });
154
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, providedIn: 'root' });
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocaleService, decorators: [{
157
- type: Injectable
157
+ type: Injectable,
158
+ args: [{ providedIn: 'root' }]
158
159
  }] });
159
160
 
160
161
  function applyLocalizedMask(rawValue, options, isNumber) {
@@ -178,7 +179,15 @@ function applyLocalizedMask(rawValue, options, isNumber) {
178
179
  class LocalizedBignumberPipe {
179
180
  localeService = inject(LocaleService);
180
181
  transform(value, options) {
181
- return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);
182
+ const input = this.coerceEmpty(value, options);
183
+ return input !== undefined && input !== null ? this.applyMask(input, options) : of(input);
184
+ }
185
+ coerceEmpty(value, options) {
186
+ if (options?.nullAsZero && value === null)
187
+ return 0;
188
+ if (options?.emptyAsZero && typeof value === 'string' && value.trim() === '')
189
+ return 0;
190
+ return value;
182
191
  }
183
192
  applyMask(value, options) {
184
193
  return this.localeService.get().pipe(map((localeConfig) => {
@@ -369,6 +378,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
369
378
  }]
370
379
  }] });
371
380
 
381
+ /**
382
+ * @deprecated Será removido na v20. Importe diretamente os standalones `LocalizedCurrencyPipe`,
383
+ * `LocalizedDatePipe`, `LocalizedTimePipe`, `LocalizedNumberPipe`, `LocalizedCurrencyImpurePipe`,
384
+ * `LocalizedDateImpurePipe`, `LocalizedTimeImpurePipe`, `LocalizedBignumberPipe` e
385
+ * `LocalizedBignumberImpurePipe` (de `@seniorsistemas/angular-components/locale`) no lugar deste módulo.
386
+ *
387
+ * Substitua `LocaleModule.forRoot()` por `provideLocale()` (de `@seniorsistemas/angular-components/locale`).
388
+ *
389
+ * `LocaleModule.forChild()` não tem equivalente e pode ser removido.
390
+ *
391
+ * Migração automática (também executada pelo `ng update` na v20):
392
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
393
+ */
372
394
  class LocaleModule {
373
395
  static forRoot() {
374
396
  return {
@@ -440,9 +462,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
440
462
  }]
441
463
  }] });
442
464
 
465
+ /**
466
+ * Registra o `LocaleService` e os pipes de localização como providers, para que possam ser injetados
467
+ * em classes (`inject(LocalizedDatePipe)`).
468
+ *
469
+ * Substitui `LocaleModule.forRoot()` e funciona em aplicações standalone (`app.config.ts`) e também
470
+ * em `NgModule.providers`. Para usar os pipes nos templates, importe os pipes standalone diretamente.
471
+ *
472
+ * @example
473
+ * ```typescript
474
+ * export const appConfig: ApplicationConfig = {
475
+ * providers: [provideLocale()],
476
+ * };
477
+ * ```
478
+ *
479
+ * @returns Providers de ambiente para o injetor raiz.
480
+ */
481
+ function provideLocale() {
482
+ return makeEnvironmentProviders([
483
+ LocaleService,
484
+ LocalizedCurrencyPipe,
485
+ LocalizedDatePipe,
486
+ LocalizedTimePipe,
487
+ LocalizedNumberPipe,
488
+ LocalizedCurrencyImpurePipe,
489
+ LocalizedDateImpurePipe,
490
+ LocalizedTimeImpurePipe,
491
+ LocalizedBignumberPipe,
492
+ LocalizedBignumberImpurePipe,
493
+ ]);
494
+ }
495
+
443
496
  /**
444
497
  * Generated bundle index. Do not edit.
445
498
  */
446
499
 
447
- export { CalendarLocaleOptions, LocaleModule, LocaleOptions, LocaleService, LocalizedBignumberImpurePipe, LocalizedBignumberPipe, LocalizedCurrencyImpurePipe, LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions, LocalizedDateImpurePipe, LocalizedDatePipe, LocalizedNumberPipe, LocalizedTimeImpurePipe, LocalizedTimePipe, NumberLocaleOptions, applyLocalizedMask };
500
+ export { CalendarLocaleOptions, LocaleModule, LocaleOptions, LocaleService, LocalizedBignumberImpurePipe, LocalizedBignumberPipe, LocalizedCurrencyImpurePipe, LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions, LocalizedDateImpurePipe, LocalizedDatePipe, LocalizedNumberPipe, LocalizedTimeImpurePipe, LocalizedTimePipe, NumberLocaleOptions, applyLocalizedMask, provideLocale };
448
501
  //# sourceMappingURL=seniorsistemas-angular-components-locale.mjs.map
@@ -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, 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';\r\nimport { LocaleService } from '../locale.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport BigNumber from 'bignumber.js';\r\nimport { applyLocalizedMask, LocalizedBignumberOptions } from '../apply-localized-mask';\r\n\r\nexport type { LocalizedBignumberOptions };\r\n\r\n@Pipe({\r\n name: 'localizedBignumber',\r\n standalone: true,\r\n})\r\nexport class LocalizedBignumberPipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value?: any, options?: LocalizedBignumberOptions): any {\r\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\r\n }\r\n\r\n private applyMask(value?: any, options?: LocalizedBignumberOptions) {\r\n return this.localeService.get().pipe(\r\n map((localeConfig) => {\r\n const configs: Required<LocalizedBignumberOptions> = {\r\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? 'R$',\r\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? '.',\r\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? ',',\r\n scale: options?.scale ?? 2,\r\n suffix: options?.suffix ?? '',\r\n allowNegative: options?.allowNegative ?? true,\r\n };\r\n const isNumber = !new BigNumber(value).isNaN();\r\n return applyLocalizedMask(value, configs, isNumber);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { LocalizedBignumberOptions, LocalizedBignumberPipe } from './localized-bignumber.pipe';\r\n\r\n@Pipe({\r\n name: 'localizedBignumberImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\r\n public override transform(value?: any, options?: LocalizedBignumberOptions): any {\r\n return super.transform(value, options);\r\n }\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocaleService } from '../locale.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport { INumberLocaleOptions, NumberLocaleOptions } from '../options';\r\n\r\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\r\n scale?: number;\r\n}\r\n\r\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\r\n public scale = 2;\r\n\r\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\r\n super(config);\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated Should use localizedBignumberPipe instead\r\n */\r\n@Pipe({\r\n name: 'localizedCurrency',\r\n standalone: true,\r\n})\r\nexport class LocalizedCurrencyPipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\r\n if (!options) {\r\n options = new LocalizedCurrencyPipeOptions();\r\n }\r\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\r\n }\r\n\r\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\r\n return this.localeService.get().pipe(\r\n map((localeConfig) => {\r\n const config = { ...localeConfig.number, ...options };\r\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\r\n\r\n const rawValue = Number(value).toFixed(scale);\r\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\r\n const integerPart =\r\n onlyNumbers\r\n .slice(0, onlyNumbers.length - scale)\r\n .replace(/^0*/g, ``)\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator!) || `0`;\r\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\r\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\r\n const isZero = !Number(onlyNumbers);\r\n const operator = rawValue.includes('-') && !isZero ? '-' : '';\r\n return `${operator}${currencySymbol}${newValue}`;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from './localized-currency.pipe';\r\n\r\n/**\r\n * @deprecated Should use localizedBignumberPipe instead\r\n */\r\n@Pipe({\r\n name: 'localizedCurrencyImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\r\n public override transform(\r\n value?: any,\r\n options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions(),\r\n ): any {\r\n return super.transform(value, options);\r\n }\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\n\r\nimport moment from 'moment';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LocaleService } from '../locale.service';\r\n\r\n@Pipe({\r\n name: 'localizedDate',\r\n standalone: true,\r\n})\r\nexport class LocalizedDatePipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value: any, format: string = 'L LTS'): any {\r\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizedDatePipe } from './localized-date.pipe';\r\n\r\n@Pipe({\r\n name: 'localizedDateImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { from } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LocaleService } from '../locale.service';\r\n\r\n/**\r\n * @deprecated Should use localizedBignumberPipe instead\r\n */\r\n@Pipe({\r\n name: 'localizedNumber',\r\n standalone: true,\r\n})\r\nexport class LocalizedNumberPipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n transform(value: number | string, minimumFractionDigits?: number) {\r\n return from(this.localeService.getLocale()).pipe(\r\n map((locale: string) => {\r\n const numericValue = Number(value);\r\n\r\n if (!value && isNaN(numericValue)) return;\r\n\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: minimumFractionDigits || 0,\r\n }).format(Number(value));\r\n }),\r\n );\r\n }\r\n}\r\n\r\nexport interface Locale {\r\n localidade?: string;\r\n tenantLocale?: string;\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LocaleService } from '../locale.service';\r\n\r\n@Pipe({\r\n name: 'localizedTime',\r\n standalone: true,\r\n})\r\nexport class LocalizedTimePipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value: any, format: string = 'LTS'): any {\r\n return this.localeService.get().pipe(map(() => (value ? moment(value, 'HH:mm:ss').format(format) : value)));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizedTimePipe } from './localized-time.pipe';\r\n\r\n@Pipe({\r\n name: 'localizedTimeImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { LocaleService } from './locale.service';\r\nimport { LocalizedBignumberImpurePipe } from './pipes/localized-bignumber-impure.pipe';\r\nimport { LocalizedBignumberPipe } from './pipes/localized-bignumber.pipe';\r\nimport { LocalizedCurrencyImpurePipe } from './pipes/localized-currency-impure.pipe';\r\nimport { LocalizedCurrencyPipe } from './pipes/localized-currency.pipe';\r\nimport { LocalizedDateImpurePipe } from './pipes/localized-date-impure.pipe';\r\nimport { LocalizedDatePipe } from './pipes/localized-date.pipe';\r\nimport { LocalizedNumberPipe } from './pipes/localized-number.pipe';\r\nimport { LocalizedTimeImpurePipe } from './pipes/localized-time-impure.pipe';\r\nimport { LocalizedTimePipe } from './pipes/localized-time.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n LocalizedCurrencyPipe,\r\n LocalizedDatePipe,\r\n LocalizedTimePipe,\r\n LocalizedNumberPipe,\r\n LocalizedCurrencyImpurePipe,\r\n LocalizedDateImpurePipe,\r\n LocalizedTimeImpurePipe,\r\n LocalizedBignumberPipe,\r\n LocalizedBignumberImpurePipe,\r\n ],\r\n exports: [\r\n LocalizedCurrencyPipe,\r\n LocalizedDatePipe,\r\n LocalizedTimePipe,\r\n LocalizedNumberPipe,\r\n LocalizedCurrencyImpurePipe,\r\n LocalizedDateImpurePipe,\r\n LocalizedTimeImpurePipe,\r\n LocalizedBignumberPipe,\r\n LocalizedBignumberImpurePipe,\r\n ],\r\n})\r\nexport class LocaleModule {\r\n public static forRoot(): ModuleWithProviders<LocaleModule> {\r\n return {\r\n ngModule: LocaleModule,\r\n providers: [\r\n LocaleService,\r\n LocalizedCurrencyPipe,\r\n LocalizedDatePipe,\r\n LocalizedTimePipe,\r\n LocalizedNumberPipe,\r\n LocalizedCurrencyImpurePipe,\r\n LocalizedDateImpurePipe,\r\n LocalizedTimeImpurePipe,\r\n LocalizedBignumberPipe,\r\n LocalizedBignumberImpurePipe,\r\n ],\r\n };\r\n }\r\n\r\n public static forChild(): ModuleWithProviders<LocaleModule> {\r\n return {\r\n ngModule: LocaleModule,\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-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/lib/locale/provide-locale.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\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({ providedIn: 'root' })\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/**\n * Opções do pipe `localizedBignumber`: as da máscara mais as de compatibilidade com os pipes depreciados\n * `localizedNumber` e `localizedCurrency`, que formatavam valores vazios como `0`.\n */\nexport interface LocalizedBignumberPipeOptions extends LocalizedBignumberOptions {\n /**\n * Quando `true`, uma string vazia (ou só com espaços) é formatada como `0`, em vez de ficar vazia.\n * É o comportamento dos pipes depreciados `localizedNumber` e `localizedCurrency` (`Number('')` é `0`).\n * @default false\n */\n emptyAsZero?: boolean;\n /**\n * Quando `true`, `null` é formatado como `0`, em vez de ser devolvido como está.\n * É o comportamento do pipe depreciado `localizedNumber` (`Number(null)` é `0`). `undefined` nunca é convertido.\n * @default false\n */\n nullAsZero?: boolean;\n}\n\n@Pipe({\n name: 'localizedBignumber',\n standalone: true,\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n private localeService = inject(LocaleService);\n\n public transform(value?: any, options?: LocalizedBignumberPipeOptions): any {\n const input = this.coerceEmpty(value, options);\n return input !== undefined && input !== null ? this.applyMask(input, options) : of(input);\n }\n\n private coerceEmpty(value: any, options?: LocalizedBignumberPipeOptions): any {\n if (options?.nullAsZero && value === null) return 0;\n if (options?.emptyAsZero && typeof value === 'string' && value.trim() === '') return 0;\n return value;\n }\n\n private applyMask(value?: any, options?: LocalizedBignumberPipeOptions) {\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 { LocalizedBignumberPipe, LocalizedBignumberPipeOptions } from './localized-bignumber.pipe';\n\n@Pipe({\n name: 'localizedBignumberImpure',\n pure: false,\n standalone: true,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public override transform(value?: any, options?: LocalizedBignumberPipeOptions): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocaleService } from '../locale.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport { INumberLocaleOptions, NumberLocaleOptions } from '../options';\r\n\r\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\r\n scale?: number;\r\n}\r\n\r\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\r\n public scale = 2;\r\n\r\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\r\n super(config);\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated Should use localizedBignumberPipe instead\r\n */\r\n@Pipe({\r\n name: 'localizedCurrency',\r\n standalone: true,\r\n})\r\nexport class LocalizedCurrencyPipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\r\n if (!options) {\r\n options = new LocalizedCurrencyPipeOptions();\r\n }\r\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\r\n }\r\n\r\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\r\n return this.localeService.get().pipe(\r\n map((localeConfig) => {\r\n const config = { ...localeConfig.number, ...options };\r\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\r\n\r\n const rawValue = Number(value).toFixed(scale);\r\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\r\n const integerPart =\r\n onlyNumbers\r\n .slice(0, onlyNumbers.length - scale)\r\n .replace(/^0*/g, ``)\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator!) || `0`;\r\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\r\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\r\n const isZero = !Number(onlyNumbers);\r\n const operator = rawValue.includes('-') && !isZero ? '-' : '';\r\n return `${operator}${currencySymbol}${newValue}`;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from './localized-currency.pipe';\r\n\r\n/**\r\n * @deprecated Should use localizedBignumberPipe instead\r\n */\r\n@Pipe({\r\n name: 'localizedCurrencyImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\r\n public override transform(\r\n value?: any,\r\n options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions(),\r\n ): any {\r\n return super.transform(value, options);\r\n }\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\n\r\nimport moment from 'moment';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LocaleService } from '../locale.service';\r\n\r\n@Pipe({\r\n name: 'localizedDate',\r\n standalone: true,\r\n})\r\nexport class LocalizedDatePipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value: any, format: string = 'L LTS'): any {\r\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizedDatePipe } from './localized-date.pipe';\r\n\r\n@Pipe({\r\n name: 'localizedDateImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { from } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { LocaleService } from '../locale.service';\r\n\r\n/**\r\n * @deprecated Should use localizedBignumberPipe instead\r\n */\r\n@Pipe({\r\n name: 'localizedNumber',\r\n standalone: true,\r\n})\r\nexport class LocalizedNumberPipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n transform(value: number | string, minimumFractionDigits?: number) {\r\n return from(this.localeService.getLocale()).pipe(\r\n map((locale: string) => {\r\n const numericValue = Number(value);\r\n\r\n if (!value && isNaN(numericValue)) return;\r\n\r\n return new Intl.NumberFormat(locale, {\r\n minimumFractionDigits: minimumFractionDigits || 0,\r\n }).format(Number(value));\r\n }),\r\n );\r\n }\r\n}\r\n\r\nexport interface Locale {\r\n localidade?: string;\r\n tenantLocale?: string;\r\n}\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport moment from 'moment';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { LocaleService } from '../locale.service';\r\n\r\n@Pipe({\r\n name: 'localizedTime',\r\n standalone: true,\r\n})\r\nexport class LocalizedTimePipe implements PipeTransform {\r\n private localeService = inject(LocaleService);\r\n\r\n public transform(value: any, format: string = 'LTS'): any {\r\n return this.localeService.get().pipe(map(() => (value ? moment(value, 'HH:mm:ss').format(format) : value)));\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { LocalizedTimePipe } from './localized-time.pipe';\r\n\r\n@Pipe({\r\n name: 'localizedTimeImpure',\r\n pure: false,\r\n standalone: true,\r\n})\r\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { LocaleService } from './locale.service';\r\nimport { LocalizedBignumberImpurePipe } from './pipes/localized-bignumber-impure.pipe';\r\nimport { LocalizedBignumberPipe } from './pipes/localized-bignumber.pipe';\r\nimport { LocalizedCurrencyImpurePipe } from './pipes/localized-currency-impure.pipe';\r\nimport { LocalizedCurrencyPipe } from './pipes/localized-currency.pipe';\r\nimport { LocalizedDateImpurePipe } from './pipes/localized-date-impure.pipe';\r\nimport { LocalizedDatePipe } from './pipes/localized-date.pipe';\r\nimport { LocalizedNumberPipe } from './pipes/localized-number.pipe';\r\nimport { LocalizedTimeImpurePipe } from './pipes/localized-time-impure.pipe';\r\nimport { LocalizedTimePipe } from './pipes/localized-time.pipe';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `LocalizedCurrencyPipe`,\r\n * `LocalizedDatePipe`, `LocalizedTimePipe`, `LocalizedNumberPipe`, `LocalizedCurrencyImpurePipe`,\r\n * `LocalizedDateImpurePipe`, `LocalizedTimeImpurePipe`, `LocalizedBignumberPipe` e\r\n * `LocalizedBignumberImpurePipe` (de `@seniorsistemas/angular-components/locale`) no lugar deste módulo.\r\n *\r\n * Substitua `LocaleModule.forRoot()` por `provideLocale()` (de `@seniorsistemas/angular-components/locale`).\r\n *\r\n * `LocaleModule.forChild()` não tem equivalente e pode ser removido.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [\r\n LocalizedCurrencyPipe,\r\n LocalizedDatePipe,\r\n LocalizedTimePipe,\r\n LocalizedNumberPipe,\r\n LocalizedCurrencyImpurePipe,\r\n LocalizedDateImpurePipe,\r\n LocalizedTimeImpurePipe,\r\n LocalizedBignumberPipe,\r\n LocalizedBignumberImpurePipe,\r\n ],\r\n exports: [\r\n LocalizedCurrencyPipe,\r\n LocalizedDatePipe,\r\n LocalizedTimePipe,\r\n LocalizedNumberPipe,\r\n LocalizedCurrencyImpurePipe,\r\n LocalizedDateImpurePipe,\r\n LocalizedTimeImpurePipe,\r\n LocalizedBignumberPipe,\r\n LocalizedBignumberImpurePipe,\r\n ],\r\n})\r\nexport class LocaleModule {\r\n public static forRoot(): ModuleWithProviders<LocaleModule> {\r\n return {\r\n ngModule: LocaleModule,\r\n providers: [\r\n LocaleService,\r\n LocalizedCurrencyPipe,\r\n LocalizedDatePipe,\r\n LocalizedTimePipe,\r\n LocalizedNumberPipe,\r\n LocalizedCurrencyImpurePipe,\r\n LocalizedDateImpurePipe,\r\n LocalizedTimeImpurePipe,\r\n LocalizedBignumberPipe,\r\n LocalizedBignumberImpurePipe,\r\n ],\r\n };\r\n }\r\n\r\n public static forChild(): ModuleWithProviders<LocaleModule> {\r\n return {\r\n ngModule: LocaleModule,\r\n };\r\n }\r\n}\r\n","import { EnvironmentProviders, makeEnvironmentProviders } 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/**\n * Registra o `LocaleService` e os pipes de localização como providers, para que possam ser injetados\n * em classes (`inject(LocalizedDatePipe)`).\n *\n * Substitui `LocaleModule.forRoot()` e funciona em aplicações standalone (`app.config.ts`) e também\n * em `NgModule.providers`. Para usar os pipes nos templates, importe os pipes standalone diretamente.\n *\n * @example\n * ```typescript\n * export const appConfig: ApplicationConfig = {\n * providers: [provideLocale()],\n * };\n * ```\n *\n * @returns Providers de ambiente para o injetor raiz.\n */\nexport function provideLocale(): EnvironmentProviders {\n return makeEnvironmentProviders([\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ import { LocaleService } from '@seniorsistemas/angular-components/locale';
6
6
  import { first } from 'rxjs/operators';
7
7
 
8
8
  /**
9
+ * @deprecated Será removido na v20. Utilize a diretiva `sNumericMask` ao invés desta.
10
+ * O `precision` desta diretiva (casas decimais) corresponde ao `maxDecimalPlaces` da `sNumericMask`.
11
+ * Migração automática: `ng generate @seniorsistemas/angular-components:migrate-deprecated-apis`
12
+ *
9
13
  * @description Diretiva de validação para campos `<input>` que verificam se o valor digitado
10
14
  * é um número localizado válido (considerando separadores decimal e de milhar do locale ativo).
11
15
  * Ao ser integrada ao `NG_VALIDATORS`, adiciona o erro `invalidNumber` ao control quando
@@ -78,6 +82,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
78
82
  type: Input
79
83
  }] } });
80
84
 
85
+ /**
86
+ * @deprecated Será removido na v20. Importe diretamente o standalone `LocalizedNumberInputDirective` (de
87
+ * `@seniorsistemas/angular-components/localized-number-input`) no lugar deste módulo.
88
+ *
89
+ * Migração automática (também executada pelo `ng update` na v20):
90
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
91
+ */
81
92
  class LocalizedNumberInputModule {
82
93
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LocalizedNumberInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
83
94
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: LocalizedNumberInputModule, imports: [LocalizedNumberInputDirective], exports: [LocalizedNumberInputDirective] });
@@ -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, DestroyRef, forwardRef, Input, OnInit, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\r\n\r\nimport { first } from 'rxjs/operators';\r\n\r\n/**\r\n * @description Diretiva de validação para campos `<input>` que verificam se o valor digitado\r\n * é um número localizado válido (considerando separadores decimal e de milhar do locale ativo).\r\n * Ao ser integrada ao `NG_VALIDATORS`, adiciona o erro `invalidNumber` ao control quando\r\n * o valor não corresponde ao formato esperado.\r\n *\r\n * @example\r\n * ```html\r\n * <input sLocalizedNumberInput [precision]=\"4\" formControlName=\"valor\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: 'input[sLocalizedNumberInput]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\r\n multi: true,\r\n },\r\n ],\r\n standalone: true,\r\n})\r\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\r\n private readonly localeService = inject(LocaleService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /** @description Separador decimal personalizado. Usa o do locale ativo se não informado. */\r\n @Input()\r\n public decimalSeparator?: string;\r\n\r\n /** @description Separador de milhar personalizado. Usa o do locale ativo se não informado. */\r\n @Input()\r\n public thousandsSeparator?: string;\r\n\r\n /** @description Número máximo de casas decimais aceitas na validação. @default 2 */\r\n @Input()\r\n public precision = 2;\r\n\r\n private numberRegex?: string;\r\n\r\n public ngOnInit(): void {\r\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\r\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\r\n // tslint:disable-next-line: max-line-length\r\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}}))?$`;\r\n\r\n this.localeService\r\n .getLocale()\r\n .pipe(first(), takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => {\r\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\r\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\r\n\r\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}}))?$`;\r\n });\r\n }\r\n\r\n public validate(control: AbstractControl): ValidationErrors | null {\r\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex ?? '', 'g'))) {\r\n return { invalidNumber: true };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LocalizedNumberInputDirective } from './localized-number-input.directive';\r\n\r\n@NgModule({\r\n imports: [LocalizedNumberInputDirective],\r\n exports: [LocalizedNumberInputDirective],\r\n})\r\nexport class LocalizedNumberInputModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-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, DestroyRef, forwardRef, Input, OnInit, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\r\n\r\nimport { first } from 'rxjs/operators';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Utilize a diretiva `sNumericMask` ao invés desta.\r\n * O `precision` desta diretiva (casas decimais) corresponde ao `maxDecimalPlaces` da `sNumericMask`.\r\n * Migração automática: `ng generate @seniorsistemas/angular-components:migrate-deprecated-apis`\r\n *\r\n * @description Diretiva de validação para campos `<input>` que verificam se o valor digitado\r\n * é um número localizado válido (considerando separadores decimal e de milhar do locale ativo).\r\n * Ao ser integrada ao `NG_VALIDATORS`, adiciona o erro `invalidNumber` ao control quando\r\n * o valor não corresponde ao formato esperado.\r\n *\r\n * @example\r\n * ```html\r\n * <input sLocalizedNumberInput [precision]=\"4\" formControlName=\"valor\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: 'input[sLocalizedNumberInput]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\r\n multi: true,\r\n },\r\n ],\r\n standalone: true,\r\n})\r\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\r\n private readonly localeService = inject(LocaleService);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n /** @description Separador decimal personalizado. Usa o do locale ativo se não informado. */\r\n @Input()\r\n public decimalSeparator?: string;\r\n\r\n /** @description Separador de milhar personalizado. Usa o do locale ativo se não informado. */\r\n @Input()\r\n public thousandsSeparator?: string;\r\n\r\n /** @description Número máximo de casas decimais aceitas na validação. @default 2 */\r\n @Input()\r\n public precision = 2;\r\n\r\n private numberRegex?: string;\r\n\r\n public ngOnInit(): void {\r\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\r\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\r\n // tslint:disable-next-line: max-line-length\r\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}}))?$`;\r\n\r\n this.localeService\r\n .getLocale()\r\n .pipe(first(), takeUntilDestroyed(this._destroyRef))\r\n .subscribe(() => {\r\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\r\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\r\n\r\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}}))?$`;\r\n });\r\n }\r\n\r\n public validate(control: AbstractControl): ValidationErrors | null {\r\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex ?? '', 'g'))) {\r\n return { invalidNumber: true };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { LocalizedNumberInputDirective } from './localized-number-input.directive';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `LocalizedNumberInputDirective` (de\r\n * `@seniorsistemas/angular-components/localized-number-input`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [LocalizedNumberInputDirective],\r\n exports: [LocalizedNumberInputDirective],\r\n})\r\nexport class LocalizedNumberInputModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -77,6 +77,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
77
77
  }]
78
78
  }] });
79
79
 
80
+ /**
81
+ * @deprecated Será removido na v20. Importe diretamente o standalone `MaskFormatterPipe` (de
82
+ * `@seniorsistemas/angular-components/mask`) no lugar deste módulo.
83
+ *
84
+ * Migração automática (também executada pelo `ng update` na v20):
85
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
86
+ */
80
87
  class MaskFormatterModule {
81
88
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MaskFormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
82
89
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: MaskFormatterModule, imports: [MaskFormatterPipe], exports: [MaskFormatterPipe] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-mask.mjs","sources":["../../projects/angular-components/mask/src/lib/mask/mask-formatter.pipe.ts","../../projects/angular-components/mask/src/lib/mask/mask-formatter.module.ts","../../projects/angular-components/mask/src/seniorsistemas-angular-components-mask.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * @description Pipe que aplica uma máscara de formatação a uma string,\r\n * suportando os tokens `9` (dígito), `a` (letra) e `*` (alfanumérico),\r\n * além de suporte a posições opcionais com `?`.\r\n *\r\n * @example\r\n * ```html\r\n * {{ '12345678901' | sMaskFormatter:'999.999.999-99' }}\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Pipe({\r\n name: 'sMaskFormatter',\r\n standalone: true,\r\n})\r\nexport class MaskFormatterPipe implements PipeTransform {\r\n private _defs: any = {\r\n '9': '[0-9]',\r\n a: '[A-Za-z]',\r\n '*': '[A-Za-z]|[0-9]',\r\n };\r\n\r\n public transform(value: string, maskFormat: string): any {\r\n const buffer = [];\r\n let opcionalPos = -1;\r\n let pos = 0;\r\n const maskTokens = maskFormat.split('');\r\n const symbolsPosAfterOpcional = [];\r\n const hasOpcional = maskFormat.includes('?');\r\n\r\n for (let i = 0; i < maskTokens.length; i++) {\r\n const token = maskTokens[i];\r\n\r\n if (token !== '?') {\r\n if (this._defs[token]) {\r\n const tokenRegex = this._defs[token];\r\n const charAtPos = value.charAt(pos);\r\n const isValidChar = new RegExp(tokenRegex).test(charAtPos);\r\n if (isValidChar) {\r\n buffer.push(charAtPos);\r\n pos++;\r\n } else {\r\n throw new Error(\"Value doesn't match mask format\");\r\n }\r\n } else {\r\n buffer.push(token);\r\n if (hasOpcional && opcionalPos !== -1 && i > opcionalPos) {\r\n symbolsPosAfterOpcional.push(i);\r\n }\r\n }\r\n } else {\r\n opcionalPos = i;\r\n }\r\n }\r\n\r\n if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\r\n let formattedValue = buffer.join('');\r\n\r\n for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\r\n const symbolPos = symbolsPosAfterOpcional[i];\r\n\r\n const beforeSymbol = formattedValue.substring(0, symbolPos - 1);\r\n const symbol = formattedValue.substring(symbolPos - 1, symbolPos);\r\n const firstAfterSymbol = formattedValue.substring(symbolPos, symbolPos + 1);\r\n const endOfString = formattedValue.substring(symbolPos + 1);\r\n\r\n formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\r\n }\r\n return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\r\n }\r\n\r\n return buffer.join('');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MaskFormatterPipe } from './mask-formatter.pipe';\r\n\r\n@NgModule({\r\n imports: [MaskFormatterPipe],\r\n exports: [MaskFormatterPipe],\r\n})\r\nexport class MaskFormatterModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-mask.mjs","sources":["../../projects/angular-components/mask/src/lib/mask/mask-formatter.pipe.ts","../../projects/angular-components/mask/src/lib/mask/mask-formatter.module.ts","../../projects/angular-components/mask/src/seniorsistemas-angular-components-mask.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * @description Pipe que aplica uma máscara de formatação a uma string,\r\n * suportando os tokens `9` (dígito), `a` (letra) e `*` (alfanumérico),\r\n * além de suporte a posições opcionais com `?`.\r\n *\r\n * @example\r\n * ```html\r\n * {{ '12345678901' | sMaskFormatter:'999.999.999-99' }}\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Pipe({\r\n name: 'sMaskFormatter',\r\n standalone: true,\r\n})\r\nexport class MaskFormatterPipe implements PipeTransform {\r\n private _defs: any = {\r\n '9': '[0-9]',\r\n a: '[A-Za-z]',\r\n '*': '[A-Za-z]|[0-9]',\r\n };\r\n\r\n public transform(value: string, maskFormat: string): any {\r\n const buffer = [];\r\n let opcionalPos = -1;\r\n let pos = 0;\r\n const maskTokens = maskFormat.split('');\r\n const symbolsPosAfterOpcional = [];\r\n const hasOpcional = maskFormat.includes('?');\r\n\r\n for (let i = 0; i < maskTokens.length; i++) {\r\n const token = maskTokens[i];\r\n\r\n if (token !== '?') {\r\n if (this._defs[token]) {\r\n const tokenRegex = this._defs[token];\r\n const charAtPos = value.charAt(pos);\r\n const isValidChar = new RegExp(tokenRegex).test(charAtPos);\r\n if (isValidChar) {\r\n buffer.push(charAtPos);\r\n pos++;\r\n } else {\r\n throw new Error(\"Value doesn't match mask format\");\r\n }\r\n } else {\r\n buffer.push(token);\r\n if (hasOpcional && opcionalPos !== -1 && i > opcionalPos) {\r\n symbolsPosAfterOpcional.push(i);\r\n }\r\n }\r\n } else {\r\n opcionalPos = i;\r\n }\r\n }\r\n\r\n if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\r\n let formattedValue = buffer.join('');\r\n\r\n for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\r\n const symbolPos = symbolsPosAfterOpcional[i];\r\n\r\n const beforeSymbol = formattedValue.substring(0, symbolPos - 1);\r\n const symbol = formattedValue.substring(symbolPos - 1, symbolPos);\r\n const firstAfterSymbol = formattedValue.substring(symbolPos, symbolPos + 1);\r\n const endOfString = formattedValue.substring(symbolPos + 1);\r\n\r\n formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\r\n }\r\n return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\r\n }\r\n\r\n return buffer.join('');\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MaskFormatterPipe } from './mask-formatter.pipe';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `MaskFormatterPipe` (de\r\n * `@seniorsistemas/angular-components/mask`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [MaskFormatterPipe],\r\n exports: [MaskFormatterPipe],\r\n})\r\nexport class MaskFormatterModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -114,6 +114,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
114
114
  args: ['touchstart', ['$event']]
115
115
  }] } });
116
116
 
117
+ /**
118
+ * @deprecated Será removido na v20. Importe diretamente os standalones `LongPressDirective` e
119
+ * `DoubleClickDirective` (de `@seniorsistemas/angular-components/mouse-events`) no lugar deste módulo.
120
+ *
121
+ * Migração automática (também executada pelo `ng update` na v20):
122
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
123
+ */
117
124
  class MouseEventsModule {
118
125
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MouseEventsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
119
126
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: MouseEventsModule, imports: [DoubleClickDirective, LongPressDirective], exports: [LongPressDirective, DoubleClickDirective] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-mouse-events.mjs","sources":["../../projects/angular-components/mouse-events/src/lib/mouse-events/double-click.directive.ts","../../projects/angular-components/mouse-events/src/lib/mouse-events/long-press.directive.ts","../../projects/angular-components/mouse-events/src/lib/mouse-events/mouse-events.module.ts","../../projects/angular-components/mouse-events/src/seniorsistemas-angular-components-mouse-events.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n/**\n * @description Diretiva que detecta duplo clique em um elemento com um intervalo\n * configurável entre cliques (`_DOUBLE_CLICK_DELAY`). Emite o evento `doubleClicked`\n * somente quando dois cliques ocorrem dentro do intervalo definido.\n *\n * @example\n * ```html\n * <div sDoubleClick (doubleClicked)=\"onDoubleClick($event)\">Duplo clique aqui</div>\n * ```\n *\n * @category Inputs\n */\n@Directive({\n selector: '[sDoubleClick]',\n standalone: true,\n})\nexport class DoubleClickDirective {\n /** @description Emitido quando um duplo clique é detectado dentro do intervalo de tempo. */\n @Output() public doubleClicked: EventEmitter<PointerEvent> = new EventEmitter();\n\n private _timeout: number | undefined;\n private _DOUBLE_CLICK_DELAY = 500;\n\n @HostListener('click', ['$event'])\n public onClick(event: PointerEvent): void {\n this.handleOnClickEvent(event);\n }\n\n private handleOnClickEvent(event: PointerEvent): void {\n if (this._timeout) {\n this.clearTimeout();\n this.doubleClicked.emit(event);\n } else {\n this._timeout = setTimeout(() => this.clearTimeout(), this._DOUBLE_CLICK_DELAY) as unknown as number;\n }\n }\n\n private clearTimeout(): void {\n clearTimeout(this._timeout);\n this._timeout = undefined;\n }\n}\n\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, repeat, takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * @description Diretiva que detecta o gesto de pressão longa (long press) em um elemento.\r\n * Emite o evento `sLongPress` após o tempo configurado em `sLongPressDelay` sem que o\r\n * botão do mouse ou o toque seja liberado.\r\n *\r\n * @example\r\n * ```html\r\n * <button [sLongPressDelay]=\"800\" (sLongPress)=\"onLongPress($event)\">Segurar</button>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: '[sLongPress]',\r\n standalone: true,\r\n})\r\nexport class LongPressDirective implements OnInit, OnDestroy {\r\n /** @description Tempo em milissegundos para disparar o long press. @default 500 */\r\n @Input()\r\n public sLongPressDelay = 500;\r\n\r\n /** @description Emitido quando o elemento é pressionado por mais de `sLongPressDelay` ms. */\r\n @Output()\r\n public sLongPress = new EventEmitter<MouseEvent>();\r\n\r\n public mouseUp = new Subject<MouseEvent>();\r\n public mouseDown = new Subject<MouseEvent>();\r\n public ngUnsubscribe: Subject<void> = new Subject();\r\n\r\n @HostListener('mouseup', ['$event'])\r\n @HostListener('touchend', ['$event'])\r\n public onMouseUp(event: MouseEvent) {\r\n this.mouseUp.next(event);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n public onMouseDown(event: MouseEvent) {\r\n this.mouseDown.next(event);\r\n }\r\n\r\n public ngOnInit() {\r\n this.mouseDown\r\n .pipe(debounceTime(this.sLongPressDelay), takeUntil(this.mouseUp), repeat(), takeUntil(this.ngUnsubscribe))\r\n .subscribe((event) => this.sLongPress.emit(event));\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { DoubleClickDirective } from './double-click.directive';\r\nimport { LongPressDirective } from './long-press.directive';\r\n\r\n@NgModule({\r\n imports: [DoubleClickDirective, LongPressDirective],\r\n exports: [LongPressDirective, DoubleClickDirective],\r\n})\r\nexport class MouseEventsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-mouse-events.mjs","sources":["../../projects/angular-components/mouse-events/src/lib/mouse-events/double-click.directive.ts","../../projects/angular-components/mouse-events/src/lib/mouse-events/long-press.directive.ts","../../projects/angular-components/mouse-events/src/lib/mouse-events/mouse-events.module.ts","../../projects/angular-components/mouse-events/src/seniorsistemas-angular-components-mouse-events.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n/**\n * @description Diretiva que detecta duplo clique em um elemento com um intervalo\n * configurável entre cliques (`_DOUBLE_CLICK_DELAY`). Emite o evento `doubleClicked`\n * somente quando dois cliques ocorrem dentro do intervalo definido.\n *\n * @example\n * ```html\n * <div sDoubleClick (doubleClicked)=\"onDoubleClick($event)\">Duplo clique aqui</div>\n * ```\n *\n * @category Inputs\n */\n@Directive({\n selector: '[sDoubleClick]',\n standalone: true,\n})\nexport class DoubleClickDirective {\n /** @description Emitido quando um duplo clique é detectado dentro do intervalo de tempo. */\n @Output() public doubleClicked: EventEmitter<PointerEvent> = new EventEmitter();\n\n private _timeout: number | undefined;\n private _DOUBLE_CLICK_DELAY = 500;\n\n @HostListener('click', ['$event'])\n public onClick(event: PointerEvent): void {\n this.handleOnClickEvent(event);\n }\n\n private handleOnClickEvent(event: PointerEvent): void {\n if (this._timeout) {\n this.clearTimeout();\n this.doubleClicked.emit(event);\n } else {\n this._timeout = setTimeout(() => this.clearTimeout(), this._DOUBLE_CLICK_DELAY) as unknown as number;\n }\n }\n\n private clearTimeout(): void {\n clearTimeout(this._timeout);\n this._timeout = undefined;\n }\n}\n\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, repeat, takeUntil } from 'rxjs/operators';\r\n\r\n/**\r\n * @description Diretiva que detecta o gesto de pressão longa (long press) em um elemento.\r\n * Emite o evento `sLongPress` após o tempo configurado em `sLongPressDelay` sem que o\r\n * botão do mouse ou o toque seja liberado.\r\n *\r\n * @example\r\n * ```html\r\n * <button [sLongPressDelay]=\"800\" (sLongPress)=\"onLongPress($event)\">Segurar</button>\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: '[sLongPress]',\r\n standalone: true,\r\n})\r\nexport class LongPressDirective implements OnInit, OnDestroy {\r\n /** @description Tempo em milissegundos para disparar o long press. @default 500 */\r\n @Input()\r\n public sLongPressDelay = 500;\r\n\r\n /** @description Emitido quando o elemento é pressionado por mais de `sLongPressDelay` ms. */\r\n @Output()\r\n public sLongPress = new EventEmitter<MouseEvent>();\r\n\r\n public mouseUp = new Subject<MouseEvent>();\r\n public mouseDown = new Subject<MouseEvent>();\r\n public ngUnsubscribe: Subject<void> = new Subject();\r\n\r\n @HostListener('mouseup', ['$event'])\r\n @HostListener('touchend', ['$event'])\r\n public onMouseUp(event: MouseEvent) {\r\n this.mouseUp.next(event);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('touchstart', ['$event'])\r\n public onMouseDown(event: MouseEvent) {\r\n this.mouseDown.next(event);\r\n }\r\n\r\n public ngOnInit() {\r\n this.mouseDown\r\n .pipe(debounceTime(this.sLongPressDelay), takeUntil(this.mouseUp), repeat(), takeUntil(this.ngUnsubscribe))\r\n .subscribe((event) => this.sLongPress.emit(event));\r\n }\r\n\r\n public ngOnDestroy() {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { DoubleClickDirective } from './double-click.directive';\r\nimport { LongPressDirective } from './long-press.directive';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `LongPressDirective` e\r\n * `DoubleClickDirective` (de `@seniorsistemas/angular-components/mouse-events`) no lugar deste módulo.\r\n *\r\n * Migração automática (também executada pelo `ng update` na v20):\r\n * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`\r\n */\r\n@NgModule({\r\n imports: [DoubleClickDirective, LongPressDirective],\r\n exports: [LongPressDirective, DoubleClickDirective],\r\n})\r\nexport class MouseEventsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}