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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. package/accordion/README.md +1 -0
  2. package/accordion/lib/accordion/accordion.component.d.ts +1 -1
  3. package/accordion/lib/accordion/accordion.module.d.ts +1 -6
  4. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +1 -1
  5. package/alert/README.md +1 -1
  6. package/alert/lib/alert/alert.component.d.ts +1 -1
  7. package/alert/lib/alert/alert.module.d.ts +1 -2
  8. package/autocomplete/README.md +1 -1
  9. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +1 -1
  10. package/badge/lib/badge/badge.component.d.ts +1 -1
  11. package/badge/lib/badge/badge.module.d.ts +3 -7
  12. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +1 -1
  13. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +1 -2
  14. package/breadcrumb/README.md +9 -5
  15. package/button/README.md +1 -0
  16. package/calendar-mask/README.md +4 -2
  17. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +1 -1
  18. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +1 -2
  19. package/card/lib/card/card.component.d.ts +1 -1
  20. package/card/lib/card/card.module.d.ts +1 -3
  21. package/chat/lib/chat/chat.component.d.ts +2 -1
  22. package/chat/lib/chat/chat.module.d.ts +3 -6
  23. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +1 -1
  24. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +1 -1
  25. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +1 -3
  26. package/chips/lib/chips/chip-item/chip-item.component.d.ts +1 -1
  27. package/chips/lib/chips/chips/chips.component.d.ts +1 -1
  28. package/chips/lib/chips/chips.module.d.ts +1 -6
  29. package/code-editor/README.md +1 -1
  30. package/code-editor/lib/code-editor/code-editor.component.d.ts +1 -1
  31. package/code-editor/lib/code-editor/code-editor.module.d.ts +1 -3
  32. package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +1 -3
  33. package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -12
  34. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +1 -1
  35. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +1 -2
  36. package/common/deprecated-selector/README.md +120 -47
  37. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +1 -1
  38. package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +1 -1
  39. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -1
  40. package/common/lib/svg-factory/svg-factory.module.d.ts +1 -4
  41. package/confirm-dialog/README.md +3 -1
  42. package/content-generator/README.md +2 -2
  43. package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -1
  44. package/content-generator/lib/content-generator/content-generator.module.d.ts +1 -10
  45. package/control-errors/lib/control-errors/control-errors.component.d.ts +2 -2
  46. package/control-errors/lib/control-errors/control-errors.module.d.ts +1 -3
  47. package/country-phone-picker/README.md +1 -1
  48. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -1
  49. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +1 -5
  50. package/currency/README.md +1 -1
  51. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +1 -1
  52. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +1 -7
  53. package/datepicker/README.md +44 -11
  54. package/datepicker/lib/datepicker/datepicker.component.d.ts +1 -0
  55. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +3 -5
  56. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
  57. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +1 -1
  58. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +1 -2
  59. package/editor/README.md +8 -0
  60. package/empty-state/lib/empty-state/empty-state.component.d.ts +1 -1
  61. package/empty-state/lib/empty-state/empty-state.module.d.ts +1 -3
  62. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +1 -1
  63. package/esm2022/accordion/lib/accordion/accordion.component.mjs +3 -3
  64. package/esm2022/accordion/lib/accordion/accordion.module.mjs +4 -10
  65. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +17 -8
  66. package/esm2022/alert/lib/alert/alert.component.mjs +4 -4
  67. package/esm2022/alert/lib/alert/alert.module.mjs +4 -6
  68. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +4 -4
  69. package/esm2022/badge/lib/badge/badge.component.mjs +7 -6
  70. package/esm2022/badge/lib/badge/badge.module.mjs +4 -9
  71. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +3 -2
  72. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +4 -7
  73. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +6 -7
  74. package/esm2022/button/lib/button/button.component.mjs +3 -3
  75. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +3 -2
  76. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +4 -6
  77. package/esm2022/card/lib/card/card.component.mjs +4 -4
  78. package/esm2022/card/lib/card/card.module.mjs +4 -7
  79. package/esm2022/chat/lib/chat/chat.component.mjs +8 -7
  80. package/esm2022/chat/lib/chat/chat.module.mjs +7 -11
  81. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +6 -6
  82. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +4 -5
  83. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +6 -7
  84. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +4 -7
  85. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +5 -5
  86. package/esm2022/chips/lib/chips/chips/chips.component.mjs +7 -7
  87. package/esm2022/chips/lib/chips/chips.module.mjs +4 -10
  88. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +4 -4
  89. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +8 -11
  90. package/esm2022/code-editor/lib/code-editor/core/facades/core-facade.mjs +1 -7
  91. package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.mjs +22 -47
  92. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +4 -4
  93. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +4 -6
  94. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +3 -3
  95. package/esm2022/common/lib/svg-factory/components/senior-icon/senior-icon.component.mjs +3 -3
  96. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +4 -3
  97. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +4 -14
  98. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +28 -16
  99. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +4 -42
  100. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
  101. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +6 -9
  102. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -14
  103. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +6 -28
  104. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +6 -6
  105. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +9 -35
  106. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +6 -3
  107. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
  108. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +4 -6
  109. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +3 -3
  110. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
  111. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +5 -3
  112. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +3 -3
  113. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +3 -2
  114. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +4 -6
  115. package/esm2022/editor/lib/editor/editor.component.mjs +4 -4
  116. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +4 -4
  117. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +4 -7
  118. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +4 -4
  119. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +5 -5
  120. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +4 -7
  121. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +10 -11
  122. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +4 -11
  123. package/esm2022/gantt/lib/gantt/components/side-table/side-table.component.mjs +5 -5
  124. package/esm2022/gantt/lib/gantt/gantt.component.mjs +4 -4
  125. package/esm2022/gantt/lib/gantt/gantt.module.mjs +4 -12
  126. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +6 -7
  127. package/esm2022/global-search/lib/global-search/global-search.component.mjs +17 -10
  128. package/esm2022/global-search/lib/global-search/global-search.module.mjs +15 -33
  129. package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +5 -4
  130. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +4 -4
  131. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +4 -7
  132. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +5 -5
  133. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +3 -2
  134. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +5 -14
  135. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +7 -8
  136. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +4 -10
  137. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +4 -3
  138. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +4 -6
  139. package/esm2022/info-sign/lib/info-sign/components/info-sign/info-sign.component.mjs +6 -6
  140. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +4 -3
  141. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +4 -8
  142. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +14 -10
  143. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.mjs +7 -6
  144. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +6 -6
  145. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +34 -20
  146. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +6 -6
  147. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.mjs +7 -7
  148. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +16 -15
  149. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +3 -3
  150. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +4 -89
  151. package/esm2022/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.mjs +6 -6
  152. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +11 -10
  153. package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +7 -7
  154. package/esm2022/insights/lib/insights/insights.component.mjs +4 -5
  155. package/esm2022/insights/lib/insights/insights.module.mjs +4 -34
  156. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +18 -22
  157. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +9 -8
  158. package/esm2022/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +6 -6
  159. package/esm2022/kanban/lib/kanban/kanban.component.mjs +20 -11
  160. package/esm2022/kanban/lib/kanban/kanban.module.mjs +4 -41
  161. package/esm2022/label-value/lib/label-value/label-value.component.mjs +8 -8
  162. package/esm2022/label-value/lib/label-value/label-value.module.mjs +4 -10
  163. package/esm2022/lib/locale/fallback.mjs +3 -2
  164. package/esm2022/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.mjs +3 -3
  165. package/esm2022/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.mjs +4 -4
  166. package/esm2022/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.mjs +4 -4
  167. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +13 -7
  168. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +3 -2
  169. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +4 -20
  170. package/esm2022/locale/lib/locale/locale.module.mjs +6 -8
  171. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +6 -5
  172. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +16 -15
  173. package/esm2022/locale/lib/locale/pipes/localized-currency-impure.pipe.mjs +6 -5
  174. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +11 -10
  175. package/esm2022/locale/lib/locale/pipes/localized-date-impure.pipe.mjs +6 -5
  176. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +3 -2
  177. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +10 -7
  178. package/esm2022/locale/lib/locale/pipes/localized-time-impure.pipe.mjs +6 -5
  179. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +3 -2
  180. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +7 -4
  181. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +4 -6
  182. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +3 -3
  183. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +3 -2
  184. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +3 -2
  185. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +5 -7
  186. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +8 -8
  187. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +4 -8
  188. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +3 -2
  189. package/esm2022/number-input/lib/number-input/number-input.module.mjs +4 -6
  190. package/esm2022/numeric/lib/numeric.module.mjs +4 -6
  191. package/esm2022/numeric/lib/numeric.pipe.mjs +6 -3
  192. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +8 -3
  193. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +7 -8
  194. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +6 -8
  195. package/esm2022/object-card/lib/object-card/object-card.component.mjs +6 -6
  196. package/esm2022/object-card/lib/object-card/object-card.module.mjs +4 -10
  197. package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
  198. package/esm2022/panel/lib/panel/panel.component.mjs +15 -7
  199. package/esm2022/panel/lib/panel/panel.module.mjs +7 -10
  200. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +4 -4
  201. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +4 -3
  202. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +4 -7
  203. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +5 -6
  204. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +9 -10
  205. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +5 -11
  206. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -6
  207. package/esm2022/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.mjs +4 -4
  208. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +5 -5
  209. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +4 -9
  210. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +5 -5
  211. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +6 -14
  212. package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +3 -4
  213. package/esm2022/select/lib/select/select.component.mjs +3 -5
  214. package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +5 -5
  215. package/esm2022/select-button/lib/select-button/select-button.component.mjs +6 -6
  216. package/esm2022/select-button/lib/select-button/select-button.module.mjs +6 -13
  217. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +5 -5
  218. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +7 -10
  219. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +5 -5
  220. package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +4 -7
  221. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +6 -6
  222. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +7 -9
  223. package/esm2022/slider/lib/slider/slider.component.mjs +6 -6
  224. package/esm2022/slider/lib/slider/slider.module.mjs +6 -9
  225. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +4 -5
  226. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +5 -13
  227. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -5
  228. package/esm2022/split-button/lib/split-button/split-button.module.mjs +4 -6
  229. package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
  230. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +6 -6
  231. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +4 -8
  232. package/esm2022/stepper/lib/stepper/stepper.component.mjs +6 -6
  233. package/esm2022/stepper/lib/stepper/stepper.module.mjs +4 -7
  234. package/esm2022/structure/lib/structure/footer.component.mjs +3 -2
  235. package/esm2022/structure/lib/structure/header.component.mjs +5 -4
  236. package/esm2022/structure/lib/structure/structure.module.mjs +5 -7
  237. package/esm2022/switch/lib/switch/switch.component.mjs +4 -5
  238. package/esm2022/switch/lib/switch/switch.module.mjs +4 -6
  239. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +6 -3
  240. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +17 -9
  241. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +4 -4
  242. package/esm2022/table/lib/table/table.module.mjs +4 -34
  243. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +19 -16
  244. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +4 -8
  245. package/esm2022/template/lib/template/template.module.mjs +4 -5
  246. package/esm2022/text-area/lib/text-area/text-area.component.mjs +9 -9
  247. package/esm2022/text-area/lib/text-area.module.mjs +5 -24
  248. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +5 -5
  249. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +7 -9
  250. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.mjs +6 -6
  251. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.mjs +9 -9
  252. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +25 -14
  253. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +4 -4
  254. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +6 -14
  255. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +7 -7
  256. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +3 -3
  257. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +4 -4
  258. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +6 -6
  259. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +4 -3
  260. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +4 -20
  261. package/esm2022/tile/lib/tile/tile.component.mjs +6 -6
  262. package/esm2022/tile/lib/tile/tile.module.mjs +4 -7
  263. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.mjs +6 -6
  264. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.mjs +5 -5
  265. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.mjs +4 -4
  266. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.mjs +5 -5
  267. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.mjs +3 -3
  268. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.mjs +5 -5
  269. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.mjs +7 -7
  270. package/esm2022/timeline/lib/timeline/timeline.component.mjs +5 -6
  271. package/esm2022/timeline/lib/timeline/timeline.module.mjs +4 -20
  272. package/esm2022/toast/lib/toast/toast.component.mjs +4 -4
  273. package/esm2022/toast/lib/toast/toast.module.mjs +6 -7
  274. package/esm2022/token-list/lib/token-list/token-list.component.mjs +4 -4
  275. package/esm2022/token-list/lib/token-list/token-list.module.mjs +4 -6
  276. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +3 -4
  277. package/esm2022/topbar/lib/topbar/topbar.component.mjs +3 -3
  278. package/esm2022/topbar/lib/topbar/topbar.module.mjs +7 -10
  279. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +6 -5
  280. package/esm2022/tree/lib/tree/tree.component.mjs +5 -5
  281. package/esm2022/tree/lib/tree/tree.module.mjs +4 -10
  282. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +5 -5
  283. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +4 -6
  284. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +20 -17
  285. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-alert.mjs +6 -8
  287. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +3 -3
  289. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-badge.mjs +8 -12
  291. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -7
  293. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -6
  295. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
  297. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +5 -6
  299. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -9
  301. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-chat.mjs +15 -16
  303. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -10
  305. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +3 -4
  307. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-chips.mjs +14 -18
  309. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +26 -59
  311. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +6 -8
  313. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-common.mjs +9 -16
  315. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +28 -52
  317. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +5 -8
  319. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -37
  321. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +12 -35
  323. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +5 -2
  325. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +2 -2
  327. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -11
  329. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +5 -6
  331. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-editor.mjs +3 -3
  333. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +8 -11
  335. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +6 -9
  337. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +11 -18
  339. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +9 -16
  341. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -47
  343. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +8 -10
  345. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +10 -17
  347. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +8 -14
  349. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +5 -6
  351. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +9 -11
  353. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +64 -121
  355. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -47
  357. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +86 -113
  359. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +10 -16
  361. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +40 -46
  363. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-locale.mjs +40 -31
  365. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +9 -8
  367. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-mask.mjs +4 -3
  369. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  370. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +55 -56
  371. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  372. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +9 -13
  373. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  374. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +6 -6
  375. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  376. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +7 -2
  377. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  378. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +8 -7
  379. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  380. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +14 -21
  381. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  382. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
  383. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  384. package/fesm2022/seniorsistemas-angular-components-panel.mjs +17 -11
  385. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  386. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +8 -9
  387. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  388. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +4 -5
  389. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  390. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +11 -17
  391. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  392. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +15 -15
  393. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  394. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +8 -15
  395. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  396. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +9 -15
  397. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  398. package/fesm2022/seniorsistemas-angular-components-select.mjs +4 -6
  399. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  400. package/fesm2022/seniorsistemas-angular-components-shared.mjs +8 -11
  401. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  402. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +7 -10
  403. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  404. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -9
  405. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  406. package/fesm2022/seniorsistemas-angular-components-slider.mjs +8 -11
  407. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  408. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -15
  409. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  410. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +6 -8
  411. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  412. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
  413. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  414. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +8 -12
  415. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  416. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +8 -11
  417. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  418. package/fesm2022/seniorsistemas-angular-components-structure.mjs +18 -18
  419. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  420. package/fesm2022/seniorsistemas-angular-components-switch.mjs +6 -9
  421. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  422. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +20 -21
  423. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  424. package/fesm2022/seniorsistemas-angular-components-table.mjs +27 -45
  425. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  426. package/fesm2022/seniorsistemas-angular-components-template.mjs +3 -4
  427. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  428. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +12 -30
  429. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  430. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -8
  431. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  432. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +45 -37
  433. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  434. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +14 -25
  435. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  436. package/fesm2022/seniorsistemas-angular-components-tile.mjs +8 -12
  437. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  438. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +58 -124
  439. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  440. package/fesm2022/seniorsistemas-angular-components-toast.mjs +4 -5
  441. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  442. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -8
  443. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  444. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -2
  445. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  446. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +5 -8
  447. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  448. package/fesm2022/seniorsistemas-angular-components-tree.mjs +10 -13
  449. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  450. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +6 -8
  451. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  452. package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
  453. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  454. package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
  455. package/fieldset/lib/fieldset/fieldset.module.d.ts +1 -3
  456. package/file-picker/lib/file-picker/file-picker.component.d.ts +1 -1
  457. package/file-picker/lib/file-picker/file-picker.module.d.ts +1 -7
  458. package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +1 -1
  459. package/gantt/lib/gantt/gantt.component.d.ts +1 -1
  460. package/gantt/lib/gantt/gantt.module.d.ts +1 -4
  461. package/global-search/README.md +12 -1
  462. package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +1 -1
  463. package/global-search/lib/global-search/global-search.component.d.ts +1 -1
  464. package/global-search/lib/global-search/global-search.module.d.ts +8 -12
  465. package/grid-menu/README.md +27 -2
  466. package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +1 -1
  467. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +1 -1
  468. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +1 -3
  469. package/help-popover/README.md +2 -2
  470. package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +1 -1
  471. package/help-popover/lib/help-popover/help-popover.directive.d.ts +1 -1
  472. package/help-popover/lib/help-popover/help-popover.module.d.ts +2 -5
  473. package/ia-insight/README.md +1 -1
  474. package/image-cropper/README.md +2 -2
  475. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +1 -1
  476. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +3 -8
  477. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
  478. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +1 -2
  479. package/info-sign/README.md +1 -1
  480. package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +2 -2
  481. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -1
  482. package/info-sign/lib/info-sign/info-sign.module.d.ts +1 -4
  483. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +7 -6
  484. package/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.d.ts +4 -4
  485. package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +4 -4
  486. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +5 -4
  487. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +4 -4
  488. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +4 -4
  489. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +5 -4
  490. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +1 -1
  491. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +1 -23
  492. package/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.d.ts +1 -1
  493. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +2 -1
  494. package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +1 -1
  495. package/insights/lib/insights/insights.component.d.ts +1 -1
  496. package/insights/lib/insights/insights.module.d.ts +3 -12
  497. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +5 -5
  498. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +4 -4
  499. package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +1 -1
  500. package/kanban/lib/kanban/kanban.component.d.ts +1 -1
  501. package/kanban/lib/kanban/kanban.module.d.ts +3 -13
  502. package/label-value/lib/label-value/label-value.component.d.ts +1 -1
  503. package/label-value/lib/label-value/label-value.module.d.ts +1 -6
  504. package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +1 -1
  505. package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +1 -1
  506. package/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.d.ts +1 -1
  507. package/loading-state/lib/loading-state/loading-state.component.d.ts +1 -1
  508. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -1
  509. package/loading-state/lib/loading-state/loading-state.module.d.ts +1 -6
  510. package/locale/lib/locale/locale.module.d.ts +1 -2
  511. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +3 -3
  512. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +3 -3
  513. package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +3 -3
  514. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +3 -3
  515. package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +3 -3
  516. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +1 -1
  517. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +2 -2
  518. package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +3 -3
  519. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +1 -1
  520. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +2 -1
  521. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +1 -2
  522. package/mask/lib/mask/mask-formatter.module.d.ts +1 -1
  523. package/mask/lib/mask/mask-formatter.pipe.d.ts +1 -1
  524. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +1 -1
  525. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +3 -4
  526. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -1
  527. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +1 -4
  528. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  529. package/number-input/lib/number-input/number-input.module.d.ts +1 -2
  530. package/numeric/lib/numeric.module.d.ts +1 -2
  531. package/numeric/lib/numeric.pipe.d.ts +1 -1
  532. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +1 -0
  533. package/object-card/README.md +13 -1
  534. package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +1 -1
  535. package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +1 -1
  536. package/object-card/lib/object-card/object-card.component.d.ts +1 -1
  537. package/object-card/lib/object-card/object-card.module.d.ts +5 -10
  538. package/package.json +13 -13
  539. package/panel/lib/panel/panel.component.d.ts +6 -1
  540. package/panel/lib/panel/panel.module.d.ts +2 -4
  541. package/password-strength/lib/password-strength/password-strength.component.d.ts +1 -1
  542. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -1
  543. package/password-strength/lib/password-strength/password-strength.module.d.ts +2 -4
  544. package/picklist/README.md +74 -2
  545. package/product-header/README.md +1 -1
  546. package/profile-picture-picker/README.md +1 -1
  547. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +1 -1
  548. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +1 -7
  549. package/progressbar/README.md +0 -1
  550. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +2 -1
  551. package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +1 -1
  552. package/progressbar/lib/progressbar/progressbar.component.d.ts +1 -1
  553. package/progressbar/lib/progressbar/progressbar.module.d.ts +1 -5
  554. package/radio-button/README.md +0 -1
  555. package/rating-scale/README.md +1 -1
  556. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +2 -2
  557. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +1 -3
  558. package/select/lib/select/select.component.d.ts +1 -1
  559. package/select-button/README.md +1 -1
  560. package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +1 -1
  561. package/select-button/lib/select-button/select-button.component.d.ts +1 -1
  562. package/select-button/lib/select-button/select-button.module.d.ts +1 -3
  563. package/shared/lib/shared/border-button/border-button.component.d.ts +1 -1
  564. package/shared/lib/shared/border-button/border-button.module.d.ts +1 -3
  565. package/sidebar/lib/sidebar/sidebar.component.d.ts +1 -1
  566. package/sidebar/lib/sidebar/sidebar.module.d.ts +2 -4
  567. package/slide-in-bar/README.md +1 -1
  568. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +1 -1
  569. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +1 -2
  570. package/slider/README.md +1 -1
  571. package/slider/lib/slider/slider.component.d.ts +1 -1
  572. package/slider/lib/slider/slider.module.d.ts +1 -3
  573. package/speech-recognition/README.md +1 -1
  574. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +1 -1
  575. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +1 -3
  576. package/split-button/README.md +1 -1
  577. package/split-button/lib/split-button/split-button.component.d.ts +1 -1
  578. package/split-button/lib/split-button/split-button.module.d.ts +1 -2
  579. package/spotlight/README.md +1 -1
  580. package/star-rating/README.md +1 -1
  581. package/stats-card/README.md +1 -1
  582. package/stats-card/lib/stats-card/stats-card.component.d.ts +1 -1
  583. package/stats-card/lib/stats-card/stats-card.module.d.ts +1 -4
  584. package/stepper/lib/stepper/stepper.component.d.ts +1 -1
  585. package/stepper/lib/stepper/stepper.module.d.ts +1 -3
  586. package/structure/lib/structure/footer.component.d.ts +1 -1
  587. package/structure/lib/structure/header.component.d.ts +1 -1
  588. package/structure/lib/structure/structure.module.d.ts +1 -2
  589. package/switch/lib/switch/switch.component.d.ts +1 -1
  590. package/switch/lib/switch/switch.module.d.ts +1 -2
  591. package/table/README.md +9 -8
  592. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  593. package/table/lib/table/table-column/table-columns.component.d.ts +1 -1
  594. package/table/lib/table/table-paging/table-paging.component.d.ts +1 -1
  595. package/table/lib/table/table.module.d.ts +5 -12
  596. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  597. package/table-header/lib/table-header/table-header-checkox.module.d.ts +1 -4
  598. package/template/README.md +177 -0
  599. package/template/lib/template/template.module.d.ts +2 -3
  600. package/text-area/lib/text-area/text-area.component.d.ts +1 -1
  601. package/text-area/lib/text-area.module.d.ts +1 -5
  602. package/text-area-ia/README.md +1 -1
  603. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -1
  604. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +1 -2
  605. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  606. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +2 -2
  607. package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +5 -4
  608. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +1 -1
  609. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +1 -8
  610. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -1
  611. package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +1 -1
  612. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +1 -1
  613. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +1 -1
  614. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -1
  615. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +1 -6
  616. package/tile/lib/tile/tile.component.d.ts +1 -1
  617. package/tile/lib/tile/tile.module.d.ts +3 -5
  618. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +1 -1
  619. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +1 -1
  620. package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +1 -1
  621. package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +1 -1
  622. package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +1 -1
  623. package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +1 -1
  624. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +1 -1
  625. package/timeline/lib/timeline/timeline.component.d.ts +1 -1
  626. package/timeline/lib/timeline/timeline.module.d.ts +1 -5
  627. package/toast/lib/toast/toast.component.d.ts +1 -1
  628. package/toast/lib/toast/toast.module.d.ts +3 -3
  629. package/token-list/lib/token-list/token-list.component.d.ts +1 -1
  630. package/token-list/lib/token-list/token-list.module.d.ts +1 -2
  631. package/tooltip/lib/tooltip/tooltip.module.d.ts +1 -2
  632. package/topbar/lib/topbar/topbar.component.d.ts +1 -1
  633. package/topbar/lib/topbar/topbar.module.d.ts +3 -5
  634. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -1
  635. package/tree/lib/tree/tree.component.d.ts +1 -1
  636. package/tree/lib/tree/tree.module.d.ts +1 -6
  637. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -1
  638. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +1 -2
  639. package/esm2022/insights/lib/insights/components/insights-card/components/index.mjs +0 -2
  640. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.mjs +0 -20
  641. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.mjs +0 -19
  642. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.mjs +0 -33
  643. package/insights/lib/insights/components/insights-card/components/index.d.ts +0 -1
  644. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -10
  645. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -9
  646. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -13
