@seniorsistemas/angular-components 19.9.15 → 19.10.0-develop-ef29acb7

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 (505) 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.module.d.ts +7 -0
  17. package/chat/README.md +11 -8
  18. package/chat/lib/chat/chat.module.d.ts +7 -0
  19. package/checkbox-list/README.md +5 -4
  20. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +7 -0
  21. package/chips/README.md +5 -4
  22. package/chips/lib/chips/chips.module.d.ts +7 -0
  23. package/code-editor/README.md +5 -4
  24. package/code-editor/lib/code-editor/code-editor.module.d.ts +7 -0
  25. package/collapse-link/README.md +5 -4
  26. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +7 -0
  27. package/common/lib/angular-components.module.d.ts +9 -0
  28. package/common/lib/provide-angular-components.d.ts +19 -0
  29. package/common/lib/svg-factory/svg-factory.module.d.ts +7 -0
  30. package/common/public-api.d.ts +1 -0
  31. package/content-generator/README.md +2 -2
  32. package/content-generator/lib/content-generator/content-generator.module.d.ts +7 -0
  33. package/control-errors/README.md +2 -2
  34. package/control-errors/lib/control-errors/control-errors.module.d.ts +7 -0
  35. package/country-phone-picker/README.md +2 -2
  36. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +7 -0
  37. package/currency/README.md +1 -1
  38. package/custom-fields/README.md +14 -3
  39. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +7 -0
  40. package/custom-fields/lib/custom-fields/models/custom-field-value-parser.d.ts +21 -0
  41. package/custom-fields/lib/custom-fields/models/index.d.ts +1 -0
  42. package/dialog/README.md +1 -1
  43. package/drawer/README.md +8 -4
  44. package/drawer/lib/drawer/drawer.module.d.ts +10 -0
  45. package/dynamic-form/README.md +18 -2
  46. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +7 -0
  47. package/dynamic-form/dynamic-form/form-field/addon-config.d.ts +10 -1
  48. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +15 -15
  49. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +8 -6
  50. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +5 -2
  51. package/dynamic-form/public-api.d.ts +0 -1
  52. package/editable-overlay/README.md +2 -2
  53. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +7 -0
  54. package/empty-state/README.md +5 -2
  55. package/empty-state/lib/empty-state/empty-state.module.d.ts +7 -0
  56. package/esm2022/accordion/lib/accordion/accordion.module.mjs +8 -1
  57. package/esm2022/alert/lib/alert/alert.module.mjs +8 -1
  58. package/esm2022/badge/lib/badge/badge.module.mjs +11 -1
  59. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +19 -127
  60. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +8 -1
  61. package/esm2022/breadcrumb/lib/dynamic-breadcrumb/dynamic-breadcrumb.module.mjs +6 -2
  62. package/esm2022/button/lib/button/button.module.mjs +8 -1
  63. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +8 -1
  64. package/esm2022/card/lib/card/card.module.mjs +8 -1
  65. package/esm2022/chat/lib/chat/chat.module.mjs +8 -1
  66. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +8 -1
  67. package/esm2022/chips/lib/chips/chips.module.mjs +8 -1
  68. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +10 -1
  69. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +9 -15
  70. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +8 -1
  71. package/esm2022/common/lib/angular-components.module.mjs +10 -1
  72. package/esm2022/common/lib/provide-angular-components.mjs +22 -0
  73. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +8 -1
  74. package/esm2022/common/public-api.mjs +2 -1
  75. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +8 -1
  76. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +8 -1
  77. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +8 -1
  78. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.mjs +4 -3
  79. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +17 -13
  80. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +8 -1
  81. package/esm2022/custom-fields/lib/custom-fields/custom-fields.service.mjs +4 -3
  82. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-type.mjs +4 -2
  83. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-value-parser.mjs +46 -0
  84. package/esm2022/custom-fields/lib/custom-fields/models/index.mjs +2 -1
  85. package/esm2022/drawer/lib/drawer/drawer.module.mjs +11 -1
  86. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +8 -1
  87. package/esm2022/dynamic-form/dynamic-form/form-field/addon-config.mjs +6 -2
  88. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  89. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  90. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +33 -10
  91. package/esm2022/dynamic-form/public-api.mjs +2 -7
  92. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +8 -1
  93. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +8 -1
  94. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +8 -1
  95. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +8 -1
  96. package/esm2022/file-picker/lib/file-picker/file-picker.service.mjs +4 -3
  97. package/esm2022/gantt/lib/gantt/gantt.module.mjs +8 -1
  98. package/esm2022/global-search/lib/global-search/global-search.module.mjs +19 -1
  99. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +8 -1
  100. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +8 -1
  101. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +12 -1
  102. package/esm2022/image-cropper/lib/image-cropper/image-cropper.service.mjs +4 -3
  103. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +8 -1
  104. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +8 -1
  105. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +5 -5
  106. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +8 -1
  107. package/esm2022/input-group/lib/input-group/input-group.module.mjs +8 -1
  108. package/esm2022/input-mask/lib/input-mask/input-mask.module.mjs +8 -1
  109. package/esm2022/input-text/lib/input-text/input-text.module.mjs +8 -1
  110. package/esm2022/insights/lib/insights/insights.module.mjs +11 -1
  111. package/esm2022/kanban/lib/kanban/kanban-event.service.mjs +4 -3
  112. package/esm2022/kanban/lib/kanban/kanban.module.mjs +11 -1
  113. package/esm2022/label-value/lib/label-value/label-value.module.mjs +8 -1
  114. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +8 -1
  115. package/esm2022/locale/lib/locale/locale.module.mjs +14 -1
  116. package/esm2022/locale/lib/locale/locale.service.mjs +10 -32
  117. package/esm2022/locale/lib/locale/options/index.mjs +1 -13
  118. package/esm2022/locale/lib/locale/options/locale-presets.mjs +199 -0
  119. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +1 -1
  120. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +10 -2
  121. package/esm2022/locale/lib/locale/provide-locale.mjs +42 -0
  122. package/esm2022/locale/public-api.mjs +3 -1
  123. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +5 -1
  124. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +8 -1
  125. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +8 -1
  126. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +8 -1
  127. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +8 -1
  128. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +2 -2
  129. package/esm2022/number-input/lib/number-input/number-input.module.mjs +9 -2
  130. package/esm2022/numeric/lib/numeric.module.mjs +8 -1
  131. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +178 -15
  132. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.module.mjs +8 -1
  133. package/esm2022/object-card/lib/object-card/object-card.module.mjs +12 -1
  134. package/esm2022/panel/lib/panel/panel.module.mjs +11 -1
  135. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +8 -1
  136. package/esm2022/picklist/lib/picklist/picklist.module.mjs +8 -1
  137. package/esm2022/pin-code-field/lib/pin-code-field.module.mjs +8 -1
  138. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +8 -1
  139. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +8 -1
  140. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +8 -1
  141. package/esm2022/select/lib/select/select.component.mjs +16 -3
  142. package/esm2022/select-button/lib/select-button/select-button.module.mjs +8 -1
  143. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +8 -1
  144. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +8 -1
  145. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.service.mjs +4 -3
  146. package/esm2022/slider/lib/slider/slider.module.mjs +8 -1
  147. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +8 -1
  148. package/esm2022/split-button/lib/split-button/split-button.module.mjs +8 -1
  149. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +8 -1
  150. package/esm2022/stepper/lib/stepper/stepper.module.mjs +8 -1
  151. package/esm2022/structure/lib/structure/structure.module.mjs +8 -1
  152. package/esm2022/switch/lib/switch/switch.module.mjs +8 -1
  153. package/esm2022/table/lib/table/table.module.mjs +9 -1
  154. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +8 -1
  155. package/esm2022/template/lib/template/template.module.mjs +8 -1
  156. package/esm2022/text-area/lib/text-area.module.mjs +8 -1
  157. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +8 -1
  158. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +8 -1
  159. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +8 -1
  160. package/esm2022/tile/lib/tile/tile.module.mjs +11 -1
  161. package/esm2022/timeline/lib/timeline/timeline.module.mjs +8 -1
  162. package/esm2022/toast/lib/toast/toast.module.mjs +8 -1
  163. package/esm2022/token-list/lib/token-list/token-list.module.mjs +8 -1
  164. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +8 -1
  165. package/esm2022/topbar/lib/topbar/topbar.module.mjs +11 -1
  166. package/esm2022/tree/lib/tree/tree.module.mjs +8 -1
  167. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +8 -1
  168. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +7 -0
  169. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  170. package/fesm2022/seniorsistemas-angular-components-alert.mjs +7 -0
  171. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  172. package/fesm2022/seniorsistemas-angular-components-badge.mjs +10 -0
  173. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  174. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +25 -126
  175. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  176. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -1
  177. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  178. package/fesm2022/seniorsistemas-angular-components-button.mjs +7 -0
  179. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  180. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +7 -0
  181. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  182. package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -0
  183. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  184. package/fesm2022/seniorsistemas-angular-components-chat.mjs +7 -0
  185. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  186. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -0
  187. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  188. package/fesm2022/seniorsistemas-angular-components-chips.mjs +7 -0
  189. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  190. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +164 -160
  191. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  192. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +7 -0
  193. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  194. package/fesm2022/seniorsistemas-angular-components-common.mjs +38 -2
  195. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  196. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +7 -0
  197. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  198. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +7 -0
  199. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  200. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +10 -2
  201. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  202. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +75 -15
  203. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  204. package/fesm2022/seniorsistemas-angular-components-drawer.mjs +10 -0
  205. package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
  206. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +52 -208
  207. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  208. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +7 -0
  209. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  210. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +7 -0
  211. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  212. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -0
  213. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  214. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +10 -2
  215. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  216. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +7 -0
  217. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  218. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +18 -0
  219. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  220. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +7 -0
  221. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  222. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +7 -0
  223. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  224. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +14 -2
  225. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  226. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +7 -0
  227. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  228. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +7 -0
  229. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  230. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +11 -4
  231. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  232. package/fesm2022/seniorsistemas-angular-components-input-group.mjs +7 -0
  233. package/fesm2022/seniorsistemas-angular-components-input-group.mjs.map +1 -1
  234. package/fesm2022/seniorsistemas-angular-components-input-mask.mjs +7 -0
  235. package/fesm2022/seniorsistemas-angular-components-input-mask.mjs.map +1 -1
  236. package/fesm2022/seniorsistemas-angular-components-input-text.mjs +7 -0
  237. package/fesm2022/seniorsistemas-angular-components-input-text.mjs.map +1 -1
  238. package/fesm2022/seniorsistemas-angular-components-insights.mjs +10 -0
  239. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  240. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +13 -2
  241. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  242. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +7 -0
  243. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  244. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +7 -0
  245. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  246. package/fesm2022/seniorsistemas-angular-components-locale.mjs +260 -33
  247. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  248. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +11 -0
  249. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  250. package/fesm2022/seniorsistemas-angular-components-mask.mjs +7 -0
  251. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  252. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +7 -0
  253. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  254. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +7 -0
  255. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  256. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +9 -2
  257. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  258. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +184 -14
  259. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  260. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +7 -0
  261. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  262. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +11 -0
  263. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  264. package/fesm2022/seniorsistemas-angular-components-panel.mjs +10 -0
  265. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  266. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +7 -0
  267. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  268. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +7 -0
  269. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  270. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +7 -0
  271. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  272. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +7 -0
  273. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  274. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +7 -0
  275. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  276. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +7 -0
  277. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  278. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +7 -0
  279. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  280. package/fesm2022/seniorsistemas-angular-components-select.mjs +15 -2
  281. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  282. package/fesm2022/seniorsistemas-angular-components-shared.mjs +7 -0
  283. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  284. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +10 -2
  285. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-slider.mjs +7 -0
  287. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -0
  289. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +7 -0
  291. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +7 -0
  293. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +7 -0
  295. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-structure.mjs +7 -0
  297. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-switch.mjs +7 -0
  299. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +7 -0
  301. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-table.mjs +8 -0
  303. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-template.mjs +7 -0
  305. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +7 -0
  307. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +7 -0
  309. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -0
  311. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +7 -0
  313. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-tile.mjs +10 -0
  315. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +7 -0
  317. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-toast.mjs +7 -0
  319. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +7 -0
  321. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +7 -0
  323. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +10 -0
  325. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-tree.mjs +7 -0
  327. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +7 -0
  329. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  330. package/fieldset/README.md +2 -2
  331. package/fieldset/lib/fieldset/fieldset.module.d.ts +7 -0
  332. package/file-picker/README.md +2 -2
  333. package/file-picker/lib/file-picker/file-picker.module.d.ts +7 -0
  334. package/file-upload/README.md +1 -1
  335. package/gantt/README.md +2 -2
  336. package/gantt/lib/gantt/gantt.module.d.ts +7 -0
  337. package/global-search/README.md +5 -2
  338. package/global-search/lib/global-search/global-search.module.d.ts +18 -0
  339. package/grid-menu/README.md +5 -4
  340. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +7 -0
  341. package/help-popover/README.md +5 -4
  342. package/help-popover/lib/help-popover/help-popover.module.d.ts +7 -0
  343. package/ia-insight/README.md +1 -1
  344. package/image-cropper/README.md +6 -5
  345. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +11 -0
  346. package/infinite-scroll/README.md +5 -4
  347. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +7 -0
  348. package/info-sign/README.md +5 -4
  349. package/info-sign/lib/info-sign/info-sign.module.d.ts +7 -0
  350. package/inline-edit/README.md +5 -4
  351. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +7 -0
  352. package/input-group/lib/input-group/input-group.module.d.ts +7 -0
  353. package/input-mask/lib/input-mask/input-mask.module.d.ts +7 -0
  354. package/input-text/lib/input-text/input-text.module.d.ts +7 -0
  355. package/insights/README.md +6 -4
  356. package/insights/lib/insights/insights.module.d.ts +10 -0
  357. package/kanban/README.md +6 -4
  358. package/kanban/lib/kanban/kanban.module.d.ts +10 -0
  359. package/label-value/README.md +5 -4
  360. package/label-value/lib/label-value/label-value.module.d.ts +7 -0
  361. package/loading-state/README.md +9 -5
  362. package/loading-state/lib/loading-state/loading-state.module.d.ts +7 -0
  363. package/locale/lib/locale/locale.module.d.ts +13 -0
  364. package/locale/lib/locale/locale.service.d.ts +0 -3
  365. package/locale/lib/locale/options/locale-presets.d.ts +22 -0
  366. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +2 -2
  367. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +20 -1
  368. package/locale/lib/locale/provide-locale.d.ts +18 -0
  369. package/locale/public-api.d.ts +2 -0
  370. package/localized-number-input/README.md +32 -8
  371. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +4 -0
  372. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +7 -0
  373. package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
  374. package/mouse-events/README.md +5 -4
  375. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +7 -0
  376. package/navigation-button/README.md +5 -4
  377. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +7 -0
  378. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  379. package/number-input/lib/number-input/number-input.module.d.ts +8 -1
  380. package/numeric/README.md +6 -5
  381. package/numeric/lib/numeric.module.d.ts +7 -0
  382. package/numeric-mask/README.md +44 -1
  383. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +65 -4
  384. package/numeric-mask/lib/numeric-mask/numeric-mask.module.d.ts +7 -0
  385. package/object-card/README.md +11 -4
  386. package/object-card/lib/object-card/object-card.module.d.ts +11 -0
  387. package/package.json +1 -1
  388. package/panel/README.md +8 -4
  389. package/panel/lib/panel/panel.module.d.ts +10 -0
  390. package/password-strength/README.md +6 -3
  391. package/password-strength/lib/password-strength/password-strength.module.d.ts +7 -0
  392. package/picklist/README.md +8 -5
  393. package/picklist/lib/picklist/picklist.module.d.ts +7 -0
  394. package/pin-code-field/lib/pin-code-field.module.d.ts +7 -0
  395. package/product-header/README.md +2 -2
  396. package/profile-picture-picker/README.md +6 -3
  397. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +7 -0
  398. package/progressbar/README.md +6 -3
  399. package/progressbar/lib/progressbar/progressbar.module.d.ts +7 -0
  400. package/rating-scale/README.md +6 -3
  401. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +7 -0
  402. package/schematics/collection.json +40 -0
  403. package/schematics/migrations/migrate-app-to-standalone/index.d.ts +32 -0
  404. package/schematics/migrations/migrate-app-to-standalone/index.js +98 -0
  405. package/schematics/migrations/migrate-app-to-standalone/index.js.map +1 -0
  406. package/schematics/migrations/migrate-deprecated-apis/index.d.ts +49 -0
  407. package/schematics/migrations/migrate-deprecated-apis/index.js +660 -0
  408. package/schematics/migrations/migrate-deprecated-apis/index.js.map +1 -0
  409. package/schematics/migrations/migrate-deprecated-datepicker/index.d.ts +31 -0
  410. package/schematics/migrations/migrate-deprecated-datepicker/index.js +115 -0
  411. package/schematics/migrations/migrate-deprecated-datepicker/index.js.map +1 -0
  412. package/schematics/migrations/migrate-deprecated-dynamic-form/index.d.ts +52 -0
  413. package/schematics/migrations/migrate-deprecated-dynamic-form/index.js +661 -0
  414. package/schematics/migrations/migrate-deprecated-dynamic-form/index.js.map +1 -0
  415. package/schematics/migrations/migrate-deprecated-imports/index.d.ts +23 -0
  416. package/schematics/migrations/migrate-deprecated-imports/index.js +335 -0
  417. package/schematics/migrations/migrate-deprecated-imports/index.js.map +1 -0
  418. package/schematics/migrations/migrate-deprecated-selectors/index.d.ts +15 -0
  419. package/schematics/migrations/migrate-deprecated-selectors/index.js +76 -0
  420. package/schematics/migrations/migrate-deprecated-selectors/index.js.map +1 -0
  421. package/schematics/migrations/migrate-modules-to-standalone/index.d.ts +51 -0
  422. package/schematics/migrations/migrate-modules-to-standalone/index.js +632 -0
  423. package/schematics/migrations/migrate-modules-to-standalone/index.js.map +1 -0
  424. package/schematics/migrations/migrate-modules-to-standalone/modules-map.json +1656 -0
  425. package/schematics/migrations/migrate-v20/index.d.ts +9 -0
  426. package/schematics/migrations/migrate-v20/index.js +90 -0
  427. package/schematics/migrations/migrate-v20/index.js.map +1 -0
  428. package/schematics/migrations/migrate-v20/items.d.ts +7 -0
  429. package/schematics/migrations/migrate-v20/items.js +54 -0
  430. package/schematics/migrations/migrate-v20/items.js.map +1 -0
  431. package/schematics/migrations/migrate-v20/plan.d.ts +32 -0
  432. package/schematics/migrations/migrate-v20/plan.js +29 -0
  433. package/schematics/migrations/migrate-v20/plan.js.map +1 -0
  434. package/schematics/migrations.json +5 -1
  435. package/schematics/schema/app-standalone.schema.json +21 -0
  436. package/schematics/schema/migrate-v20.schema.json +33 -0
  437. package/schematics/schema/scope.schema.json +17 -0
  438. package/schematics/utils/ast-utils.js +16 -0
  439. package/schematics/utils/ast-utils.js.map +1 -1
  440. package/schematics/utils/eol.d.ts +5 -0
  441. package/schematics/utils/eol.js +17 -0
  442. package/schematics/utils/eol.js.map +1 -0
  443. package/schematics/utils/prompt-utils.d.ts +62 -0
  444. package/schematics/utils/prompt-utils.js +166 -0
  445. package/schematics/utils/prompt-utils.js.map +1 -0
  446. package/schematics/utils/report.d.ts +27 -0
  447. package/schematics/utils/report.js +70 -0
  448. package/schematics/utils/report.js.map +1 -0
  449. package/schematics/utils/scope.d.ts +17 -0
  450. package/schematics/utils/scope.js +55 -0
  451. package/schematics/utils/scope.js.map +1 -0
  452. package/schematics/utils/selection.d.ts +21 -0
  453. package/schematics/utils/selection.js +60 -0
  454. package/schematics/utils/selection.js.map +1 -0
  455. package/schematics/utils/symbol-utils.d.ts +31 -0
  456. package/schematics/utils/symbol-utils.js +202 -0
  457. package/schematics/utils/symbol-utils.js.map +1 -0
  458. package/schematics/utils/template-utils.d.ts +62 -0
  459. package/schematics/utils/template-utils.js +165 -0
  460. package/schematics/utils/template-utils.js.map +1 -0
  461. package/schematics/utils/tsconfig-paths.d.ts +5 -0
  462. package/schematics/utils/tsconfig-paths.js +73 -0
  463. package/schematics/utils/tsconfig-paths.js.map +1 -0
  464. package/select/lib/select/select.component.d.ts +8 -0
  465. package/select-button/README.md +6 -3
  466. package/select-button/lib/select-button/select-button.module.d.ts +7 -0
  467. package/shared/lib/shared/border-button/border-button.module.d.ts +7 -0
  468. package/sidebar/README.md +2 -2
  469. package/slide-in-bar/README.md +5 -5
  470. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +7 -0
  471. package/slider/README.md +6 -3
  472. package/slider/lib/slider/slider.module.d.ts +7 -0
  473. package/speech-recognition/README.md +6 -3
  474. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +7 -0
  475. package/split-button/README.md +6 -3
  476. package/split-button/lib/split-button/split-button.module.d.ts +7 -0
  477. package/stats-card/README.md +6 -3
  478. package/stats-card/lib/stats-card/stats-card.module.d.ts +7 -0
  479. package/stepper/README.md +6 -3
  480. package/stepper/lib/stepper/stepper.module.d.ts +7 -0
  481. package/structure/lib/structure/structure.module.d.ts +7 -0
  482. package/switch/README.md +6 -3
  483. package/switch/lib/switch/switch.module.d.ts +7 -0
  484. package/table/README.md +12 -4
  485. package/table/lib/table/table.module.d.ts +8 -0
  486. package/table-header/lib/table-header/table-header-checkox.module.d.ts +7 -0
  487. package/template/README.md +0 -11
  488. package/template/lib/template/template.module.d.ts +7 -0
  489. package/text-area/lib/text-area.module.d.ts +7 -0
  490. package/text-area-ia/README.md +1 -1
  491. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +7 -0
  492. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +7 -0
  493. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +7 -0
  494. package/tile/lib/tile/tile.module.d.ts +10 -0
  495. package/timeline/lib/timeline/timeline.module.d.ts +7 -0
  496. package/toast/lib/toast/toast.module.d.ts +7 -0
  497. package/token-list/lib/token-list/token-list.module.d.ts +7 -0
  498. package/tooltip/lib/tooltip/tooltip.module.d.ts +7 -0
  499. package/topbar/lib/topbar/topbar.module.d.ts +10 -0
  500. package/tree/lib/tree/tree.module.d.ts +7 -0
  501. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +7 -0
  502. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +0 -664
  503. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +0 -29
  504. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +0 -96
  505. 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-numeric.mjs","sources":["../../projects/angular-components/numeric/src/lib/numeric.service.ts","../../projects/angular-components/numeric/src/lib/numeric.pipe.ts","../../projects/angular-components/numeric/src/lib/numeric.module.ts","../../projects/angular-components/numeric/src/seniorsistemas-angular-components-numeric.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { currencies, Currency } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.\n * Automatically uses the locale configured in `LocaleService` unless explicitly overridden.\n * Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.\n *\n * @example\n * ```typescript\n * // Inject the service\n * const numericService = inject(NumericService);\n *\n * // Format a number with the active locale\n * const formatted = numericService.instant(1234567.89);\n *\n * // Format as currency\n * const currency = numericService.instant(1234.5, {\n * numberFormatOptions: { style: 'currency', currency: 'BRL' }\n * });\n * ```\n * @category Numeric\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NumericService {\n private readonly localeService = inject(LocaleService);\n\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ): string | null {\n if (isNullOrUndefined(value)) return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? 'pt-BR',\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currency ?? 'BRL')\n : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currencyDisplay ?? 'narrowSymbol')\n : undefined,\n minimumFractionDigits:\n (options?.numberFormatOptions?.minimumFractionDigits ?? options?.numberFormatOptions?.currency)\n ? (this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency! as Currency) ??\n undefined)\n : undefined,\n roundingMode: 'trunc',\n },\n };\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === 'number' || this.getType(value) === 'string'\n ? value\n : ((value as BigNumber).toString() as any),\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: Currency): number | null {\n if (!currency) return null;\n\n return currencies[currency]?.scale;\n }\n\n private getType(value: any): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== 'object' && baseType !== 'function') {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === 'string') {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === 'function' && Function.prototype.toString.call(value).startsWith('class')) {\n return 'class';\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === 'string' && className !== '') {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\r\nimport BigNumber from 'bignumber.js';\r\nimport { of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { NumericService } from './numeric.service';\r\n\r\n/**\r\n * @description Angular pipe for formatting numeric values according to the active locale.\r\n * Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.\r\n * Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Basic usage -->\r\n * {{ 1234.56 | numeric | async }}\r\n *\r\n * <!-- With locale override and fraction digits -->\r\n * {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}\r\n * ```\r\n * @category Numeric\r\n */\r\n@Pipe({\r\n name: 'numeric',\r\n standalone: true,\r\n})\r\nexport class NumericPipe implements PipeTransform {\r\n private readonly numericService = inject(NumericService);\r\n private readonly localeService = inject(LocaleService);\r\n\r\n transform(\r\n value: number | string | BigNumber,\r\n options?: {\r\n locale?: string;\r\n numberFormatOptions?: Intl.NumberFormatOptions;\r\n },\r\n ) {\r\n return options?.locale\r\n ? of(this.numericService.instant(value, options))\r\n : this.localeService.getLocale().pipe(\r\n map((locale) =>\r\n this.numericService.instant(value, {\r\n locale,\r\n numberFormatOptions: options?.numberFormatOptions,\r\n }),\r\n ),\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NumericPipe } from '../lib/numeric.pipe';\r\n\r\n@NgModule({\r\n imports: [NumericPipe],\r\n exports: [NumericPipe],\r\n})\r\nexport class NumericModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-numeric.mjs","sources":["../../projects/angular-components/numeric/src/lib/numeric.service.ts","../../projects/angular-components/numeric/src/lib/numeric.pipe.ts","../../projects/angular-components/numeric/src/lib/numeric.module.ts","../../projects/angular-components/numeric/src/seniorsistemas-angular-components-numeric.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { currencies, Currency } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport BigNumber from 'bignumber.js';\n\n/**\n * @description Service for formatting numeric values using the browser's `Intl.NumberFormat` API.\n * Automatically uses the locale configured in `LocaleService` unless explicitly overridden.\n * Supports `BigNumber`, plain numbers, and numeric strings, as well as currency display styles.\n *\n * @example\n * ```typescript\n * // Inject the service\n * const numericService = inject(NumericService);\n *\n * // Format a number with the active locale\n * const formatted = numericService.instant(1234567.89);\n *\n * // Format as currency\n * const currency = numericService.instant(1234.5, {\n * numberFormatOptions: { style: 'currency', currency: 'BRL' }\n * });\n * ```\n * @category Numeric\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NumericService {\n private readonly localeService = inject(LocaleService);\n\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n },\n ): string | null {\n if (isNullOrUndefined(value)) return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? 'pt-BR',\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currency ?? 'BRL')\n : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === 'currency'\n ? (options?.numberFormatOptions?.currencyDisplay ?? 'narrowSymbol')\n : undefined,\n minimumFractionDigits:\n (options?.numberFormatOptions?.minimumFractionDigits ?? options?.numberFormatOptions?.currency)\n ? (this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency! as Currency) ??\n undefined)\n : undefined,\n roundingMode: 'trunc',\n },\n };\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === 'number' || this.getType(value) === 'string'\n ? value\n : ((value as BigNumber).toString() as any),\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: Currency): number | null {\n if (!currency) return null;\n\n return currencies[currency]?.scale;\n }\n\n private getType(value: any): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== 'object' && baseType !== 'function') {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === 'string') {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === 'function' && Function.prototype.toString.call(value).startsWith('class')) {\n return 'class';\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === 'string' && className !== '') {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\r\nimport BigNumber from 'bignumber.js';\r\nimport { of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { NumericService } from './numeric.service';\r\n\r\n/**\r\n * @description Angular pipe for formatting numeric values according to the active locale.\r\n * Wraps `NumericService.instant()` and reactively responds to locale changes via `LocaleService`.\r\n * Accepts an optional `locale` override and `Intl.NumberFormatOptions` for fine-grained control.\r\n *\r\n * @example\r\n * ```html\r\n * <!-- Basic usage -->\r\n * {{ 1234.56 | numeric | async }}\r\n *\r\n * <!-- With locale override and fraction digits -->\r\n * {{ 1234.56 | numeric:{ locale: 'en-US', numberFormatOptions: { minimumFractionDigits: 2 } } | async }}\r\n * ```\r\n * @category Numeric\r\n */\r\n@Pipe({\r\n name: 'numeric',\r\n standalone: true,\r\n})\r\nexport class NumericPipe implements PipeTransform {\r\n private readonly numericService = inject(NumericService);\r\n private readonly localeService = inject(LocaleService);\r\n\r\n transform(\r\n value: number | string | BigNumber,\r\n options?: {\r\n locale?: string;\r\n numberFormatOptions?: Intl.NumberFormatOptions;\r\n },\r\n ) {\r\n return options?.locale\r\n ? of(this.numericService.instant(value, options))\r\n : this.localeService.getLocale().pipe(\r\n map((locale) =>\r\n this.numericService.instant(value, {\r\n locale,\r\n numberFormatOptions: options?.numberFormatOptions,\r\n }),\r\n ),\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NumericPipe } from '../lib/numeric.pipe';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `NumericPipe` (de\r\n * `@seniorsistemas/angular-components/numeric`) 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: [NumericPipe],\r\n exports: [NumericPipe],\r\n})\r\nexport class NumericModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -295,6 +295,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
295
295
  args: [ObjectCardMainComponent, { static: true }]
296
296
  }] } });