@@ -1,30 +1,23 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, Injector, viewChild, input, forwardRef, Component, ViewEncapsulation, Input, NgModule } from '@angular/core';
2
+ import { inject, Injectable, Injector, DestroyRef, viewChild, input, forwardRef, Component, ViewEncapsulation, Input, NgModule } from '@angular/core';
3
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
4
  import * as i2 from '@angular/forms';
4
5
  import { FormBuilder, FormGroup, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import * as i10 from '@ngx-translate/core';
6
- import { TranslateService, TranslateModule } from '@ngx-translate/core';
6
+ import { TranslateService, TranslatePipe } from '@ngx-translate/core';
7
7
  import * as i1 from '@seniorsistemas/angular-components/common/deprecated-selector';
8
8
  import { DEPRECATED_CONFIG, DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';
9
9
  import { SpeechRecognitionService } from '@seniorsistemas/angular-components/speech-recognition';
10
+ import { TextAreaComponent } from '@seniorsistemas/angular-components/text-area';
10
11
  import { throwError } from 'rxjs';
11
12
  import { catchError } from 'rxjs/operators';
12
13
  import { HttpClient } from '@angular/common/http';
13
14
  import { ToastService } from '@seniorsistemas/angular-components/toast';
14
- import * as i3 from '@seniorsistemas/angular-components/button';
15
- import { ButtonModule } from '@seniorsistemas/angular-components/button';
16
- import * as i4 from '@seniorsistemas/angular-components/loading-state';
17
- import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
18
- import * as i5 from '@angular/common';
19
- import { NgTemplateOutlet } from '@angular/common';
20
- import * as i6 from '@seniorsistemas/angular-components/text-area';
21
- import { TextAreaModule } from '@seniorsistemas/angular-components/text-area';
22
- import * as i7 from '@seniorsistemas/angular-components/dialog';
15
+ import { LoadingStateComponent } from '@seniorsistemas/angular-components/loading-state';
23
16
  import { DialogComponent } from '@seniorsistemas/angular-components/dialog';
24
- import * as i8 from '@seniorsistemas/angular-components/template';
25
- import { TemplateModule } from '@seniorsistemas/angular-components/template';
26
- import * as i9 from '@seniorsistemas/angular-components/common';
27
- import { SVGFactoryModule } from '@seniorsistemas/angular-components/common';
17
+ import { TemplateDirective } from '@seniorsistemas/angular-components/template';
18
+ import { NgTemplateOutlet } from '@angular/common';
19
+ import { ButtonComponent } from '@seniorsistemas/angular-components/button';
20
+ import { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';
28
21
 
29
22
  /* eslint-disable max-len */
30
23
  class IAssistService {
@@ -118,6 +111,7 @@ class ContentGeneratorComponent {
118
111
  _translateService = inject(TranslateService);
119
112
  speechRecognitionService = inject(SpeechRecognitionService);
120
113
  injector = inject(Injector);
114
+ _destroyRef = inject(DestroyRef);
121
115
  textArea = viewChild('textAreaElement');
122
116
  static id = 0;
123
117
  /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
@@ -197,7 +191,7 @@ class ContentGeneratorComponent {
197
191
  .pipe(catchError((err) => {
198
192
  this.isLoading = false;
199
193
  return throwError(() => new Error(err.message));
200
- }))
194
+ }), takeUntilDestroyed(this._destroyRef))
201
195
  .subscribe((res) => {
202
196
  this.value = res.text;
203
197
  this._onChange?.(this.value);
@@ -211,7 +205,7 @@ class ContentGeneratorComponent {
211
205
  });
212
206
  }
213
207
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
214
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: ContentGeneratorComponent, selector: "s-content-generator, s-text-area-ia", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, prompt: { classPropertyName: "prompt", publicName: "prompt", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: false, isRequired: false, transformFunction: null }, cols: { classPropertyName: "cols", publicName: "cols", isSignal: false, isRequired: false, transformFunction: null }, speechRecognition: { classPropertyName: "speechRecognition", publicName: "speechRecognition", isSignal: false, isRequired: false, transformFunction: null }, keepContext: { classPropertyName: "keepContext", publicName: "keepContext", isSignal: false, isRequired: false, transformFunction: null }, speechRecognitionPlaceholder: { classPropertyName: "speechRecognitionPlaceholder", publicName: "speechRecognitionPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: false, isRequired: false, transformFunction: null }, textAreaStyle: { classPropertyName: "textAreaStyle", publicName: "textAreaStyle", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
208
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: ContentGeneratorComponent, isStandalone: true, selector: "s-content-generator, s-text-area-ia", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, prompt: { classPropertyName: "prompt", publicName: "prompt", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: false, isRequired: false, transformFunction: null }, cols: { classPropertyName: "cols", publicName: "cols", isSignal: false, isRequired: false, transformFunction: null }, speechRecognition: { classPropertyName: "speechRecognition", publicName: "speechRecognition", isSignal: false, isRequired: false, transformFunction: null }, keepContext: { classPropertyName: "keepContext", publicName: "keepContext", isSignal: false, isRequired: false, transformFunction: null }, speechRecognitionPlaceholder: { classPropertyName: "speechRecognitionPlaceholder", publicName: "speechRecognitionPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: false, isRequired: false, transformFunction: null }, textAreaStyle: { classPropertyName: "textAreaStyle", publicName: "textAreaStyle", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
215
209
  {
216
210
  provide: NG_VALUE_ACCESSOR,
217
211
  useExisting: forwardRef(() => ContentGeneratorComponent),
@@ -225,7 +219,7 @@ class ContentGeneratorComponent {
225
219
  removalVersion: '20.0.0',
226
220
  },
227
221
  },
228
- ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: i4.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i7.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: i8.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: i9.SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
222
+ ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "component", type: LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading", "progressBarMode", "progressBarValue", "progressBarLabel"] }, { kind: "component", type: DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside", "closeAriaLabel"], outputs: ["visibleChange"] }, { kind: "directive", type: TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: SVGFactoryDirective, selector: "[sSVGFactory]", inputs: ["sSVGFactory"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
229
223
  }
230
224
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorComponent, decorators: [{
231
225
  type: Component,
@@ -243,7 +237,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
243
237
  removalVersion: '20.0.0',
244
238
  },
245
239
  },
246
- ], hostDirectives: [DeprecatedSelectorDirective], encapsulation: ViewEncapsulation.None, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"] }]
240
+ ], hostDirectives: [DeprecatedSelectorDirective], encapsulation: ViewEncapsulation.None, standalone: true, imports: [
241
+ LoadingStateComponent,
242
+ DialogComponent,
243
+ TemplateDirective,
244
+ NgTemplateOutlet,
245
+ FormsModule,
246
+ ReactiveFormsModule,
247
+ TextAreaComponent,
248
+ ButtonComponent,
249
+ SVGFactoryDirective,
250
+ TranslatePipe,
251
+ ], template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n", styles: ["s-content-generator.ng-invalid.ng-dirty .textarea-ia textarea,s-text-area-ia.ng-invalid.ng-dirty .textarea-ia textarea{border-color:#c13018}.footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"] }]
247
252
  }], propDecorators: { id: [{
248
253
  type: Input
249
254
  }], label: [{
@@ -270,42 +275,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
270
275
 
271
276
  class ContentGeneratorModule {
272
277
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
273
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, declarations: [ContentGeneratorComponent], imports: [FormsModule,
274
- ReactiveFormsModule,
275
- TranslateModule,
276
- ButtonModule,
277
- LoadingStateModule,
278
- NgTemplateOutlet,
279
- TextAreaModule,
280
- DialogComponent,
281
- TemplateModule,
282
- SVGFactoryModule], exports: [ContentGeneratorComponent] });
283
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, imports: [FormsModule,
284
- ReactiveFormsModule,
285
- TranslateModule,
286
- ButtonModule,
287
- LoadingStateModule,
288
- TextAreaModule,
289
- DialogComponent,
290
- TemplateModule,
291
- SVGFactoryModule] });
278
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, imports: [ContentGeneratorComponent], exports: [ContentGeneratorComponent] });
279
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, imports: [ContentGeneratorComponent] });
292
280
  }
293
281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentGeneratorModule, decorators: [{
294
282
  type: NgModule,
295
283
  args: [{
296
- imports: [
297
- FormsModule,
298
- ReactiveFormsModule,
299
- TranslateModule,
300
- ButtonModule,
301
- LoadingStateModule,
302
- NgTemplateOutlet,
303
- TextAreaModule,
304
- DialogComponent,
305
- TemplateModule,
306
- SVGFactoryModule,
307
- ],
308
- declarations: [ContentGeneratorComponent],
284
+ imports: [ContentGeneratorComponent],
309
285
  exports: [ContentGeneratorComponent],
310
286
  }]
311
287
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-content-generator.mjs","sources":["../../projects/angular-components/content-generator/src/lib/services/IAssist/iassist.service.ts","../../projects/angular-components/content-generator/src/lib/content-generator/content-generator.component.ts","../../projects/angular-components/content-generator/src/lib/content-generator/content-generator.component.html","../../projects/angular-components/content-generator/src/lib/content-generator/content-generator.module.ts","../../projects/angular-components/content-generator/src/seniorsistemas-angular-components-content-generator.ts"],"sourcesContent":["/* eslint-disable max-len */\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { IAssistInputData } from './models/iassist-input-data';\nimport { IAssistResponse } from './models/iassist-response';\nimport { ToastService } from \"@seniorsistemas/angular-components/toast\";\n\n@Injectable({ providedIn: 'root' })\nexport class IAssistService {\n\tprivate readonly http = inject(HttpClient);\n\tprivate readonly toastService = inject(ToastService);\n\n\n\tpublic askIA(context: string, data: IAssistInputData): Observable<IAssistResponse> {\n\t\tconst prompt: string = data.prompt\n\t\t\t? this._replacePlaceholder(context, data)\n\t\t\t: this._createPrompt(context, data);\n\n\t\treturn this.http\n\t\t\t.post<IAssistResponse>('platform/iassist/api/latest/completions', {\n\t\t\t\tprompt,\n\t\t\t\tprovider: 'OPEN_AI',\n\t\t\t\tparameters: {\n\t\t\t\t\tmodel: 'gpt-3.5-turbo',\n\t\t\t\t\tmax_tokens: 700,\n\t\t\t\t\ttemperature: 1,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(\n\t\t\t\tcatchError((err: HttpErrorResponse) => {\n\t\t\t\t\tthis.toastService.show({\n\t\t\t\t\t\tseverity: 'error',\n\t\t\t\t\t\ttitle: err.status ? String(err.status) : 'Error',\n\t\t\t\t\t\ttext: (err.error && err.error.message) || err.statusText || err.message || 'Error',\n\t\t\t\t\t});\n\t\t\t\t\treturn throwError(() => new Error(err.message));\n\t\t\t\t}),\n\t\t\t);\n\t}\n\n\tprivate _replacePlaceholder(context: string, data: IAssistInputData): string {\n\t\tconst values = { ...data, context };\n\t\tdelete (values as Partial<IAssistInputData>).prompt;\n\n\t\tlet result = data.prompt;\n\t\tfor (const key in { ...values, context: context }) {\n\t\t\tconst placeholder = new RegExp(`{{\\\\s*${key}\\\\s*}}`, 'g');\n\t\t\tresult = result.replace(placeholder, values[key as keyof typeof values]);\n\t\t}\n\n\t\tconsole.log('prompt', result);\n\t\treturn result;\n\t}\n\n\tprivate _createPrompt(context: string, data: IAssistInputData): string {\n\t\treturn `Crie um texto genérico para preencher o campo de textarea.\n ${data.label ? `O campo tem o label ${data.label}.` : ''}\n ${data.id ? `O campo tem o id ${data.id}.` : ''}\n ${data.placeholder ? `Considere as instruções/sugestões do placeholder: ${data.placeholder}.` : ''}\n Baseie-se no contexto informado pelo usuário: '${context}'.\n O texto deve ser formal e conter informações pertinentes a um campo como este, como se um usuário real tivesse preenchido com as informações necessárias.\n O texto deve ser neutro com relação a generos, raças, religiões, etc.\n O texto deve ser impessoal e não deve conter informações pessoais do usuário.\n Não direcione o texto a ninguém, não use expressões como: caro, atenciosamente. gostaria, agradeço. O texto deve ser genérico.\n\n Exemplos de texto:\n Um campo de descrição de usuário: \"Usuário com 20 anos, estudante de engenharia, gosta de jogar futebol e assistir filmes.\"\n Outro exemplo de descrição de usuário: \"Usuário administrador, com acesso total ao sistema, responsável por gerenciar os usuários e os produtos.\"\n Um campo de descrição de um produto: \"O produto é um celular, com tela de 6 polegadas, 128GB de armazenamento, 4GB de memória RAM, câmera de 12MP e bateria de 4000mAh.\"\n Outro exemplo de descrição de produto: \"O produto é uma geladeira, com capacidade de 500 litros, 2 portas, cor branca, com freezer e gaveta de legumes.\"\n Outro exemplo de descrição de produto: \"O produto é uma camiseta, tamanho M, cor azul, 100% algodão, com estampa de um gato.\"\n\n Em caso de contexto incompleto crie um texto genérico, como se fosse um exemplo de preenchimento do campo.\n O texto é para um campo de textarea, então escreva um texto sucinto.\n Exiba apenas o texto do output`;\n\t}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, forwardRef, input, Input, OnInit, viewChild, ViewEncapsulation, inject } from '@angular/core';\n\nimport { Injector } from '@angular/core';\n\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n DEPRECATED_CONFIG,\n DeprecatedSelectorDirective,\n} from '@seniorsistemas/angular-components/common/deprecated-selector';\nimport { SpeechRecognitionService } from '@seniorsistemas/angular-components/speech-recognition';\nimport { TextAreaComponent } from '@seniorsistemas/angular-components/text-area';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { IAssistService } from '../services/IAssist/iassist.service';\nimport { IAssistResponse } from '../services/IAssist/models/iassist-response';\n\n/**\n * @description Componente de área de texto com geração de conteúdo por inteligência artificial.\n * Integra-se ao serviço IAssist para sugerir e completar textos com base em um prompt configurável.\n * Suporta reconhecimento de voz opcional e mantém contexto entre gerações quando `keepContext` é `true`.\n * Implementa {@link ControlValueAccessor} para uso em formulários Angular.\n *\n * @example\n * ```html\n * <s-content-generator\n * formControlName=\"descricao\"\n * label=\"Descrição\"\n * prompt=\"Gere uma descrição para o produto\"\n * [rows]=\"5\"\n * [speechRecognition]=\"true\" />\n * ```\n *\n * @category Inputs\n */\n@Component({\n selector: 's-content-generator, s-text-area-ia',\n templateUrl: './content-generator.component.html',\n styleUrls: ['./content-generator.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ContentGeneratorComponent),\n multi: true,\n },\n {\n provide: DEPRECATED_CONFIG,\n useValue: {\n oldSelector: 's-text-area-ia',\n newSelector: 's-content-generator',\n removalVersion: '20.0.0',\n },\n },\n ],\n hostDirectives: [DeprecatedSelectorDirective],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ContentGeneratorComponent implements OnInit, ControlValueAccessor {\n private readonly _iassistService = inject(IAssistService);\n private readonly _formBuilder = inject(FormBuilder);\n private readonly _translateService = inject(TranslateService);\n speechRecognitionService = inject(SpeechRecognitionService);\n private injector = inject(Injector);\n\n textArea = viewChild<TextAreaComponent>('textAreaElement');\n private static id = 0;\n\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\n @Input()\n public id = `ContentGenerator_${ContentGeneratorComponent.id--}`;\n\n /** @description Label exibido acima da área de texto. */\n @Input()\n public label!: string;\n\n /** @description Texto de placeholder exibido na área de texto quando vazia. @default '' */\n @Input()\n public placeholder: string = '';\n\n /** @description Instrução (prompt) enviada ao serviço de IA para gerar o conteúdo sugerido. */\n @Input()\n public prompt!: string;\n\n /** @description Torna a área de texto somente leitura. @default false */\n @Input()\n public readonly: boolean = false;\n\n /** @description Número de linhas visíveis da área de texto. @default 10 */\n @Input()\n public rows: number = 10;\n\n /** @description Número de colunas visíveis da área de texto. @default 10 */\n @Input()\n public cols: number = 10;\n\n /** @description Habilita o botão de reconhecimento de voz para ditado de texto. @default false */\n @Input()\n public speechRecognition = false;\n\n /** @description Quando `true`, o histórico de gerações anteriores é enviado ao serviço de IA como contexto. @default false */\n @Input()\n public keepContext = false;\n\n /** @description Texto de placeholder exibido no campo de reconhecimento de voz. @default '' */\n @Input()\n speechRecognitionPlaceholder = '';\n\n /** @description Limite máximo de caracteres permitidos na área de texto. `null` desabilita o limite. @default null */\n @Input()\n maxLength: number | null = null;\n\n /** @description Estilos CSS inline aplicados à área de texto interna. */\n textAreaStyle = input<Partial<CSSStyleDeclaration>>({});\n\n public formGroup: FormGroup = new FormGroup({});\n public contextForm: FormGroup = new FormGroup({});\n public isVisible = false;\n public isLoading = false;\n public value = '';\n\n private _onChange?: (value: string) => void;\n private _onTouched?: () => void;\n\n public ngOnInit(): void {\n this._createDialogFormGroup();\n }\n\n public writeValue(value: string): void {\n this.value = value;\n }\n\n public registerOnChange(onChange: (value: string) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public onValueChange(value: string): void {\n this.value = value;\n this._onChange?.(value);\n }\n\n public showDialog(): void {\n this.isVisible = true;\n if (this._onTouched) {\n this._onTouched();\n }\n }\n\n public hideDialog(): void {\n this.isVisible = false;\n }\n\n public onHideDialog(): void {\n if (this.isVisible === false) {\n this.formGroup.get('context')?.setValue('');\n }\n }\n\n public submitContext(): void {\n const context = this.formGroup.get('context');\n if (!context) {\n return;\n }\n this.isLoading = true;\n\n this._iassistService\n .askIA(context.value, {\n id: this.id,\n label: this.label,\n placeholder: this.placeholder,\n prompt: this.prompt,\n })\n .pipe(\n catchError((err: HttpErrorResponse) => {\n this.isLoading = false;\n return throwError(() => new Error(err.message));\n }),\n )\n .subscribe((res: IAssistResponse) => {\n this.value = res.text;\n this._onChange?.(this.value);\n this.isLoading = false;\n });\n\n this.hideDialog();\n }\n\n private _createDialogFormGroup(): void {\n this.formGroup = this._formBuilder.group({\n context: [''],\n });\n }\n}\n\n","<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { SVGFactoryModule } from '@seniorsistemas/angular-components/common';\nimport { DialogComponent } from '@seniorsistemas/angular-components/dialog';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\nimport { TextAreaModule } from '@seniorsistemas/angular-components/text-area';\nimport { ContentGeneratorComponent } from './content-generator.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n ButtonModule,\n LoadingStateModule,\n NgTemplateOutlet,\n TextAreaModule,\n DialogComponent,\n TemplateModule,\n SVGFactoryModule,\n ],\n declarations: [ContentGeneratorComponent],\n exports: [ContentGeneratorComponent],\n})\nexport class ContentGeneratorModule {}\n\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-content-generator.mjs","sources":["../../projects/angular-components/content-generator/src/lib/services/IAssist/iassist.service.ts","../../projects/angular-components/content-generator/src/lib/content-generator/content-generator.component.ts","../../projects/angular-components/content-generator/src/lib/content-generator/content-generator.component.html","../../projects/angular-components/content-generator/src/lib/content-generator/content-generator.module.ts","../../projects/angular-components/content-generator/src/seniorsistemas-angular-components-content-generator.ts"],"sourcesContent":["/* eslint-disable max-len */\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { IAssistInputData } from './models/iassist-input-data';\nimport { IAssistResponse } from './models/iassist-response';\nimport { ToastService } from \"@seniorsistemas/angular-components/toast\";\n\n@Injectable({ providedIn: 'root' })\nexport class IAssistService {\n\tprivate readonly http = inject(HttpClient);\n\tprivate readonly toastService = inject(ToastService);\n\n\n\tpublic askIA(context: string, data: IAssistInputData): Observable<IAssistResponse> {\n\t\tconst prompt: string = data.prompt\n\t\t\t? this._replacePlaceholder(context, data)\n\t\t\t: this._createPrompt(context, data);\n\n\t\treturn this.http\n\t\t\t.post<IAssistResponse>('platform/iassist/api/latest/completions', {\n\t\t\t\tprompt,\n\t\t\t\tprovider: 'OPEN_AI',\n\t\t\t\tparameters: {\n\t\t\t\t\tmodel: 'gpt-3.5-turbo',\n\t\t\t\t\tmax_tokens: 700,\n\t\t\t\t\ttemperature: 1,\n\t\t\t\t},\n\t\t\t})\n\t\t\t.pipe(\n\t\t\t\tcatchError((err: HttpErrorResponse) => {\n\t\t\t\t\tthis.toastService.show({\n\t\t\t\t\t\tseverity: 'error',\n\t\t\t\t\t\ttitle: err.status ? String(err.status) : 'Error',\n\t\t\t\t\t\ttext: (err.error && err.error.message) || err.statusText || err.message || 'Error',\n\t\t\t\t\t});\n\t\t\t\t\treturn throwError(() => new Error(err.message));\n\t\t\t\t}),\n\t\t\t);\n\t}\n\n\tprivate _replacePlaceholder(context: string, data: IAssistInputData): string {\n\t\tconst values = { ...data, context };\n\t\tdelete (values as Partial<IAssistInputData>).prompt;\n\n\t\tlet result = data.prompt;\n\t\tfor (const key in { ...values, context: context }) {\n\t\t\tconst placeholder = new RegExp(`{{\\\\s*${key}\\\\s*}}`, 'g');\n\t\t\tresult = result.replace(placeholder, values[key as keyof typeof values]);\n\t\t}\n\n\t\tconsole.log('prompt', result);\n\t\treturn result;\n\t}\n\n\tprivate _createPrompt(context: string, data: IAssistInputData): string {\n\t\treturn `Crie um texto genérico para preencher o campo de textarea.\n ${data.label ? `O campo tem o label ${data.label}.` : ''}\n ${data.id ? `O campo tem o id ${data.id}.` : ''}\n ${data.placeholder ? `Considere as instruções/sugestões do placeholder: ${data.placeholder}.` : ''}\n Baseie-se no contexto informado pelo usuário: '${context}'.\n O texto deve ser formal e conter informações pertinentes a um campo como este, como se um usuário real tivesse preenchido com as informações necessárias.\n O texto deve ser neutro com relação a generos, raças, religiões, etc.\n O texto deve ser impessoal e não deve conter informações pessoais do usuário.\n Não direcione o texto a ninguém, não use expressões como: caro, atenciosamente. gostaria, agradeço. O texto deve ser genérico.\n\n Exemplos de texto:\n Um campo de descrição de usuário: \"Usuário com 20 anos, estudante de engenharia, gosta de jogar futebol e assistir filmes.\"\n Outro exemplo de descrição de usuário: \"Usuário administrador, com acesso total ao sistema, responsável por gerenciar os usuários e os produtos.\"\n Um campo de descrição de um produto: \"O produto é um celular, com tela de 6 polegadas, 128GB de armazenamento, 4GB de memória RAM, câmera de 12MP e bateria de 4000mAh.\"\n Outro exemplo de descrição de produto: \"O produto é uma geladeira, com capacidade de 500 litros, 2 portas, cor branca, com freezer e gaveta de legumes.\"\n Outro exemplo de descrição de produto: \"O produto é uma camiseta, tamanho M, cor azul, 100% algodão, com estampa de um gato.\"\n\n Em caso de contexto incompleto crie um texto genérico, como se fosse um exemplo de preenchimento do campo.\n O texto é para um campo de textarea, então escreva um texto sucinto.\n Exiba apenas o texto do output`;\n\t}\n}\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport {\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n input,\r\n Input,\r\n OnInit,\r\n viewChild,\r\n ViewEncapsulation,\r\n inject,\r\n} from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { Injector } from '@angular/core';\r\n\r\nimport {\r\n ControlValueAccessor,\r\n FormBuilder,\r\n FormGroup,\r\n NG_VALUE_ACCESSOR,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n} from '@angular/forms';\r\n\r\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\r\nimport {\r\n DEPRECATED_CONFIG,\r\n DeprecatedSelectorDirective,\r\n} from '@seniorsistemas/angular-components/common/deprecated-selector';\r\nimport { SpeechRecognitionService } from '@seniorsistemas/angular-components/speech-recognition';\r\nimport {\r\n TextAreaComponent,\r\n TextAreaComponent as TextAreaComponent_1,\r\n} from '@seniorsistemas/angular-components/text-area';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { IAssistService } from '../services/IAssist/iassist.service';\r\nimport { IAssistResponse } from '../services/IAssist/models/iassist-response';\r\nimport { LoadingStateComponent } from '@seniorsistemas/angular-components/loading-state';\r\nimport { DialogComponent } from '@seniorsistemas/angular-components/dialog';\r\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\r\nimport { SVGFactoryDirective } from '@seniorsistemas/angular-components/common';\r\n\r\n/**\r\n * @description Componente de área de texto com geração de conteúdo por inteligência artificial.\r\n * Integra-se ao serviço IAssist para sugerir e completar textos com base em um prompt configurável.\r\n * Suporta reconhecimento de voz opcional e mantém contexto entre gerações quando `keepContext` é `true`.\r\n * Implementa {@link ControlValueAccessor} para uso em formulários Angular.\r\n *\r\n * @example\r\n * ```html\r\n * <s-content-generator\r\n * formControlName=\"descricao\"\r\n * label=\"Descrição\"\r\n * prompt=\"Gere uma descrição para o produto\"\r\n * [rows]=\"5\"\r\n * [speechRecognition]=\"true\" />\r\n * ```\r\n *\r\n * @category Inputs\r\n */\r\n@Component({\r\n selector: 's-content-generator, s-text-area-ia',\r\n templateUrl: './content-generator.component.html',\r\n styleUrls: ['./content-generator.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ContentGeneratorComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: DEPRECATED_CONFIG,\r\n useValue: {\r\n oldSelector: 's-text-area-ia',\r\n newSelector: 's-content-generator',\r\n removalVersion: '20.0.0',\r\n },\r\n },\r\n ],\r\n hostDirectives: [DeprecatedSelectorDirective],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [\r\n LoadingStateComponent,\r\n DialogComponent,\r\n TemplateDirective,\r\n NgTemplateOutlet,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n TextAreaComponent_1,\r\n ButtonComponent,\r\n SVGFactoryDirective,\r\n TranslatePipe,\r\n ],\r\n})\r\nexport class ContentGeneratorComponent implements OnInit, ControlValueAccessor {\r\n private readonly _iassistService = inject(IAssistService);\r\n private readonly _formBuilder = inject(FormBuilder);\r\n private readonly _translateService = inject(TranslateService);\r\n speechRecognitionService = inject(SpeechRecognitionService);\r\n private injector = inject(Injector);\r\n private readonly _destroyRef = inject(DestroyRef);\r\n\r\n textArea = viewChild<TextAreaComponent>('textAreaElement');\r\n private static id = 0;\r\n\r\n /** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */\r\n @Input()\r\n public id = `ContentGenerator_${ContentGeneratorComponent.id--}`;\r\n\r\n /** @description Label exibido acima da área de texto. */\r\n @Input()\r\n public label!: string;\r\n\r\n /** @description Texto de placeholder exibido na área de texto quando vazia. @default '' */\r\n @Input()\r\n public placeholder: string = '';\r\n\r\n /** @description Instrução (prompt) enviada ao serviço de IA para gerar o conteúdo sugerido. */\r\n @Input()\r\n public prompt!: string;\r\n\r\n /** @description Torna a área de texto somente leitura. @default false */\r\n @Input()\r\n public readonly: boolean = false;\r\n\r\n /** @description Número de linhas visíveis da área de texto. @default 10 */\r\n @Input()\r\n public rows: number = 10;\r\n\r\n /** @description Número de colunas visíveis da área de texto. @default 10 */\r\n @Input()\r\n public cols: number = 10;\r\n\r\n /** @description Habilita o botão de reconhecimento de voz para ditado de texto. @default false */\r\n @Input()\r\n public speechRecognition = false;\r\n\r\n /** @description Quando `true`, o histórico de gerações anteriores é enviado ao serviço de IA como contexto. @default false */\r\n @Input()\r\n public keepContext = false;\r\n\r\n /** @description Texto de placeholder exibido no campo de reconhecimento de voz. @default '' */\r\n @Input()\r\n speechRecognitionPlaceholder = '';\r\n\r\n /** @description Limite máximo de caracteres permitidos na área de texto. `null` desabilita o limite. @default null */\r\n @Input()\r\n maxLength: number | null = null;\r\n\r\n /** @description Estilos CSS inline aplicados à área de texto interna. */\r\n textAreaStyle = input<Partial<CSSStyleDeclaration>>({});\r\n\r\n public formGroup: FormGroup = new FormGroup({});\r\n public contextForm: FormGroup = new FormGroup({});\r\n public isVisible = false;\r\n public isLoading = false;\r\n public value = '';\r\n\r\n private _onChange?: (value: string) => void;\r\n private _onTouched?: () => void;\r\n\r\n public ngOnInit(): void {\r\n this._createDialogFormGroup();\r\n }\r\n\r\n public writeValue(value: string): void {\r\n this.value = value;\r\n }\r\n\r\n public registerOnChange(onChange: (value: string) => void): void {\r\n this._onChange = onChange;\r\n }\r\n\r\n public registerOnTouched(onTouched: () => void): void {\r\n this._onTouched = onTouched;\r\n }\r\n\r\n public onValueChange(value: string): void {\r\n this.value = value;\r\n this._onChange?.(value);\r\n }\r\n\r\n public showDialog(): void {\r\n this.isVisible = true;\r\n if (this._onTouched) {\r\n this._onTouched();\r\n }\r\n }\r\n\r\n public hideDialog(): void {\r\n this.isVisible = false;\r\n }\r\n\r\n public onHideDialog(): void {\r\n if (this.isVisible === false) {\r\n this.formGroup.get('context')?.setValue('');\r\n }\r\n }\r\n\r\n public submitContext(): void {\r\n const context = this.formGroup.get('context');\r\n if (!context) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n\r\n this._iassistService\r\n .askIA(context.value, {\r\n id: this.id,\r\n label: this.label,\r\n placeholder: this.placeholder,\r\n prompt: this.prompt,\r\n })\r\n .pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n this.isLoading = false;\r\n return throwError(() => new Error(err.message));\r\n }),\r\n takeUntilDestroyed(this._destroyRef),\r\n )\r\n .subscribe((res: IAssistResponse) => {\r\n this.value = res.text;\r\n this._onChange?.(this.value);\r\n this.isLoading = false;\r\n });\r\n\r\n this.hideDialog();\r\n }\r\n\r\n private _createDialogFormGroup(): void {\r\n this.formGroup = this._formBuilder.group({\r\n context: [''],\r\n });\r\n }\r\n}\r\n","<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <div style=\"width: 100%; height: 100%;\">\n <span *sSVGFactory=\"'iassist'\"></span>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ContentGeneratorComponent } from './content-generator.component';\r\n\r\n@NgModule({\r\n imports: [ContentGeneratorComponent],\r\n exports: [ContentGeneratorComponent],\r\n})\r\nexport class ContentGeneratorModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TextAreaComponent_1"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, Input, NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
3
  import { Subject, takeUntil } from 'rxjs';
6
4
 
7
5
  /**
@@ -73,11 +71,11 @@ class ControlErrorsComponent {
73
71
  this.onDestroy$.complete();
74
72
  }
75
73
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ControlErrorsComponent, selector: "s-control-errors", inputs: { id: "id", control: "control", errorMessages: "errorMessages", form: "form" }, usesOnChanges: true, ngImport: i0, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div \n class=\"error-message\" \n role=\"alert\" \n aria-live=\"assertive\" \n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n", styles: [".error-message{color:#c13018;margin-top:5px;font-size:12px}\n"] });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ControlErrorsComponent, isStandalone: true, selector: "s-control-errors", inputs: { id: "id", control: "control", errorMessages: "errorMessages", form: "form" }, usesOnChanges: true, ngImport: i0, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div \n class=\"text-criticality-red mt-[5px] text-xs\" \n role=\"alert\" \n aria-live=\"assertive\" \n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n" });
77
75
  }
78
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsComponent, decorators: [{
79
77
  type: Component,
80
- args: [{ selector: 's-control-errors', template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div \n class=\"error-message\" \n role=\"alert\" \n aria-live=\"assertive\" \n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n", styles: [".error-message{color:#c13018;margin-top:5px;font-size:12px}\n"] }]
78
+ args: [{ selector: 's-control-errors', standalone: true, template: "@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div \n class=\"text-criticality-red mt-[5px] text-xs\" \n role=\"alert\" \n aria-live=\"assertive\" \n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n" }]
81
79
  }], propDecorators: { id: [{
82
80
  type: Input
83
81
  }], control: [{
@@ -91,14 +89,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
91
89
 
92
90
  class ControlErrorsModule {
93
91
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
94
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsModule, declarations: [ControlErrorsComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule], exports: [ControlErrorsComponent] });
95
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule] });
92
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsModule, imports: [ControlErrorsComponent], exports: [ControlErrorsComponent] });
93
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsModule });
96
94
  }
97
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ControlErrorsModule, decorators: [{
98
96
  type: NgModule,
99
97
  args: [{
100
- imports: [CommonModule, FormsModule, ReactiveFormsModule],
101
- declarations: [ControlErrorsComponent],
98
+ imports: [ControlErrorsComponent],
102
99
  exports: [ControlErrorsComponent],
103
100
  }]
104
101
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-control-errors.mjs","sources":["../../projects/angular-components/control-errors/src/lib/control-errors/control-errors.component.ts","../../projects/angular-components/control-errors/src/lib/control-errors/control-errors.component.html","../../projects/angular-components/control-errors/src/lib/control-errors/control-errors.module.ts","../../projects/angular-components/control-errors/src/seniorsistemas-angular-components-control-errors.ts"],"sourcesContent":["import { AbstractControl, NgModel } from '@angular/forms';\nimport { Component, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\ntype ErrorMessageType = {\n id: string;\n message: string;\n};\n\n/**\n * @description Componente que exibe as mensagens de erro de validação associadas a um controle de formulário.\n * Observa as alterações de estado do controle e renderiza as mensagens mapeadas em `errorMessages`.\n * Compativel com `AbstractControl` do Reactive Forms e `NgModel` do Template-Driven Forms.\n *\n * @example\n * ```html\n * <s-control-errors\n * [control]=\"form.get('email')\"\n * [errorMessages]=\"{ required: 'E-mail obrigatório', email: 'E-mail inválido' }\"\n * />\n * ```\n *\n * @category Feedback\n */\n@Component({\n selector: 's-control-errors',\n templateUrl: './control-errors.component.html',\n styleUrls: ['./control-errors.component.scss'],\n})\nexport class ControlErrorsComponent implements OnDestroy, OnChanges {\n public static readonly nextIdSeed = 0;\n private static readonly RANDOM_ID_END_INDEX = 9;\n private static readonly BASE_36 = 36;\n\n private static _nextId = ControlErrorsComponent.nextIdSeed;\n\n public static getNextId(): number {\n return this._nextId++;\n }\n\n /**\n * @description Identificador único do componente. Gerado automaticamente se não informado.\n * Usado para associação acessível com o campo correspondente.\n */\n @Input()\n public id = `s-control-errors-${ControlErrorsComponent.getNextId()}`;\n\n /**\n * @description Controle do formulário cujos erros serão exibidos.\n * Aceita `AbstractControl` (Reactive Forms) ou `NgModel` (Template-Driven Forms). Campo obrigatório.\n */\n @Input({ required: true })\n public control!: AbstractControl | NgModel;\n\n /**\n * @description Mapa de chaves de erro para mensagens de texto exibidas ao usuário.\n * Cada chave corresponde a um erro que pode estar presente em `control.errors`.\n *\n * @example\n * ```ts\n * { required: 'Campo obrigatório', minlength: 'Mínimo 8 caracteres' }\n * ```\n */\n @Input()\n public errorMessages: any = {};\n\n /**\n * @description Referência ao formulário pai. Utilizado em cenários de validação customizada\n * que dependem do estado geral do formulário.\n */\n @Input()\n public form: any;\n\n errorMessagesList: ErrorMessageType[] = [];\n\n private readonly onDestroy$ = new Subject<void>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['control'] && changes['control'].firstChange) {\n this.control?.valueChanges?.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.setErrorMessagesList());\n }\n }\n\n setErrorMessagesList() {\n if (!this.control?.dirty) {\n this.errorMessagesList = [];\n }\n\n this.errorMessagesList = Object.keys(this.control.errors || {}).map((error) => ({\n id: `${Date.now()}-${Math.random().toString(ControlErrorsComponent.BASE_36).substring(2, ControlErrorsComponent.RANDOM_ID_END_INDEX)}`,\n message: this.errorMessages?.[error],\n }));\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n}\n\n","@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div \n class=\"error-message\" \n role=\"alert\" \n aria-live=\"assertive\" \n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { ControlErrorsComponent } from \"./control-errors.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n declarations: [ControlErrorsComponent],\n exports: [ControlErrorsComponent],\n})\nexport class ControlErrorsModule {}\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-control-errors.mjs","sources":["../../projects/angular-components/control-errors/src/lib/control-errors/control-errors.component.ts","../../projects/angular-components/control-errors/src/lib/control-errors/control-errors.component.html","../../projects/angular-components/control-errors/src/lib/control-errors/control-errors.module.ts","../../projects/angular-components/control-errors/src/seniorsistemas-angular-components-control-errors.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\r\nimport { AbstractControl, NgModel } from '@angular/forms';\r\n\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\ntype ErrorMessageType = {\r\n id: string;\r\n message: string;\r\n};\r\n\r\n/**\r\n * @description Componente que exibe as mensagens de erro de validação associadas a um controle de formulário.\r\n * Observa as alterações de estado do controle e renderiza as mensagens mapeadas em `errorMessages`.\r\n * Compativel com `AbstractControl` do Reactive Forms e `NgModel` do Template-Driven Forms.\r\n *\r\n * @example\r\n * ```html\r\n * <s-control-errors\r\n * [control]=\"form.get('email')\"\r\n * [errorMessages]=\"{ required: 'E-mail obrigatório', email: 'E-mail inválido' }\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-control-errors',\r\n templateUrl: './control-errors.component.html',\r\n standalone: true,\r\n})\r\nexport class ControlErrorsComponent implements OnDestroy, OnChanges {\r\n public static readonly nextIdSeed = 0;\r\n private static readonly RANDOM_ID_END_INDEX = 9;\r\n private static readonly BASE_36 = 36;\r\n\r\n private static _nextId = ControlErrorsComponent.nextIdSeed;\r\n\r\n public static getNextId(): number {\r\n return this._nextId++;\r\n }\r\n\r\n /**\r\n * @description Identificador único do componente. Gerado automaticamente se não informado.\r\n * Usado para associação acessível com o campo correspondente.\r\n */\r\n @Input()\r\n public id = `s-control-errors-${ControlErrorsComponent.getNextId()}`;\r\n\r\n /**\r\n * @description Controle do formulário cujos erros serão exibidos.\r\n * Aceita `AbstractControl` (Reactive Forms) ou `NgModel` (Template-Driven Forms). Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public control!: AbstractControl | NgModel;\r\n\r\n /**\r\n * @description Mapa de chaves de erro para mensagens de texto exibidas ao usuário.\r\n * Cada chave corresponde a um erro que pode estar presente em `control.errors`.\r\n *\r\n * @example\r\n * ```ts\r\n * { required: 'Campo obrigatório', minlength: 'Mínimo 8 caracteres' }\r\n * ```\r\n */\r\n @Input()\r\n public errorMessages: any = {};\r\n\r\n /**\r\n * @description Referência ao formulário pai. Utilizado em cenários de validação customizada\r\n * que dependem do estado geral do formulário.\r\n */\r\n @Input()\r\n public form: any;\r\n\r\n errorMessagesList: ErrorMessageType[] = [];\r\n\r\n private readonly onDestroy$ = new Subject<void>();\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['control'] && changes['control'].firstChange) {\r\n this.control?.valueChanges?.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.setErrorMessagesList());\r\n }\r\n }\r\n\r\n setErrorMessagesList() {\r\n if (!this.control?.dirty) {\r\n this.errorMessagesList = [];\r\n }\r\n\r\n this.errorMessagesList = Object.keys(this.control.errors || {}).map((error) => ({\r\n id: `${Date.now()}-${Math.random().toString(ControlErrorsComponent.BASE_36).substring(2, ControlErrorsComponent.RANDOM_ID_END_INDEX)}`,\r\n message: this.errorMessages?.[error],\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.onDestroy$.next();\r\n this.onDestroy$.complete();\r\n }\r\n}\r\n","@for (errorMessage of errorMessagesList; track errorMessage.id) {\n @if (errorMessage) {\n <div \n class=\"text-criticality-red mt-[5px] text-xs\" \n role=\"alert\" \n aria-live=\"assertive\" \n aria-atomic=\"true\"\n >\n {{ errorMessage.message }}\n </div>\n }\n}\n","import { NgModule } from '@angular/core';\r\n\r\nimport { ControlErrorsComponent } from './control-errors.component';\r\n\r\n@NgModule({\r\n imports: [ControlErrorsComponent],\r\n exports: [ControlErrorsComponent],\r\n})\r\nexport class ControlErrorsModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,12 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Injectable, ElementRef, PLATFORM_ID, EventEmitter, forwardRef, ViewContainerRef, Component, Input, Output, ViewChild, HostListener, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { isPlatformBrowser, CommonModule } from '@angular/common';
5
- import * as i2 from '@angular/forms';
6
- import { UntypedFormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
7
- import * as i4 from '@ngx-translate/core';
8
- import { TranslateService, TranslateModule } from '@ngx-translate/core';
9
- import * as i3 from 'ngx-mask';
10
- import { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';
2
+ import { inject, Injectable, ElementRef, DestroyRef, PLATFORM_ID, EventEmitter, forwardRef, ViewContainerRef, Component, Input, Output, ViewChild, HostListener, NgModule } from '@angular/core';
3
+ import { NgxMaskDirective, provideNgxMask } from 'ngx-mask';
4
+ import { TranslateService, TranslatePipe } from '@ngx-translate/core';
11
5
  import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
+ import * as i1 from '@angular/forms';
8
+ import { UntypedFormControl, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
+ import { isPlatformBrowser, NgClass, NgStyle } from '@angular/common';
12
10
  import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
13
11
 
14
12
  const countries = [
@@ -300,6 +298,7 @@ class CountryPhonePickerComponent {
300
298
  _countryPhonePickerService = inject(CountryPhonePickerService);
301
299
  _translate = inject(TranslateService);
302
300
  _eRef = inject(ElementRef);
301
+ _destroyRef = inject(DestroyRef);
303
302
  platformId = inject(PLATFORM_ID);
304
303
  /**
305
304
  * @description Lista de códigos de país (ISO 3166-1 alpha-2) exibidos no seletor.
@@ -415,7 +414,7 @@ class CountryPhonePickerComponent {
415
414
  }
416
415
  ngOnInit() {
417
416
  const countries = this._countryPhonePickerService.getCountries(this.ordination);
418
- this.filter.valueChanges.subscribe(this._filterCountries);
417
+ this.filter.valueChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(this._filterCountries);
419
418
  if (this.countries?.length) {
420
419
  this._countriesList = countries.filter((country) => this.countries.includes(country.id));
421
420
  }
@@ -425,7 +424,7 @@ class CountryPhonePickerComponent {
425
424
  this.filteredCountriesList = this._countriesList;
426
425
  this.selectedItem = this._getSelectedCountryDefault();
427
426
  this.mask = this.getMask();
428
- this.phone.valueChanges.subscribe((value) => {
427
+ this.phone.valueChanges.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {
429
428
  if (!this.selectedItem) {
430
429
  return;
431
430
  }
@@ -563,13 +562,13 @@ class CountryPhonePickerComponent {
563
562
  this._portalHost.attach(portal);
564
563
  }
565
564
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
566
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CountryPhonePickerComponent, selector: "s-country-phone-picker", inputs: { countries: "countries", ordination: "ordination" }, outputs: { selected: "selected", focusLost: "focusLost" }, host: { listeners: { "document:click": "onClickout($event)", "keydown": "onKeydown($event)" } }, providers: [
565
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CountryPhonePickerComponent, isStandalone: true, selector: "s-country-phone-picker", inputs: { countries: "countries", ordination: "ordination" }, outputs: { selected: "selected", focusLost: "focusLost" }, host: { listeners: { "document:click": "onClickout($event)", "keydown": "onKeydown($event)" } }, providers: [
567
566
  {
568
567
  provide: NG_VALUE_ACCESSOR,
569
568
  useExisting: forwardRef(() => CountryPhonePickerComponent),
570
569
  multi: true,
571
570
  },
572
- ], viewQueries: [{ propertyName: "phoneInput", first: true, predicate: ["phoneInput"], descendants: true, static: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["dropElement"], descendants: true, read: ViewContainerRef }, { propertyName: "dropElement", first: true, predicate: ["dropElement"], descendants: true, read: ElementRef }, { propertyName: "dropdownContainer", first: true, predicate: ["#dropdownContainer"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"country-phone-picker\">\n <div\n #dropElement\n class=\"phone-input\"\n [class.phone-input--focused]=\"isFocused\"\n >\n <div\n class=\"drop\"\n (click)=\"open = !open\"\n >\n <span\n class=\"drop-flag\"\n [ngClass]=\"'fi fi-' + selectedItem?.id\"\n >\n </span>\n <span class=\"drop-icon fas fa-caret-down\"></span>\n </div>\n <p class=\"phone-ddi\">{{ selectedItem?.ddi }}</p>\n <input\n #phoneInput\n type=\"tel\"\n [mask]=\"mask\"\n [placeholder]=\"getPlaceholder()\"\n [formControl]=\"phone\"\n (focus)=\"onPhoneInputFocus()\"\n (blur)=\"onBlur(value)\"\n />\n </div>\n <ng-template #dropdownTemplate>\n @if (open) {\n <div\n #dropdownContainer\n class=\"dropdown\"\n [ngStyle]=\"{\n position: 'absolute',\n top: dropTop + 'px',\n left: dropLeft + 'px',\n }\"\n >\n <div class=\"search\">\n <input\n class=\"search-field\"\n type=\"text\"\n [formControl]=\"filter\"\n #filterInput\n />\n <span class=\"search-icon fas fa-search\"></span>\n <span\n class=\"search-clear fa fa-times\"\n (click)=\"onCleanFilter()\"\n ></span>\n </div>\n <ul class=\"select-list\">\n @for (country of filteredCountriesList; track $index) {\n <li\n class=\"select-option\"\n [ngClass]=\"{ 'select-option--focused': $index === currentItemIndex }\"\n (click)=\"onSelectItem(country)\"\n >\n <span\n class=\"select-option__flag\"\n [ngClass]=\"'fi fi-' + country.id\"\n >\n </span>\n <span class=\"select-option__name\">\n {{ 'platform.angular_components.country_name_' + country.id | translate }}\n </span>\n <span class=\"select-option__ddi\">\n {{ country.ddi }}\n </span>\n </li>\n }\n </ul>\n </div>\n }\n </ng-template>\n</div>\n", styles: [":host.ng-invalid.ng-dirty .phone-input{border-color:#c13018}.country-phone-picker:has(input:focus) .phone-input{border:1px solid #428bca}.country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{align-items:center;cursor:pointer;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .phone-input--focused{outline:2px solid #428bca}.dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #0003;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.dropdown .search{align-items:center;display:flex;padding:8px 12px}.dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.dropdown .select-list .select-option{cursor:pointer;display:flex;padding:12px;-webkit-user-select:none;user-select:none}.dropdown .select-list .select-option .select-option__flag{margin-right:12px}.dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:Open Sans,sans-serif;font-weight:400;line-height:150%}.dropdown .select-list .select-option:hover,.dropdown .select-list .select-option--focused{background-color:#e5eaea}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
571
+ ], viewQueries: [{ propertyName: "phoneInput", first: true, predicate: ["phoneInput"], descendants: true, static: true }, { propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true }, { propertyName: "dropdownTemplate", first: true, predicate: ["dropdownTemplate"], descendants: true }, { propertyName: "viewContainerRef", first: true, predicate: ["dropElement"], descendants: true, read: ViewContainerRef }, { propertyName: "dropElement", first: true, predicate: ["dropElement"], descendants: true, read: ElementRef }, { propertyName: "dropdownContainer", first: true, predicate: ["#dropdownContainer"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"country-phone-picker\">\n <div\n #dropElement\n class=\"phone-input\"\n [class.phone-input--focused]=\"isFocused\"\n >\n <div\n class=\"drop\"\n (click)=\"open = !open\"\n >\n <span\n class=\"drop-flag\"\n [ngClass]=\"'fi fi-' + selectedItem?.id\"\n >\n </span>\n <span class=\"drop-icon fas fa-caret-down\"></span>\n </div>\n <p class=\"phone-ddi\">{{ selectedItem?.ddi }}</p>\n <input\n #phoneInput\n type=\"tel\"\n [mask]=\"mask\"\n [placeholder]=\"getPlaceholder()\"\n [formControl]=\"phone\"\n (focus)=\"onPhoneInputFocus()\"\n (blur)=\"onBlur(value)\"\n />\n </div>\n <ng-template #dropdownTemplate>\n @if (open) {\n <div\n #dropdownContainer\n class=\"dropdown\"\n [ngStyle]=\"{\n position: 'absolute',\n top: dropTop + 'px',\n left: dropLeft + 'px',\n }\"\n >\n <div class=\"search\">\n <input\n class=\"search-field\"\n type=\"text\"\n [formControl]=\"filter\"\n #filterInput\n />\n <span class=\"search-icon fas fa-search\"></span>\n <span\n class=\"search-clear fa fa-times\"\n (click)=\"onCleanFilter()\"\n ></span>\n </div>\n <ul class=\"select-list\">\n @for (country of filteredCountriesList; track $index) {\n <li\n class=\"select-option\"\n [ngClass]=\"{ 'select-option--focused': $index === currentItemIndex }\"\n (click)=\"onSelectItem(country)\"\n >\n <span\n class=\"select-option__flag\"\n [ngClass]=\"'fi fi-' + country.id\"\n >\n </span>\n <span class=\"select-option__name\">\n {{ 'platform.angular_components.country_name_' + country.id | translate }}\n </span>\n <span class=\"select-option__ddi\">\n {{ country.ddi }}\n </span>\n </li>\n }\n </ul>\n </div>\n }\n </ng-template>\n</div>\n", styles: [":host.ng-invalid.ng-dirty .phone-input{border-color:#c13018}.country-phone-picker:has(input:focus) .phone-input{border:1px solid #428bca}.country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{align-items:center;cursor:pointer;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .phone-input--focused{outline:2px solid #428bca}.dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #0003;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.dropdown .search{align-items:center;display:flex;padding:8px 12px}.dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.dropdown .select-list .select-option{cursor:pointer;display:flex;padding:12px;-webkit-user-select:none;user-select:none}.dropdown .select-list .select-option .select-option__flag{margin-right:12px}.dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:Open Sans,sans-serif;font-weight:400;line-height:150%}.dropdown .select-list .select-option:hover,.dropdown .select-list .select-option--focused{background-color:#e5eaea}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions", "instantPrefix"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
573
572
  }
574
573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerComponent, decorators: [{
575
574
  type: Component,
@@ -579,7 +578,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
579
578
  useExisting: forwardRef(() => CountryPhonePickerComponent),
580
579
  multi: true,
581
580
  },
582
- ], template: "<div class=\"country-phone-picker\">\n <div\n #dropElement\n class=\"phone-input\"\n [class.phone-input--focused]=\"isFocused\"\n >\n <div\n class=\"drop\"\n (click)=\"open = !open\"\n >\n <span\n class=\"drop-flag\"\n [ngClass]=\"'fi fi-' + selectedItem?.id\"\n >\n </span>\n <span class=\"drop-icon fas fa-caret-down\"></span>\n </div>\n <p class=\"phone-ddi\">{{ selectedItem?.ddi }}</p>\n <input\n #phoneInput\n type=\"tel\"\n [mask]=\"mask\"\n [placeholder]=\"getPlaceholder()\"\n [formControl]=\"phone\"\n (focus)=\"onPhoneInputFocus()\"\n (blur)=\"onBlur(value)\"\n />\n </div>\n <ng-template #dropdownTemplate>\n @if (open) {\n <div\n #dropdownContainer\n class=\"dropdown\"\n [ngStyle]=\"{\n position: 'absolute',\n top: dropTop + 'px',\n left: dropLeft + 'px',\n }\"\n >\n <div class=\"search\">\n <input\n class=\"search-field\"\n type=\"text\"\n [formControl]=\"filter\"\n #filterInput\n />\n <span class=\"search-icon fas fa-search\"></span>\n <span\n class=\"search-clear fa fa-times\"\n (click)=\"onCleanFilter()\"\n ></span>\n </div>\n <ul class=\"select-list\">\n @for (country of filteredCountriesList; track $index) {\n <li\n class=\"select-option\"\n [ngClass]=\"{ 'select-option--focused': $index === currentItemIndex }\"\n (click)=\"onSelectItem(country)\"\n >\n <span\n class=\"select-option__flag\"\n [ngClass]=\"'fi fi-' + country.id\"\n >\n </span>\n <span class=\"select-option__name\">\n {{ 'platform.angular_components.country_name_' + country.id | translate }}\n </span>\n <span class=\"select-option__ddi\">\n {{ country.ddi }}\n </span>\n </li>\n }\n </ul>\n </div>\n }\n </ng-template>\n</div>\n", styles: [":host.ng-invalid.ng-dirty .phone-input{border-color:#c13018}.country-phone-picker:has(input:focus) .phone-input{border:1px solid #428bca}.country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{align-items:center;cursor:pointer;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .phone-input--focused{outline:2px solid #428bca}.dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #0003;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.dropdown .search{align-items:center;display:flex;padding:8px 12px}.dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.dropdown .select-list .select-option{cursor:pointer;display:flex;padding:12px;-webkit-user-select:none;user-select:none}.dropdown .select-list .select-option .select-option__flag{margin-right:12px}.dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:Open Sans,sans-serif;font-weight:400;line-height:150%}.dropdown .select-list .select-option:hover,.dropdown .select-list .select-option--focused{background-color:#e5eaea}\n"] }]
581
+ ], standalone: true, imports: [NgClass, NgxMaskDirective, FormsModule, ReactiveFormsModule, NgStyle, TranslatePipe], template: "<div class=\"country-phone-picker\">\n <div\n #dropElement\n class=\"phone-input\"\n [class.phone-input--focused]=\"isFocused\"\n >\n <div\n class=\"drop\"\n (click)=\"open = !open\"\n >\n <span\n class=\"drop-flag\"\n [ngClass]=\"'fi fi-' + selectedItem?.id\"\n >\n </span>\n <span class=\"drop-icon fas fa-caret-down\"></span>\n </div>\n <p class=\"phone-ddi\">{{ selectedItem?.ddi }}</p>\n <input\n #phoneInput\n type=\"tel\"\n [mask]=\"mask\"\n [placeholder]=\"getPlaceholder()\"\n [formControl]=\"phone\"\n (focus)=\"onPhoneInputFocus()\"\n (blur)=\"onBlur(value)\"\n />\n </div>\n <ng-template #dropdownTemplate>\n @if (open) {\n <div\n #dropdownContainer\n class=\"dropdown\"\n [ngStyle]=\"{\n position: 'absolute',\n top: dropTop + 'px',\n left: dropLeft + 'px',\n }\"\n >\n <div class=\"search\">\n <input\n class=\"search-field\"\n type=\"text\"\n [formControl]=\"filter\"\n #filterInput\n />\n <span class=\"search-icon fas fa-search\"></span>\n <span\n class=\"search-clear fa fa-times\"\n (click)=\"onCleanFilter()\"\n ></span>\n </div>\n <ul class=\"select-list\">\n @for (country of filteredCountriesList; track $index) {\n <li\n class=\"select-option\"\n [ngClass]=\"{ 'select-option--focused': $index === currentItemIndex }\"\n (click)=\"onSelectItem(country)\"\n >\n <span\n class=\"select-option__flag\"\n [ngClass]=\"'fi fi-' + country.id\"\n >\n </span>\n <span class=\"select-option__name\">\n {{ 'platform.angular_components.country_name_' + country.id | translate }}\n </span>\n <span class=\"select-option__ddi\">\n {{ country.ddi }}\n </span>\n </li>\n }\n </ul>\n </div>\n }\n </ng-template>\n</div>\n", styles: [":host.ng-invalid.ng-dirty .phone-input{border-color:#c13018}.country-phone-picker:has(input:focus) .phone-input{border:1px solid #428bca}.country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{align-items:center;cursor:pointer;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .phone-input--focused{outline:2px solid #428bca}.dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #0003;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.dropdown .search{align-items:center;display:flex;padding:8px 12px}.dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;flex-grow:1;font-family:Open Sans,sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.dropdown .select-list .select-option{cursor:pointer;display:flex;padding:12px;-webkit-user-select:none;user-select:none}.dropdown .select-list .select-option .select-option__flag{margin-right:12px}.dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:Open Sans,sans-serif;font-weight:400;line-height:150%}.dropdown .select-list .select-option:hover,.dropdown .select-list .select-option--focused{background-color:#e5eaea}\n"] }]
583
582
  }], propDecorators: { countries: [{
584
583
  type: Input
585
584
  }], ordination: [{
@@ -616,34 +615,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
616
615
 
617
616
  class CountryPhonePickerModule {
618
617
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
619
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerModule, declarations: [CountryPhonePickerComponent], imports: [CommonModule,
620
- TranslateModule,
621
- ReactiveFormsModule,
622
- NgxMaskDirective,
623
- NgxMaskPipe], exports: [CountryPhonePickerComponent] });
624
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerModule, providers: [
625
- CountryPhonePickerService,
626
- provideNgxMask(),
627
- ], imports: [CommonModule,
628
- TranslateModule,
629
- ReactiveFormsModule] });
618
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerModule, imports: [CountryPhonePickerComponent], exports: [CountryPhonePickerComponent] });
619
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerModule, providers: [CountryPhonePickerService, provideNgxMask()], imports: [CountryPhonePickerComponent] });
630
620
  }
631
621
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryPhonePickerModule, decorators: [{
632
622
  type: NgModule,
633
623
  args: [{
634
- imports: [
635
- CommonModule,
636
- TranslateModule,
637
- ReactiveFormsModule,
638
- NgxMaskDirective,
639
- NgxMaskPipe,
640
- ],
641
- declarations: [CountryPhonePickerComponent],
624
+ imports: [CountryPhonePickerComponent],
642
625
  exports: [CountryPhonePickerComponent],
643
- providers: [
644
- CountryPhonePickerService,
645
- provideNgxMask(),
646
- ],
626
+ providers: [CountryPhonePickerService, provideNgxMask()],
647
627
  }]
648
628
  }] });
649
629