297
297
 
298
+ /**
299
+ * @deprecated Será removido na v20. Importe diretamente os standalones `ObjectCardComponent`,
300
+ * `ObjectCardMainComponent` e `ObjectCardFieldComponent` (de
301
+ * `@seniorsistemas/angular-components/object-card`) no lugar deste módulo.
302
+ *
303
+ * Este módulo também reexportava `ThumbnailComponent` (`@seniorsistemas/angular-components/thumbnail`, usado
304
+ * em templates por `<s-thumbnail>`). Se o seu template usa algum deles, importe-o diretamente.
305
+ *
306
+ * Migração automática (também executada pelo `ng update` na v20):
307
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
308
+ */
298
309
  class ObjectCardModule {
299
310
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
300
311
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardModule, imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent], exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-object-card.mjs","sources":["../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.html","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.ts","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.module.ts","../../projects/angular-components/object-card/src/seniorsistemas-angular-components-object-card.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, input, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { BadgeColors, BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\n\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-field',\r\n templateUrl: './object-card-field.component.html',\r\n styleUrls: ['./object-card-field.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, BadgeComponent, ButtonComponent],\r\n})\r\nexport class ObjectCardFieldComponent {\r\n public static nextId = 0;\r\n\r\n @Input()\r\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass?: string;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n public content: TemplateRef<any> | null = null;\r\n\r\n badge = input<string>('');\r\n\r\n badgeColor = input<BadgeColors>('blue');\r\n}\r\n","<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailSize,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\n\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-main',\r\n templateUrl: './object-card-main.component.html',\r\n styleUrls: ['./object-card-main.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, ButtonComponent],\r\n})\r\nexport class ObjectCardMainComponent implements AfterContentInit {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardMainComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n @Input()\r\n public id = `s-object-card-main-${ObjectCardMainComponent.getNextId()}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageFallback?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass = 'fa fa-picture-o';\r\n\r\n @Input()\r\n public hasThumbnail = true;\r\n\r\n @Input()\r\n public hasDescription = true;\r\n\r\n @Input()\r\n public isBrand = false;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick: EventEmitter<any> = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n private _thumbnailSize: ThumbnailSize = 'medium';\r\n\r\n public get thumbnailSize() {\r\n return this._thumbnailSize;\r\n }\r\n\r\n public set thumbnailSize(value: ThumbnailSize) {\r\n this._thumbnailSize = value;\r\n if (this.thumbnailComponent) {\r\n this.thumbnailComponent.size = value;\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize(): void {\r\n this.update();\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n this.update();\r\n }\r\n\r\n public update(): void {\r\n this.thumbnailSize = window.innerWidth <= Breakpoints.SM_MAX ? 'small' : 'medium';\r\n }\r\n}\r\n","@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ContentChild,\r\n contentChildren,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n viewChild,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\nimport { BorderButtonOptions, Severities, BorderButtonComponent } from '@seniorsistemas/angular-components/shared';\r\nimport { NgClass, NgTemplateOutlet, SlicePipe } from '@angular/common';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Card de exibição de objeto com setor principal, campos extras e\r\n * painel expansível. Calcula automaticamente quantos campos cábem visíveis\r\n * conforme a largura do container e suporta nível de severidade.\r\n *\r\n * @example\r\n * ```html\r\n * <s-object-card [severity]=\"'info'\" [expanded]=\"false\">\r\n * <s-object-card-main label=\"Nome\" value=\"João\" />\r\n * <s-object-card-field label=\"CPF\" value=\"000.000.000-00\" />\r\n * </s-object-card>\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n selector: 's-object-card',\r\n templateUrl: './object-card.component.html',\r\n styleUrls: ['./object-card.component.scss'],\r\n animations: [\r\n trigger('expandableContent', [\r\n state(\r\n '*',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'true',\r\n style({\r\n height: '*',\r\n }),\r\n ),\r\n transition('* => true', animate('200ms ease-out')),\r\n transition('false <=> true', animate('200ms ease-out')),\r\n ]),\r\n trigger('BorderButtonAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'scaleY(0)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scaleY(1)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [BorderButtonComponent, NgClass, NgTemplateOutlet, TooltipDirective, SlicePipe],\r\n})\r\nexport class ObjectCardComponent implements AfterContentChecked {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-object-card-${ObjectCardComponent.getNextId()}`;\r\n\r\n /** @description Define se o painel expansível está aberto. @default false */\r\n @Input()\r\n public expanded = false;\r\n\r\n /** @description Tooltip do botão de expandir. @default 'Abrir painel' */\r\n @Input()\r\n public expandTooltip = 'Abrir painel';\r\n\r\n /** @description Tooltip do botão de colapsar. @default 'Fechar painel' */\r\n @Input()\r\n public collapseTooltip = 'Fechar painel';\r\n\r\n /** @description Largura mínima em pixels de cada campo visível. @default 200 */\r\n @Input()\r\n public fieldsMinWidth = 200;\r\n\r\n /** @description Nível de severidade que altera o estilo visual. @default 'default' */\r\n @Input()\r\n public severity: Severities = 'default';\r\n\r\n /** @description Opções de configuração do botão de borda lateral. */\r\n @Input()\r\n public borderButtonOptions?: BorderButtonOptions;\r\n\r\n /** @description Emitido quando o estado de expansão muda, com o novo valor booleano. */\r\n @Output()\r\n public expandedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChild(ObjectCardMainComponent, { static: true })\r\n public main: ObjectCardMainComponent | null = null;\r\n\r\n fields = contentChildren(ObjectCardFieldComponent, { descendants: true });\r\n\r\n private readonly container = viewChild.required<ElementRef<HTMLElement>>('contentContainer');\r\n\r\n private readonly cardMainContainer = viewChild.required<ElementRef<HTMLElement>>('cardMainContainer');\r\n\r\n private readonly iconContainer = viewChild.required<ElementRef<HTMLElement>>('iconContainer');\r\n\r\n public maxVisibleFields = 0;\r\n\r\n public ngAfterContentChecked(): void {\r\n this.update();\r\n }\r\n\r\n private update() {\r\n const windowWidth = window.innerWidth;\r\n const containerWidth = this.container().nativeElement.getBoundingClientRect().width;\r\n const mainFieldWidth = this.cardMainContainer().nativeElement.getBoundingClientRect().width;\r\n let remainingSpace = containerWidth - mainFieldWidth;\r\n const fieldsMinWidth = this.fieldsMinWidth;\r\n const expandIconWidth = this.iconContainer().nativeElement.getBoundingClientRect().width;\r\n\r\n let maxFieldQtd: number;\r\n\r\n if (windowWidth <= Breakpoints.SM_MAX) {\r\n maxFieldQtd = 0;\r\n } else {\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n }\r\n\r\n const hasExpandIcon = maxFieldQtd < this.fields().length;\r\n if (hasExpandIcon) {\r\n this.iconContainer().nativeElement.style.display = 'flex';\r\n remainingSpace = remainingSpace - expandIconWidth;\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n } else {\r\n this.iconContainer().nativeElement.style.display = 'none';\r\n }\r\n\r\n this.maxVisibleFields = maxFieldQtd;\r\n\r\n if (maxFieldQtd >= this.fields().length && this.expanded) {\r\n this.collapse();\r\n }\r\n }\r\n\r\n public toggle() {\r\n this.expanded ? this.collapse() : this.expand();\r\n }\r\n\r\n public expand() {\r\n this.expanded = true;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n\r\n public collapse() {\r\n this.expanded = false;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-expanded]=\"expanded\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { ObjectCardComponent } from './object-card.component';\r\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\r\n\r\n@NgModule({\r\n imports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n})\r\nexport class ObjectCardModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ThumbnailComponent_1"],"mappings":";;;;;;;;;;;MAkBa,wBAAwB,CAAA;AAC1B,IAAA,OAAO,MAAM,GAAG,CAAC,CAAC;AAGlB,IAAA,EAAE,GAAG,CAAuB,oBAAA,EAAA,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC;AAGhE,IAAA,WAAW,CAAU;AAGrB,IAAA,QAAQ,CAAU;AAGlB,IAAA,SAAS,CAAU;AAGnB,IAAA,KAAK,CAAU;AAGf,IAAA,WAAW,CAAU;AAGrB,IAAA,WAAW,CAAU;IAGrB,WAAW,GAAyB,EAAE,CAAC;AAGvC,IAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;IAGjC,kBAAkB,GAA8B,IAAI,CAAC;IAGrD,OAAO,GAA4B,IAAI,CAAC;AAE/C,IAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC,CAAC;AAE1B,IAAA,UAAU,GAAG,KAAK,CAAc,MAAM,CAAC,CAAC;wGAtC/B,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EA8BnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,EAGrB,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,ECnD1B,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wjEA8DA,ED9Cc,MAAA,EAAA,CAAA,+eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,kBAAoB,EAAE,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,oMAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAExE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACI,qBAAqB,EAAA,UAAA,EAGnB,IAAI,EAAA,OAAA,EACP,CAACA,kBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,wjEAAA,EAAA,MAAA,EAAA,CAAA,+eAAA,CAAA,EAAA,CAAA;8BAM3E,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAIA,kBAAkB,EAAA,CAAA;sBADxB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI3C,OAAO,EAAA,CAAA;sBADb,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ME/B/B,uBAAuB,CAAA;AACzB,IAAA,OAAgB,UAAU,GAAG,CAAC,CAAC;AAC9B,IAAA,OAAO,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAErD,IAAA,OAAO,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;KACzB;AAGM,IAAA,EAAE,GAAG,CAAsB,mBAAA,EAAA,uBAAuB,CAAC,SAAS,EAAE,EAAE,CAAC;AAGjE,IAAA,WAAW,CAAU;AAGrB,IAAA,aAAa,CAAU;AAGvB,IAAA,QAAQ,CAAU;IAGlB,SAAS,GAAG,iBAAiB,CAAC;IAG9B,YAAY,GAAG,IAAI,CAAC;IAGpB,cAAc,GAAG,IAAI,CAAC;IAGtB,OAAO,GAAG,KAAK,CAAC;AAGhB,IAAA,KAAK,CAAU;AAGf,IAAA,WAAW,CAAU;AAGrB,IAAA,WAAW,CAAU;IAGrB,WAAW,GAAyB,EAAE,CAAC;AAGvC,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;IAGpD,kBAAkB,GAA8B,IAAI,CAAC;IAEpD,cAAc,GAAkB,QAAQ,CAAC;AAEjD,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAED,IAAW,aAAa,CAAC,KAAoB,EAAA;AACzC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,KAAK,CAAC;SACxC;KACJ;IAGM,QAAQ,GAAA;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,kBAAkB,GAAA;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;KACrF;wGA1EQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,YAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA+ClB,kBAAkB,ECnEpC,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,21DAoDA,ubDlCcA,kBAAoB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAExD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAPnC,SAAS;+BACI,oBAAoB,EAAA,UAAA,EAGlB,IAAI,EACP,OAAA,EAAA,CAACA,kBAAoB,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,21DAAA,EAAA,MAAA,EAAA,CAAA,+XAAA,CAAA,EAAA,CAAA;8BAW3D,EAAE,EAAA,CAAA;sBADR,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAIC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAIC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;gBAIC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAIC,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAIC,WAAW,EAAA,CAAA;sBADjB,MAAM;gBAIA,kBAAkB,EAAA,CAAA;sBADxB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAiB3C,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,eAAe,CAAA;;;AE7DjC;;;;;;;;;;;;;;AAcG;MA0CU,mBAAmB,CAAA;AACrB,IAAA,OAAgB,UAAU,GAAG,CAAC,CAAC;AAC9B,IAAA,OAAO,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC;AAEjD,IAAA,OAAO,SAAS,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;KACzB;;AAIM,IAAA,EAAE,GAAG,CAAiB,cAAA,EAAA,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC;;IAIxD,QAAQ,GAAG,KAAK,CAAC;;IAIjB,aAAa,GAAG,cAAc,CAAC;;IAI/B,eAAe,GAAG,eAAe,CAAC;;IAIlC,cAAc,GAAG,GAAG,CAAC;;IAIrB,QAAQ,GAAe,SAAS,CAAC;;AAIjC,IAAA,mBAAmB,CAAuB;;AAI1C,IAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAC;IAG7C,IAAI,GAAmC,IAAI,CAAC;IAEnD,MAAM,GAAG,eAAe,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD,IAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAA0B,kBAAkB,CAAC,CAAC;AAE5E,IAAA,iBAAiB,GAAG,SAAS,CAAC,QAAQ,CAA0B,mBAAmB,CAAC,CAAC;AAErF,IAAA,aAAa,GAAG,SAAS,CAAC,QAAQ,CAA0B,eAAe,CAAC,CAAC;IAEvF,gBAAgB,GAAG,CAAC,CAAC;IAErB,qBAAqB,GAAA;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;IAEO,MAAM,GAAA;AACV,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACtC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AACpF,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAC5F,QAAA,IAAI,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AACrD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,KAAK,CAAC;AAEzF,QAAA,IAAI,WAAmB,CAAC;AAExB,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;YACnC,WAAW,GAAG,CAAC,CAAC;SACnB;aAAM;YACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC;SAC7D;QAED,MAAM,aAAa,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC;QACzD,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AAC1D,YAAA,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;YAClD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC;SAC7D;aAAM;YACH,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;SAC7D;AAED,QAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC;AAEpC,QAAA,IAAI,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;KACJ;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;KACnD;IAEM,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3C;IAEM,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC3C;wGArGQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,mWA2CH,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAHnC,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtHzC,44GA2FA,EDfc,MAAA,EAAA,CAAA,6rFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,EAAE,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,oFAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAnC3E,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,mBAAmB,EAAE;AACzB,gBAAA,KAAK,CACD,GAAG,EACH,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE,GAAG;AACd,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,OAAO,EACP,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE,GAAG;AACd,iBAAA,CAAC,CACL;AACD,gBAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,oBAAA,MAAM,EAAE,GAAG;AACd,iBAAA,CAAC,CACL;AACD,gBAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClD,gBAAA,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;aAC1D,CAAC;YACF,OAAO,CAAC,uBAAuB,EAAE;gBAC7B,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,oBAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,oBAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;aACL,CAAC;AACL,SAAA,EAAA,CAAA,CAAA;;4FAIQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAzC/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGb,UAAA,EAAA;wBACR,OAAO,CAAC,mBAAmB,EAAE;AACzB,4BAAA,KAAK,CACD,GAAG,EACH,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE,GAAG;AACd,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,OAAO,EACP,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE,GAAG;AACd,6BAAA,CAAC,CACL;AACD,4BAAA,KAAK,CACD,MAAM,EACN,KAAK,CAAC;AACF,gCAAA,MAAM,EAAE,GAAG;AACd,6BAAA,CAAC,CACL;AACD,4BAAA,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClD,4BAAA,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;yBAC1D,CAAC;wBACF,OAAO,CAAC,uBAAuB,EAAE;4BAC7B,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,gCAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACvE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,gCAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACvE,CAAC;yBACL,CAAC;AACL,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,44GAAA,EAAA,MAAA,EAAA,CAAA,6rFAAA,CAAA,EAAA,CAAA;8BAYjF,EAAE,EAAA,CAAA;sBADR,KAAK;gBAKC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,aAAa,EAAA,CAAA;sBADnB,KAAK;gBAKC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAKC,cAAc,EAAA,CAAA;sBADpB,KAAK;gBAKC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAKC,cAAc,EAAA,CAAA;sBADpB,MAAM;gBAIA,IAAI,EAAA,CAAA;sBADV,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ME3G9C,gBAAgB,CAAA;wGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHf,OAAA,EAAA,CAAA,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CACvF,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;yGAExF,gBAAgB,EAAA,OAAA,EAAA,CAHf,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,EACvF,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAEhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,CAAC;oBAClG,OAAO,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,CAAC;AACrG,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-object-card.mjs","sources":["../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/field/object-card-field.component.html","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.ts","../../projects/angular-components/object-card/src/lib/object-card/elements/main/object-card-main.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.ts","../../projects/angular-components/object-card/src/lib/object-card/object-card.component.html","../../projects/angular-components/object-card/src/lib/object-card/object-card.module.ts","../../projects/angular-components/object-card/src/seniorsistemas-angular-components-object-card.ts"],"sourcesContent":["import { Component, ContentChild, EventEmitter, input, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { BadgeColors, BadgeComponent } from '@seniorsistemas/angular-components/badge';\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\n\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-field',\r\n templateUrl: './object-card-field.component.html',\r\n styleUrls: ['./object-card-field.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, BadgeComponent, ButtonComponent],\r\n})\r\nexport class ObjectCardFieldComponent {\r\n public static nextId = 0;\r\n\r\n @Input()\r\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass?: string;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n @ViewChild(TemplateRef, { static: true })\r\n public content: TemplateRef<any> | null = null;\r\n\r\n badge = input<string>('');\r\n\r\n badgeColor = input<BadgeColors>('blue');\r\n}\r\n","<ng-template>\n <div class=\"container\">\n <ng-content select=\"s-thumbnail\"></ng-content>\n @if (!thumbnailComponent && (imageSource || iconClass)) {\n <s-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass ?? ''\"\n size=\"small\"\n ></s-thumbnail>\n }\n\n <div class=\"info-container\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length) {\n <span\n [id]=\"id + '-label'\"\n class=\"label\"\n [sTooltip]=\"label\"\n >{{ label }}</span\n >\n }\n\n <div #descriptionTemplate>\n @if (!badge()) {\n <ng-content select=\"[descriptionTemplate]\"></ng-content>\n }\n </div>\n @if (!descriptionTemplate.children.length) {\n <span\n [id]=\"id + '-description'\"\n class=\"description\"\n [sTooltip]=\"description\"\n >{{ description }}</span\n >\n }\n\n @if (badge()) {\n <s-badge\n [text]=\"badge()\"\n [color]=\"badgeColor()\"\n [enableTruncateText]=\"true\"\n >\n </s-badge>\n }\n @if (buttonLabel) {\n <s-button\n [id]=\"id + '-button'\"\n styleClass=\"object-card-button\"\n priority=\"link\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n size=\"small\"\n (clicked)=\"buttonClick.emit($event)\"\n ></s-button>\n }\n </div>\n </div>\n</ng-template>\n\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from '@angular/core';\r\n\r\nimport {\r\n ThumbnailComponent,\r\n ThumbnailSize,\r\n ThumbnailComponent as ThumbnailComponent_1,\r\n} from '@seniorsistemas/angular-components/thumbnail';\r\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\n\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\n\r\n@Component({\r\n selector: 's-object-card-main',\r\n templateUrl: './object-card-main.component.html',\r\n styleUrls: ['./object-card-main.component.scss'],\r\n standalone: true,\r\n imports: [ThumbnailComponent_1, TooltipDirective, ButtonComponent],\r\n})\r\nexport class ObjectCardMainComponent implements AfterContentInit {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardMainComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n @Input()\r\n public id = `s-object-card-main-${ObjectCardMainComponent.getNextId()}`;\r\n\r\n @Input()\r\n public imageSource?: string;\r\n\r\n @Input()\r\n public imageFallback?: string;\r\n\r\n @Input()\r\n public imageAlt?: string;\r\n\r\n @Input()\r\n public iconClass = 'fa fa-picture-o';\r\n\r\n @Input()\r\n public hasThumbnail = true;\r\n\r\n @Input()\r\n public hasDescription = true;\r\n\r\n @Input()\r\n public isBrand = false;\r\n\r\n @Input()\r\n public label?: string;\r\n\r\n @Input()\r\n public description?: string;\r\n\r\n @Input()\r\n public buttonLabel?: string;\r\n\r\n @Input()\r\n public buttonModel: TieredMenuItemData[] = [];\r\n\r\n @Output()\r\n public buttonClick: EventEmitter<any> = new EventEmitter();\r\n\r\n @ContentChild(ThumbnailComponent, { static: true })\r\n public thumbnailComponent: ThumbnailComponent | null = null;\r\n\r\n private _thumbnailSize: ThumbnailSize = 'medium';\r\n\r\n public get thumbnailSize() {\r\n return this._thumbnailSize;\r\n }\r\n\r\n public set thumbnailSize(value: ThumbnailSize) {\r\n this._thumbnailSize = value;\r\n if (this.thumbnailComponent) {\r\n this.thumbnailComponent.size = value;\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n public onResize(): void {\r\n this.update();\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n this.update();\r\n }\r\n\r\n public update(): void {\r\n this.thumbnailSize = window.innerWidth <= Breakpoints.SM_MAX ? 'small' : 'medium';\r\n }\r\n}\r\n","@if (hasThumbnail) {\r\n <ng-content select=\"s-thumbnail\"></ng-content>\r\n @if (!thumbnailComponent) {\r\n <s-thumbnail\r\n [id]=\"id + '-thumbnail'\"\r\n [imageSource]=\"imageSource\"\r\n [imageFallback]=\"imageFallback\"\r\n [imageAlt]=\"imageAlt || label\"\r\n [iconClass]=\"iconClass\"\r\n [size]=\"thumbnailSize\"\r\n [isBrand]=\"isBrand\"\r\n ></s-thumbnail>\r\n }\r\n}\r\n\r\n@if (hasDescription) {\r\n <div class=\"info-container\">\r\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\r\n @if (!labelTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-label'\"\r\n class=\"label\"\r\n [sTooltip]=\"label\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ label }}</span\r\n >\r\n }\r\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\r\n @if (!descriptionTemplate.children.length) {\r\n <span\r\n [id]=\"id + '-description'\"\r\n class=\"description\"\r\n [sTooltip]=\"description\"\r\n tooltipPosition=\"top\"\r\n [showDelay]=\"500\"\r\n >{{ description }}</span\r\n >\r\n }\r\n @if (buttonLabel) {\r\n <s-button\r\n [id]=\"id + '-button'\"\r\n styleClass=\"object-card-button\"\r\n priority=\"link\"\r\n [label]=\"buttonLabel\"\r\n [menuOptions]=\"buttonModel\"\r\n size=\"small\"\r\n (clicked)=\"buttonClick.emit($event)\"\r\n ></s-button>\r\n }\r\n </div>\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ContentChild,\r\n contentChildren,\r\n ContentChildren,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n viewChild,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { Breakpoints } from '@seniorsistemas/angular-components/utils';\r\nimport { BorderButtonOptions, Severities, BorderButtonComponent } from '@seniorsistemas/angular-components/shared';\r\nimport { NgClass, NgTemplateOutlet, SlicePipe } from '@angular/common';\r\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\r\n\r\n/**\r\n * @description Card de exibição de objeto com setor principal, campos extras e\r\n * painel expansível. Calcula automaticamente quantos campos cábem visíveis\r\n * conforme a largura do container e suporta nível de severidade.\r\n *\r\n * @example\r\n * ```html\r\n * <s-object-card [severity]=\"'info'\" [expanded]=\"false\">\r\n * <s-object-card-main label=\"Nome\" value=\"João\" />\r\n * <s-object-card-field label=\"CPF\" value=\"000.000.000-00\" />\r\n * </s-object-card>\r\n * ```\r\n *\r\n * @category Structure\r\n */\r\n@Component({\r\n selector: 's-object-card',\r\n templateUrl: './object-card.component.html',\r\n styleUrls: ['./object-card.component.scss'],\r\n animations: [\r\n trigger('expandableContent', [\r\n state(\r\n '*',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n height: '0',\r\n }),\r\n ),\r\n state(\r\n 'true',\r\n style({\r\n height: '*',\r\n }),\r\n ),\r\n transition('* => true', animate('200ms ease-out')),\r\n transition('false <=> true', animate('200ms ease-out')),\r\n ]),\r\n trigger('BorderButtonAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'scaleY(0)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scaleY(1)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [BorderButtonComponent, NgClass, NgTemplateOutlet, TooltipDirective, SlicePipe],\r\n})\r\nexport class ObjectCardComponent implements AfterContentChecked {\r\n public static readonly nextIdSeed = 0;\r\n private static _nextId = ObjectCardComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /** @description Identificador do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `s-object-card-${ObjectCardComponent.getNextId()}`;\r\n\r\n /** @description Define se o painel expansível está aberto. @default false */\r\n @Input()\r\n public expanded = false;\r\n\r\n /** @description Tooltip do botão de expandir. @default 'Abrir painel' */\r\n @Input()\r\n public expandTooltip = 'Abrir painel';\r\n\r\n /** @description Tooltip do botão de colapsar. @default 'Fechar painel' */\r\n @Input()\r\n public collapseTooltip = 'Fechar painel';\r\n\r\n /** @description Largura mínima em pixels de cada campo visível. @default 200 */\r\n @Input()\r\n public fieldsMinWidth = 200;\r\n\r\n /** @description Nível de severidade que altera o estilo visual. @default 'default' */\r\n @Input()\r\n public severity: Severities = 'default';\r\n\r\n /** @description Opções de configuração do botão de borda lateral. */\r\n @Input()\r\n public borderButtonOptions?: BorderButtonOptions;\r\n\r\n /** @description Emitido quando o estado de expansão muda, com o novo valor booleano. */\r\n @Output()\r\n public expandedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChild(ObjectCardMainComponent, { static: true })\r\n public main: ObjectCardMainComponent | null = null;\r\n\r\n fields = contentChildren(ObjectCardFieldComponent, { descendants: true });\r\n\r\n private readonly container = viewChild.required<ElementRef<HTMLElement>>('contentContainer');\r\n\r\n private readonly cardMainContainer = viewChild.required<ElementRef<HTMLElement>>('cardMainContainer');\r\n\r\n private readonly iconContainer = viewChild.required<ElementRef<HTMLElement>>('iconContainer');\r\n\r\n public maxVisibleFields = 0;\r\n\r\n public ngAfterContentChecked(): void {\r\n this.update();\r\n }\r\n\r\n private update() {\r\n const windowWidth = window.innerWidth;\r\n const containerWidth = this.container().nativeElement.getBoundingClientRect().width;\r\n const mainFieldWidth = this.cardMainContainer().nativeElement.getBoundingClientRect().width;\r\n let remainingSpace = containerWidth - mainFieldWidth;\r\n const fieldsMinWidth = this.fieldsMinWidth;\r\n const expandIconWidth = this.iconContainer().nativeElement.getBoundingClientRect().width;\r\n\r\n let maxFieldQtd: number;\r\n\r\n if (windowWidth <= Breakpoints.SM_MAX) {\r\n maxFieldQtd = 0;\r\n } else {\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n }\r\n\r\n const hasExpandIcon = maxFieldQtd < this.fields().length;\r\n if (hasExpandIcon) {\r\n this.iconContainer().nativeElement.style.display = 'flex';\r\n remainingSpace = remainingSpace - expandIconWidth;\r\n maxFieldQtd = Math.floor(remainingSpace / fieldsMinWidth);\r\n } else {\r\n this.iconContainer().nativeElement.style.display = 'none';\r\n }\r\n\r\n this.maxVisibleFields = maxFieldQtd;\r\n\r\n if (maxFieldQtd >= this.fields().length && this.expanded) {\r\n this.collapse();\r\n }\r\n }\r\n\r\n public toggle() {\r\n this.expanded ? this.collapse() : this.expand();\r\n }\r\n\r\n public expand() {\r\n this.expanded = true;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n\r\n public collapse() {\r\n this.expanded = false;\r\n this.expandedChange.emit(this.expanded);\r\n }\r\n}\r\n","<div\n [id]=\"id\"\n class=\"object-card-container\"\n>\n @if (borderButtonOptions?.visible ? borderButtonOptions?.visible(severity) : false) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n }\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields().length > maxVisibleFields,\n 'with-visible-fields': fields().length && maxVisibleFields,\n 'main-container--severity-default': severity === 'default',\n 'main-container--severity-info': severity === 'info',\n 'main-container--severity-warn': severity === 'warn',\n 'main-container--severity-error': severity === 'error',\n 'main-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"object-content\">\n <div\n class=\"s-object-card-main\"\n #cardMainContainer\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"divider\"></div>\n }\n\n @for (field of fields() | slice: 0 : maxVisibleFields; track field.id) {\n <div\n class=\"s-object-card-field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n #iconContainer\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-expanded]=\"expanded\"\n (click)=\"toggle()\"\n (keydown.enter)=\"toggle()\"\n (keydown.space)=\"toggle(); $event.preventDefault()\"\n [sTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n >\n <span\n [id]=\"id + '-expand-icon'\"\n class=\"expand-icon fa\"\n [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"\n ></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default': severity === 'default',\n 'expandable-container--severity-info': severity === 'info',\n 'expandable-container--severity-warn': severity === 'warn',\n 'expandable-container--severity-error': severity === 'error',\n 'expandable-container--severity-success': severity === 'success',\n }\"\n >\n <div class=\"childlist\">\n @for (field of fields() | slice: maxVisibleFields : fields().length; track field.id) {\n <div class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ObjectCardFieldComponent } from './elements/field/object-card-field.component';\r\nimport { ObjectCardMainComponent } from './elements/main/object-card-main.component';\r\nimport { ObjectCardComponent } from './object-card.component';\r\nimport { ThumbnailModule } from '@seniorsistemas/angular-components/thumbnail';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente os standalones `ObjectCardComponent`,\r\n * `ObjectCardMainComponent` e `ObjectCardFieldComponent` (de\r\n * `@seniorsistemas/angular-components/object-card`) no lugar deste módulo.\r\n *\r\n * Este módulo também reexportava `ThumbnailComponent` (`@seniorsistemas/angular-components/thumbnail`, usado\r\n * em templates por `<s-thumbnail>`). Se o seu template usa algum deles, importe-o diretamente.\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: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\r\n})\r\nexport class ObjectCardModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ThumbnailComponent_1"],"mappings":"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"}
@@ -123,6 +123,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
123
123
  args: [TemplateDirective]
124
124
  }] } });
125
125
 
126
+ /**
127
+ * @deprecated Será removido na v20. Importe diretamente o standalone `PanelComponent` (de
128
+ * `@seniorsistemas/angular-components/panel`) no lugar deste módulo.
129
+ *
130
+ * Este módulo também reexportava `TemplateDirective` (`@seniorsistemas/angular-components/template`, usado em
131
+ * templates por `[sTemplate]`). Se o seu template usa algum deles, importe-o diretamente.
132
+ *
133
+ * Migração automática (também executada pelo `ng update` na v20):
134
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
135
+ */
126
136
  class PanelModule {
127
137
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
128
138
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PanelModule, imports: [PanelComponent], exports: [PanelComponent, TemplateModule] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-panel.mjs","sources":["../../projects/angular-components/panel/src/lib/panel/panel.component.ts","../../projects/angular-components/panel/src/lib/panel/panel.component.html","../../projects/angular-components/panel/src/lib/panel/panel.module.ts","../../projects/angular-components/panel/src/seniorsistemas-angular-components-panel.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport {\r\n BorderButtonOptions,\r\n EnumSeverity,\r\n Severities,\r\n BorderButtonComponent,\r\n} from '@seniorsistemas/angular-components/shared';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n/**\r\n * @description Componente de painel com cabeçalho, corpo e rodapé customizáveis\r\n * via `TemplateDirective`. Suporta colapsar/expandir com animação, nível de\r\n * severidade para estilo visual e botão de borda configurável.\r\n *\r\n * @example\r\n * ```html\r\n * <s-panel header=\"Título\" [toggleable]=\"true\" severity=\"info\">\r\n * <p>Conteúdo</p>\r\n * </s-panel>\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Component({\r\n selector: 's-panel',\r\n templateUrl: './panel.component.html',\r\n animations: [\r\n trigger('BorderButtonAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'scaleY(0)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scaleY(1)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [NgClass, BorderButtonComponent, NgTemplateOutlet, TranslateModule],\r\n})\r\nexport class PanelComponent implements AfterContentInit {\r\n private static _idCounter = 0;\r\n\r\n /** @description ID único gerado automaticamente para associar o botão toggle ao corpo do painel via aria-controls. */\r\n public readonly panelBodyId = `panel-body-${++PanelComponent._idCounter}`;\r\n\r\n /** @description Nível do heading do cabeçalho para acessibilidade (aria-level). @default 3 */\r\n @Input()\r\n public ariaHeaderLevel: number = 3;\r\n\r\n /** @description Título exibido no cabeçalho do painel. */\r\n @Input()\r\n public header?: string;\r\n\r\n /** @description Descrição exibida no cabeçalho do painel. */\r\n @Input()\r\n public description?: string;\r\n\r\n /** @description Habilita o botão de toggle para colapsar/expandir o painel. @default false */\r\n @Input()\r\n public toggleable = false;\r\n\r\n /** @description Define o estado inicial do painel como colapsado. @default false */\r\n @Input()\r\n public collapsed = false;\r\n\r\n /** @description Nível de severidade que altera o estilo visual do painel. @default 'default' */\r\n @Input()\r\n public severity: Severities = 'default';\r\n\r\n /** @description Opções de configuração do botão de borda lateral do painel. */\r\n @Input()\r\n public borderButtonOptions?: BorderButtonOptions;\r\n\r\n /** @description Classes CSS adicionais aplicadas ao elemento raíz do painel. @default '' */\r\n @Input()\r\n public class: string = '';\r\n\r\n /** @description Emitido quando o estado de colapso muda, com o novo valor booleano. */\r\n @Output()\r\n public collapsedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChildren(TemplateDirective)\r\n public templates: QueryList<TemplateDirective> | null = null;\r\n\r\n public headerTemplate: TemplateRef<unknown> | null = null;\r\n\r\n public bodyTemplate: TemplateRef<unknown> | null = null;\r\n\r\n public footerTemplate: TemplateRef<unknown> | null = null;\r\n\r\n readonly EnumSeverity = EnumSeverity;\r\n\r\n public ngAfterContentInit(): void {\r\n this._getTemplates();\r\n }\r\n\r\n public toggleCollapsed(): void {\r\n this.collapsed = !this.collapsed;\r\n this.collapsedChange.emit(this.collapsed);\r\n }\r\n\r\n private _getCustomTemplate(type: string) {\r\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template;\r\n }\r\n\r\n private _getHeaderTemplate(): TemplateRef<unknown> | null {\r\n return this._getCustomTemplate('header') ?? null;\r\n }\r\n\r\n private _getBodyTemplate(): TemplateRef<unknown> | null {\r\n return this._getCustomTemplate('body') ?? null;\r\n }\r\n\r\n private _getFooterTemplate(): TemplateRef<unknown> | null {\r\n return this._getCustomTemplate('footer') ?? null;\r\n }\r\n\r\n private _getTemplates(): void {\r\n this.headerTemplate = this._getHeaderTemplate();\r\n this.bodyTemplate = this._getBodyTemplate();\r\n this.footerTemplate = this._getFooterTemplate();\r\n }\r\n}\r\n","<div\n class=\"relative border border-[#dedce5] bg-grayscale-0 p-5 transition-colors duration-500 ease-in-out\"\n [class]=\"class\"\n [ngClass]=\"{\n 'border-criticality-green': severity === EnumSeverity.Success,\n 'border-criticality-blue': severity === EnumSeverity.Info,\n 'border-criticality-orange': severity === EnumSeverity.Warn,\n 'border-criticality-red': severity === EnumSeverity.Error,\n }\"\n>\n @if (borderButtonOptions && borderButtonOptions.visible?.(severity)) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"absolute -top-3 right-[15px] z-10\"\n [@BorderButtonAnimation]\n >\n </s-border-button>\n }\n\n @if (header || headerTemplate) {\n <div\n class=\"flex justify-between\"\n [ngClass]=\"{ 'mb-3 border-b border-b-[#dedce5] pb-3': !collapsed }\"\n >\n <div class=\"grow\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n } @else {\n <div class=\"flex flex-col gap-3\">\n <span\n class=\"uppercase\"\n role=\"heading\"\n [attr.aria-level]=\"ariaHeaderLevel\"\n >{{ header }}</span\n >\n @if (description) {\n <span class=\"text-sm text-grayscale-60\">{{ description }}</span>\n }\n </div>\n }\n </div>\n\n @if (toggleable) {\n <button\n type=\"button\"\n class=\"fas h-6 w-6 cursor-pointer border-none bg-transparent text-[#212533]\"\n [ngClass]=\"{\n 'fa-plus': collapsed,\n 'fa-minus': !collapsed,\n }\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"collapsed ? null : panelBodyId\"\n [attr.aria-label]=\"'platform.angular_components.panel_toggle' | translate: { header: header || '' }\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n }\n\n @if (!toggleable || !collapsed) {\n <div [id]=\"panelBodyId\">\n <div [class.pb-3]=\"footerTemplate\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n </div>\n\n @if (footerTemplate) {\n <div class=\"border-t border-t-[#dedce5] pt-3\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n </div>\n }\n</div>\n\n","import { NgModule } from '@angular/core';\r\n\r\nimport { PanelComponent } from './panel.component';\r\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\r\n\r\n@NgModule({\r\n imports: [PanelComponent],\r\n exports: [PanelComponent, TemplateModule],\r\n})\r\nexport class PanelModule {}\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-panel.mjs","sources":["../../projects/angular-components/panel/src/lib/panel/panel.component.ts","../../projects/angular-components/panel/src/lib/panel/panel.component.html","../../projects/angular-components/panel/src/lib/panel/panel.module.ts","../../projects/angular-components/panel/src/seniorsistemas-angular-components-panel.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n AfterContentInit,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n QueryList,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport {\r\n BorderButtonOptions,\r\n EnumSeverity,\r\n Severities,\r\n BorderButtonComponent,\r\n} from '@seniorsistemas/angular-components/shared';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n/**\r\n * @description Componente de painel com cabeçalho, corpo e rodapé customizáveis\r\n * via `TemplateDirective`. Suporta colapsar/expandir com animação, nível de\r\n * severidade para estilo visual e botão de borda configurável.\r\n *\r\n * @example\r\n * ```html\r\n * <s-panel header=\"Título\" [toggleable]=\"true\" severity=\"info\">\r\n * <p>Conteúdo</p>\r\n * </s-panel>\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Component({\r\n selector: 's-panel',\r\n templateUrl: './panel.component.html',\r\n animations: [\r\n trigger('BorderButtonAnimation', [\r\n transition(':enter', [\r\n style({ transform: 'scaleY(0)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'scaleY(1)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'scaleY(1)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'scaleY(0)', opacity: 0 })),\r\n ]),\r\n ]),\r\n ],\r\n standalone: true,\r\n imports: [NgClass, BorderButtonComponent, NgTemplateOutlet, TranslateModule],\r\n})\r\nexport class PanelComponent implements AfterContentInit {\r\n private static _idCounter = 0;\r\n\r\n /** @description ID único gerado automaticamente para associar o botão toggle ao corpo do painel via aria-controls. */\r\n public readonly panelBodyId = `panel-body-${++PanelComponent._idCounter}`;\r\n\r\n /** @description Nível do heading do cabeçalho para acessibilidade (aria-level). @default 3 */\r\n @Input()\r\n public ariaHeaderLevel: number = 3;\r\n\r\n /** @description Título exibido no cabeçalho do painel. */\r\n @Input()\r\n public header?: string;\r\n\r\n /** @description Descrição exibida no cabeçalho do painel. */\r\n @Input()\r\n public description?: string;\r\n\r\n /** @description Habilita o botão de toggle para colapsar/expandir o painel. @default false */\r\n @Input()\r\n public toggleable = false;\r\n\r\n /** @description Define o estado inicial do painel como colapsado. @default false */\r\n @Input()\r\n public collapsed = false;\r\n\r\n /** @description Nível de severidade que altera o estilo visual do painel. @default 'default' */\r\n @Input()\r\n public severity: Severities = 'default';\r\n\r\n /** @description Opções de configuração do botão de borda lateral do painel. */\r\n @Input()\r\n public borderButtonOptions?: BorderButtonOptions;\r\n\r\n /** @description Classes CSS adicionais aplicadas ao elemento raíz do painel. @default '' */\r\n @Input()\r\n public class: string = '';\r\n\r\n /** @description Emitido quando o estado de colapso muda, com o novo valor booleano. */\r\n @Output()\r\n public collapsedChange = new EventEmitter<boolean>();\r\n\r\n @ContentChildren(TemplateDirective)\r\n public templates: QueryList<TemplateDirective> | null = null;\r\n\r\n public headerTemplate: TemplateRef<unknown> | null = null;\r\n\r\n public bodyTemplate: TemplateRef<unknown> | null = null;\r\n\r\n public footerTemplate: TemplateRef<unknown> | null = null;\r\n\r\n readonly EnumSeverity = EnumSeverity;\r\n\r\n public ngAfterContentInit(): void {\r\n this._getTemplates();\r\n }\r\n\r\n public toggleCollapsed(): void {\r\n this.collapsed = !this.collapsed;\r\n this.collapsedChange.emit(this.collapsed);\r\n }\r\n\r\n private _getCustomTemplate(type: string) {\r\n return this.templates?.find((template: TemplateDirective) => template.type === type)?.template;\r\n }\r\n\r\n private _getHeaderTemplate(): TemplateRef<unknown> | null {\r\n return this._getCustomTemplate('header') ?? null;\r\n }\r\n\r\n private _getBodyTemplate(): TemplateRef<unknown> | null {\r\n return this._getCustomTemplate('body') ?? null;\r\n }\r\n\r\n private _getFooterTemplate(): TemplateRef<unknown> | null {\r\n return this._getCustomTemplate('footer') ?? null;\r\n }\r\n\r\n private _getTemplates(): void {\r\n this.headerTemplate = this._getHeaderTemplate();\r\n this.bodyTemplate = this._getBodyTemplate();\r\n this.footerTemplate = this._getFooterTemplate();\r\n }\r\n}\r\n","<div\n class=\"relative border border-[#dedce5] bg-grayscale-0 p-5 transition-colors duration-500 ease-in-out\"\n [class]=\"class\"\n [ngClass]=\"{\n 'border-criticality-green': severity === EnumSeverity.Success,\n 'border-criticality-blue': severity === EnumSeverity.Info,\n 'border-criticality-orange': severity === EnumSeverity.Warn,\n 'border-criticality-red': severity === EnumSeverity.Error,\n }\"\n>\n @if (borderButtonOptions && borderButtonOptions.visible?.(severity)) {\n <s-border-button\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"absolute -top-3 right-[15px] z-10\"\n [@BorderButtonAnimation]\n >\n </s-border-button>\n }\n\n @if (header || headerTemplate) {\n <div\n class=\"flex justify-between\"\n [ngClass]=\"{ 'mb-3 border-b border-b-[#dedce5] pb-3': !collapsed }\"\n >\n <div class=\"grow\">\n @if (headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n } @else {\n <div class=\"flex flex-col gap-3\">\n <span\n class=\"uppercase\"\n role=\"heading\"\n [attr.aria-level]=\"ariaHeaderLevel\"\n >{{ header }}</span\n >\n @if (description) {\n <span class=\"text-sm text-grayscale-60\">{{ description }}</span>\n }\n </div>\n }\n </div>\n\n @if (toggleable) {\n <button\n type=\"button\"\n class=\"fas h-6 w-6 cursor-pointer border-none bg-transparent text-[#212533]\"\n [ngClass]=\"{\n 'fa-plus': collapsed,\n 'fa-minus': !collapsed,\n }\"\n [attr.aria-expanded]=\"!collapsed\"\n [attr.aria-controls]=\"collapsed ? null : panelBodyId\"\n [attr.aria-label]=\"'platform.angular_components.panel_toggle' | translate: { header: header || '' }\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n }\n\n @if (!toggleable || !collapsed) {\n <div [id]=\"panelBodyId\">\n <div [class.pb-3]=\"footerTemplate\">\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n </div>\n\n @if (footerTemplate) {\n <div class=\"border-t border-t-[#dedce5] pt-3\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n </div>\n }\n</div>\n\n","import { NgModule } from '@angular/core';\r\n\r\nimport { PanelComponent } from './panel.component';\r\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `PanelComponent` (de\r\n * `@seniorsistemas/angular-components/panel`) no lugar deste módulo.\r\n *\r\n * Este módulo também reexportava `TemplateDirective` (`@seniorsistemas/angular-components/template`, usado em\r\n * templates por `[sTemplate]`). Se o seu template usa algum deles, importe-o diretamente.\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: [PanelComponent],\r\n exports: [PanelComponent, TemplateModule],\r\n})\r\nexport class PanelModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAqBA;;;;;;;;;;;;;AAaG;MAmBU,cAAc,CAAA;AACf,IAAA,OAAO,UAAU,GAAG,CAAC,CAAC;;AAGd,IAAA,WAAW,GAAG,CAAc,WAAA,EAAA,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC;;IAInE,eAAe,GAAW,CAAC,CAAC;;AAI5B,IAAA,MAAM,CAAU;;AAIhB,IAAA,WAAW,CAAU;;IAIrB,UAAU,GAAG,KAAK,CAAC;;IAInB,SAAS,GAAG,KAAK,CAAC;;IAIlB,QAAQ,GAAe,SAAS,CAAC;;AAIjC,IAAA,mBAAmB,CAAuB;;IAI1C,KAAK,GAAW,EAAE,CAAC;;AAInB,IAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;IAG9C,SAAS,GAAwC,IAAI,CAAC;IAEtD,cAAc,GAAgC,IAAI,CAAC;IAEnD,YAAY,GAAgC,IAAI,CAAC;IAEjD,cAAc,GAAgC,IAAI,CAAC;IAEjD,YAAY,GAAG,YAAY,CAAC;IAE9B,kBAAkB,GAAA;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7C;AAEO,IAAA,kBAAkB,CAAC,IAAY,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAA2B,KAAK,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,QAAQ,CAAC;KAClG;IAEO,kBAAkB,GAAA;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;KACpD;IAEO,gBAAgB,GAAA;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;KAClD;IAEO,kBAAkB,GAAA;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;KACpD;IAEO,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAChD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;KACnD;wGAlFQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EA0CN,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAiB,EC/FtC,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u6FA4EA,EDzBc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EAAE,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,EAAE,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,EAb/D,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,UAAA,EAAA;YACR,OAAO,CAAC,uBAAuB,EAAE;gBAC7B,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,oBAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;gBACF,UAAU,CAAC,QAAQ,EAAE;oBACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,oBAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvE,CAAC;aACL,CAAC;AACL,SAAA,EAAA,CAAA,CAAA;;4FAIQ,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEP,UAAA,EAAA;wBACR,OAAO,CAAC,uBAAuB,EAAE;4BAC7B,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,gCAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACvE,CAAC;4BACF,UAAU,CAAC,QAAQ,EAAE;gCACjB,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC7C,gCAAA,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;6BACvE,CAAC;yBACL,CAAC;qBACL,EACW,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,u6FAAA,EAAA,CAAA;8BAUrE,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAKC,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAKC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAKC,UAAU,EAAA,CAAA;sBADhB,KAAK;gBAKC,SAAS,EAAA,CAAA;sBADf,KAAK;gBAKC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAKC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAKC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAKC,eAAe,EAAA,CAAA;sBADrB,MAAM;gBAIA,SAAS,EAAA,CAAA;sBADf,eAAe;uBAAC,iBAAiB,CAAA;;;AE1FtC;;;;;;;;;AASG;MAKU,WAAW,CAAA;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAHV,OAAA,EAAA,CAAA,cAAc,CACd,EAAA,OAAA,EAAA,CAAA,cAAc,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;yGAE/B,WAAW,EAAA,OAAA,EAAA,CAHV,cAAc,EACE,cAAc,CAAA,EAAA,CAAA,CAAA;;4FAE/B,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,cAAc,CAAC;AACzB,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;AAC5C,iBAAA,CAAA;;;AClBD;;AAEG;;;;"}
@@ -365,6 +365,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
365
365
  args: ['blur']
366
366
  }] } });
367
367
 
368
+ /**
369
+ * @deprecated Será removido na v20. Importe diretamente o standalone `PasswordStrengthDirective` (de
370
+ * `@seniorsistemas/angular-components/password-strength`) no lugar deste módulo.
371
+ *
372
+ * Migração automática (também executada pelo `ng update` na v20):
373
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
374
+ */
368
375
  class PasswordStrengthModule {
369
376
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordStrengthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
370
377
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PasswordStrengthModule, imports: [PasswordStrengthDirective], exports: [PasswordStrengthDirective] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-password-strength.mjs","sources":["../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.component.ts","../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.component.html","../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.directive.ts","../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.module.ts","../../projects/angular-components/password-strength/src/seniorsistemas-angular-components-password-strength.ts"],"sourcesContent":["import { Component, Input, OnInit, inject } from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { PasswordStrengthPositions } from './types/password-positions';\r\nimport { PasswordStrengths } from './types/password-strengths';\r\nimport { NgStyle, NgClass } from '@angular/common';\r\n\r\n/**\r\n * @description Componente interno que exibe visualmente os indicadores de força de senha.\r\n * Utilizado em conjunto com a diretiva {@link PasswordStrengthDirective} para fornecer\r\n * feedback em tempo real enquanto o usuário digita, mostrando três níveis de força\r\n * (fraca, média e forte) com títulos e indicadores visuais configuráveis.\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n standalone: true,\r\n imports: [NgStyle, NgClass],\r\n})\r\nexport class PasswordStrengthComponent implements OnInit {\r\n private readonly translate = inject(TranslateService);\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como fraca.\r\n * Se não informado, utiliza a tradução padrão do token `platform.angular_components.weak`.\r\n */\r\n @Input()\r\n public weakTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como média.\r\n * Se não informado, utiliza a tradução padrão do token `platform.angular_components.medium`.\r\n */\r\n @Input()\r\n public mediumTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como forte.\r\n * Se não informado, utiliza a tradução padrão do token `platform.angular_components.strong`.\r\n */\r\n @Input()\r\n public strongTitle?: string;\r\n\r\n /**\r\n * @description Descrição complementar exibida abaixo dos indicadores de força,\r\n * orientando o usuário sobre os requisitos esperados para a senha. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public description!: string;\r\n\r\n public title?: string;\r\n public position: PasswordStrengthPositions = 'right';\r\n public left = 0;\r\n public top = 0;\r\n public visible = false;\r\n\r\n public ngOnInit(): void {\r\n this.title = this.weakTitle;\r\n }\r\n\r\n public setPasswordStrengthPosition() {\r\n const passwordStrength = document.querySelector('.password-strength');\r\n\r\n if (!passwordStrength) {\r\n return;\r\n }\r\n\r\n switch (this.position) {\r\n case 'top':\r\n passwordStrength.classList.add('password-strength--top');\r\n break;\r\n case 'right':\r\n passwordStrength.classList.add('password-strength--right');\r\n break;\r\n case 'left':\r\n passwordStrength.classList.add('password-strength--left');\r\n break;\r\n }\r\n }\r\n\r\n public updateIndicators(passwordStrength: PasswordStrengths) {\r\n const strengthIndicator1 = document.querySelector('#strength-indicator-1');\r\n const strengthIndicator2 = document.querySelector('#strength-indicator-2');\r\n const strengthIndicator3 = document.querySelector('#strength-indicator-3');\r\n\r\n const onIndicators = [];\r\n const indicators = [strengthIndicator1, strengthIndicator2, strengthIndicator3];\r\n\r\n let strengthClass: string;\r\n\r\n switch (passwordStrength) {\r\n case 'veryWeak':\r\n this.title = this.weakTitle ?? this.translate.instant('platform.angular_components.weak');\r\n break;\r\n case 'weak':\r\n this.title = this.weakTitle ?? this.translate.instant('platform.angular_components.weak');\r\n strengthClass = 'strength-indicator--weak';\r\n onIndicators.push(strengthIndicator1);\r\n break;\r\n case 'medium':\r\n this.title = this.mediumTitle ?? this.translate.instant('platform.angular_components.medium');\r\n strengthClass = 'strength-indicator--medium';\r\n onIndicators.push(strengthIndicator1);\r\n onIndicators.push(strengthIndicator2);\r\n break;\r\n case 'strong':\r\n this.title = this.strongTitle ?? this.translate.instant('platform.angular_components.strong');\r\n strengthClass = 'strength-indicator--strong';\r\n onIndicators.push(strengthIndicator1);\r\n onIndicators.push(strengthIndicator2);\r\n onIndicators.push(strengthIndicator3);\r\n break;\r\n }\r\n\r\n indicators.forEach((indicator) => {\r\n indicator?.classList.remove(\r\n 'strength-indicator--weak',\r\n 'strength-indicator--medium',\r\n 'strength-indicator--strong',\r\n );\r\n });\r\n\r\n onIndicators.forEach((indicator) => {\r\n indicator?.classList.add(strengthClass);\r\n });\r\n }\r\n}\r\n","<div\n class=\"password-strength\"\n [ngStyle]=\"{\n left: left + 'px',\n top: top + 'px',\n }\"\n [ngClass]=\"['password-strength--' + position]\"\n>\n <span class=\"password-strength-title\">{{ title }}</span>\n <div class=\"strength-indicators\">\n <span\n class=\"strength-indicator\"\n id=\"strength-indicator-1\"\n ></span>\n <span\n class=\"strength-indicator\"\n id=\"strength-indicator-2\"\n ></span>\n <span\n class=\"strength-indicator\"\n id=\"strength-indicator-3\"\n ></span>\n </div>\n <span class=\"content\">{{ description }}</span>\n</div>\n","import {\r\n ApplicationRef,\r\n // NOSONAR - 'ComponentFactoryResolver' is deprecated.\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnInit,\r\n inject,\r\n} from '@angular/core';\r\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\r\n\r\nimport { PasswordStrengthComponent } from './password-strength.component';\r\nimport { PasswordStrengthPositions } from './types/password-positions';\r\nimport { PasswordStrengths } from './types/password-strengths';\r\n\r\n/**\r\n * @description Diretiva que adiciona o comportamento de verificação de força de senha\r\n * a um campo de input existente. Ao receber foco ou a cada tecla digitada, exibe o\r\n * componente {@link PasswordStrengthComponent} posicionado dinamicamente ao redor do campo,\r\n * fornecendo feedback visual sobre a força da senha informada.\r\n *\r\n * @example\r\n * ```html\r\n * <input\r\n * type=\"password\"\r\n * [sPasswordStrength]=\"true\"\r\n * passwordStrengthDescription=\"A senha deve conter letras maiúsculas, números e caracteres especiais.\"\r\n * [passwordStrengthValidation]=\"myValidator\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: '[sPasswordStrength]',\r\n standalone: true,\r\n})\r\nexport class PasswordStrengthDirective implements OnInit {\r\n private readonly elementRef = inject(ElementRef);\r\n private readonly appRef = inject(ApplicationRef);\r\n private readonly componentFactoryResolver = inject(ComponentFactoryResolver);\r\n private readonly injector = inject(Injector);\r\n\r\n /**\r\n * @description Habilita ou desabilita o comportamento da diretiva.\r\n * Quando `false`, o indicador de força não será exibido.\r\n *\r\n * @default true\r\n */\r\n @Input('sPasswordStrength')\r\n public enabled = true;\r\n\r\n /**\r\n * @description Função customizada de validação da força da senha.\r\n * Recebe o conteúdo atual do campo e deve retornar um valor do tipo {@link PasswordStrengths}\r\n * (`'veryWeak'`, `'weak'`, `'medium'` ou `'strong'`).\r\n * Se não informada, utiliza a validação padrão baseada em critérios de comprimento,\r\n * letras maiúsculas/minúsculas, números e caracteres especiais.\r\n */\r\n @Input()\r\n public passwordStrengthValidation?: (content: string) => PasswordStrengths;\r\n\r\n /**\r\n * @description Posição preferencial onde o indicador de força será exibido em relação ao campo.\r\n * Aceita `'right'`, `'left'` ou `'top'`. O componente tenta posicionar automaticamente\r\n * em outro lado caso não haja espaço suficiente na posição especificada.\r\n *\r\n * @default 'right'\r\n */\r\n @Input()\r\n public passwordStrengthPosition: PasswordStrengthPositions = 'right';\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como fraca.\r\n * Se não informado, utiliza a tradução padrão.\r\n */\r\n @Input()\r\n public passwordStrengthWeakTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como média.\r\n * Se não informado, utiliza a tradução padrão.\r\n */\r\n @Input()\r\n public passwordStrengthMediumTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como forte.\r\n * Se não informado, utiliza a tradução padrão.\r\n */\r\n @Input()\r\n public passwordStrengthStrongTitle?: string;\r\n\r\n /**\r\n * @description Descrição complementar exibida no indicador de força de senha,\r\n * orientando o usuário sobre os requisitos da senha. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public passwordStrengthDescription!: string;\r\n\r\n private componentRef?: null | ComponentRef<PasswordStrengthComponent>;\r\n\r\n public ngOnInit() {\r\n this.validateProperties();\r\n }\r\n\r\n @HostListener('keyup')\r\n @HostListener('focus')\r\n public onFocus(): void {\r\n const content = this.elementRef.nativeElement.value ?? '';\r\n\r\n this.createPasswordStrength();\r\n const component = this.componentRef?.instance;\r\n if (!component) {\r\n return;\r\n }\r\n if (content) {\r\n if (this.passwordStrengthValidation) {\r\n component.updateIndicators(this.passwordStrengthValidation(content));\r\n }\r\n } else {\r\n component.updateIndicators('veryWeak');\r\n }\r\n }\r\n\r\n @HostListener('blur')\r\n public onBlur(): void {\r\n this.destroyPasswordStrength();\r\n }\r\n\r\n private createPasswordStrength() {\r\n if (this.enabled && isNullOrUndefined(this.componentRef)) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PasswordStrengthComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n this.appRef.attachView(this.componentRef.hostView);\r\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n this.setPasswordStrengthComponentProperties();\r\n this.showPasswordStrength();\r\n }\r\n }\r\n\r\n private showPasswordStrength() {\r\n if (this.componentRef) {\r\n this.componentRef.instance.visible = true;\r\n }\r\n }\r\n\r\n // NOSONAR - Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed.\r\n private setPasswordStrengthComponentProperties() {\r\n if (isNullOrUndefined(this.componentRef)) {\r\n return;\r\n }\r\n\r\n this.componentRef.instance.position = this.passwordStrengthPosition;\r\n this.componentRef.instance.weakTitle = this.passwordStrengthWeakTitle;\r\n this.componentRef.instance.mediumTitle = this.passwordStrengthMediumTitle;\r\n this.componentRef.instance.strongTitle = this.passwordStrengthStrongTitle;\r\n this.componentRef.instance.description = this.passwordStrengthDescription;\r\n\r\n const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();\r\n\r\n const margin = 20;\r\n const elementRefHeight = bottom - top;\r\n const elementRefWidth = right - left;\r\n const safeSpace = 150;\r\n\r\n let positioned = false;\r\n const invalidOptions: PasswordStrengthPositions[] = [];\r\n\r\n while (!positioned) {\r\n if (invalidOptions.includes('top') && invalidOptions.includes('right') && invalidOptions.includes('left')) {\r\n this.destroyPasswordStrength();\r\n throw new Error('No space to show password strength');\r\n }\r\n\r\n switch (this.passwordStrengthPosition) {\r\n case 'top': {\r\n const topShift = top;\r\n const rightShift = document.body.clientWidth - right;\r\n const leftShift = left;\r\n\r\n const MIN_HORIZONTAL_SAFE_SPACE = 50;\r\n\r\n if (\r\n topShift <= elementRefHeight + safeSpace ||\r\n rightShift < MIN_HORIZONTAL_SAFE_SPACE ||\r\n leftShift < MIN_HORIZONTAL_SAFE_SPACE\r\n ) {\r\n this.passwordStrengthPosition = 'right';\r\n invalidOptions.push('top');\r\n break;\r\n }\r\n\r\n this.componentRef.instance.top = Math.round(top - margin);\r\n this.componentRef.instance.left = Math.round(elementRefWidth / 2 + left);\r\n positioned = true;\r\n break;\r\n }\r\n case 'right': {\r\n const rightShift = document.body.clientWidth - right;\r\n\r\n if (rightShift <= elementRefWidth + safeSpace) {\r\n this.passwordStrengthPosition = 'left';\r\n invalidOptions.push('right');\r\n break;\r\n }\r\n\r\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\r\n this.componentRef.instance.left = Math.round(right + margin);\r\n positioned = true;\r\n break;\r\n }\r\n case 'left': {\r\n const leftShift = left;\r\n\r\n if (leftShift <= elementRefWidth + safeSpace) {\r\n this.passwordStrengthPosition = 'top';\r\n invalidOptions.push('left');\r\n break;\r\n }\r\n\r\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\r\n this.componentRef.instance.left = Math.round(left - margin);\r\n positioned = true;\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n\r\n this.componentRef.instance.position = this.passwordStrengthPosition;\r\n }\r\n }\r\n\r\n private validateProperties() {\r\n this.passwordStrengthValidation = this.passwordStrengthValidation || this.defaultValidator;\r\n }\r\n\r\n private destroyPasswordStrength(): void {\r\n if (this.componentRef) {\r\n this.appRef.detachView(this.componentRef.hostView);\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n }\r\n }\r\n\r\n private defaultValidator(content: string): PasswordStrengths {\r\n let points = 0;\r\n const PASSWORD_MIN_LENGTH = 6;\r\n const WEEK_CRITERIA = 1;\r\n const MEDIUM_CRITERIA = 4;\r\n const STRONG_CRITERIA = 5;\r\n\r\n const regExpValidations = [\r\n /(?=.*\\d)/, // number\r\n /(?=.*[a-z])/, // lowercase\r\n /(?=.*[A-Z])/, // uppercase\r\n /(?=.*[!@#$%&*.\\\\=+^~-])/, // special character\r\n ];\r\n\r\n if (content.length >= PASSWORD_MIN_LENGTH) {\r\n points++;\r\n }\r\n\r\n regExpValidations.forEach((validation) => {\r\n if (validation.test(content)) {\r\n points++;\r\n }\r\n });\r\n\r\n if (points < WEEK_CRITERIA) {\r\n return 'veryWeak';\r\n }\r\n if (points < MEDIUM_CRITERIA) {\r\n return 'weak';\r\n }\r\n if (points < STRONG_CRITERIA) {\r\n return 'medium';\r\n }\r\n return 'strong';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { PasswordStrengthDirective } from './password-strength.directive';\r\n\r\n@NgModule({\r\n imports: [PasswordStrengthDirective],\r\n exports: [PasswordStrengthDirective],\r\n})\r\nexport class PasswordStrengthModule {}\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-password-strength.mjs","sources":["../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.component.ts","../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.component.html","../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.directive.ts","../../projects/angular-components/password-strength/src/lib/password-strength/password-strength.module.ts","../../projects/angular-components/password-strength/src/seniorsistemas-angular-components-password-strength.ts"],"sourcesContent":["import { Component, Input, OnInit, inject } from '@angular/core';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { PasswordStrengthPositions } from './types/password-positions';\r\nimport { PasswordStrengths } from './types/password-strengths';\r\nimport { NgStyle, NgClass } from '@angular/common';\r\n\r\n/**\r\n * @description Componente interno que exibe visualmente os indicadores de força de senha.\r\n * Utilizado em conjunto com a diretiva {@link PasswordStrengthDirective} para fornecer\r\n * feedback em tempo real enquanto o usuário digita, mostrando três níveis de força\r\n * (fraca, média e forte) com títulos e indicadores visuais configuráveis.\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n templateUrl: './password-strength.component.html',\r\n styleUrls: ['./password-strength.component.scss'],\r\n standalone: true,\r\n imports: [NgStyle, NgClass],\r\n})\r\nexport class PasswordStrengthComponent implements OnInit {\r\n private readonly translate = inject(TranslateService);\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como fraca.\r\n * Se não informado, utiliza a tradução padrão do token `platform.angular_components.weak`.\r\n */\r\n @Input()\r\n public weakTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como média.\r\n * Se não informado, utiliza a tradução padrão do token `platform.angular_components.medium`.\r\n */\r\n @Input()\r\n public mediumTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como forte.\r\n * Se não informado, utiliza a tradução padrão do token `platform.angular_components.strong`.\r\n */\r\n @Input()\r\n public strongTitle?: string;\r\n\r\n /**\r\n * @description Descrição complementar exibida abaixo dos indicadores de força,\r\n * orientando o usuário sobre os requisitos esperados para a senha. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public description!: string;\r\n\r\n public title?: string;\r\n public position: PasswordStrengthPositions = 'right';\r\n public left = 0;\r\n public top = 0;\r\n public visible = false;\r\n\r\n public ngOnInit(): void {\r\n this.title = this.weakTitle;\r\n }\r\n\r\n public setPasswordStrengthPosition() {\r\n const passwordStrength = document.querySelector('.password-strength');\r\n\r\n if (!passwordStrength) {\r\n return;\r\n }\r\n\r\n switch (this.position) {\r\n case 'top':\r\n passwordStrength.classList.add('password-strength--top');\r\n break;\r\n case 'right':\r\n passwordStrength.classList.add('password-strength--right');\r\n break;\r\n case 'left':\r\n passwordStrength.classList.add('password-strength--left');\r\n break;\r\n }\r\n }\r\n\r\n public updateIndicators(passwordStrength: PasswordStrengths) {\r\n const strengthIndicator1 = document.querySelector('#strength-indicator-1');\r\n const strengthIndicator2 = document.querySelector('#strength-indicator-2');\r\n const strengthIndicator3 = document.querySelector('#strength-indicator-3');\r\n\r\n const onIndicators = [];\r\n const indicators = [strengthIndicator1, strengthIndicator2, strengthIndicator3];\r\n\r\n let strengthClass: string;\r\n\r\n switch (passwordStrength) {\r\n case 'veryWeak':\r\n this.title = this.weakTitle ?? this.translate.instant('platform.angular_components.weak');\r\n break;\r\n case 'weak':\r\n this.title = this.weakTitle ?? this.translate.instant('platform.angular_components.weak');\r\n strengthClass = 'strength-indicator--weak';\r\n onIndicators.push(strengthIndicator1);\r\n break;\r\n case 'medium':\r\n this.title = this.mediumTitle ?? this.translate.instant('platform.angular_components.medium');\r\n strengthClass = 'strength-indicator--medium';\r\n onIndicators.push(strengthIndicator1);\r\n onIndicators.push(strengthIndicator2);\r\n break;\r\n case 'strong':\r\n this.title = this.strongTitle ?? this.translate.instant('platform.angular_components.strong');\r\n strengthClass = 'strength-indicator--strong';\r\n onIndicators.push(strengthIndicator1);\r\n onIndicators.push(strengthIndicator2);\r\n onIndicators.push(strengthIndicator3);\r\n break;\r\n }\r\n\r\n indicators.forEach((indicator) => {\r\n indicator?.classList.remove(\r\n 'strength-indicator--weak',\r\n 'strength-indicator--medium',\r\n 'strength-indicator--strong',\r\n );\r\n });\r\n\r\n onIndicators.forEach((indicator) => {\r\n indicator?.classList.add(strengthClass);\r\n });\r\n }\r\n}\r\n","<div\n class=\"password-strength\"\n [ngStyle]=\"{\n left: left + 'px',\n top: top + 'px',\n }\"\n [ngClass]=\"['password-strength--' + position]\"\n>\n <span class=\"password-strength-title\">{{ title }}</span>\n <div class=\"strength-indicators\">\n <span\n class=\"strength-indicator\"\n id=\"strength-indicator-1\"\n ></span>\n <span\n class=\"strength-indicator\"\n id=\"strength-indicator-2\"\n ></span>\n <span\n class=\"strength-indicator\"\n id=\"strength-indicator-3\"\n ></span>\n </div>\n <span class=\"content\">{{ description }}</span>\n</div>\n","import {\r\n ApplicationRef,\r\n // NOSONAR - 'ComponentFactoryResolver' is deprecated.\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n HostListener,\r\n Injector,\r\n Input,\r\n OnInit,\r\n inject,\r\n} from '@angular/core';\r\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\r\n\r\nimport { PasswordStrengthComponent } from './password-strength.component';\r\nimport { PasswordStrengthPositions } from './types/password-positions';\r\nimport { PasswordStrengths } from './types/password-strengths';\r\n\r\n/**\r\n * @description Diretiva que adiciona o comportamento de verificação de força de senha\r\n * a um campo de input existente. Ao receber foco ou a cada tecla digitada, exibe o\r\n * componente {@link PasswordStrengthComponent} posicionado dinamicamente ao redor do campo,\r\n * fornecendo feedback visual sobre a força da senha informada.\r\n *\r\n * @example\r\n * ```html\r\n * <input\r\n * type=\"password\"\r\n * [sPasswordStrength]=\"true\"\r\n * passwordStrengthDescription=\"A senha deve conter letras maiúsculas, números e caracteres especiais.\"\r\n * [passwordStrengthValidation]=\"myValidator\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Directive({\r\n selector: '[sPasswordStrength]',\r\n standalone: true,\r\n})\r\nexport class PasswordStrengthDirective implements OnInit {\r\n private readonly elementRef = inject(ElementRef);\r\n private readonly appRef = inject(ApplicationRef);\r\n private readonly componentFactoryResolver = inject(ComponentFactoryResolver);\r\n private readonly injector = inject(Injector);\r\n\r\n /**\r\n * @description Habilita ou desabilita o comportamento da diretiva.\r\n * Quando `false`, o indicador de força não será exibido.\r\n *\r\n * @default true\r\n */\r\n @Input('sPasswordStrength')\r\n public enabled = true;\r\n\r\n /**\r\n * @description Função customizada de validação da força da senha.\r\n * Recebe o conteúdo atual do campo e deve retornar um valor do tipo {@link PasswordStrengths}\r\n * (`'veryWeak'`, `'weak'`, `'medium'` ou `'strong'`).\r\n * Se não informada, utiliza a validação padrão baseada em critérios de comprimento,\r\n * letras maiúsculas/minúsculas, números e caracteres especiais.\r\n */\r\n @Input()\r\n public passwordStrengthValidation?: (content: string) => PasswordStrengths;\r\n\r\n /**\r\n * @description Posição preferencial onde o indicador de força será exibido em relação ao campo.\r\n * Aceita `'right'`, `'left'` ou `'top'`. O componente tenta posicionar automaticamente\r\n * em outro lado caso não haja espaço suficiente na posição especificada.\r\n *\r\n * @default 'right'\r\n */\r\n @Input()\r\n public passwordStrengthPosition: PasswordStrengthPositions = 'right';\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como fraca.\r\n * Se não informado, utiliza a tradução padrão.\r\n */\r\n @Input()\r\n public passwordStrengthWeakTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como média.\r\n * Se não informado, utiliza a tradução padrão.\r\n */\r\n @Input()\r\n public passwordStrengthMediumTitle?: string;\r\n\r\n /**\r\n * @description Texto personalizado exibido quando a senha é classificada como forte.\r\n * Se não informado, utiliza a tradução padrão.\r\n */\r\n @Input()\r\n public passwordStrengthStrongTitle?: string;\r\n\r\n /**\r\n * @description Descrição complementar exibida no indicador de força de senha,\r\n * orientando o usuário sobre os requisitos da senha. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public passwordStrengthDescription!: string;\r\n\r\n private componentRef?: null | ComponentRef<PasswordStrengthComponent>;\r\n\r\n public ngOnInit() {\r\n this.validateProperties();\r\n }\r\n\r\n @HostListener('keyup')\r\n @HostListener('focus')\r\n public onFocus(): void {\r\n const content = this.elementRef.nativeElement.value ?? '';\r\n\r\n this.createPasswordStrength();\r\n const component = this.componentRef?.instance;\r\n if (!component) {\r\n return;\r\n }\r\n if (content) {\r\n if (this.passwordStrengthValidation) {\r\n component.updateIndicators(this.passwordStrengthValidation(content));\r\n }\r\n } else {\r\n component.updateIndicators('veryWeak');\r\n }\r\n }\r\n\r\n @HostListener('blur')\r\n public onBlur(): void {\r\n this.destroyPasswordStrength();\r\n }\r\n\r\n private createPasswordStrength() {\r\n if (this.enabled && isNullOrUndefined(this.componentRef)) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PasswordStrengthComponent);\r\n this.componentRef = componentFactory.create(this.injector);\r\n this.appRef.attachView(this.componentRef.hostView);\r\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n this.setPasswordStrengthComponentProperties();\r\n this.showPasswordStrength();\r\n }\r\n }\r\n\r\n private showPasswordStrength() {\r\n if (this.componentRef) {\r\n this.componentRef.instance.visible = true;\r\n }\r\n }\r\n\r\n // NOSONAR - Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed.\r\n private setPasswordStrengthComponentProperties() {\r\n if (isNullOrUndefined(this.componentRef)) {\r\n return;\r\n }\r\n\r\n this.componentRef.instance.position = this.passwordStrengthPosition;\r\n this.componentRef.instance.weakTitle = this.passwordStrengthWeakTitle;\r\n this.componentRef.instance.mediumTitle = this.passwordStrengthMediumTitle;\r\n this.componentRef.instance.strongTitle = this.passwordStrengthStrongTitle;\r\n this.componentRef.instance.description = this.passwordStrengthDescription;\r\n\r\n const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();\r\n\r\n const margin = 20;\r\n const elementRefHeight = bottom - top;\r\n const elementRefWidth = right - left;\r\n const safeSpace = 150;\r\n\r\n let positioned = false;\r\n const invalidOptions: PasswordStrengthPositions[] = [];\r\n\r\n while (!positioned) {\r\n if (invalidOptions.includes('top') && invalidOptions.includes('right') && invalidOptions.includes('left')) {\r\n this.destroyPasswordStrength();\r\n throw new Error('No space to show password strength');\r\n }\r\n\r\n switch (this.passwordStrengthPosition) {\r\n case 'top': {\r\n const topShift = top;\r\n const rightShift = document.body.clientWidth - right;\r\n const leftShift = left;\r\n\r\n const MIN_HORIZONTAL_SAFE_SPACE = 50;\r\n\r\n if (\r\n topShift <= elementRefHeight + safeSpace ||\r\n rightShift < MIN_HORIZONTAL_SAFE_SPACE ||\r\n leftShift < MIN_HORIZONTAL_SAFE_SPACE\r\n ) {\r\n this.passwordStrengthPosition = 'right';\r\n invalidOptions.push('top');\r\n break;\r\n }\r\n\r\n this.componentRef.instance.top = Math.round(top - margin);\r\n this.componentRef.instance.left = Math.round(elementRefWidth / 2 + left);\r\n positioned = true;\r\n break;\r\n }\r\n case 'right': {\r\n const rightShift = document.body.clientWidth - right;\r\n\r\n if (rightShift <= elementRefWidth + safeSpace) {\r\n this.passwordStrengthPosition = 'left';\r\n invalidOptions.push('right');\r\n break;\r\n }\r\n\r\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\r\n this.componentRef.instance.left = Math.round(right + margin);\r\n positioned = true;\r\n break;\r\n }\r\n case 'left': {\r\n const leftShift = left;\r\n\r\n if (leftShift <= elementRefWidth + safeSpace) {\r\n this.passwordStrengthPosition = 'top';\r\n invalidOptions.push('left');\r\n break;\r\n }\r\n\r\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\r\n this.componentRef.instance.left = Math.round(left - margin);\r\n positioned = true;\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n\r\n this.componentRef.instance.position = this.passwordStrengthPosition;\r\n }\r\n }\r\n\r\n private validateProperties() {\r\n this.passwordStrengthValidation = this.passwordStrengthValidation || this.defaultValidator;\r\n }\r\n\r\n private destroyPasswordStrength(): void {\r\n if (this.componentRef) {\r\n this.appRef.detachView(this.componentRef.hostView);\r\n this.componentRef.destroy();\r\n this.componentRef = null;\r\n }\r\n }\r\n\r\n private defaultValidator(content: string): PasswordStrengths {\r\n let points = 0;\r\n const PASSWORD_MIN_LENGTH = 6;\r\n const WEEK_CRITERIA = 1;\r\n const MEDIUM_CRITERIA = 4;\r\n const STRONG_CRITERIA = 5;\r\n\r\n const regExpValidations = [\r\n /(?=.*\\d)/, // number\r\n /(?=.*[a-z])/, // lowercase\r\n /(?=.*[A-Z])/, // uppercase\r\n /(?=.*[!@#$%&*.\\\\=+^~-])/, // special character\r\n ];\r\n\r\n if (content.length >= PASSWORD_MIN_LENGTH) {\r\n points++;\r\n }\r\n\r\n regExpValidations.forEach((validation) => {\r\n if (validation.test(content)) {\r\n points++;\r\n }\r\n });\r\n\r\n if (points < WEEK_CRITERIA) {\r\n return 'veryWeak';\r\n }\r\n if (points < MEDIUM_CRITERIA) {\r\n return 'weak';\r\n }\r\n if (points < STRONG_CRITERIA) {\r\n return 'medium';\r\n }\r\n return 'strong';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { PasswordStrengthDirective } from './password-strength.directive';\r\n\r\n/**\r\n * @deprecated Será removido na v20. Importe diretamente o standalone `PasswordStrengthDirective` (de\r\n * `@seniorsistemas/angular-components/password-strength`) 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: [PasswordStrengthDirective],\r\n exports: [PasswordStrengthDirective],\r\n})\r\nexport class PasswordStrengthModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -684,6 +684,13 @@ const parseItensPickList = (array, disabledFn, idKey) => {
684
684
  });
685
685
  };
686
686
 
687
+ /**
688
+ * @deprecated Será removido na v20. Importe diretamente o standalone `PicklistComponent` (de
689
+ * `@seniorsistemas/angular-components/picklist`) no lugar deste módulo.
690
+ *
691
+ * Migração automática (também executada pelo `ng update` na v20):
692
+ * `ng generate @seniorsistemas/angular-components:migrate-modules-to-standalone`
693
+ */
687
694
  class PicklistModule {
688
695
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PicklistModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
689
696
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: PicklistModule, imports: [PicklistComponent], exports: [PicklistComponent] });