@seniorsistemas/angular-components 17.25.8-feature-sds-110-b1ee27db → 17.25.9

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 (2512) hide show
  1. package/angular-components.module.d.ts +9 -0
  2. package/bundles/seniorsistemas-angular-components.umd.js +22972 -0
  3. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -0
  4. package/bundles/seniorsistemas-angular-components.umd.min.js +17 -0
  5. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -0
  6. package/components/accordion/accordion.component.d.ts +18 -0
  7. package/components/accordion/accordion.module.d.ts +2 -0
  8. package/components/accordion/components/accordion-panel/accordion-panel.component.d.ts +31 -0
  9. package/components/accordion/index.d.ts +3 -0
  10. package/components/accordion/models/accordion-button-settings.d.ts +4 -0
  11. package/components/accordion/models/accordion-switch-settings.d.ts +4 -0
  12. package/components/alert/alert.component.d.ts +13 -0
  13. package/components/alert/alert.module.d.ts +2 -0
  14. package/components/alert/index.d.ts +2 -0
  15. package/components/badge/badge.component.d.ts +20 -0
  16. package/components/badge/badge.module.d.ts +2 -0
  17. package/components/badge/index.d.ts +3 -0
  18. package/components/badge/models/badge-colors.d.ts +8 -0
  19. package/components/badge/models/badge-types.d.ts +4 -0
  20. package/components/badge/models/index.d.ts +2 -0
  21. package/components/bignumber-input/index.d.ts +2 -0
  22. package/components/bignumber-input/number-input.directive.d.ts +28 -0
  23. package/components/bignumber-input/number-input.module.d.ts +2 -0
  24. package/components/breadcrumb/breadcrumb.component.d.ts +22 -0
  25. package/components/breadcrumb/breadcrumb.module.d.ts +2 -0
  26. package/components/breadcrumb/index.d.ts +2 -0
  27. package/components/button/button.component.d.ts +43 -0
  28. package/components/button/button.module.d.ts +2 -0
  29. package/components/button/index.d.ts +6 -0
  30. package/components/button/models/button-animation.d.ts +3 -0
  31. package/components/button/models/button-badge-config.d.ts +7 -0
  32. package/components/button/models/button-priority.d.ts +7 -0
  33. package/components/button/models/button-size.d.ts +4 -0
  34. package/components/calendar-mask/calendar-mask.directive.d.ts +66 -0
  35. package/components/calendar-mask/calendar-mask.module.d.ts +2 -0
  36. package/components/calendar-mask/index.d.ts +2 -0
  37. package/components/card/card.component.d.ts +19 -0
  38. package/components/card/card.module.d.ts +2 -0
  39. package/components/card/index.d.ts +3 -0
  40. package/components/card/models/card-template-types.d.ts +5 -0
  41. package/components/chat/chat.component.d.ts +7 -0
  42. package/components/chat/chat.module.d.ts +2 -0
  43. package/components/chat/components/chat-message/chat-message.component.d.ts +8 -0
  44. package/components/chat/index.d.ts +3 -0
  45. package/components/chat/types/chat-message.d.ts +8 -0
  46. package/components/checkbox/checkbox.component.d.ts +17 -0
  47. package/components/checkbox/checkbox.module.d.ts +2 -0
  48. package/components/checkbox/index.d.ts +3 -0
  49. package/components/checkbox/models/checkbox-state.d.ts +6 -0
  50. package/components/checkbox/models/index.d.ts +2 -0
  51. package/components/chips/chip-item/chip-item.component.d.ts +22 -0
  52. package/components/chips/chips/chips.component.d.ts +55 -0
  53. package/components/chips/chips.module.d.ts +2 -0
  54. package/components/chips/index.d.ts +3 -0
  55. package/components/chips/models/chip-models.d.ts +7 -0
  56. package/components/code-editor/code-editor.component.d.ts +26 -0
  57. package/components/code-editor/code-editor.module.d.ts +2 -0
  58. package/components/code-editor/core/facades/core-facade.d.ts +32 -0
  59. package/components/code-editor/core/use-cases/core-linters.d.ts +6 -0
  60. package/components/code-editor/index.d.ts +3 -0
  61. package/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +26 -0
  62. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.d.ts +15 -0
  63. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.d.ts +6 -0
  64. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.d.ts +12 -0
  65. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.d.ts +8 -0
  66. package/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.d.ts +1 -0
  67. package/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.d.ts +3 -0
  68. package/components/code-editor/infra/utils/custom-http-client/custom-http-client.d.ts +34 -0
  69. package/components/code-editor/infra/utils/custom-translations/custom-translations-service.d.ts +25 -0
  70. package/components/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +12 -0
  71. package/components/collapse-link/collapse-link.component.d.ts +17 -0
  72. package/components/collapse-link/collapse-link.module.d.ts +2 -0
  73. package/components/collapse-link/index.d.ts +2 -0
  74. package/components/control-errors/control-errors.component.d.ts +9 -0
  75. package/components/control-errors/control-errors.module.d.ts +2 -0
  76. package/components/control-errors/index.d.ts +2 -0
  77. package/components/country-phone-picker/country-phone-picker.component.d.ts +64 -0
  78. package/components/country-phone-picker/country-phone-picker.module.d.ts +2 -0
  79. package/components/country-phone-picker/country-phone-picker.service.d.ts +10 -0
  80. package/components/country-phone-picker/index.d.ts +4 -0
  81. package/components/country-phone-picker/models/index.d.ts +3 -0
  82. package/components/country-phone-picker/resources/countries.d.ts +2 -0
  83. package/components/country-phone-picker/resources/index.d.ts +1 -0
  84. package/components/custom-fields/custom-fields.component.d.ts +82 -0
  85. package/components/custom-fields/custom-fields.module.d.ts +2 -0
  86. package/components/custom-fields/custom-fields.service.d.ts +17 -0
  87. package/components/custom-fields/index.d.ts +3 -0
  88. package/components/dynamic-form/components/dynamic-field/dynamic-field.component.d.ts +12 -0
  89. package/components/dynamic-form/components/field-label/field-label.component.d.ts +5 -0
  90. package/components/dynamic-form/components/field-label/field-label.module.d.ts +2 -0
  91. package/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.d.ts +14 -0
  92. package/components/dynamic-form/components/fields/base-field-component.d.ts +27 -0
  93. package/components/dynamic-form/components/fields/bignumber/bignumber-field.component.d.ts +24 -0
  94. package/components/dynamic-form/components/fields/bignumber/bignumber-field.module.d.ts +2 -0
  95. package/components/dynamic-form/components/fields/boolean/boolean-field.component.d.ts +8 -0
  96. package/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.d.ts +7 -0
  97. package/components/dynamic-form/components/fields/button-field/button-field.component.d.ts +7 -0
  98. package/components/dynamic-form/components/fields/calendar/calendar-field.component.d.ts +31 -0
  99. package/components/dynamic-form/components/fields/checkbox/checkbox-field.component.d.ts +7 -0
  100. package/components/dynamic-form/components/fields/checkbox/checkbox-field.module.d.ts +2 -0
  101. package/components/dynamic-form/components/fields/chips/chips-field.component.d.ts +19 -0
  102. package/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.d.ts +14 -0
  103. package/components/dynamic-form/components/fields/currency/currency-field.component.d.ts +21 -0
  104. package/components/dynamic-form/components/fields/currency/currency-field.module.d.ts +2 -0
  105. package/components/dynamic-form/components/fields/editor/editor-field.component.d.ts +7 -0
  106. package/components/dynamic-form/components/fields/editor/editor-field.module.d.ts +2 -0
  107. package/components/dynamic-form/components/fields/file-upload/file-upload.component.d.ts +17 -0
  108. package/components/dynamic-form/components/fields/index.d.ts +21 -0
  109. package/components/dynamic-form/components/fields/lookup/lookup-field.component.d.ts +7 -0
  110. package/components/dynamic-form/components/fields/number/number-field.component.d.ts +27 -0
  111. package/components/dynamic-form/components/fields/number/number-field.module.d.ts +2 -0
  112. package/components/dynamic-form/components/fields/password/password-field.component.d.ts +19 -0
  113. package/components/dynamic-form/components/fields/password/password-field.module.d.ts +2 -0
  114. package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.d.ts +6 -0
  115. package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.d.ts +2 -0
  116. package/components/dynamic-form/components/fields/radio-button/radio-button-field.component.d.ts +15 -0
  117. package/components/dynamic-form/components/fields/select/select-field.component.d.ts +7 -0
  118. package/components/dynamic-form/components/fields/slider/slider-field.component.d.ts +22 -0
  119. package/components/dynamic-form/components/fields/text/text-field.component.d.ts +20 -0
  120. package/components/dynamic-form/components/fields/text/text-field.module.d.ts +2 -0
  121. package/components/dynamic-form/components/fields/text-area/text-area-field.component.d.ts +12 -0
  122. package/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.d.ts +27 -0
  123. package/components/dynamic-form/components/grid/row/row.component.d.ts +12 -0
  124. package/components/dynamic-form/components/lookup/lookup.component.d.ts +184 -0
  125. package/components/dynamic-form/components/lookup/models/default-filter.d.ts +4 -0
  126. package/components/dynamic-form/components/lookup/models/index.d.ts +1 -0
  127. package/components/dynamic-form/components/structure/base-structure-component.d.ts +8 -0
  128. package/components/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +9 -0
  129. package/components/dynamic-form/components/structure/section/section.component.d.ts +11 -0
  130. package/components/dynamic-form/configurations/addon-config.d.ts +8 -0
  131. package/components/dynamic-form/configurations/field-type.d.ts +30 -0
  132. package/components/dynamic-form/configurations/fields/autocomplete-field.d.ts +30 -0
  133. package/components/dynamic-form/configurations/fields/bignumber-field.d.ts +36 -0
  134. package/components/dynamic-form/configurations/fields/blob-field.d.ts +43 -0
  135. package/components/dynamic-form/configurations/fields/boolean-field.d.ts +29 -0
  136. package/components/dynamic-form/configurations/fields/boolean-switch-field.d.ts +11 -0
  137. package/components/dynamic-form/configurations/fields/button-field.d.ts +37 -0
  138. package/components/dynamic-form/configurations/fields/calendar-field.d.ts +45 -0
  139. package/components/dynamic-form/configurations/fields/checkbox-field.d.ts +9 -0
  140. package/components/dynamic-form/configurations/fields/chips-field.d.ts +24 -0
  141. package/components/dynamic-form/configurations/fields/country-phone-picker-field.d.ts +15 -0
  142. package/components/dynamic-form/configurations/fields/currency-field.d.ts +8 -0
  143. package/components/dynamic-form/configurations/fields/decimal-field.d.ts +14 -0
  144. package/components/dynamic-form/configurations/fields/field.d.ts +96 -0
  145. package/components/dynamic-form/configurations/fields/index.d.ts +21 -0
  146. package/components/dynamic-form/configurations/fields/lookup-field.d.ts +92 -0
  147. package/components/dynamic-form/configurations/fields/number-field.d.ts +42 -0
  148. package/components/dynamic-form/configurations/fields/password-field.d.ts +45 -0
  149. package/components/dynamic-form/configurations/fields/profile-picture.d.ts +36 -0
  150. package/components/dynamic-form/configurations/fields/radio-button-field.d.ts +23 -0
  151. package/components/dynamic-form/configurations/fields/select-field.d.ts +37 -0
  152. package/components/dynamic-form/configurations/fields/slider-field.d.ts +31 -0
  153. package/components/dynamic-form/configurations/fields/text-area-field.d.ts +20 -0
  154. package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +22 -0
  155. package/components/dynamic-form/configurations/fields/text-field.d.ts +41 -0
  156. package/components/dynamic-form/configurations/form-field.d.ts +188 -0
  157. package/components/dynamic-form/configurations/grid/grid.d.ts +14 -0
  158. package/components/dynamic-form/configurations/grid/row.d.ts +8 -0
  159. package/components/dynamic-form/configurations/structure/fieldset.d.ts +10 -0
  160. package/components/dynamic-form/configurations/structure/section.d.ts +20 -0
  161. package/components/dynamic-form/configurations/structure/structure.d.ts +15 -0
  162. package/components/dynamic-form/dynamic-form.component.d.ts +10 -0
  163. package/components/dynamic-form/dynamic-form.d.ts +56 -0
  164. package/components/dynamic-form/dynamic-form.directive.d.ts +28 -0
  165. package/components/dynamic-form/dynamic-form.module.d.ts +2 -0
  166. package/components/dynamic-form/index.d.ts +32 -0
  167. package/components/dynamic-form/services/IAssist/iassist.service.d.ts +13 -0
  168. package/components/dynamic-form/services/IAssist/models/iassist-input-data.d.ts +6 -0
  169. package/components/dynamic-form/services/IAssist/models/iassist-response.d.ts +5 -0
  170. package/components/dynamic-form/services/IAssist/models/index.d.ts +2 -0
  171. package/components/editable-overlay/editable-overlay.directive.d.ts +9 -0
  172. package/components/editable-overlay/editable-overlay.module.d.ts +2 -0
  173. package/components/editable-overlay/index.d.ts +2 -0
  174. package/components/empty-state/empty-state.component.d.ts +16 -0
  175. package/components/empty-state/empty-state.module.d.ts +2 -0
  176. package/components/empty-state/go-back/go-back.component.d.ts +11 -0
  177. package/components/empty-state/index.d.ts +2 -0
  178. package/components/file-upload/file-upload.component.d.ts +76 -0
  179. package/components/file-upload/file-upload.module.d.ts +2 -0
  180. package/components/file-upload/file-upload.service.d.ts +6 -0
  181. package/components/file-upload/index.d.ts +3 -0
  182. package/components/file-upload/models/file-dto.d.ts +11 -0
  183. package/components/file-upload/models/file-upload-permissions.d.ts +6 -0
  184. package/components/file-upload/models/index.d.ts +4 -0
  185. package/components/file-upload/models/uploadError.d.ts +6 -0
  186. package/components/file-upload/models/validate-errors.d.ts +6 -0
  187. package/components/gantt/components/gantt/arrow.d.ts +16 -0
  188. package/components/gantt/components/gantt/bar.d.ts +44 -0
  189. package/components/gantt/components/gantt/gantt-options.d.ts +2 -0
  190. package/components/gantt/components/gantt/gantt.d.ts +64 -0
  191. package/components/gantt/components/gantt/popup.d.ts +14 -0
  192. package/components/gantt/components/gantt/utils/svg-utils.d.ts +11 -0
  193. package/components/gantt/components/side-table/side-table.component.d.ts +10 -0
  194. package/components/gantt/gantt.component.d.ts +30 -0
  195. package/components/gantt/gantt.module.d.ts +2 -0
  196. package/components/gantt/index.d.ts +3 -0
  197. package/components/gantt/models/index.d.ts +3 -0
  198. package/components/gantt/models/options.d.ts +26 -0
  199. package/components/global-search/elements/dropdown/global-search-dropdown-item.component.d.ts +24 -0
  200. package/components/global-search/global-search-size.enum.d.ts +5 -0
  201. package/components/global-search/global-search.component.d.ts +34 -0
  202. package/components/global-search/global-search.module.d.ts +2 -0
  203. package/components/global-search/index.d.ts +4 -0
  204. package/components/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +7 -0
  205. package/components/grid-menu/grid-menu.component.d.ts +5 -0
  206. package/components/grid-menu/grid-menu.module.d.ts +2 -0
  207. package/components/grid-menu/index.d.ts +3 -0
  208. package/components/grid-menu/types/grid-menu-item.d.ts +6 -0
  209. package/components/help-popover/help-popover/help-popover.component.d.ts +32 -0
  210. package/components/help-popover/help-popover.directive.d.ts +64 -0
  211. package/components/help-popover/help-popover.module.d.ts +2 -0
  212. package/components/help-popover/index.d.ts +5 -0
  213. package/components/help-popover/models/help-popover.models.d.ts +2 -0
  214. package/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.d.ts +2 -0
  215. package/components/ia-insight/components/ia-insight-card/ia-insight-card.component.d.ts +22 -0
  216. package/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.d.ts +16 -0
  217. package/components/ia-insight/ia-insight.component.d.ts +24 -0
  218. package/components/ia-insight/ia-insight.module.d.ts +2 -0
  219. package/components/ia-insight/index.d.ts +3 -0
  220. package/components/ia-insight/models/ia-insight-item.d.ts +9 -0
  221. package/components/ia-insight/models/ia-insight-template-types.d.ts +5 -0
  222. package/components/ia-insight/models/index.d.ts +2 -0
  223. package/components/image-cropper/image-cropper.component.d.ts +42 -0
  224. package/components/image-cropper/image-cropper.module.d.ts +2 -0
  225. package/components/image-cropper/image-cropper.service.d.ts +39 -0
  226. package/components/image-cropper/index.d.ts +3 -0
  227. package/components/index.d.ts +71 -0
  228. package/components/infinite-scroll/infinite-scroll.directive.d.ts +7 -0
  229. package/components/infinite-scroll/infinite-scroll.module.d.ts +2 -0
  230. package/components/info-sign/index.d.ts +2 -0
  231. package/components/info-sign/info-sign.component.d.ts +7 -0
  232. package/components/info-sign/info-sign.directive.d.ts +16 -0
  233. package/components/info-sign/info-sign.module.d.ts +2 -0
  234. package/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +17 -0
  235. package/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +10 -0
  236. package/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +18 -0
  237. package/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +9 -0
  238. package/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +10 -0
  239. package/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.d.ts +9 -0
  240. package/components/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +27 -0
  241. package/components/inline-edit/fields/index.d.ts +7 -0
  242. package/components/inline-edit/fields/inline-edit-calendar-field.d.ts +44 -0
  243. package/components/inline-edit/fields/inline-edit-field.d.ts +13 -0
  244. package/components/inline-edit/fields/inline-edit-lookup-field.d.ts +79 -0
  245. package/components/inline-edit/fields/inline-edit-number-field.d.ts +38 -0
  246. package/components/inline-edit/index.d.ts +3 -0
  247. package/components/inline-edit/inline-edit.component.d.ts +14 -0
  248. package/components/inline-edit/inline-edit.module.d.ts +2 -0
  249. package/components/kanban/components/kanban-column/kanban-column.component.d.ts +18 -0
  250. package/components/kanban/components/kanban-item/kanban-item.component.d.ts +16 -0
  251. package/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +3 -0
  252. package/components/kanban/index.d.ts +3 -0
  253. package/components/kanban/kanban-event.service.d.ts +12 -0
  254. package/components/kanban/kanban.component.d.ts +43 -0
  255. package/components/kanban/kanban.module.d.ts +2 -0
  256. package/components/kanban/models/index.d.ts +2 -0
  257. package/components/kanban/models/kanban-data.d.ts +27 -0
  258. package/components/kanban/models/kanban-template-types.d.ts +7 -0
  259. package/components/label-value/index.d.ts +3 -0
  260. package/components/label-value/label-value.component.d.ts +9 -0
  261. package/components/label-value/label-value.module.d.ts +2 -0
  262. package/components/label-value/types/label-value-configuration.d.ts +29 -0
  263. package/components/loading-state/components/dots-indicator/dots-indicator.components.d.ts +2 -0
  264. package/components/loading-state/components/logo-indicator/logo-indicator.component.d.ts +2 -0
  265. package/components/loading-state/index.d.ts +3 -0
  266. package/components/loading-state/loading-state.component.d.ts +20 -0
  267. package/components/loading-state/loading-state.directive.d.ts +19 -0
  268. package/components/loading-state/loading-state.module.d.ts +2 -0
  269. package/components/locale/index.d.ts +10 -0
  270. package/components/locale/locale.module.d.ts +5 -0
  271. package/components/locale/locale.service.d.ts +24 -0
  272. package/components/locale/options/calendar.d.ts +25 -0
  273. package/components/locale/options/index.d.ts +26 -0
  274. package/components/locale/options/number.d.ts +11 -0
  275. package/components/locale/pipes/localized-bignumber-impure.pipe.d.ts +6 -0
  276. package/components/locale/pipes/localized-bignumber.pipe.d.ts +9 -0
  277. package/components/locale/pipes/localized-currency-impure.pipe.d.ts +8 -0
  278. package/components/locale/pipes/localized-currency.pipe.d.ts +19 -0
  279. package/components/locale/pipes/localized-date-impure.pipe.d.ts +4 -0
  280. package/components/locale/pipes/localized-date.pipe.d.ts +7 -0
  281. package/components/locale/pipes/localized-number.pipe.d.ts +14 -0
  282. package/components/locale/pipes/localized-time-impure.pipe.d.ts +4 -0
  283. package/components/locale/pipes/localized-time.pipe.d.ts +7 -0
  284. package/components/locale/pipes/numeric.pipe.d.ts +13 -0
  285. package/components/locale/services/numeric.service.d.ts +27 -0
  286. package/components/localized-number-input/index.d.ts +2 -0
  287. package/components/localized-number-input/localized-number-input.directive.d.ts +13 -0
  288. package/components/localized-number-input/localized-number-input.module.d.ts +2 -0
  289. package/components/mask/index.d.ts +2 -0
  290. package/components/mask/mask-formatter.module.d.ts +2 -0
  291. package/components/mask/mask-formatter.pipe.d.ts +5 -0
  292. package/components/mouse-events/double-click.directive.d.ts +9 -0
  293. package/components/mouse-events/index.d.ts +3 -0
  294. package/components/mouse-events/long-press.directive.d.ts +13 -0
  295. package/components/mouse-events/mouse-events.module.d.ts +2 -0
  296. package/components/navigation-button/index.d.ts +3 -0
  297. package/components/navigation-button/models/index.d.ts +2 -0
  298. package/components/navigation-button/models/navigation-button-step-changed-info.d.ts +5 -0
  299. package/components/navigation-button/navigation-button.component.d.ts +30 -0
  300. package/components/navigation-button/navigation-button.module.d.ts +2 -0
  301. package/components/number-input/index.d.ts +2 -0
  302. package/components/number-input/number-input.directive.d.ts +42 -0
  303. package/components/number-input/number-input.module.d.ts +5 -0
  304. package/components/object-card/elements/field/object-card-field.component.d.ts +17 -0
  305. package/components/object-card/elements/main/object-card-main.component.d.ts +27 -0
  306. package/components/object-card/index.d.ts +4 -0
  307. package/components/object-card/object-card.component.d.ts +29 -0
  308. package/components/object-card/object-card.module.d.ts +2 -0
  309. package/components/panel/index.d.ts +2 -0
  310. package/components/panel/panel.component.d.ts +25 -0
  311. package/components/panel/panel.module.d.ts +2 -0
  312. package/components/password-strength/index.d.ts +4 -0
  313. package/components/password-strength/models/index.d.ts +2 -0
  314. package/components/password-strength/models/password-positions.d.ts +5 -0
  315. package/components/password-strength/models/password-strengths.d.ts +6 -0
  316. package/components/password-strength/password-strength.component.d.ts +19 -0
  317. package/components/password-strength/password-strength.directive.d.ts +26 -0
  318. package/components/password-strength/password-strength.module.d.ts +2 -0
  319. package/components/picklist/index.d.ts +4 -0
  320. package/components/picklist/picklist/models/picklist-models.d.ts +8 -0
  321. package/components/picklist/picklist/picklist.component.d.ts +71 -0
  322. package/components/picklist/picklist.module.d.ts +2 -0
  323. package/components/product-header/index.d.ts +2 -0
  324. package/components/product-header/product-header.component.d.ts +10 -0
  325. package/components/product-header/product-header.module.d.ts +2 -0
  326. package/components/profile-picture-picker/index.d.ts +3 -0
  327. package/components/profile-picture-picker/models/file-validation-errors.d.ts +10 -0
  328. package/components/profile-picture-picker/models/index.d.ts +4 -0
  329. package/components/profile-picture-picker/profile-picture-picker.component.d.ts +55 -0
  330. package/components/profile-picture-picker/profile-picture-picker.module.d.ts +2 -0
  331. package/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +17 -0
  332. package/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +5 -0
  333. package/components/progressbar/index.d.ts +3 -0
  334. package/components/progressbar/models/index.d.ts +2 -0
  335. package/components/progressbar/models/progressbar-colors.d.ts +6 -0
  336. package/components/progressbar/models/progressbar-mode.d.ts +4 -0
  337. package/components/progressbar/progressbar.component.d.ts +15 -0
  338. package/components/progressbar/progressbar.module.d.ts +2 -0
  339. package/components/rating-scale/index.d.ts +3 -0
  340. package/components/rating-scale/models/index.d.ts +1 -0
  341. package/components/rating-scale/rating-scale.component.d.ts +15 -0
  342. package/components/rating-scale/rating-scale.module.d.ts +2 -0
  343. package/components/select-button/components/select-button-item/select-button-item.component.d.ts +7 -0
  344. package/components/select-button/index.d.ts +3 -0
  345. package/components/select-button/models/index.d.ts +1 -0
  346. package/components/select-button/select-button.component.d.ts +19 -0
  347. package/components/select-button/select-button.module.d.ts +2 -0
  348. package/components/shared/border-button/border-button.component.d.ts +9 -0
  349. package/components/shared/border-button/border-button.module.d.ts +2 -0
  350. package/components/shared/index.d.ts +3 -0
  351. package/components/shared/models/border-button-options.d.ts +9 -0
  352. package/components/shared/models/enum-severity.d.ts +7 -0
  353. package/components/sidebar/index.d.ts +2 -0
  354. package/components/sidebar/sidebar.component.d.ts +22 -0
  355. package/components/sidebar/sidebar.module.d.ts +2 -0
  356. package/components/slide-panel/index.d.ts +2 -0
  357. package/components/slide-panel/slide-panel.component.d.ts +32 -0
  358. package/components/slide-panel/slide-panel.module.d.ts +2 -0
  359. package/components/slide-panel/slide-panel.service.d.ts +7 -0
  360. package/components/slider/index.d.ts +2 -0
  361. package/components/slider/slider.component.d.ts +95 -0
  362. package/components/slider/slider.module.d.ts +2 -0
  363. package/components/split-button/index.d.ts +4 -0
  364. package/components/split-button/models/split-button-type.d.ts +5 -0
  365. package/components/split-button/split-button.component.d.ts +19 -0
  366. package/components/split-button/split-button.module.d.ts +2 -0
  367. package/components/stats-card/index.d.ts +2 -0
  368. package/components/stats-card/stats-card.component.d.ts +26 -0
  369. package/components/stats-card/stats-card.module.d.ts +2 -0
  370. package/components/steps/index.d.ts +2 -0
  371. package/components/steps/steps.component.d.ts +38 -0
  372. package/components/steps/steps.module.d.ts +2 -0
  373. package/components/structure/footer.component.d.ts +2 -0
  374. package/components/structure/header.component.d.ts +2 -0
  375. package/components/structure/structure.module.d.ts +2 -0
  376. package/components/switch/index.d.ts +2 -0
  377. package/components/switch/switch.component.d.ts +22 -0
  378. package/components/switch/switch.module.d.ts +2 -0
  379. package/components/table/frozen-position/frozen-position.directive.d.ts +28 -0
  380. package/components/table/index.d.ts +6 -0
  381. package/components/table/navigation/navigation.directive.d.ts +15 -0
  382. package/components/table/row-toggler/row-toggler.directive.d.ts +7 -0
  383. package/components/table/table-column/index.d.ts +1 -0
  384. package/components/table/table-column/models/badge-column.interface.d.ts +9 -0
  385. package/components/table/table-column/models/badge-configs.interface.d.ts +5 -0
  386. package/components/table/table-column/models/column-colors.d.ts +1 -0
  387. package/components/table/table-column/models/column-values.interface.d.ts +17 -0
  388. package/components/table/table-column/models/column.interface.d.ts +27 -0
  389. package/components/table/table-column/models/dynamic-editable-grid.interface.d.ts +13 -0
  390. package/components/table/table-column/models/index.d.ts +9 -0
  391. package/components/table/table-column/models/locale-options.interface.d.ts +6 -0
  392. package/components/table/table-column/models/number-locale-options.interface.d.ts +6 -0
  393. package/components/table/table-column/table-columns.component.d.ts +49 -0
  394. package/components/table/table-paging/index.d.ts +1 -0
  395. package/components/table/table-paging/models/index.d.ts +1 -0
  396. package/components/table/table-paging/table-paging.component.d.ts +63 -0
  397. package/components/table/table.module.d.ts +2 -0
  398. package/components/table-header/index.d.ts +2 -0
  399. package/components/table-header/table-header-checkbox.component.d.ts +25 -0
  400. package/components/table-header/table-header-checkox.module.d.ts +2 -0
  401. package/components/template/index.d.ts +2 -0
  402. package/components/template/template.directive.d.ts +6 -0
  403. package/components/template/template.module.d.ts +2 -0
  404. package/components/text-area-ia/index.d.ts +2 -0
  405. package/components/text-area-ia/text-area-ia.component.d.ts +39 -0
  406. package/components/text-area-ia/text-area-ia.module.d.ts +2 -0
  407. package/components/thumbnail/index.d.ts +3 -0
  408. package/components/thumbnail/thumbnail-size.d.ts +5 -0
  409. package/components/thumbnail/thumbnail.component.d.ts +24 -0
  410. package/components/thumbnail/thumbnail.module.d.ts +2 -0
  411. package/components/thumbnail/thumbnail.service.d.ts +7 -0
  412. package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +3 -0
  413. package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +8 -0
  414. package/components/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +20 -0
  415. package/components/thumbnails/index.d.ts +3 -0
  416. package/components/thumbnails/models/thumbnails-item.d.ts +20 -0
  417. package/components/thumbnails/thumbnails.component.d.ts +17 -0
  418. package/components/thumbnails/thumbnails.module.d.ts +2 -0
  419. package/components/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +32 -0
  420. package/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +2 -0
  421. package/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +15 -0
  422. package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +24 -0
  423. package/components/tiered-menu/index.d.ts +3 -0
  424. package/components/tiered-menu/models/index.d.ts +2 -0
  425. package/components/tiered-menu/models/tiered-menu-item-data.d.ts +9 -0
  426. package/components/tiered-menu/models/tiered-menu-item-internal-data.d.ts +6 -0
  427. package/components/tiered-menu/services/tiered-menu.event.service.d.ts +11 -0
  428. package/components/tiered-menu/services/tiered-menu.global.service.d.ts +4 -0
  429. package/components/tiered-menu/services/tiered-menu.service.d.ts +12 -0
  430. package/components/tiered-menu/tiered-menu.directive.d.ts +41 -0
  431. package/components/tiered-menu/tiered-menu.module.d.ts +2 -0
  432. package/components/tile/index.d.ts +2 -0
  433. package/components/tile/tile.component.d.ts +16 -0
  434. package/components/tile/tile.module.d.ts +2 -0
  435. package/components/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +6 -0
  436. package/components/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +2 -0
  437. package/components/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +7 -0
  438. package/components/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +2 -0
  439. package/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +6 -0
  440. package/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +10 -0
  441. package/components/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +2 -0
  442. package/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +8 -0
  443. package/components/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +21 -0
  444. package/components/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +2 -0
  445. package/components/timeline/index.d.ts +3 -0
  446. package/components/timeline/models/index.d.ts +3 -0
  447. package/components/timeline/models/timeline-item.d.ts +27 -0
  448. package/components/timeline/timeline.component.d.ts +20 -0
  449. package/components/timeline/timeline.module.d.ts +2 -0
  450. package/components/toast/index.d.ts +3 -0
  451. package/components/toast/toast.component.d.ts +12 -0
  452. package/components/toast/toast.module.d.ts +2 -0
  453. package/components/toast/toast.service.d.ts +12 -0
  454. package/components/toast/types/toast.d.ts +16 -0
  455. package/components/token-list/index.d.ts +3 -0
  456. package/components/token-list/models/index.d.ts +1 -0
  457. package/components/token-list/token-list.component.d.ts +13 -0
  458. package/components/token-list/token-list.module.d.ts +2 -0
  459. package/components/tooltip/index.d.ts +2 -0
  460. package/components/tooltip/models/index.d.ts +3 -0
  461. package/components/tooltip/models/mobile-behavior.d.ts +4 -0
  462. package/components/tooltip/models/tooltip-event.d.ts +4 -0
  463. package/components/tooltip/models/tooltip-position.d.ts +6 -0
  464. package/components/tooltip/tooltip.component.d.ts +9 -0
  465. package/components/tooltip/tooltip.directive.d.ts +59 -0
  466. package/components/tooltip/tooltip.module.d.ts +2 -0
  467. package/components/utils/debouce.d.ts +4 -0
  468. package/components/utils/export-utils.d.ts +9 -0
  469. package/components/utils/index.d.ts +5 -0
  470. package/components/utils/utils.d.ts +24 -0
  471. package/components/workspace-switch/index.d.ts +3 -0
  472. package/components/workspace-switch/models/index.d.ts +1 -0
  473. package/components/workspace-switch/workspace-switch.component.d.ts +30 -0
  474. package/components/workspace-switch/workspace-switch.module.d.ts +2 -0
  475. package/esm2015/angular-components.module.js +22 -0
  476. package/esm2015/components/accordion/accordion.component.js +90 -0
  477. package/esm2015/components/accordion/accordion.module.js +31 -0
  478. package/esm2015/components/accordion/components/accordion-panel/accordion-panel.component.js +118 -0
  479. package/esm2015/components/accordion/index.js +4 -0
  480. package/esm2015/components/accordion/models/accordion-button-settings.js +1 -0
  481. package/esm2015/components/accordion/models/accordion-switch-settings.js +1 -0
  482. package/esm2015/components/alert/alert.component.js +47 -0
  483. package/esm2015/components/alert/alert.module.js +15 -0
  484. package/esm2015/components/alert/index.js +3 -0
  485. package/esm2015/components/badge/badge.component.js +61 -0
  486. package/esm2015/components/badge/badge.module.js +17 -0
  487. package/esm2015/components/badge/index.js +4 -0
  488. package/esm2015/components/badge/models/badge-colors.js +12 -0
  489. package/esm2015/components/badge/models/badge-types.js +6 -0
  490. package/esm2015/components/badge/models/index.js +3 -0
  491. package/esm2015/components/bignumber-input/index.js +3 -0
  492. package/esm2015/components/bignumber-input/number-input.directive.js +132 -0
  493. package/esm2015/components/bignumber-input/number-input.module.js +15 -0
  494. package/esm2015/components/breadcrumb/breadcrumb.component.js +90 -0
  495. package/esm2015/components/breadcrumb/breadcrumb.module.js +17 -0
  496. package/esm2015/components/breadcrumb/index.js +3 -0
  497. package/esm2015/components/button/button.component.js +138 -0
  498. package/esm2015/components/button/button.module.js +20 -0
  499. package/esm2015/components/button/index.js +6 -0
  500. package/esm2015/components/button/models/button-animation.js +5 -0
  501. package/esm2015/components/button/models/button-badge-config.js +1 -0
  502. package/esm2015/components/button/models/button-priority.js +9 -0
  503. package/esm2015/components/button/models/button-size.js +6 -0
  504. package/esm2015/components/calendar-mask/calendar-mask.directive.js +573 -0
  505. package/esm2015/components/calendar-mask/calendar-mask.module.js +15 -0
  506. package/esm2015/components/calendar-mask/index.js +3 -0
  507. package/esm2015/components/card/card.component.js +58 -0
  508. package/esm2015/components/card/card.module.js +16 -0
  509. package/esm2015/components/card/index.js +4 -0
  510. package/esm2015/components/card/models/card-template-types.js +7 -0
  511. package/esm2015/components/chat/chat.component.js +32 -0
  512. package/esm2015/components/chat/chat.module.js +18 -0
  513. package/esm2015/components/chat/components/chat-message/chat-message.component.js +28 -0
  514. package/esm2015/components/chat/index.js +3 -0
  515. package/esm2015/components/chat/types/chat-message.js +1 -0
  516. package/esm2015/components/checkbox/checkbox.component.js +107 -0
  517. package/esm2015/components/checkbox/checkbox.module.js +16 -0
  518. package/esm2015/components/checkbox/index.js +3 -0
  519. package/esm2015/components/checkbox/models/checkbox-data.js +1 -0
  520. package/esm2015/components/checkbox/models/checkbox-state.js +1 -0
  521. package/esm2015/components/checkbox/models/index.js +1 -0
  522. package/esm2015/components/chips/chip-item/chip-item.component.js +68 -0
  523. package/esm2015/components/chips/chips/chips.component.js +228 -0
  524. package/esm2015/components/chips/chips.module.js +24 -0
  525. package/esm2015/components/chips/index.js +3 -0
  526. package/esm2015/components/chips/models/chip-models.js +1 -0
  527. package/esm2015/components/code-editor/code-editor.component.js +110 -0
  528. package/esm2015/components/code-editor/code-editor.module.js +24 -0
  529. package/esm2015/components/code-editor/core/facades/core-facade.js +85 -0
  530. package/esm2015/components/code-editor/core/facades/linter-facade.js +1 -0
  531. package/esm2015/components/code-editor/core/models/enums/marker-severity.js +7 -0
  532. package/esm2015/components/code-editor/core/models/index.js +3 -0
  533. package/esm2015/components/code-editor/core/models/interfaces/marker.js +1 -0
  534. package/esm2015/components/code-editor/core/use-cases/core-linters.js +9 -0
  535. package/esm2015/components/code-editor/index.js +5 -0
  536. package/esm2015/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +97 -0
  537. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +15 -0
  538. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.js +29 -0
  539. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.js +29 -0
  540. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.js +17 -0
  541. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.js +75 -0
  542. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.js +4 -0
  543. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.js +35 -0
  544. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +341 -0
  545. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.js +34 -0
  546. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.js +18 -0
  547. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.js +37 -0
  548. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.js +10 -0
  549. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.js +8 -0
  550. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.js +12 -0
  551. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +36 -0
  552. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.js +9 -0
  553. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.js +7 -0
  554. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.js +1 -0
  555. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.js +1 -0
  556. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.js +1 -0
  557. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.js +1 -0
  558. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.js +1 -0
  559. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.js +1 -0
  560. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.js +1 -0
  561. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.js +1 -0
  562. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.js +1 -0
  563. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.js +1 -0
  564. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.js +1 -0
  565. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.js +1 -0
  566. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.js +1 -0
  567. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.js +1 -0
  568. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.js +10 -0
  569. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +9 -0
  570. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.js +15 -0
  571. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.js +16 -0
  572. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +3 -0
  573. package/esm2015/components/code-editor/infra/cores/codemirror-6/models/index.js +1 -0
  574. package/esm2015/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.js +1 -0
  575. package/esm2015/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.js +1 -0
  576. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +15 -0
  577. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.js +61 -0
  578. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.js +29 -0
  579. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.js +25 -0
  580. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.js +18 -0
  581. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +16 -0
  582. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.js +13 -0
  583. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.js +22 -0
  584. package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.js +18 -0
  585. package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/index.js +3 -0
  586. package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.js +6 -0
  587. package/esm2015/components/code-editor/infra/utils/custom-http-client/custom-http-client.js +80 -0
  588. package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.js +13 -0
  589. package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.js +12 -0
  590. package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/index.js +3 -0
  591. package/esm2015/components/code-editor/infra/utils/custom-translations/custom-translations-service.js +37 -0
  592. package/esm2015/components/code-editor/infra/utils/custom-translations/custom-translations.module.js +30 -0
  593. package/esm2015/components/code-editor/infra/utils/custom-translations/index.js +3 -0
  594. package/esm2015/components/code-editor/infra/utils/custom-translations/models/index.js +1 -0
  595. package/esm2015/components/code-editor/infra/utils/custom-translations/models/interfaces/translations.js +1 -0
  596. package/esm2015/components/code-editor/infra/utils/index.js +3 -0
  597. package/esm2015/components/code-editor/models/enums/languages.js +5 -0
  598. package/esm2015/components/code-editor/models/enums/themes.js +5 -0
  599. package/esm2015/components/code-editor/models/index.js +4 -0
  600. package/esm2015/components/code-editor/models/interfaces/editor-options.js +1 -0
  601. package/esm2015/components/collapse-link/collapse-link.component.js +73 -0
  602. package/esm2015/components/collapse-link/collapse-link.module.js +15 -0
  603. package/esm2015/components/collapse-link/index.js +3 -0
  604. package/esm2015/components/control-errors/control-errors.component.js +37 -0
  605. package/esm2015/components/control-errors/control-errors.module.js +16 -0
  606. package/esm2015/components/control-errors/index.js +3 -0
  607. package/esm2015/components/country-phone-picker/country-phone-picker.component.js +301 -0
  608. package/esm2015/components/country-phone-picker/country-phone-picker.module.js +27 -0
  609. package/esm2015/components/country-phone-picker/country-phone-picker.service.js +43 -0
  610. package/esm2015/components/country-phone-picker/index.js +5 -0
  611. package/esm2015/components/country-phone-picker/models/country-phone-data.js +1 -0
  612. package/esm2015/components/country-phone-picker/models/index.js +2 -0
  613. package/esm2015/components/country-phone-picker/models/ordination.js +7 -0
  614. package/esm2015/components/country-phone-picker/models/phone-selection-data.js +1 -0
  615. package/esm2015/components/country-phone-picker/resources/countries.js +228 -0
  616. package/esm2015/components/country-phone-picker/resources/index.js +2 -0
  617. package/esm2015/components/custom-fields/custom-fields.component.js +609 -0
  618. package/esm2015/components/custom-fields/custom-fields.module.js +30 -0
  619. package/esm2015/components/custom-fields/custom-fields.service.js +36 -0
  620. package/esm2015/components/custom-fields/index.js +4 -0
  621. package/esm2015/components/custom-fields/models/custom-field-type.js +17 -0
  622. package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +37 -0
  623. package/esm2015/components/dynamic-form/components/field-label/field-label.component.js +18 -0
  624. package/esm2015/components/dynamic-form/components/field-label/field-label.module.js +19 -0
  625. package/esm2015/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +32 -0
  626. package/esm2015/components/dynamic-form/components/fields/base-field-component.js +9 -0
  627. package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +113 -0
  628. package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +32 -0
  629. package/esm2015/components/dynamic-form/components/fields/boolean/boolean-field.component.js +20 -0
  630. package/esm2015/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.js +17 -0
  631. package/esm2015/components/dynamic-form/components/fields/button-field/button-field.component.js +31 -0
  632. package/esm2015/components/dynamic-form/components/fields/calendar/calendar-field.component.js +106 -0
  633. package/esm2015/components/dynamic-form/components/fields/checkbox/checkbox-field.component.js +17 -0
  634. package/esm2015/components/dynamic-form/components/fields/checkbox/checkbox-field.module.js +17 -0
  635. package/esm2015/components/dynamic-form/components/fields/chips/chips-field.component.js +53 -0
  636. package/esm2015/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +32 -0
  637. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.component.js +71 -0
  638. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.module.js +30 -0
  639. package/esm2015/components/dynamic-form/components/fields/editor/editor-field.component.js +18 -0
  640. package/esm2015/components/dynamic-form/components/fields/editor/editor-field.module.js +18 -0
  641. package/esm2015/components/dynamic-form/components/fields/file-upload/file-upload.component.js +51 -0
  642. package/esm2015/components/dynamic-form/components/fields/index.js +22 -0
  643. package/esm2015/components/dynamic-form/components/fields/lookup/lookup-field.component.js +17 -0
  644. package/esm2015/components/dynamic-form/components/fields/number/number-field.component.js +109 -0
  645. package/esm2015/components/dynamic-form/components/fields/number/number-field.module.js +34 -0
  646. package/esm2015/components/dynamic-form/components/fields/password/password-field.component.js +77 -0
  647. package/esm2015/components/dynamic-form/components/fields/password/password-field.module.js +30 -0
  648. package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +17 -0
  649. package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +24 -0
  650. package/esm2015/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +60 -0
  651. package/esm2015/components/dynamic-form/components/fields/select/select-field.component.js +18 -0
  652. package/esm2015/components/dynamic-form/components/fields/slider/slider-field.component.js +111 -0
  653. package/esm2015/components/dynamic-form/components/fields/text/text-field.component.js +76 -0
  654. package/esm2015/components/dynamic-form/components/fields/text/text-field.module.js +32 -0
  655. package/esm2015/components/dynamic-form/components/fields/text-area/text-area-field.component.js +29 -0
  656. package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +88 -0
  657. package/esm2015/components/dynamic-form/components/grid/row/row.component.js +77 -0
  658. package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +577 -0
  659. package/esm2015/components/dynamic-form/components/lookup/models/default-filter.js +1 -0
  660. package/esm2015/components/dynamic-form/components/lookup/models/index.js +1 -0
  661. package/esm2015/components/dynamic-form/components/structure/base-structure-component.js +1 -0
  662. package/esm2015/components/dynamic-form/components/structure/fieldset/fieldset.component.js +32 -0
  663. package/esm2015/components/dynamic-form/components/structure/section/section.component.js +52 -0
  664. package/esm2015/components/dynamic-form/configurations/addon-config.js +1 -0
  665. package/esm2015/components/dynamic-form/configurations/dynamic-config.js +71 -0
  666. package/esm2015/components/dynamic-form/configurations/dynamic-type.js +26 -0
  667. package/esm2015/components/dynamic-form/configurations/field-size.js +9 -0
  668. package/esm2015/components/dynamic-form/configurations/field-type.js +32 -0
  669. package/esm2015/components/dynamic-form/configurations/fields/autocomplete-field.js +11 -0
  670. package/esm2015/components/dynamic-form/configurations/fields/bignumber-field.js +23 -0
  671. package/esm2015/components/dynamic-form/configurations/fields/blob-field.js +19 -0
  672. package/esm2015/components/dynamic-form/configurations/fields/boolean-field.js +21 -0
  673. package/esm2015/components/dynamic-form/configurations/fields/boolean-switch-field.js +13 -0
  674. package/esm2015/components/dynamic-form/configurations/fields/button-field.js +30 -0
  675. package/esm2015/components/dynamic-form/configurations/fields/calendar-field.js +37 -0
  676. package/esm2015/components/dynamic-form/configurations/fields/checkbox-field.js +8 -0
  677. package/esm2015/components/dynamic-form/configurations/fields/chips-field.js +17 -0
  678. package/esm2015/components/dynamic-form/configurations/fields/country-phone-picker-field.js +11 -0
  679. package/esm2015/components/dynamic-form/configurations/fields/currency-field.js +12 -0
  680. package/esm2015/components/dynamic-form/configurations/fields/decimal-field.js +14 -0
  681. package/esm2015/components/dynamic-form/configurations/fields/editor-field.js +11 -0
  682. package/esm2015/components/dynamic-form/configurations/fields/field.js +39 -0
  683. package/esm2015/components/dynamic-form/configurations/fields/index.js +22 -0
  684. package/esm2015/components/dynamic-form/configurations/fields/lookup-field.js +33 -0
  685. package/esm2015/components/dynamic-form/configurations/fields/number-field.js +23 -0
  686. package/esm2015/components/dynamic-form/configurations/fields/password-field.js +20 -0
  687. package/esm2015/components/dynamic-form/configurations/fields/profile-picture.js +21 -0
  688. package/esm2015/components/dynamic-form/configurations/fields/radio-button-field.js +19 -0
  689. package/esm2015/components/dynamic-form/configurations/fields/select-field.js +26 -0
  690. package/esm2015/components/dynamic-form/configurations/fields/slider-field.js +21 -0
  691. package/esm2015/components/dynamic-form/configurations/fields/text-area-field.js +12 -0
  692. package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +13 -0
  693. package/esm2015/components/dynamic-form/configurations/fields/text-field.js +24 -0
  694. package/esm2015/components/dynamic-form/configurations/form-field.js +92 -0
  695. package/esm2015/components/dynamic-form/configurations/grid/grid.js +10 -0
  696. package/esm2015/components/dynamic-form/configurations/grid/row.js +7 -0
  697. package/esm2015/components/dynamic-form/configurations/grid-type.js +5 -0
  698. package/esm2015/components/dynamic-form/configurations/structure/fieldset.js +8 -0
  699. package/esm2015/components/dynamic-form/configurations/structure/section.js +29 -0
  700. package/esm2015/components/dynamic-form/configurations/structure/structure.js +7 -0
  701. package/esm2015/components/dynamic-form/configurations/structure-type.js +6 -0
  702. package/esm2015/components/dynamic-form/dynamic-form.component.js +32 -0
  703. package/esm2015/components/dynamic-form/dynamic-form.directive.js +80 -0
  704. package/esm2015/components/dynamic-form/dynamic-form.js +196 -0
  705. package/esm2015/components/dynamic-form/dynamic-form.module.js +187 -0
  706. package/esm2015/components/dynamic-form/index.js +31 -0
  707. package/esm2015/components/dynamic-form/services/IAssist/iassist.service.js +75 -0
  708. package/esm2015/components/dynamic-form/services/IAssist/models/iassist-input-data.js +1 -0
  709. package/esm2015/components/dynamic-form/services/IAssist/models/iassist-response.js +1 -0
  710. package/esm2015/components/dynamic-form/services/IAssist/models/index.js +1 -0
  711. package/esm2015/components/editable-overlay/editable-overlay.directive.js +42 -0
  712. package/esm2015/components/editable-overlay/editable-overlay.module.js +15 -0
  713. package/esm2015/components/editable-overlay/index.js +3 -0
  714. package/esm2015/components/empty-state/empty-state.component.js +57 -0
  715. package/esm2015/components/empty-state/empty-state.module.js +19 -0
  716. package/esm2015/components/empty-state/go-back/go-back.component.js +37 -0
  717. package/esm2015/components/empty-state/index.js +3 -0
  718. package/esm2015/components/file-upload/file-upload.component.js +285 -0
  719. package/esm2015/components/file-upload/file-upload.module.js +27 -0
  720. package/esm2015/components/file-upload/file-upload.service.js +19 -0
  721. package/esm2015/components/file-upload/index.js +4 -0
  722. package/esm2015/components/file-upload/models/file-dto.js +1 -0
  723. package/esm2015/components/file-upload/models/file-upload-permissions.js +12 -0
  724. package/esm2015/components/file-upload/models/index.js +3 -0
  725. package/esm2015/components/file-upload/models/list-blob-metadata.js +1 -0
  726. package/esm2015/components/file-upload/models/uploadError.js +1 -0
  727. package/esm2015/components/file-upload/models/validate-errors.js +8 -0
  728. package/esm2015/components/gantt/components/gantt/arrow.js +82 -0
  729. package/esm2015/components/gantt/components/gantt/bar.js +264 -0
  730. package/esm2015/components/gantt/components/gantt/gantt-options.js +20 -0
  731. package/esm2015/components/gantt/components/gantt/gantt.js +808 -0
  732. package/esm2015/components/gantt/components/gantt/popup.js +100 -0
  733. package/esm2015/components/gantt/components/gantt/utils/date-utils.js +127 -0
  734. package/esm2015/components/gantt/components/gantt/utils/svg-utils.js +119 -0
  735. package/esm2015/components/gantt/components/side-table/side-table.component.js +32 -0
  736. package/esm2015/components/gantt/gantt.component.js +160 -0
  737. package/esm2015/components/gantt/gantt.module.js +20 -0
  738. package/esm2015/components/gantt/index.js +4 -0
  739. package/esm2015/components/gantt/models/index.js +2 -0
  740. package/esm2015/components/gantt/models/options.js +1 -0
  741. package/esm2015/components/gantt/models/task.js +1 -0
  742. package/esm2015/components/gantt/models/view-mode.js +12 -0
  743. package/esm2015/components/global-search/elements/dropdown/global-search-dropdown-item.component.js +76 -0
  744. package/esm2015/components/global-search/global-search-size.enum.js +7 -0
  745. package/esm2015/components/global-search/global-search.component.js +135 -0
  746. package/esm2015/components/global-search/global-search.module.js +50 -0
  747. package/esm2015/components/global-search/index.js +5 -0
  748. package/esm2015/components/grid-menu/components/grid-menu-item/grid-menu-item.component.js +36 -0
  749. package/esm2015/components/grid-menu/grid-menu.component.js +22 -0
  750. package/esm2015/components/grid-menu/grid-menu.module.js +16 -0
  751. package/esm2015/components/grid-menu/index.js +3 -0
  752. package/esm2015/components/grid-menu/types/grid-menu-item.js +1 -0
  753. package/esm2015/components/help-popover/help-popover/help-popover.component.js +82 -0
  754. package/esm2015/components/help-popover/help-popover.directive.js +328 -0
  755. package/esm2015/components/help-popover/help-popover.module.js +20 -0
  756. package/esm2015/components/help-popover/index.js +4 -0
  757. package/esm2015/components/help-popover/models/help-popover.models.js +1 -0
  758. package/esm2015/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +13 -0
  759. package/esm2015/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +82 -0
  760. package/esm2015/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.js +50 -0
  761. package/esm2015/components/ia-insight/ia-insight.component.js +68 -0
  762. package/esm2015/components/ia-insight/ia-insight.module.js +40 -0
  763. package/esm2015/components/ia-insight/index.js +4 -0
  764. package/esm2015/components/ia-insight/models/ia-insight-item.js +1 -0
  765. package/esm2015/components/ia-insight/models/ia-insight-template-types.js +7 -0
  766. package/esm2015/components/ia-insight/models/index.js +2 -0
  767. package/esm2015/components/image-cropper/image-cropper.component.js +183 -0
  768. package/esm2015/components/image-cropper/image-cropper.module.js +20 -0
  769. package/esm2015/components/image-cropper/image-cropper.service.js +62 -0
  770. package/esm2015/components/image-cropper/index.js +4 -0
  771. package/esm2015/components/index.js +72 -0
  772. package/esm2015/components/infinite-scroll/infinite-scroll.directive.js +30 -0
  773. package/esm2015/components/infinite-scroll/infinite-scroll.module.js +21 -0
  774. package/esm2015/components/info-sign/index.js +3 -0
  775. package/esm2015/components/info-sign/info-sign.component.js +13 -0
  776. package/esm2015/components/info-sign/info-sign.directive.js +68 -0
  777. package/esm2015/components/info-sign/info-sign.module.js +24 -0
  778. package/esm2015/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.js +51 -0
  779. package/esm2015/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.js +30 -0
  780. package/esm2015/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.js +75 -0
  781. package/esm2015/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.js +30 -0
  782. package/esm2015/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.js +30 -0
  783. package/esm2015/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.js +30 -0
  784. package/esm2015/components/inline-edit/components/index.js +8 -0
  785. package/esm2015/components/inline-edit/components/inline-edit-item/inline-edit-item.component.js +98 -0
  786. package/esm2015/components/inline-edit/fields/index.js +8 -0
  787. package/esm2015/components/inline-edit/fields/inline-edit-calendar-field.js +26 -0
  788. package/esm2015/components/inline-edit/fields/inline-edit-field.js +9 -0
  789. package/esm2015/components/inline-edit/fields/inline-edit-lookup-field.js +32 -0
  790. package/esm2015/components/inline-edit/fields/inline-edit-number-field.js +24 -0
  791. package/esm2015/components/inline-edit/fields/inline-edit-text-area-field.js +11 -0
  792. package/esm2015/components/inline-edit/fields/inline-edit-text-area-ia-field.js +7 -0
  793. package/esm2015/components/inline-edit/fields/inline-edit-text-field.js +7 -0
  794. package/esm2015/components/inline-edit/index.js +4 -0
  795. package/esm2015/components/inline-edit/inline-edit.component.js +70 -0
  796. package/esm2015/components/inline-edit/inline-edit.module.js +62 -0
  797. package/esm2015/components/kanban/components/kanban-column/kanban-column.component.js +96 -0
  798. package/esm2015/components/kanban/components/kanban-item/kanban-item.component.js +60 -0
  799. package/esm2015/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +19 -0
  800. package/esm2015/components/kanban/index.js +4 -0
  801. package/esm2015/components/kanban/kanban-event.service.js +27 -0
  802. package/esm2015/components/kanban/kanban.component.js +217 -0
  803. package/esm2015/components/kanban/kanban.module.js +45 -0
  804. package/esm2015/components/kanban/models/index.js +2 -0
  805. package/esm2015/components/kanban/models/kanban-data.js +1 -0
  806. package/esm2015/components/kanban/models/kanban-template-types.js +9 -0
  807. package/esm2015/components/label-value/index.js +3 -0
  808. package/esm2015/components/label-value/label-value.component.js +31 -0
  809. package/esm2015/components/label-value/label-value.module.js +20 -0
  810. package/esm2015/components/label-value/types/label-value-configuration.js +1 -0
  811. package/esm2015/components/loading-state/components/dots-indicator/dots-indicator.components.js +13 -0
  812. package/esm2015/components/loading-state/components/loading-state-indicators.js +6 -0
  813. package/esm2015/components/loading-state/components/logo-indicator/logo-indicator.component.js +13 -0
  814. package/esm2015/components/loading-state/index.js +4 -0
  815. package/esm2015/components/loading-state/loading-state.component.js +73 -0
  816. package/esm2015/components/loading-state/loading-state.directive.js +60 -0
  817. package/esm2015/components/loading-state/loading-state.module.js +31 -0
  818. package/esm2015/components/locale/index.js +11 -0
  819. package/esm2015/components/locale/locale.module.js +71 -0
  820. package/esm2015/components/locale/locale.service.js +89 -0
  821. package/esm2015/components/locale/options/calendar.js +29 -0
  822. package/esm2015/components/locale/options/index.js +24 -0
  823. package/esm2015/components/locale/options/number.js +9 -0
  824. package/esm2015/components/locale/pipes/localized-bignumber-impure.pipe.js +16 -0
  825. package/esm2015/components/locale/pipes/localized-bignumber.pipe.js +39 -0
  826. package/esm2015/components/locale/pipes/localized-currency-impure.pipe.js +19 -0
  827. package/esm2015/components/locale/pipes/localized-currency.pipe.js +53 -0
  828. package/esm2015/components/locale/pipes/localized-date-impure.pipe.js +13 -0
  829. package/esm2015/components/locale/pipes/localized-date.pipe.js +24 -0
  830. package/esm2015/components/locale/pipes/localized-number.pipe.js +31 -0
  831. package/esm2015/components/locale/pipes/localized-time-impure.pipe.js +13 -0
  832. package/esm2015/components/locale/pipes/localized-time.pipe.js +24 -0
  833. package/esm2015/components/locale/pipes/numeric.pipe.js +28 -0
  834. package/esm2015/components/locale/services/numeric.service.js +86 -0
  835. package/esm2015/components/localized-number-input/index.js +3 -0
  836. package/esm2015/components/localized-number-input/localized-number-input.directive.js +58 -0
  837. package/esm2015/components/localized-number-input/localized-number-input.module.js +15 -0
  838. package/esm2015/components/mask/index.js +3 -0
  839. package/esm2015/components/mask/mask-formatter.module.js +13 -0
  840. package/esm2015/components/mask/mask-formatter.pipe.js +71 -0
  841. package/esm2015/components/mouse-events/double-click.directive.js +38 -0
  842. package/esm2015/components/mouse-events/index.js +4 -0
  843. package/esm2015/components/mouse-events/long-press.directive.js +49 -0
  844. package/esm2015/components/mouse-events/mouse-events.module.js +22 -0
  845. package/esm2015/components/navigation-button/index.js +3 -0
  846. package/esm2015/components/navigation-button/models/index.js +1 -0
  847. package/esm2015/components/navigation-button/models/navigation-button-item.js +1 -0
  848. package/esm2015/components/navigation-button/models/navigation-button-step-changed-info.js +1 -0
  849. package/esm2015/components/navigation-button/navigation-button.component.js +126 -0
  850. package/esm2015/components/navigation-button/navigation-button.module.js +17 -0
  851. package/esm2015/components/number-input/index.js +3 -0
  852. package/esm2015/components/number-input/number-input.directive.js +142 -0
  853. package/esm2015/components/number-input/number-input.module.js +18 -0
  854. package/esm2015/components/object-card/elements/field/object-card-field.component.js +53 -0
  855. package/esm2015/components/object-card/elements/main/object-card-main.component.js +93 -0
  856. package/esm2015/components/object-card/index.js +5 -0
  857. package/esm2015/components/object-card/object-card.component.js +141 -0
  858. package/esm2015/components/object-card/object-card.module.js +21 -0
  859. package/esm2015/components/panel/index.js +3 -0
  860. package/esm2015/components/panel/panel.component.js +84 -0
  861. package/esm2015/components/panel/panel.module.js +17 -0
  862. package/esm2015/components/password-strength/index.js +5 -0
  863. package/esm2015/components/password-strength/models/index.js +3 -0
  864. package/esm2015/components/password-strength/models/password-positions.js +7 -0
  865. package/esm2015/components/password-strength/models/password-strengths.js +8 -0
  866. package/esm2015/components/password-strength/password-strength.component.js +95 -0
  867. package/esm2015/components/password-strength/password-strength.directive.js +196 -0
  868. package/esm2015/components/password-strength/password-strength.module.js +19 -0
  869. package/esm2015/components/picklist/index.js +5 -0
  870. package/esm2015/components/picklist/picklist/models/picklist-models.js +6 -0
  871. package/esm2015/components/picklist/picklist/picklist.component.js +305 -0
  872. package/esm2015/components/picklist/picklist.module.js +25 -0
  873. package/esm2015/components/product-header/index.js +3 -0
  874. package/esm2015/components/product-header/product-header.component.js +45 -0
  875. package/esm2015/components/product-header/product-header.module.js +17 -0
  876. package/esm2015/components/profile-picture-picker/index.js +4 -0
  877. package/esm2015/components/profile-picture-picker/models/confirmation-texts.js +1 -0
  878. package/esm2015/components/profile-picture-picker/models/cropper-labels-config.js +1 -0
  879. package/esm2015/components/profile-picture-picker/models/file-validation-errors.js +8 -0
  880. package/esm2015/components/profile-picture-picker/models/index.js +2 -0
  881. package/esm2015/components/profile-picture-picker/models/profile-picture-picker-data.js +1 -0
  882. package/esm2015/components/profile-picture-picker/profile-picture-picker.component.js +262 -0
  883. package/esm2015/components/profile-picture-picker/profile-picture-picker.module.js +33 -0
  884. package/esm2015/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +61 -0
  885. package/esm2015/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.js +19 -0
  886. package/esm2015/components/progressbar/index.js +4 -0
  887. package/esm2015/components/progressbar/models/index.js +3 -0
  888. package/esm2015/components/progressbar/models/progressbar-colors.js +8 -0
  889. package/esm2015/components/progressbar/models/progressbar-mode.js +6 -0
  890. package/esm2015/components/progressbar/progressbar.component.js +62 -0
  891. package/esm2015/components/progressbar/progressbar.module.js +21 -0
  892. package/esm2015/components/rating-scale/index.js +3 -0
  893. package/esm2015/components/rating-scale/models/index.js +1 -0
  894. package/esm2015/components/rating-scale/models/rating-scale-node.js +1 -0
  895. package/esm2015/components/rating-scale/rating-scale.component.js +52 -0
  896. package/esm2015/components/rating-scale/rating-scale.module.js +19 -0
  897. package/esm2015/components/select-button/components/select-button-item/select-button-item.component.js +34 -0
  898. package/esm2015/components/select-button/index.js +3 -0
  899. package/esm2015/components/select-button/models/index.js +1 -0
  900. package/esm2015/components/select-button/models/select-button-item.js +1 -0
  901. package/esm2015/components/select-button/select-button.component.js +114 -0
  902. package/esm2015/components/select-button/select-button.module.js +19 -0
  903. package/esm2015/components/shared/border-button/border-button.component.js +26 -0
  904. package/esm2015/components/shared/border-button/border-button.module.js +16 -0
  905. package/esm2015/components/shared/helpers.js +30 -0
  906. package/esm2015/components/shared/index.js +3 -0
  907. package/esm2015/components/shared/models/border-button-options.js +1 -0
  908. package/esm2015/components/shared/models/enum-severity.js +9 -0
  909. package/esm2015/components/sidebar/index.js +3 -0
  910. package/esm2015/components/sidebar/sidebar.component.js +72 -0
  911. package/esm2015/components/sidebar/sidebar.module.js +19 -0
  912. package/esm2015/components/slide-panel/index.js +3 -0
  913. package/esm2015/components/slide-panel/slide-panel.component.js +140 -0
  914. package/esm2015/components/slide-panel/slide-panel.module.js +17 -0
  915. package/esm2015/components/slide-panel/slide-panel.service.js +27 -0
  916. package/esm2015/components/slider/index.js +3 -0
  917. package/esm2015/components/slider/slider.component.js +620 -0
  918. package/esm2015/components/slider/slider.module.js +16 -0
  919. package/esm2015/components/split-button/index.js +4 -0
  920. package/esm2015/components/split-button/models/split-button-option.js +1 -0
  921. package/esm2015/components/split-button/models/split-button-type.js +7 -0
  922. package/esm2015/components/split-button/split-button.component.js +68 -0
  923. package/esm2015/components/split-button/split-button.module.js +15 -0
  924. package/esm2015/components/stats-card/index.js +3 -0
  925. package/esm2015/components/stats-card/stats-card.component.js +124 -0
  926. package/esm2015/components/stats-card/stats-card.module.js +23 -0
  927. package/esm2015/components/steps/index.js +3 -0
  928. package/esm2015/components/steps/steps.component.js +97 -0
  929. package/esm2015/components/steps/steps.module.js +16 -0
  930. package/esm2015/components/structure/footer.component.js +12 -0
  931. package/esm2015/components/structure/header.component.js +12 -0
  932. package/esm2015/components/structure/structure.module.js +16 -0
  933. package/esm2015/components/switch/index.js +3 -0
  934. package/esm2015/components/switch/switch.component.js +92 -0
  935. package/esm2015/components/switch/switch.module.js +15 -0
  936. package/esm2015/components/table/frozen-position/frozen-position.directive.js +203 -0
  937. package/esm2015/components/table/index.js +6 -0
  938. package/esm2015/components/table/navigation/navigation.directive.js +134 -0
  939. package/esm2015/components/table/row-toggler/row-toggler.directive.js +36 -0
  940. package/esm2015/components/table/table-column/index.js +2 -0
  941. package/esm2015/components/table/table-column/models/badge-column.interface.js +1 -0
  942. package/esm2015/components/table/table-column/models/badge-configs.interface.js +1 -0
  943. package/esm2015/components/table/table-column/models/column-colors.js +1 -0
  944. package/esm2015/components/table/table-column/models/column-values.interface.js +1 -0
  945. package/esm2015/components/table/table-column/models/column.interface.js +1 -0
  946. package/esm2015/components/table/table-column/models/dynamic-editable-grid.interface.js +1 -0
  947. package/esm2015/components/table/table-column/models/enum-badge-colors.js +10 -0
  948. package/esm2015/components/table/table-column/models/enum-column-field-type.js +13 -0
  949. package/esm2015/components/table/table-column/models/index.js +3 -0
  950. package/esm2015/components/table/table-column/models/locale-options.interface.js +1 -0
  951. package/esm2015/components/table/table-column/models/number-locale-options.interface.js +1 -0
  952. package/esm2015/components/table/table-column/table-columns.component.js +285 -0
  953. package/esm2015/components/table/table-paging/index.js +1 -0
  954. package/esm2015/components/table/table-paging/models/custom-action.interface.js +1 -0
  955. package/esm2015/components/table/table-paging/models/index.js +1 -0
  956. package/esm2015/components/table/table-paging/table-paging.component.js +313 -0
  957. package/esm2015/components/table/table.module.js +45 -0
  958. package/esm2015/components/table-header/index.js +3 -0
  959. package/esm2015/components/table-header/table-header-checkbox.component.js +141 -0
  960. package/esm2015/components/table-header/table-header-checkox.module.js +15 -0
  961. package/esm2015/components/template/index.js +3 -0
  962. package/esm2015/components/template/template.directive.js +20 -0
  963. package/esm2015/components/template/template.module.js +15 -0
  964. package/esm2015/components/text-area-ia/index.js +3 -0
  965. package/esm2015/components/text-area-ia/text-area-ia.component.js +128 -0
  966. package/esm2015/components/text-area-ia/text-area-ia.module.js +32 -0
  967. package/esm2015/components/thumbnail/index.js +4 -0
  968. package/esm2015/components/thumbnail/thumbnail-size.js +7 -0
  969. package/esm2015/components/thumbnail/thumbnail.component.js +80 -0
  970. package/esm2015/components/thumbnail/thumbnail.module.js +17 -0
  971. package/esm2015/components/thumbnail/thumbnail.service.js +61 -0
  972. package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +16 -0
  973. package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +41 -0
  974. package/esm2015/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +66 -0
  975. package/esm2015/components/thumbnails/index.js +3 -0
  976. package/esm2015/components/thumbnails/models/thumbnails-item.js +1 -0
  977. package/esm2015/components/thumbnails/thumbnails.component.js +56 -0
  978. package/esm2015/components/thumbnails/thumbnails.module.js +21 -0
  979. package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +283 -0
  980. package/esm2015/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +13 -0
  981. package/esm2015/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +76 -0
  982. package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +178 -0
  983. package/esm2015/components/tiered-menu/index.js +3 -0
  984. package/esm2015/components/tiered-menu/models/index.js +1 -0
  985. package/esm2015/components/tiered-menu/models/tiered-menu-item-data.js +1 -0
  986. package/esm2015/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -0
  987. package/esm2015/components/tiered-menu/services/tiered-menu.event.service.js +18 -0
  988. package/esm2015/components/tiered-menu/services/tiered-menu.global.service.js +9 -0
  989. package/esm2015/components/tiered-menu/services/tiered-menu.service.js +51 -0
  990. package/esm2015/components/tiered-menu/tiered-menu.directive.js +220 -0
  991. package/esm2015/components/tiered-menu/tiered-menu.module.js +29 -0
  992. package/esm2015/components/tiered-menu/utils.js +7 -0
  993. package/esm2015/components/tile/index.js +3 -0
  994. package/esm2015/components/tile/tile.component.js +71 -0
  995. package/esm2015/components/tile/tile.module.js +24 -0
  996. package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +25 -0
  997. package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +21 -0
  998. package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +25 -0
  999. package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +19 -0
  1000. package/esm2015/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +26 -0
  1001. package/esm2015/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +35 -0
  1002. package/esm2015/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +13 -0
  1003. package/esm2015/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +28 -0
  1004. package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.component.js +53 -0
  1005. package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.module.js +29 -0
  1006. package/esm2015/components/timeline/index.js +4 -0
  1007. package/esm2015/components/timeline/models/index.js +4 -0
  1008. package/esm2015/components/timeline/models/timeline-item-severity.js +7 -0
  1009. package/esm2015/components/timeline/models/timeline-item-size.js +6 -0
  1010. package/esm2015/components/timeline/models/timeline-item.js +37 -0
  1011. package/esm2015/components/timeline/timeline.component.js +66 -0
  1012. package/esm2015/components/timeline/timeline.module.js +27 -0
  1013. package/esm2015/components/toast/index.js +4 -0
  1014. package/esm2015/components/toast/toast.component.js +51 -0
  1015. package/esm2015/components/toast/toast.module.js +14 -0
  1016. package/esm2015/components/toast/toast.service.js +68 -0
  1017. package/esm2015/components/toast/types/toast.js +1 -0
  1018. package/esm2015/components/token-list/index.js +3 -0
  1019. package/esm2015/components/token-list/models/index.js +1 -0
  1020. package/esm2015/components/token-list/models/token.js +1 -0
  1021. package/esm2015/components/token-list/token-list.component.js +50 -0
  1022. package/esm2015/components/token-list/token-list.module.js +15 -0
  1023. package/esm2015/components/tooltip/index.js +3 -0
  1024. package/esm2015/components/tooltip/models/index.js +4 -0
  1025. package/esm2015/components/tooltip/models/mobile-behavior.js +6 -0
  1026. package/esm2015/components/tooltip/models/tooltip-event.js +6 -0
  1027. package/esm2015/components/tooltip/models/tooltip-position.js +8 -0
  1028. package/esm2015/components/tooltip/tooltip.component.js +21 -0
  1029. package/esm2015/components/tooltip/tooltip.directive.js +350 -0
  1030. package/esm2015/components/tooltip/tooltip.module.js +19 -0
  1031. package/esm2015/components/utils/breakpoints.js +11 -0
  1032. package/esm2015/components/utils/debouce.js +35 -0
  1033. package/esm2015/components/utils/export-utils.js +89 -0
  1034. package/esm2015/components/utils/index.js +6 -0
  1035. package/esm2015/components/utils/locale-utils.js +15 -0
  1036. package/esm2015/components/utils/utils.js +39 -0
  1037. package/esm2015/components/workspace-switch/index.js +3 -0
  1038. package/esm2015/components/workspace-switch/models/index.js +1 -0
  1039. package/esm2015/components/workspace-switch/models/workspace.js +1 -0
  1040. package/esm2015/components/workspace-switch/workspace-switch.component.js +143 -0
  1041. package/esm2015/components/workspace-switch/workspace-switch.module.js +15 -0
  1042. package/esm2015/locale/fallback.js +328 -0
  1043. package/esm2015/public-api.js +5 -0
  1044. package/esm2015/seniorsistemas-angular-components.js +115 -0
  1045. package/esm2015/utils/currency/currency.service.js +189 -0
  1046. package/esm2015/utils/currency/index.js +2 -0
  1047. package/esm2015/utils/index.js +3 -0
  1048. package/esm2015/utils/svg-factory/components/iassist-icon/iassist-icon.component.js +11 -0
  1049. package/esm2015/utils/svg-factory/components/senior-icon/senior-icon.component.js +11 -0
  1050. package/esm2015/utils/svg-factory/components/svg-factory-icons.js +6 -0
  1051. package/esm2015/utils/svg-factory/index.js +3 -0
  1052. package/esm2015/utils/svg-factory/svg-factory.directive.js +49 -0
  1053. package/esm2015/utils/svg-factory/svg-factory.module.js +21 -0
  1054. package/esm5/angular-components.module.js +26 -0
  1055. package/esm5/components/accordion/accordion.component.js +93 -0
  1056. package/esm5/components/accordion/accordion.module.js +34 -0
  1057. package/esm5/components/accordion/components/accordion-panel/accordion-panel.component.js +124 -0
  1058. package/esm5/components/accordion/index.js +4 -0
  1059. package/esm5/components/accordion/models/accordion-button-settings.js +1 -0
  1060. package/esm5/components/accordion/models/accordion-switch-settings.js +1 -0
  1061. package/esm5/components/alert/alert.component.js +52 -0
  1062. package/esm5/components/alert/alert.module.js +18 -0
  1063. package/esm5/components/alert/index.js +3 -0
  1064. package/esm5/components/badge/badge.component.js +62 -0
  1065. package/esm5/components/badge/badge.module.js +20 -0
  1066. package/esm5/components/badge/index.js +4 -0
  1067. package/esm5/components/badge/models/badge-colors.js +12 -0
  1068. package/esm5/components/badge/models/badge-types.js +6 -0
  1069. package/esm5/components/badge/models/index.js +3 -0
  1070. package/esm5/components/bignumber-input/index.js +3 -0
  1071. package/esm5/components/bignumber-input/number-input.directive.js +137 -0
  1072. package/esm5/components/bignumber-input/number-input.module.js +18 -0
  1073. package/esm5/components/breadcrumb/breadcrumb.component.js +95 -0
  1074. package/esm5/components/breadcrumb/breadcrumb.module.js +20 -0
  1075. package/esm5/components/breadcrumb/index.js +3 -0
  1076. package/esm5/components/button/button.component.js +141 -0
  1077. package/esm5/components/button/button.module.js +23 -0
  1078. package/esm5/components/button/index.js +6 -0
  1079. package/esm5/components/button/models/button-animation.js +5 -0
  1080. package/esm5/components/button/models/button-badge-config.js +1 -0
  1081. package/esm5/components/button/models/button-priority.js +9 -0
  1082. package/esm5/components/button/models/button-size.js +6 -0
  1083. package/esm5/components/calendar-mask/calendar-mask.directive.js +584 -0
  1084. package/esm5/components/calendar-mask/calendar-mask.module.js +18 -0
  1085. package/esm5/components/calendar-mask/index.js +3 -0
  1086. package/esm5/components/card/card.component.js +60 -0
  1087. package/esm5/components/card/card.module.js +19 -0
  1088. package/esm5/components/card/index.js +4 -0
  1089. package/esm5/components/card/models/card-template-types.js +7 -0
  1090. package/esm5/components/chat/chat.component.js +34 -0
  1091. package/esm5/components/chat/chat.module.js +21 -0
  1092. package/esm5/components/chat/components/chat-message/chat-message.component.js +29 -0
  1093. package/esm5/components/chat/index.js +3 -0
  1094. package/esm5/components/chat/types/chat-message.js +1 -0
  1095. package/esm5/components/checkbox/checkbox.component.js +116 -0
  1096. package/esm5/components/checkbox/checkbox.module.js +19 -0
  1097. package/esm5/components/checkbox/index.js +3 -0
  1098. package/esm5/components/checkbox/models/checkbox-data.js +1 -0
  1099. package/esm5/components/checkbox/models/checkbox-state.js +1 -0
  1100. package/esm5/components/checkbox/models/index.js +1 -0
  1101. package/esm5/components/chips/chip-item/chip-item.component.js +77 -0
  1102. package/esm5/components/chips/chips/chips.component.js +235 -0
  1103. package/esm5/components/chips/chips.module.js +27 -0
  1104. package/esm5/components/chips/index.js +3 -0
  1105. package/esm5/components/chips/models/chip-models.js +1 -0
  1106. package/esm5/components/code-editor/code-editor.component.js +121 -0
  1107. package/esm5/components/code-editor/code-editor.module.js +27 -0
  1108. package/esm5/components/code-editor/core/facades/core-facade.js +96 -0
  1109. package/esm5/components/code-editor/core/facades/linter-facade.js +1 -0
  1110. package/esm5/components/code-editor/core/models/enums/marker-severity.js +7 -0
  1111. package/esm5/components/code-editor/core/models/index.js +3 -0
  1112. package/esm5/components/code-editor/core/models/interfaces/marker.js +1 -0
  1113. package/esm5/components/code-editor/core/use-cases/core-linters.js +13 -0
  1114. package/esm5/components/code-editor/index.js +5 -0
  1115. package/esm5/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +109 -0
  1116. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +19 -0
  1117. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.js +29 -0
  1118. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.js +29 -0
  1119. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.js +17 -0
  1120. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.js +68 -0
  1121. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.js +4 -0
  1122. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.js +35 -0
  1123. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +355 -0
  1124. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.js +46 -0
  1125. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.js +19 -0
  1126. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.js +2 -0
  1127. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.js +10 -0
  1128. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.js +8 -0
  1129. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.js +12 -0
  1130. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +36 -0
  1131. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.js +9 -0
  1132. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.js +7 -0
  1133. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.js +1 -0
  1134. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.js +1 -0
  1135. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.js +1 -0
  1136. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.js +1 -0
  1137. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.js +1 -0
  1138. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.js +1 -0
  1139. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.js +1 -0
  1140. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.js +1 -0
  1141. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.js +1 -0
  1142. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.js +1 -0
  1143. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.js +1 -0
  1144. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.js +1 -0
  1145. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.js +1 -0
  1146. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.js +1 -0
  1147. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.js +14 -0
  1148. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +9 -0
  1149. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.js +15 -0
  1150. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.js +27 -0
  1151. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +3 -0
  1152. package/esm5/components/code-editor/infra/cores/codemirror-6/models/index.js +1 -0
  1153. package/esm5/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.js +1 -0
  1154. package/esm5/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.js +1 -0
  1155. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +19 -0
  1156. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.js +61 -0
  1157. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.js +30 -0
  1158. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.js +25 -0
  1159. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.js +18 -0
  1160. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +16 -0
  1161. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.js +13 -0
  1162. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.js +22 -0
  1163. package/esm5/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.js +18 -0
  1164. package/esm5/components/code-editor/infra/cores/codemirror-6/utils/index.js +3 -0
  1165. package/esm5/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.js +6 -0
  1166. package/esm5/components/code-editor/infra/utils/custom-http-client/custom-http-client.js +126 -0
  1167. package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.js +21 -0
  1168. package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.js +14 -0
  1169. package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/index.js +3 -0
  1170. package/esm5/components/code-editor/infra/utils/custom-translations/custom-translations-service.js +41 -0
  1171. package/esm5/components/code-editor/infra/utils/custom-translations/custom-translations.module.js +31 -0
  1172. package/esm5/components/code-editor/infra/utils/custom-translations/index.js +3 -0
  1173. package/esm5/components/code-editor/infra/utils/custom-translations/models/index.js +1 -0
  1174. package/esm5/components/code-editor/infra/utils/custom-translations/models/interfaces/translations.js +1 -0
  1175. package/esm5/components/code-editor/infra/utils/index.js +3 -0
  1176. package/esm5/components/code-editor/models/enums/languages.js +5 -0
  1177. package/esm5/components/code-editor/models/enums/themes.js +5 -0
  1178. package/esm5/components/code-editor/models/index.js +4 -0
  1179. package/esm5/components/code-editor/models/interfaces/editor-options.js +1 -0
  1180. package/esm5/components/collapse-link/collapse-link.component.js +75 -0
  1181. package/esm5/components/collapse-link/collapse-link.module.js +18 -0
  1182. package/esm5/components/collapse-link/index.js +3 -0
  1183. package/esm5/components/control-errors/control-errors.component.js +40 -0
  1184. package/esm5/components/control-errors/control-errors.module.js +19 -0
  1185. package/esm5/components/control-errors/index.js +3 -0
  1186. package/esm5/components/country-phone-picker/country-phone-picker.component.js +327 -0
  1187. package/esm5/components/country-phone-picker/country-phone-picker.module.js +30 -0
  1188. package/esm5/components/country-phone-picker/country-phone-picker.service.js +46 -0
  1189. package/esm5/components/country-phone-picker/index.js +5 -0
  1190. package/esm5/components/country-phone-picker/models/country-phone-data.js +1 -0
  1191. package/esm5/components/country-phone-picker/models/index.js +2 -0
  1192. package/esm5/components/country-phone-picker/models/ordination.js +7 -0
  1193. package/esm5/components/country-phone-picker/models/phone-selection-data.js +1 -0
  1194. package/esm5/components/country-phone-picker/resources/countries.js +228 -0
  1195. package/esm5/components/country-phone-picker/resources/index.js +2 -0
  1196. package/esm5/components/custom-fields/custom-fields.component.js +649 -0
  1197. package/esm5/components/custom-fields/custom-fields.module.js +33 -0
  1198. package/esm5/components/custom-fields/custom-fields.service.js +37 -0
  1199. package/esm5/components/custom-fields/index.js +4 -0
  1200. package/esm5/components/custom-fields/models/custom-field-type.js +17 -0
  1201. package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +38 -0
  1202. package/esm5/components/dynamic-form/components/field-label/field-label.component.js +21 -0
  1203. package/esm5/components/dynamic-form/components/field-label/field-label.module.js +22 -0
  1204. package/esm5/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +33 -0
  1205. package/esm5/components/dynamic-form/components/fields/base-field-component.js +13 -0
  1206. package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +122 -0
  1207. package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +35 -0
  1208. package/esm5/components/dynamic-form/components/fields/boolean/boolean-field.component.js +23 -0
  1209. package/esm5/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.js +20 -0
  1210. package/esm5/components/dynamic-form/components/fields/button-field/button-field.component.js +34 -0
  1211. package/esm5/components/dynamic-form/components/fields/calendar/calendar-field.component.js +107 -0
  1212. package/esm5/components/dynamic-form/components/fields/checkbox/checkbox-field.component.js +20 -0
  1213. package/esm5/components/dynamic-form/components/fields/checkbox/checkbox-field.module.js +20 -0
  1214. package/esm5/components/dynamic-form/components/fields/chips/chips-field.component.js +55 -0
  1215. package/esm5/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +33 -0
  1216. package/esm5/components/dynamic-form/components/fields/currency/currency-field.component.js +75 -0
  1217. package/esm5/components/dynamic-form/components/fields/currency/currency-field.module.js +33 -0
  1218. package/esm5/components/dynamic-form/components/fields/editor/editor-field.component.js +23 -0
  1219. package/esm5/components/dynamic-form/components/fields/editor/editor-field.module.js +21 -0
  1220. package/esm5/components/dynamic-form/components/fields/file-upload/file-upload.component.js +55 -0
  1221. package/esm5/components/dynamic-form/components/fields/index.js +22 -0
  1222. package/esm5/components/dynamic-form/components/fields/lookup/lookup-field.component.js +20 -0
  1223. package/esm5/components/dynamic-form/components/fields/number/number-field.component.js +122 -0
  1224. package/esm5/components/dynamic-form/components/fields/number/number-field.module.js +37 -0
  1225. package/esm5/components/dynamic-form/components/fields/password/password-field.component.js +79 -0
  1226. package/esm5/components/dynamic-form/components/fields/password/password-field.module.js +33 -0
  1227. package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +20 -0
  1228. package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +27 -0
  1229. package/esm5/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +51 -0
  1230. package/esm5/components/dynamic-form/components/fields/select/select-field.component.js +23 -0
  1231. package/esm5/components/dynamic-form/components/fields/slider/slider-field.component.js +123 -0
  1232. package/esm5/components/dynamic-form/components/fields/text/text-field.component.js +80 -0
  1233. package/esm5/components/dynamic-form/components/fields/text/text-field.module.js +35 -0
  1234. package/esm5/components/dynamic-form/components/fields/text-area/text-area-field.component.js +30 -0
  1235. package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +90 -0
  1236. package/esm5/components/dynamic-form/components/grid/row/row.component.js +37 -0
  1237. package/esm5/components/dynamic-form/components/lookup/lookup.component.js +590 -0
  1238. package/esm5/components/dynamic-form/components/lookup/models/default-filter.js +1 -0
  1239. package/esm5/components/dynamic-form/components/lookup/models/index.js +1 -0
  1240. package/esm5/components/dynamic-form/components/structure/base-structure-component.js +1 -0
  1241. package/esm5/components/dynamic-form/components/structure/fieldset/fieldset.component.js +27 -0
  1242. package/esm5/components/dynamic-form/components/structure/section/section.component.js +44 -0
  1243. package/esm5/components/dynamic-form/configurations/addon-config.js +1 -0
  1244. package/esm5/components/dynamic-form/configurations/dynamic-config.js +73 -0
  1245. package/esm5/components/dynamic-form/configurations/dynamic-type.js +26 -0
  1246. package/esm5/components/dynamic-form/configurations/field-size.js +12 -0
  1247. package/esm5/components/dynamic-form/configurations/field-type.js +32 -0
  1248. package/esm5/components/dynamic-form/configurations/fields/autocomplete-field.js +16 -0
  1249. package/esm5/components/dynamic-form/configurations/fields/bignumber-field.js +28 -0
  1250. package/esm5/components/dynamic-form/configurations/fields/blob-field.js +24 -0
  1251. package/esm5/components/dynamic-form/configurations/fields/boolean-field.js +28 -0
  1252. package/esm5/components/dynamic-form/configurations/fields/boolean-switch-field.js +18 -0
  1253. package/esm5/components/dynamic-form/configurations/fields/button-field.js +35 -0
  1254. package/esm5/components/dynamic-form/configurations/fields/calendar-field.js +42 -0
  1255. package/esm5/components/dynamic-form/configurations/fields/checkbox-field.js +13 -0
  1256. package/esm5/components/dynamic-form/configurations/fields/chips-field.js +22 -0
  1257. package/esm5/components/dynamic-form/configurations/fields/country-phone-picker-field.js +16 -0
  1258. package/esm5/components/dynamic-form/configurations/fields/currency-field.js +17 -0
  1259. package/esm5/components/dynamic-form/configurations/fields/decimal-field.js +19 -0
  1260. package/esm5/components/dynamic-form/configurations/fields/editor-field.js +16 -0
  1261. package/esm5/components/dynamic-form/configurations/fields/field.js +43 -0
  1262. package/esm5/components/dynamic-form/configurations/fields/index.js +22 -0
  1263. package/esm5/components/dynamic-form/configurations/fields/lookup-field.js +51 -0
  1264. package/esm5/components/dynamic-form/configurations/fields/number-field.js +28 -0
  1265. package/esm5/components/dynamic-form/configurations/fields/password-field.js +25 -0
  1266. package/esm5/components/dynamic-form/configurations/fields/profile-picture.js +26 -0
  1267. package/esm5/components/dynamic-form/configurations/fields/radio-button-field.js +26 -0
  1268. package/esm5/components/dynamic-form/configurations/fields/select-field.js +33 -0
  1269. package/esm5/components/dynamic-form/configurations/fields/slider-field.js +26 -0
  1270. package/esm5/components/dynamic-form/configurations/fields/text-area-field.js +17 -0
  1271. package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +18 -0
  1272. package/esm5/components/dynamic-form/configurations/fields/text-field.js +29 -0
  1273. package/esm5/components/dynamic-form/configurations/form-field.js +96 -0
  1274. package/esm5/components/dynamic-form/configurations/grid/grid.js +13 -0
  1275. package/esm5/components/dynamic-form/configurations/grid/row.js +11 -0
  1276. package/esm5/components/dynamic-form/configurations/grid-type.js +5 -0
  1277. package/esm5/components/dynamic-form/configurations/structure/fieldset.js +13 -0
  1278. package/esm5/components/dynamic-form/configurations/structure/section.js +34 -0
  1279. package/esm5/components/dynamic-form/configurations/structure/structure.js +10 -0
  1280. package/esm5/components/dynamic-form/configurations/structure-type.js +6 -0
  1281. package/esm5/components/dynamic-form/dynamic-form.component.js +33 -0
  1282. package/esm5/components/dynamic-form/dynamic-form.directive.js +85 -0
  1283. package/esm5/components/dynamic-form/dynamic-form.js +215 -0
  1284. package/esm5/components/dynamic-form/dynamic-form.module.js +190 -0
  1285. package/esm5/components/dynamic-form/index.js +31 -0
  1286. package/esm5/components/dynamic-form/services/IAssist/iassist.service.js +58 -0
  1287. package/esm5/components/dynamic-form/services/IAssist/models/iassist-input-data.js +1 -0
  1288. package/esm5/components/dynamic-form/services/IAssist/models/iassist-response.js +1 -0
  1289. package/esm5/components/dynamic-form/services/IAssist/models/index.js +1 -0
  1290. package/esm5/components/editable-overlay/editable-overlay.directive.js +45 -0
  1291. package/esm5/components/editable-overlay/editable-overlay.module.js +18 -0
  1292. package/esm5/components/editable-overlay/index.js +3 -0
  1293. package/esm5/components/empty-state/empty-state.component.js +59 -0
  1294. package/esm5/components/empty-state/empty-state.module.js +22 -0
  1295. package/esm5/components/empty-state/go-back/go-back.component.js +38 -0
  1296. package/esm5/components/empty-state/index.js +3 -0
  1297. package/esm5/components/file-upload/file-upload.component.js +304 -0
  1298. package/esm5/components/file-upload/file-upload.module.js +30 -0
  1299. package/esm5/components/file-upload/file-upload.service.js +22 -0
  1300. package/esm5/components/file-upload/index.js +4 -0
  1301. package/esm5/components/file-upload/models/file-dto.js +1 -0
  1302. package/esm5/components/file-upload/models/file-upload-permissions.js +12 -0
  1303. package/esm5/components/file-upload/models/index.js +3 -0
  1304. package/esm5/components/file-upload/models/list-blob-metadata.js +1 -0
  1305. package/esm5/components/file-upload/models/uploadError.js +1 -0
  1306. package/esm5/components/file-upload/models/validate-errors.js +8 -0
  1307. package/esm5/components/gantt/components/gantt/arrow.js +81 -0
  1308. package/esm5/components/gantt/components/gantt/bar.js +299 -0
  1309. package/esm5/components/gantt/components/gantt/gantt-options.js +20 -0
  1310. package/esm5/components/gantt/components/gantt/gantt.js +924 -0
  1311. package/esm5/components/gantt/components/gantt/popup.js +84 -0
  1312. package/esm5/components/gantt/components/gantt/utils/date-utils.js +135 -0
  1313. package/esm5/components/gantt/components/gantt/utils/svg-utils.js +121 -0
  1314. package/esm5/components/gantt/components/side-table/side-table.component.js +33 -0
  1315. package/esm5/components/gantt/gantt.component.js +162 -0
  1316. package/esm5/components/gantt/gantt.module.js +23 -0
  1317. package/esm5/components/gantt/index.js +4 -0
  1318. package/esm5/components/gantt/models/index.js +2 -0
  1319. package/esm5/components/gantt/models/options.js +1 -0
  1320. package/esm5/components/gantt/models/task.js +1 -0
  1321. package/esm5/components/gantt/models/view-mode.js +12 -0
  1322. package/esm5/components/global-search/elements/dropdown/global-search-dropdown-item.component.js +78 -0
  1323. package/esm5/components/global-search/global-search-size.enum.js +7 -0
  1324. package/esm5/components/global-search/global-search.component.js +137 -0
  1325. package/esm5/components/global-search/global-search.module.js +53 -0
  1326. package/esm5/components/global-search/index.js +5 -0
  1327. package/esm5/components/grid-menu/components/grid-menu-item/grid-menu-item.component.js +47 -0
  1328. package/esm5/components/grid-menu/grid-menu.component.js +27 -0
  1329. package/esm5/components/grid-menu/grid-menu.module.js +19 -0
  1330. package/esm5/components/grid-menu/index.js +3 -0
  1331. package/esm5/components/grid-menu/types/grid-menu-item.js +1 -0
  1332. package/esm5/components/help-popover/help-popover/help-popover.component.js +115 -0
  1333. package/esm5/components/help-popover/help-popover.directive.js +348 -0
  1334. package/esm5/components/help-popover/help-popover.module.js +23 -0
  1335. package/esm5/components/help-popover/index.js +4 -0
  1336. package/esm5/components/help-popover/models/help-popover.models.js +1 -0
  1337. package/esm5/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +16 -0
  1338. package/esm5/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +84 -0
  1339. package/esm5/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.js +51 -0
  1340. package/esm5/components/ia-insight/ia-insight.component.js +69 -0
  1341. package/esm5/components/ia-insight/ia-insight.module.js +43 -0
  1342. package/esm5/components/ia-insight/index.js +4 -0
  1343. package/esm5/components/ia-insight/models/ia-insight-item.js +1 -0
  1344. package/esm5/components/ia-insight/models/ia-insight-template-types.js +7 -0
  1345. package/esm5/components/ia-insight/models/index.js +2 -0
  1346. package/esm5/components/image-cropper/image-cropper.component.js +185 -0
  1347. package/esm5/components/image-cropper/image-cropper.module.js +23 -0
  1348. package/esm5/components/image-cropper/image-cropper.service.js +70 -0
  1349. package/esm5/components/image-cropper/index.js +4 -0
  1350. package/esm5/components/index.js +72 -0
  1351. package/esm5/components/infinite-scroll/infinite-scroll.directive.js +31 -0
  1352. package/esm5/components/infinite-scroll/infinite-scroll.module.js +24 -0
  1353. package/esm5/components/info-sign/index.js +3 -0
  1354. package/esm5/components/info-sign/info-sign.component.js +16 -0
  1355. package/esm5/components/info-sign/info-sign.directive.js +69 -0
  1356. package/esm5/components/info-sign/info-sign.module.js +27 -0
  1357. package/esm5/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.js +53 -0
  1358. package/esm5/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.js +33 -0
  1359. package/esm5/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.js +99 -0
  1360. package/esm5/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.js +33 -0
  1361. package/esm5/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.js +33 -0
  1362. package/esm5/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.js +33 -0
  1363. package/esm5/components/inline-edit/components/index.js +8 -0
  1364. package/esm5/components/inline-edit/components/inline-edit-item/inline-edit-item.component.js +112 -0
  1365. package/esm5/components/inline-edit/fields/index.js +8 -0
  1366. package/esm5/components/inline-edit/fields/inline-edit-calendar-field.js +31 -0
  1367. package/esm5/components/inline-edit/fields/inline-edit-field.js +11 -0
  1368. package/esm5/components/inline-edit/fields/inline-edit-lookup-field.js +50 -0
  1369. package/esm5/components/inline-edit/fields/inline-edit-number-field.js +29 -0
  1370. package/esm5/components/inline-edit/fields/inline-edit-text-area-field.js +16 -0
  1371. package/esm5/components/inline-edit/fields/inline-edit-text-area-ia-field.js +11 -0
  1372. package/esm5/components/inline-edit/fields/inline-edit-text-field.js +11 -0
  1373. package/esm5/components/inline-edit/index.js +4 -0
  1374. package/esm5/components/inline-edit/inline-edit.component.js +84 -0
  1375. package/esm5/components/inline-edit/inline-edit.module.js +65 -0
  1376. package/esm5/components/kanban/components/kanban-column/kanban-column.component.js +99 -0
  1377. package/esm5/components/kanban/components/kanban-item/kanban-item.component.js +62 -0
  1378. package/esm5/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +20 -0
  1379. package/esm5/components/kanban/index.js +4 -0
  1380. package/esm5/components/kanban/kanban-event.service.js +28 -0
  1381. package/esm5/components/kanban/kanban.component.js +221 -0
  1382. package/esm5/components/kanban/kanban.module.js +48 -0
  1383. package/esm5/components/kanban/models/index.js +2 -0
  1384. package/esm5/components/kanban/models/kanban-data.js +1 -0
  1385. package/esm5/components/kanban/models/kanban-template-types.js +9 -0
  1386. package/esm5/components/label-value/index.js +3 -0
  1387. package/esm5/components/label-value/label-value.component.js +34 -0
  1388. package/esm5/components/label-value/label-value.module.js +23 -0
  1389. package/esm5/components/label-value/types/label-value-configuration.js +1 -0
  1390. package/esm5/components/loading-state/components/dots-indicator/dots-indicator.components.js +16 -0
  1391. package/esm5/components/loading-state/components/loading-state-indicators.js +6 -0
  1392. package/esm5/components/loading-state/components/logo-indicator/logo-indicator.component.js +16 -0
  1393. package/esm5/components/loading-state/index.js +4 -0
  1394. package/esm5/components/loading-state/loading-state.component.js +81 -0
  1395. package/esm5/components/loading-state/loading-state.directive.js +65 -0
  1396. package/esm5/components/loading-state/loading-state.module.js +34 -0
  1397. package/esm5/components/locale/index.js +11 -0
  1398. package/esm5/components/locale/locale.module.js +75 -0
  1399. package/esm5/components/locale/locale.service.js +93 -0
  1400. package/esm5/components/locale/options/calendar.js +33 -0
  1401. package/esm5/components/locale/options/index.js +28 -0
  1402. package/esm5/components/locale/options/number.js +12 -0
  1403. package/esm5/components/locale/pipes/localized-bignumber-impure.pipe.js +21 -0
  1404. package/esm5/components/locale/pipes/localized-bignumber.pipe.js +40 -0
  1405. package/esm5/components/locale/pipes/localized-currency-impure.pipe.js +25 -0
  1406. package/esm5/components/locale/pipes/localized-currency.pipe.js +59 -0
  1407. package/esm5/components/locale/pipes/localized-date-impure.pipe.js +18 -0
  1408. package/esm5/components/locale/pipes/localized-date.pipe.js +26 -0
  1409. package/esm5/components/locale/pipes/localized-number.pipe.js +32 -0
  1410. package/esm5/components/locale/pipes/localized-time-impure.pipe.js +18 -0
  1411. package/esm5/components/locale/pipes/localized-time.pipe.js +26 -0
  1412. package/esm5/components/locale/pipes/numeric.pipe.js +32 -0
  1413. package/esm5/components/locale/services/numeric.service.js +87 -0
  1414. package/esm5/components/localized-number-input/index.js +3 -0
  1415. package/esm5/components/localized-number-input/localized-number-input.directive.js +61 -0
  1416. package/esm5/components/localized-number-input/localized-number-input.module.js +18 -0
  1417. package/esm5/components/mask/index.js +3 -0
  1418. package/esm5/components/mask/mask-formatter.module.js +16 -0
  1419. package/esm5/components/mask/mask-formatter.pipe.js +72 -0
  1420. package/esm5/components/mouse-events/double-click.directive.js +40 -0
  1421. package/esm5/components/mouse-events/index.js +4 -0
  1422. package/esm5/components/mouse-events/long-press.directive.js +51 -0
  1423. package/esm5/components/mouse-events/mouse-events.module.js +25 -0
  1424. package/esm5/components/navigation-button/index.js +3 -0
  1425. package/esm5/components/navigation-button/models/index.js +1 -0
  1426. package/esm5/components/navigation-button/models/navigation-button-item.js +1 -0
  1427. package/esm5/components/navigation-button/models/navigation-button-step-changed-info.js +1 -0
  1428. package/esm5/components/navigation-button/navigation-button.component.js +131 -0
  1429. package/esm5/components/navigation-button/navigation-button.module.js +20 -0
  1430. package/esm5/components/number-input/index.js +3 -0
  1431. package/esm5/components/number-input/number-input.directive.js +147 -0
  1432. package/esm5/components/number-input/number-input.module.js +21 -0
  1433. package/esm5/components/object-card/elements/field/object-card-field.component.js +55 -0
  1434. package/esm5/components/object-card/elements/main/object-card-main.component.js +99 -0
  1435. package/esm5/components/object-card/index.js +5 -0
  1436. package/esm5/components/object-card/object-card.component.js +154 -0
  1437. package/esm5/components/object-card/object-card.module.js +24 -0
  1438. package/esm5/components/panel/index.js +3 -0
  1439. package/esm5/components/panel/panel.component.js +85 -0
  1440. package/esm5/components/panel/panel.module.js +20 -0
  1441. package/esm5/components/password-strength/index.js +5 -0
  1442. package/esm5/components/password-strength/models/index.js +3 -0
  1443. package/esm5/components/password-strength/models/password-positions.js +7 -0
  1444. package/esm5/components/password-strength/models/password-strengths.js +8 -0
  1445. package/esm5/components/password-strength/password-strength.component.js +96 -0
  1446. package/esm5/components/password-strength/password-strength.directive.js +197 -0
  1447. package/esm5/components/password-strength/password-strength.module.js +22 -0
  1448. package/esm5/components/picklist/index.js +5 -0
  1449. package/esm5/components/picklist/picklist/models/picklist-models.js +6 -0
  1450. package/esm5/components/picklist/picklist/picklist.component.js +339 -0
  1451. package/esm5/components/picklist/picklist.module.js +28 -0
  1452. package/esm5/components/product-header/index.js +3 -0
  1453. package/esm5/components/product-header/product-header.component.js +47 -0
  1454. package/esm5/components/product-header/product-header.module.js +20 -0
  1455. package/esm5/components/profile-picture-picker/index.js +4 -0
  1456. package/esm5/components/profile-picture-picker/models/confirmation-texts.js +1 -0
  1457. package/esm5/components/profile-picture-picker/models/cropper-labels-config.js +1 -0
  1458. package/esm5/components/profile-picture-picker/models/file-validation-errors.js +8 -0
  1459. package/esm5/components/profile-picture-picker/models/index.js +2 -0
  1460. package/esm5/components/profile-picture-picker/models/profile-picture-picker-data.js +1 -0
  1461. package/esm5/components/profile-picture-picker/profile-picture-picker.component.js +270 -0
  1462. package/esm5/components/profile-picture-picker/profile-picture-picker.module.js +36 -0
  1463. package/esm5/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +63 -0
  1464. package/esm5/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.js +22 -0
  1465. package/esm5/components/progressbar/index.js +4 -0
  1466. package/esm5/components/progressbar/models/index.js +3 -0
  1467. package/esm5/components/progressbar/models/progressbar-colors.js +8 -0
  1468. package/esm5/components/progressbar/models/progressbar-mode.js +6 -0
  1469. package/esm5/components/progressbar/progressbar.component.js +63 -0
  1470. package/esm5/components/progressbar/progressbar.module.js +24 -0
  1471. package/esm5/components/rating-scale/index.js +3 -0
  1472. package/esm5/components/rating-scale/models/index.js +1 -0
  1473. package/esm5/components/rating-scale/models/rating-scale-node.js +1 -0
  1474. package/esm5/components/rating-scale/rating-scale.component.js +54 -0
  1475. package/esm5/components/rating-scale/rating-scale.module.js +22 -0
  1476. package/esm5/components/select-button/components/select-button-item/select-button-item.component.js +35 -0
  1477. package/esm5/components/select-button/index.js +3 -0
  1478. package/esm5/components/select-button/models/index.js +1 -0
  1479. package/esm5/components/select-button/models/select-button-item.js +1 -0
  1480. package/esm5/components/select-button/select-button.component.js +128 -0
  1481. package/esm5/components/select-button/select-button.module.js +22 -0
  1482. package/esm5/components/shared/border-button/border-button.component.js +27 -0
  1483. package/esm5/components/shared/border-button/border-button.module.js +19 -0
  1484. package/esm5/components/shared/helpers.js +35 -0
  1485. package/esm5/components/shared/index.js +3 -0
  1486. package/esm5/components/shared/models/border-button-options.js +1 -0
  1487. package/esm5/components/shared/models/enum-severity.js +9 -0
  1488. package/esm5/components/sidebar/index.js +3 -0
  1489. package/esm5/components/sidebar/sidebar.component.js +74 -0
  1490. package/esm5/components/sidebar/sidebar.module.js +22 -0
  1491. package/esm5/components/slide-panel/index.js +3 -0
  1492. package/esm5/components/slide-panel/slide-panel.component.js +145 -0
  1493. package/esm5/components/slide-panel/slide-panel.module.js +20 -0
  1494. package/esm5/components/slide-panel/slide-panel.service.js +28 -0
  1495. package/esm5/components/slider/index.js +3 -0
  1496. package/esm5/components/slider/slider.component.js +648 -0
  1497. package/esm5/components/slider/slider.module.js +19 -0
  1498. package/esm5/components/split-button/index.js +4 -0
  1499. package/esm5/components/split-button/models/split-button-option.js +1 -0
  1500. package/esm5/components/split-button/models/split-button-type.js +7 -0
  1501. package/esm5/components/split-button/split-button.component.js +69 -0
  1502. package/esm5/components/split-button/split-button.module.js +18 -0
  1503. package/esm5/components/stats-card/index.js +3 -0
  1504. package/esm5/components/stats-card/stats-card.component.js +131 -0
  1505. package/esm5/components/stats-card/stats-card.module.js +26 -0
  1506. package/esm5/components/steps/index.js +3 -0
  1507. package/esm5/components/steps/steps.component.js +107 -0
  1508. package/esm5/components/steps/steps.module.js +19 -0
  1509. package/esm5/components/structure/footer.component.js +15 -0
  1510. package/esm5/components/structure/header.component.js +15 -0
  1511. package/esm5/components/structure/structure.module.js +19 -0
  1512. package/esm5/components/switch/index.js +3 -0
  1513. package/esm5/components/switch/switch.component.js +94 -0
  1514. package/esm5/components/switch/switch.module.js +18 -0
  1515. package/esm5/components/table/frozen-position/frozen-position.directive.js +256 -0
  1516. package/esm5/components/table/index.js +6 -0
  1517. package/esm5/components/table/navigation/navigation.directive.js +137 -0
  1518. package/esm5/components/table/row-toggler/row-toggler.directive.js +39 -0
  1519. package/esm5/components/table/table-column/index.js +2 -0
  1520. package/esm5/components/table/table-column/models/badge-column.interface.js +1 -0
  1521. package/esm5/components/table/table-column/models/badge-configs.interface.js +1 -0
  1522. package/esm5/components/table/table-column/models/column-colors.js +1 -0
  1523. package/esm5/components/table/table-column/models/column-values.interface.js +1 -0
  1524. package/esm5/components/table/table-column/models/column.interface.js +1 -0
  1525. package/esm5/components/table/table-column/models/dynamic-editable-grid.interface.js +1 -0
  1526. package/esm5/components/table/table-column/models/enum-badge-colors.js +10 -0
  1527. package/esm5/components/table/table-column/models/enum-column-field-type.js +13 -0
  1528. package/esm5/components/table/table-column/models/index.js +3 -0
  1529. package/esm5/components/table/table-column/models/locale-options.interface.js +1 -0
  1530. package/esm5/components/table/table-column/models/number-locale-options.interface.js +1 -0
  1531. package/esm5/components/table/table-column/table-columns.component.js +288 -0
  1532. package/esm5/components/table/table-paging/index.js +1 -0
  1533. package/esm5/components/table/table-paging/models/custom-action.interface.js +1 -0
  1534. package/esm5/components/table/table-paging/models/index.js +1 -0
  1535. package/esm5/components/table/table-paging/table-paging.component.js +361 -0
  1536. package/esm5/components/table/table.module.js +48 -0
  1537. package/esm5/components/table-header/index.js +3 -0
  1538. package/esm5/components/table-header/table-header-checkbox.component.js +157 -0
  1539. package/esm5/components/table-header/table-header-checkox.module.js +18 -0
  1540. package/esm5/components/template/index.js +3 -0
  1541. package/esm5/components/template/template.directive.js +21 -0
  1542. package/esm5/components/template/template.module.js +18 -0
  1543. package/esm5/components/text-area-ia/index.js +3 -0
  1544. package/esm5/components/text-area-ia/text-area-ia.component.js +131 -0
  1545. package/esm5/components/text-area-ia/text-area-ia.module.js +35 -0
  1546. package/esm5/components/thumbnail/index.js +4 -0
  1547. package/esm5/components/thumbnail/thumbnail-size.js +7 -0
  1548. package/esm5/components/thumbnail/thumbnail.component.js +83 -0
  1549. package/esm5/components/thumbnail/thumbnail.module.js +20 -0
  1550. package/esm5/components/thumbnail/thumbnail.service.js +65 -0
  1551. package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +19 -0
  1552. package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +44 -0
  1553. package/esm5/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +68 -0
  1554. package/esm5/components/thumbnails/index.js +3 -0
  1555. package/esm5/components/thumbnails/models/thumbnails-item.js +1 -0
  1556. package/esm5/components/thumbnails/thumbnails.component.js +61 -0
  1557. package/esm5/components/thumbnails/thumbnails.module.js +24 -0
  1558. package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +288 -0
  1559. package/esm5/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +16 -0
  1560. package/esm5/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +78 -0
  1561. package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +180 -0
  1562. package/esm5/components/tiered-menu/index.js +3 -0
  1563. package/esm5/components/tiered-menu/models/index.js +1 -0
  1564. package/esm5/components/tiered-menu/models/tiered-menu-item-data.js +1 -0
  1565. package/esm5/components/tiered-menu/models/tiered-menu-item-internal-data.js +1 -0
  1566. package/esm5/components/tiered-menu/services/tiered-menu.event.service.js +19 -0
  1567. package/esm5/components/tiered-menu/services/tiered-menu.global.service.js +12 -0
  1568. package/esm5/components/tiered-menu/services/tiered-menu.service.js +54 -0
  1569. package/esm5/components/tiered-menu/tiered-menu.directive.js +224 -0
  1570. package/esm5/components/tiered-menu/tiered-menu.module.js +32 -0
  1571. package/esm5/components/tiered-menu/utils.js +7 -0
  1572. package/esm5/components/tile/index.js +3 -0
  1573. package/esm5/components/tile/tile.component.js +77 -0
  1574. package/esm5/components/tile/tile.module.js +27 -0
  1575. package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +26 -0
  1576. package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +24 -0
  1577. package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +28 -0
  1578. package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +22 -0
  1579. package/esm5/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +27 -0
  1580. package/esm5/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +36 -0
  1581. package/esm5/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +16 -0
  1582. package/esm5/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +31 -0
  1583. package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.component.js +58 -0
  1584. package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.module.js +32 -0
  1585. package/esm5/components/timeline/index.js +4 -0
  1586. package/esm5/components/timeline/models/index.js +4 -0
  1587. package/esm5/components/timeline/models/timeline-item-severity.js +7 -0
  1588. package/esm5/components/timeline/models/timeline-item-size.js +6 -0
  1589. package/esm5/components/timeline/models/timeline-item.js +39 -0
  1590. package/esm5/components/timeline/timeline.component.js +71 -0
  1591. package/esm5/components/timeline/timeline.module.js +30 -0
  1592. package/esm5/components/toast/index.js +4 -0
  1593. package/esm5/components/toast/toast.component.js +54 -0
  1594. package/esm5/components/toast/toast.module.js +17 -0
  1595. package/esm5/components/toast/toast.service.js +70 -0
  1596. package/esm5/components/toast/types/toast.js +1 -0
  1597. package/esm5/components/token-list/index.js +3 -0
  1598. package/esm5/components/token-list/models/index.js +1 -0
  1599. package/esm5/components/token-list/models/token.js +1 -0
  1600. package/esm5/components/token-list/token-list.component.js +52 -0
  1601. package/esm5/components/token-list/token-list.module.js +18 -0
  1602. package/esm5/components/tooltip/index.js +3 -0
  1603. package/esm5/components/tooltip/models/index.js +4 -0
  1604. package/esm5/components/tooltip/models/mobile-behavior.js +6 -0
  1605. package/esm5/components/tooltip/models/tooltip-event.js +6 -0
  1606. package/esm5/components/tooltip/models/tooltip-position.js +8 -0
  1607. package/esm5/components/tooltip/tooltip.component.js +22 -0
  1608. package/esm5/components/tooltip/tooltip.directive.js +358 -0
  1609. package/esm5/components/tooltip/tooltip.module.js +22 -0
  1610. package/esm5/components/utils/breakpoints.js +11 -0
  1611. package/esm5/components/utils/debouce.js +50 -0
  1612. package/esm5/components/utils/export-utils.js +96 -0
  1613. package/esm5/components/utils/index.js +6 -0
  1614. package/esm5/components/utils/locale-utils.js +15 -0
  1615. package/esm5/components/utils/utils.js +39 -0
  1616. package/esm5/components/workspace-switch/index.js +3 -0
  1617. package/esm5/components/workspace-switch/models/index.js +1 -0
  1618. package/esm5/components/workspace-switch/models/workspace.js +1 -0
  1619. package/esm5/components/workspace-switch/workspace-switch.component.js +148 -0
  1620. package/esm5/components/workspace-switch/workspace-switch.module.js +18 -0
  1621. package/esm5/locale/fallback.js +328 -0
  1622. package/esm5/public-api.js +5 -0
  1623. package/esm5/seniorsistemas-angular-components.js +115 -0
  1624. package/esm5/utils/currency/currency.service.js +191 -0
  1625. package/esm5/utils/currency/index.js +2 -0
  1626. package/esm5/utils/index.js +3 -0
  1627. package/esm5/utils/svg-factory/components/iassist-icon/iassist-icon.component.js +14 -0
  1628. package/esm5/utils/svg-factory/components/senior-icon/senior-icon.component.js +14 -0
  1629. package/esm5/utils/svg-factory/components/svg-factory-icons.js +6 -0
  1630. package/esm5/utils/svg-factory/index.js +3 -0
  1631. package/esm5/utils/svg-factory/svg-factory.directive.js +54 -0
  1632. package/esm5/utils/svg-factory/svg-factory.module.js +24 -0
  1633. package/fesm2015/seniorsistemas-angular-components.js +20988 -0
  1634. package/fesm2015/seniorsistemas-angular-components.js.map +1 -0
  1635. package/fesm5/seniorsistemas-angular-components.js +22502 -0
  1636. package/fesm5/seniorsistemas-angular-components.js.map +1 -0
  1637. package/locale/fallback.d.ts +1 -0
  1638. package/package.json +42 -549
  1639. package/public-api.d.ts +4 -0
  1640. package/seniorsistemas-angular-components.d.ts +114 -0
  1641. package/seniorsistemas-angular-components.metadata.json +1 -0
  1642. package/utils/currency/currency.service.d.ts +642 -0
  1643. package/utils/currency/index.d.ts +1 -0
  1644. package/utils/index.d.ts +2 -5
  1645. package/utils/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +2 -0
  1646. package/utils/svg-factory/components/senior-icon/senior-icon.component.d.ts +2 -0
  1647. package/utils/svg-factory/components/svg-factory-icons.d.ts +4 -0
  1648. package/utils/svg-factory/index.d.ts +2 -0
  1649. package/utils/svg-factory/svg-factory.directive.d.ts +13 -0
  1650. package/utils/svg-factory/svg-factory.module.d.ts +2 -0
  1651. package/README.md +0 -25
  1652. package/accordion/index.d.ts +0 -5
  1653. package/accordion/lib/accordion/accordion.component.d.ts +0 -21
  1654. package/accordion/lib/accordion/accordion.module.d.ts +0 -12
  1655. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +0 -30
  1656. package/accordion/lib/accordion/models/accordion-button-settings.d.ts +0 -5
  1657. package/accordion/package.json +0 -3
  1658. package/accordion/public-api.d.ts +0 -3
  1659. package/alert/index.d.ts +0 -5
  1660. package/alert/lib/alert/alert.component.d.ts +0 -16
  1661. package/alert/lib/alert/alert.module.d.ts +0 -8
  1662. package/alert/package.json +0 -3
  1663. package/alert/public-api.d.ts +0 -2
  1664. package/badge/index.d.ts +0 -5
  1665. package/badge/lib/badge/badge.component.d.ts +0 -21
  1666. package/badge/lib/badge/badge.module.d.ts +0 -10
  1667. package/badge/lib/badge/types/badge-colors.d.ts +0 -1
  1668. package/badge/lib/badge/types/badge-types.d.ts +0 -1
  1669. package/badge/package.json +0 -3
  1670. package/badge/public-api.d.ts +0 -4
  1671. package/bignumber-input/index.d.ts +0 -5
  1672. package/bignumber-input/lib/bignumber-input/number-input.directive.d.ts +0 -46
  1673. package/bignumber-input/lib/bignumber-input/number-input.module.d.ts +0 -8
  1674. package/bignumber-input/package.json +0 -3
  1675. package/bignumber-input/public-api.d.ts +0 -2
  1676. package/breadcrumb/index.d.ts +0 -5
  1677. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +0 -25
  1678. package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +0 -10
  1679. package/breadcrumb/package.json +0 -3
  1680. package/breadcrumb/public-api.d.ts +0 -2
  1681. package/button/index.d.ts +0 -5
  1682. package/button/lib/button/button.component.d.ts +0 -35
  1683. package/button/lib/button/button.module.d.ts +0 -12
  1684. package/button/lib/button/models/button-animations.d.ts +0 -1
  1685. package/button/lib/button/models/button-badge-config.d.ts +0 -6
  1686. package/button/lib/button/models/button-priority.d.ts +0 -1
  1687. package/button/lib/button/models/button-size.d.ts +0 -1
  1688. package/button/lib/button/models/index.d.ts +0 -4
  1689. package/button/package.json +0 -3
  1690. package/button/public-api.d.ts +0 -3
  1691. package/calendar-mask/index.d.ts +0 -5
  1692. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +0 -69
  1693. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +0 -8
  1694. package/calendar-mask/package.json +0 -3
  1695. package/calendar-mask/public-api.d.ts +0 -2
  1696. package/card/index.d.ts +0 -5
  1697. package/card/lib/card/card.component.d.ts +0 -22
  1698. package/card/lib/card/card.module.d.ts +0 -9
  1699. package/card/package.json +0 -3
  1700. package/card/public-api.d.ts +0 -2
  1701. package/chat/index.d.ts +0 -5
  1702. package/chat/lib/chat/chat.component.d.ts +0 -11
  1703. package/chat/lib/chat/chat.module.d.ts +0 -11
  1704. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +0 -11
  1705. package/chat/lib/chat/types/chat-message.d.ts +0 -8
  1706. package/chat/package.json +0 -3
  1707. package/chat/public-api.d.ts +0 -3
  1708. package/checkbox/index.d.ts +0 -5
  1709. package/checkbox/lib/checkbox/checkbox.component.d.ts +0 -21
  1710. package/checkbox/lib/checkbox/checkbox.module.d.ts +0 -9
  1711. package/checkbox/lib/checkbox/models/checkbox-state.d.ts +0 -7
  1712. package/checkbox/package.json +0 -3
  1713. package/checkbox/public-api.d.ts +0 -4
  1714. package/chips/index.d.ts +0 -5
  1715. package/chips/lib/chips/chip-item/chip-item.component.d.ts +0 -25
  1716. package/chips/lib/chips/chips/chips.component.d.ts +0 -66
  1717. package/chips/lib/chips/chips.module.d.ts +0 -12
  1718. package/chips/lib/chips/models/chip-models.d.ts +0 -7
  1719. package/chips/package.json +0 -3
  1720. package/chips/public-api.d.ts +0 -3
  1721. package/code-editor/index.d.ts +0 -5
  1722. package/code-editor/lib/code-editor/code-editor.component.d.ts +0 -30
  1723. package/code-editor/lib/code-editor/code-editor.module.d.ts +0 -9
  1724. package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +0 -32
  1725. package/code-editor/lib/code-editor/core/use-cases/core-linters.d.ts +0 -6
  1726. package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +0 -26
  1727. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.d.ts +0 -15
  1728. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.d.ts +0 -6
  1729. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.d.ts +0 -12
  1730. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.d.ts +0 -8
  1731. package/code-editor/lib/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.d.ts +0 -1
  1732. package/code-editor/lib/code-editor/infra/cores/codemirror-6/models/types/editor-theme.d.ts +0 -3
  1733. package/code-editor/lib/code-editor/infra/utils/custom-http-client/custom-http-client.d.ts +0 -34
  1734. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations-service.d.ts +0 -25
  1735. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +0 -16
  1736. package/code-editor/package.json +0 -3
  1737. package/code-editor/public-api.d.ts +0 -4
  1738. package/collapse-link/index.d.ts +0 -5
  1739. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +0 -20
  1740. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +0 -8
  1741. package/collapse-link/package.json +0 -3
  1742. package/collapse-link/public-api.d.ts +0 -2
  1743. package/common/index.d.ts +0 -5
  1744. package/common/lib/angular-components.module.d.ts +0 -13
  1745. package/common/lib/custom-http-client/custom-http-client.d.ts +0 -34
  1746. package/common/lib/custom-http-client/json-response-formatters/format-blob-response.d.ts +0 -6
  1747. package/common/lib/custom-http-client/json-response-formatters/format-json-response.d.ts +0 -6
  1748. package/common/lib/debouce.d.ts +0 -7
  1749. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +0 -5
  1750. package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +0 -5
  1751. package/common/lib/svg-factory/components/svg-factory-icons.d.ts +0 -1
  1752. package/common/lib/svg-factory/index.d.ts +0 -2
  1753. package/common/lib/svg-factory/svg-factory.directive.d.ts +0 -15
  1754. package/common/lib/svg-factory/svg-factory.module.d.ts +0 -10
  1755. package/common/package.json +0 -3
  1756. package/common/public-api.d.ts +0 -5
  1757. package/control-errors/index.d.ts +0 -5
  1758. package/control-errors/lib/control-errors/control-errors.component.d.ts +0 -26
  1759. package/control-errors/lib/control-errors/control-errors.module.d.ts +0 -9
  1760. package/control-errors/package.json +0 -3
  1761. package/control-errors/public-api.d.ts +0 -2
  1762. package/country-phone-picker/index.d.ts +0 -5
  1763. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +0 -67
  1764. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +0 -11
  1765. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +0 -13
  1766. package/country-phone-picker/lib/country-phone-picker/resources/countries.d.ts +0 -2
  1767. package/country-phone-picker/package.json +0 -3
  1768. package/country-phone-picker/public-api.d.ts +0 -6
  1769. package/currency/index.d.ts +0 -5
  1770. package/currency/lib/currency.service.d.ts +0 -12
  1771. package/currency/lib/models/currencies.d.ts +0 -634
  1772. package/currency/lib/types/currency.d.ts +0 -2
  1773. package/currency/package.json +0 -3
  1774. package/currency/public-api.d.ts +0 -3
  1775. package/custom-fields/index.d.ts +0 -5
  1776. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +0 -86
  1777. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +0 -13
  1778. package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +0 -20
  1779. package/custom-fields/package.json +0 -3
  1780. package/custom-fields/public-api.d.ts +0 -3
  1781. package/dynamic-form/index.d.ts +0 -5
  1782. package/dynamic-form/lib/dynamic-form/components/field-label/field-label.component.d.ts +0 -8
  1783. package/dynamic-form/lib/dynamic-form/components/grid/row/row.component.d.ts +0 -15
  1784. package/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.d.ts +0 -164
  1785. package/dynamic-form/lib/dynamic-form/components/lookup/types/default-filter.d.ts +0 -4
  1786. package/dynamic-form/lib/dynamic-form/components/lookup/types/label-options.d.ts +0 -13
  1787. package/dynamic-form/lib/dynamic-form/components/structure/base-structure-component.d.ts +0 -8
  1788. package/dynamic-form/lib/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +0 -12
  1789. package/dynamic-form/lib/dynamic-form/components/structure/section/section.component.d.ts +0 -14
  1790. package/dynamic-form/lib/dynamic-form/configurations/grid/grid.d.ts +0 -14
  1791. package/dynamic-form/lib/dynamic-form/configurations/grid/row.d.ts +0 -8
  1792. package/dynamic-form/lib/dynamic-form/configurations/structure/fieldset.d.ts +0 -10
  1793. package/dynamic-form/lib/dynamic-form/configurations/structure/section.d.ts +0 -20
  1794. package/dynamic-form/lib/dynamic-form/configurations/structure/structure.d.ts +0 -14
  1795. package/dynamic-form/lib/dynamic-form/dynamic-form.component.d.ts +0 -19
  1796. package/dynamic-form/lib/dynamic-form/dynamic-form.d.ts +0 -57
  1797. package/dynamic-form/lib/dynamic-form/dynamic-form.directive.d.ts +0 -34
  1798. package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +0 -80
  1799. package/dynamic-form/lib/dynamic-form/form-field/addon-config.d.ts +0 -7
  1800. package/dynamic-form/lib/dynamic-form/form-field/configurations/field-type.d.ts +0 -31
  1801. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +0 -30
  1802. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +0 -38
  1803. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/blob-field.d.ts +0 -43
  1804. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +0 -29
  1805. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +0 -11
  1806. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/button-field.d.ts +0 -34
  1807. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +0 -45
  1808. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +0 -9
  1809. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/chips-field.d.ts +0 -24
  1810. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +0 -15
  1811. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/currency-field.d.ts +0 -9
  1812. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/decimal-field.d.ts +0 -14
  1813. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/field.d.ts +0 -95
  1814. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +0 -95
  1815. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/number-field.d.ts +0 -47
  1816. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/password-field.d.ts +0 -45
  1817. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +0 -35
  1818. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +0 -23
  1819. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/select-field.d.ts +0 -39
  1820. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/slider-field.d.ts +0 -32
  1821. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +0 -20
  1822. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-area-ia-field.d.ts +0 -22
  1823. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-field.d.ts +0 -41
  1824. package/dynamic-form/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +0 -17
  1825. package/dynamic-form/lib/dynamic-form/form-field/fields/base-field-component.d.ts +0 -32
  1826. package/dynamic-form/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +0 -27
  1827. package/dynamic-form/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.d.ts +0 -11
  1828. package/dynamic-form/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.d.ts +0 -10
  1829. package/dynamic-form/lib/dynamic-form/form-field/fields/button-field/button-field.component.d.ts +0 -10
  1830. package/dynamic-form/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +0 -35
  1831. package/dynamic-form/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.d.ts +0 -10
  1832. package/dynamic-form/lib/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +0 -22
  1833. package/dynamic-form/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +0 -17
  1834. package/dynamic-form/lib/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +0 -659
  1835. package/dynamic-form/lib/dynamic-form/form-field/fields/editor/editor-field.component.d.ts +0 -10
  1836. package/dynamic-form/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.d.ts +0 -19
  1837. package/dynamic-form/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.d.ts +0 -9
  1838. package/dynamic-form/lib/dynamic-form/form-field/fields/number/number-field.component.d.ts +0 -31
  1839. package/dynamic-form/lib/dynamic-form/form-field/fields/password/password-field.component.d.ts +0 -22
  1840. package/dynamic-form/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.d.ts +0 -9
  1841. package/dynamic-form/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.d.ts +0 -17
  1842. package/dynamic-form/lib/dynamic-form/form-field/fields/select/select-field.component.d.ts +0 -10
  1843. package/dynamic-form/lib/dynamic-form/form-field/fields/slider/slider-field.component.d.ts +0 -25
  1844. package/dynamic-form/lib/dynamic-form/form-field/fields/text/text-field.component.d.ts +0 -23
  1845. package/dynamic-form/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +0 -15
  1846. package/dynamic-form/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.d.ts +0 -11
  1847. package/dynamic-form/lib/dynamic-form/form-field/form-field.d.ts +0 -192
  1848. package/dynamic-form/lib/dynamic-form/services/dynamic-form-cache.d.ts +0 -12
  1849. package/dynamic-form/package.json +0 -3
  1850. package/dynamic-form/public-api.d.ts +0 -18
  1851. package/editable-overlay/index.d.ts +0 -5
  1852. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +0 -11
  1853. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +0 -8
  1854. package/editable-overlay/package.json +0 -3
  1855. package/editable-overlay/public-api.d.ts +0 -2
  1856. package/empty-state/index.d.ts +0 -5
  1857. package/empty-state/lib/empty-state/empty-state.component.d.ts +0 -21
  1858. package/empty-state/lib/empty-state/empty-state.module.d.ts +0 -10
  1859. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +0 -13
  1860. package/empty-state/package.json +0 -3
  1861. package/empty-state/public-api.d.ts +0 -3
  1862. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +0 -244
  1863. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +0 -1
  1864. package/fesm2022/seniorsistemas-angular-components-alert.mjs +0 -66
  1865. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +0 -1
  1866. package/fesm2022/seniorsistemas-angular-components-badge.mjs +0 -70
  1867. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +0 -1
  1868. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +0 -176
  1869. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +0 -1
  1870. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +0 -128
  1871. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +0 -1
  1872. package/fesm2022/seniorsistemas-angular-components-button.mjs +0 -135
  1873. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +0 -1
  1874. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +0 -633
  1875. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +0 -1
  1876. package/fesm2022/seniorsistemas-angular-components-card.mjs +0 -93
  1877. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +0 -1
  1878. package/fesm2022/seniorsistemas-angular-components-chat.mjs +0 -78
  1879. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +0 -1
  1880. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +0 -151
  1881. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +0 -1
  1882. package/fesm2022/seniorsistemas-angular-components-chips.mjs +0 -327
  1883. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +0 -1
  1884. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +0 -1442
  1885. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +0 -1
  1886. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +0 -103
  1887. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +0 -1
  1888. package/fesm2022/seniorsistemas-angular-components-common.mjs +0 -246
  1889. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +0 -1
  1890. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +0 -75
  1891. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +0 -1
  1892. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +0 -631
  1893. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +0 -1
  1894. package/fesm2022/seniorsistemas-angular-components-currency.mjs +0 -193
  1895. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +0 -1
  1896. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +0 -783
  1897. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +0 -1
  1898. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +0 -3740
  1899. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +0 -1
  1900. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +0 -66
  1901. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +0 -1
  1902. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +0 -107
  1903. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +0 -1
  1904. package/fesm2022/seniorsistemas-angular-components-file-upload.mjs +0 -333
  1905. package/fesm2022/seniorsistemas-angular-components-file-upload.mjs.map +0 -1
  1906. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +0 -1748
  1907. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +0 -1
  1908. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +0 -288
  1909. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +0 -1
  1910. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +0 -72
  1911. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +0 -1
  1912. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +0 -422
  1913. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +0 -1
  1914. package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs +0 -243
  1915. package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs.map +0 -1
  1916. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +0 -268
  1917. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +0 -1
  1918. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +0 -50
  1919. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +0 -1
  1920. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +0 -105
  1921. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +0 -1
  1922. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +0 -679
  1923. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +0 -1
  1924. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +0 -456
  1925. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +0 -1
  1926. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +0 -61
  1927. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +0 -1
  1928. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +0 -185
  1929. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +0 -1
  1930. package/fesm2022/seniorsistemas-angular-components-locale.mjs +0 -409
  1931. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +0 -1
  1932. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +0 -85
  1933. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +0 -1
  1934. package/fesm2022/seniorsistemas-angular-components-mask.mjs +0 -85
  1935. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +0 -1
  1936. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +0 -116
  1937. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +0 -1
  1938. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +0 -158
  1939. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +0 -1
  1940. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +0 -168
  1941. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +0 -1
  1942. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +0 -139
  1943. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +0 -1
  1944. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +0 -321
  1945. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +0 -1
  1946. package/fesm2022/seniorsistemas-angular-components-panel.mjs +0 -113
  1947. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +0 -1
  1948. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +0 -321
  1949. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +0 -1
  1950. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +0 -339
  1951. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +0 -1
  1952. package/fesm2022/seniorsistemas-angular-components-product-header.mjs +0 -68
  1953. package/fesm2022/seniorsistemas-angular-components-product-header.mjs.map +0 -1
  1954. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +0 -334
  1955. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +0 -1
  1956. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +0 -152
  1957. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +0 -1
  1958. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +0 -81
  1959. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +0 -1
  1960. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +0 -172
  1961. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +0 -1
  1962. package/fesm2022/seniorsistemas-angular-components-shared.mjs +0 -82
  1963. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +0 -1
  1964. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +0 -118
  1965. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +0 -1
  1966. package/fesm2022/seniorsistemas-angular-components-slide-panel.mjs +0 -182
  1967. package/fesm2022/seniorsistemas-angular-components-slide-panel.mjs.map +0 -1
  1968. package/fesm2022/seniorsistemas-angular-components-slider.mjs +0 -624
  1969. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +0 -1
  1970. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +0 -86
  1971. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +0 -1
  1972. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +0 -142
  1973. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +0 -1
  1974. package/fesm2022/seniorsistemas-angular-components-steps.mjs +0 -145
  1975. package/fesm2022/seniorsistemas-angular-components-steps.mjs.map +0 -1
  1976. package/fesm2022/seniorsistemas-angular-components-structure.mjs +0 -48
  1977. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +0 -1
  1978. package/fesm2022/seniorsistemas-angular-components-switch.mjs +0 -115
  1979. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +0 -1
  1980. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +0 -175
  1981. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +0 -1
  1982. package/fesm2022/seniorsistemas-angular-components-table.mjs +0 -953
  1983. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +0 -1
  1984. package/fesm2022/seniorsistemas-angular-components-template.mjs +0 -46
  1985. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +0 -1
  1986. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs +0 -248
  1987. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs.map +0 -1
  1988. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +0 -159
  1989. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +0 -1
  1990. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +0 -182
  1991. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +0 -1
  1992. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +0 -915
  1993. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +0 -1
  1994. package/fesm2022/seniorsistemas-angular-components-tile.mjs +0 -89
  1995. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +0 -1
  1996. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +0 -385
  1997. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +0 -1
  1998. package/fesm2022/seniorsistemas-angular-components-toast.mjs +0 -132
  1999. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +0 -1
  2000. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +0 -64
  2001. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +0 -1
  2002. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +0 -387
  2003. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +0 -1
  2004. package/fesm2022/seniorsistemas-angular-components-utils.mjs +0 -59
  2005. package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +0 -1
  2006. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +0 -159
  2007. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +0 -1
  2008. package/fesm2022/seniorsistemas-angular-components.mjs +0 -9
  2009. package/fesm2022/seniorsistemas-angular-components.mjs.map +0 -1
  2010. package/file-upload/index.d.ts +0 -5
  2011. package/file-upload/lib/file-upload/file-upload.component.d.ts +0 -79
  2012. package/file-upload/lib/file-upload/file-upload.module.d.ts +0 -12
  2013. package/file-upload/lib/file-upload/file-upload.service.d.ts +0 -9
  2014. package/file-upload/lib/file-upload/models/file-dto.d.ts +0 -13
  2015. package/file-upload/lib/file-upload/models/file-upload-permissions.d.ts +0 -2
  2016. package/file-upload/lib/file-upload/models/uploadError.d.ts +0 -6
  2017. package/file-upload/lib/file-upload/models/validate-errors.d.ts +0 -1
  2018. package/file-upload/package.json +0 -3
  2019. package/file-upload/public-api.d.ts +0 -6
  2020. package/gantt/index.d.ts +0 -5
  2021. package/gantt/lib/gantt/components/gantt/arrow.d.ts +0 -16
  2022. package/gantt/lib/gantt/components/gantt/bar.d.ts +0 -44
  2023. package/gantt/lib/gantt/components/gantt/gantt-options.d.ts +0 -2
  2024. package/gantt/lib/gantt/components/gantt/gantt.d.ts +0 -65
  2025. package/gantt/lib/gantt/components/gantt/popup.d.ts +0 -15
  2026. package/gantt/lib/gantt/components/gantt/utils/svg-utils.d.ts +0 -11
  2027. package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +0 -13
  2028. package/gantt/lib/gantt/gantt.component.d.ts +0 -33
  2029. package/gantt/lib/gantt/gantt.module.d.ts +0 -10
  2030. package/gantt/lib/gantt/models/index.d.ts +0 -2
  2031. package/gantt/lib/gantt/models/options.d.ts +0 -26
  2032. package/gantt/package.json +0 -3
  2033. package/gantt/public-api.d.ts +0 -4
  2034. package/global-search/index.d.ts +0 -5
  2035. package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +0 -27
  2036. package/global-search/lib/global-search/global-search.component.d.ts +0 -37
  2037. package/global-search/lib/global-search/global-search.module.d.ts +0 -17
  2038. package/global-search/lib/global-search/types/global-search-size.enum.d.ts +0 -1
  2039. package/global-search/package.json +0 -3
  2040. package/global-search/public-api.d.ts +0 -4
  2041. package/grid-menu/index.d.ts +0 -5
  2042. package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +0 -10
  2043. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +0 -8
  2044. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +0 -9
  2045. package/grid-menu/lib/grid-menu/types/grid-menu-item.d.ts +0 -6
  2046. package/grid-menu/package.json +0 -3
  2047. package/grid-menu/public-api.d.ts +0 -4
  2048. package/help-popover/index.d.ts +0 -5
  2049. package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +0 -36
  2050. package/help-popover/lib/help-popover/help-popover.directive.d.ts +0 -64
  2051. package/help-popover/lib/help-popover/help-popover.module.d.ts +0 -10
  2052. package/help-popover/lib/help-popover/models/help-popover.models.d.ts +0 -2
  2053. package/help-popover/package.json +0 -3
  2054. package/help-popover/public-api.d.ts +0 -5
  2055. package/ia-insight/index.d.ts +0 -5
  2056. package/ia-insight/lib/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.d.ts +0 -5
  2057. package/ia-insight/lib/ia-insight/components/ia-insight-card/ia-insight-card.component.d.ts +0 -25
  2058. package/ia-insight/lib/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.d.ts +0 -19
  2059. package/ia-insight/lib/ia-insight/ia-insight.component.d.ts +0 -27
  2060. package/ia-insight/lib/ia-insight/ia-insight.module.d.ts +0 -17
  2061. package/ia-insight/lib/ia-insight/models/ia-insight-item.d.ts +0 -9
  2062. package/ia-insight/lib/ia-insight/models/ia-insight-template-types.d.ts +0 -1
  2063. package/ia-insight/lib/ia-insight/models/index.d.ts +0 -2
  2064. package/ia-insight/package.json +0 -3
  2065. package/ia-insight/public-api.d.ts +0 -3
  2066. package/image-cropper/index.d.ts +0 -5
  2067. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +0 -44
  2068. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +0 -12
  2069. package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +0 -42
  2070. package/image-cropper/package.json +0 -3
  2071. package/image-cropper/public-api.d.ts +0 -3
  2072. package/infinite-scroll/index.d.ts +0 -5
  2073. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +0 -10
  2074. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +0 -8
  2075. package/infinite-scroll/package.json +0 -3
  2076. package/infinite-scroll/public-api.d.ts +0 -2
  2077. package/info-sign/index.d.ts +0 -5
  2078. package/info-sign/lib/info-sign/info-sign.component.d.ts +0 -10
  2079. package/info-sign/lib/info-sign/info-sign.directive.d.ts +0 -18
  2080. package/info-sign/lib/info-sign/info-sign.module.d.ts +0 -10
  2081. package/info-sign/package.json +0 -3
  2082. package/info-sign/public-api.d.ts +0 -2
  2083. package/inline-edit/index.d.ts +0 -5
  2084. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +0 -21
  2085. package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +0 -13
  2086. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -22
  2087. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +0 -13
  2088. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +0 -13
  2089. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.d.ts +0 -13
  2090. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -30
  2091. package/inline-edit/lib/inline-edit/fields/index.d.ts +0 -14
  2092. package/inline-edit/lib/inline-edit/fields/inline-edit-calendar-field.d.ts +0 -44
  2093. package/inline-edit/lib/inline-edit/fields/inline-edit-field.d.ts +0 -15
  2094. package/inline-edit/lib/inline-edit/fields/inline-edit-lookup-field.d.ts +0 -79
  2095. package/inline-edit/lib/inline-edit/fields/inline-edit-number-field.d.ts +0 -40
  2096. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +0 -15
  2097. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +0 -29
  2098. package/inline-edit/lib/inline-edit/types/addon-config.d.ts +0 -7
  2099. package/inline-edit/package.json +0 -3
  2100. package/inline-edit/public-api.d.ts +0 -4
  2101. package/kanban/index.d.ts +0 -5
  2102. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +0 -23
  2103. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +0 -21
  2104. package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +0 -6
  2105. package/kanban/lib/kanban/kanban-event.service.d.ts +0 -15
  2106. package/kanban/lib/kanban/kanban.component.d.ts +0 -46
  2107. package/kanban/lib/kanban/kanban.module.d.ts +0 -18
  2108. package/kanban/lib/kanban/types/index.d.ts +0 -2
  2109. package/kanban/lib/kanban/types/kanban-data.d.ts +0 -27
  2110. package/kanban/lib/kanban/types/kanban-template-types.d.ts +0 -1
  2111. package/kanban/package.json +0 -3
  2112. package/kanban/public-api.d.ts +0 -3
  2113. package/label-value/index.d.ts +0 -5
  2114. package/label-value/lib/label-value/label-value.component.d.ts +0 -12
  2115. package/label-value/lib/label-value/label-value.module.d.ts +0 -12
  2116. package/label-value/lib/label-value/types/label-value-configuration.d.ts +0 -29
  2117. package/label-value/package.json +0 -3
  2118. package/label-value/public-api.d.ts +0 -3
  2119. package/loading-state/index.d.ts +0 -5
  2120. package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +0 -5
  2121. package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +0 -5
  2122. package/loading-state/lib/loading-state/loading-state.component.d.ts +0 -23
  2123. package/loading-state/lib/loading-state/loading-state.directive.d.ts +0 -22
  2124. package/loading-state/lib/loading-state/loading-state.module.d.ts +0 -12
  2125. package/loading-state/package.json +0 -3
  2126. package/loading-state/public-api.d.ts +0 -4
  2127. package/locale/index.d.ts +0 -5
  2128. package/locale/lib/locale/locale.module.d.ts +0 -19
  2129. package/locale/lib/locale/locale.service.d.ts +0 -27
  2130. package/locale/lib/locale/options/calendar.d.ts +0 -25
  2131. package/locale/lib/locale/options/index.d.ts +0 -14
  2132. package/locale/lib/locale/options/number.d.ts +0 -11
  2133. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +0 -9
  2134. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +0 -12
  2135. package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +0 -11
  2136. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +0 -22
  2137. package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +0 -7
  2138. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +0 -10
  2139. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +0 -17
  2140. package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +0 -7
  2141. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +0 -10
  2142. package/locale/package.json +0 -3
  2143. package/locale/public-api.d.ts +0 -12
  2144. package/localized-number-input/index.d.ts +0 -5
  2145. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +0 -16
  2146. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +0 -8
  2147. package/localized-number-input/package.json +0 -3
  2148. package/localized-number-input/public-api.d.ts +0 -2
  2149. package/mask/index.d.ts +0 -5
  2150. package/mask/lib/mask/mask-formatter.module.d.ts +0 -7
  2151. package/mask/lib/mask/mask-formatter.pipe.d.ts +0 -8
  2152. package/mask/package.json +0 -3
  2153. package/mask/public-api.d.ts +0 -2
  2154. package/mouse-events/index.d.ts +0 -5
  2155. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +0 -12
  2156. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +0 -16
  2157. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +0 -9
  2158. package/mouse-events/package.json +0 -3
  2159. package/mouse-events/public-api.d.ts +0 -3
  2160. package/navigation-button/index.d.ts +0 -5
  2161. package/navigation-button/lib/navigation-button/models/index.d.ts +0 -2
  2162. package/navigation-button/lib/navigation-button/models/navigation-button-step-changed-info.d.ts +0 -5
  2163. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +0 -33
  2164. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +0 -10
  2165. package/navigation-button/package.json +0 -3
  2166. package/navigation-button/public-api.d.ts +0 -3
  2167. package/number-input/index.d.ts +0 -5
  2168. package/number-input/lib/number-input/number-input.directive.d.ts +0 -45
  2169. package/number-input/lib/number-input/number-input.module.d.ts +0 -11
  2170. package/number-input/package.json +0 -3
  2171. package/number-input/public-api.d.ts +0 -2
  2172. package/numeric/index.d.ts +0 -5
  2173. package/numeric/lib/numeric.module.d.ts +0 -8
  2174. package/numeric/lib/numeric.pipe.d.ts +0 -16
  2175. package/numeric/lib/numeric.service.d.ts +0 -24
  2176. package/numeric/package.json +0 -3
  2177. package/numeric/public-api.d.ts +0 -3
  2178. package/object-card/index.d.ts +0 -5
  2179. package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +0 -20
  2180. package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +0 -31
  2181. package/object-card/lib/object-card/object-card.component.d.ts +0 -33
  2182. package/object-card/lib/object-card/object-card.module.d.ts +0 -14
  2183. package/object-card/package.json +0 -3
  2184. package/object-card/public-api.d.ts +0 -4
  2185. package/panel/index.d.ts +0 -5
  2186. package/panel/lib/panel/panel.component.d.ts +0 -27
  2187. package/panel/lib/panel/panel.module.d.ts +0 -10
  2188. package/panel/package.json +0 -3
  2189. package/panel/public-api.d.ts +0 -2
  2190. package/password-strength/index.d.ts +0 -5
  2191. package/password-strength/lib/password-strength/password-strength.component.d.ts +0 -23
  2192. package/password-strength/lib/password-strength/password-strength.directive.d.ts +0 -30
  2193. package/password-strength/lib/password-strength/password-strength.module.d.ts +0 -9
  2194. package/password-strength/lib/password-strength/types/password-positions.d.ts +0 -1
  2195. package/password-strength/lib/password-strength/types/password-strengths.d.ts +0 -1
  2196. package/password-strength/package.json +0 -3
  2197. package/password-strength/public-api.d.ts +0 -5
  2198. package/picklist/index.d.ts +0 -5
  2199. package/picklist/lib/picklist/picklist.component.d.ts +0 -74
  2200. package/picklist/lib/picklist/picklist.module.d.ts +0 -12
  2201. package/picklist/lib/picklist/types/index.d.ts +0 -2
  2202. package/picklist/lib/picklist/types/picklist-item.d.ts +0 -4
  2203. package/picklist/lib/picklist/types/picklist-template-types.d.ts +0 -1
  2204. package/picklist/package.json +0 -3
  2205. package/picklist/public-api.d.ts +0 -4
  2206. package/product-header/index.d.ts +0 -5
  2207. package/product-header/lib/product-header/product-header.component.d.ts +0 -15
  2208. package/product-header/lib/product-header/product-header.module.d.ts +0 -10
  2209. package/product-header/package.json +0 -3
  2210. package/product-header/public-api.d.ts +0 -2
  2211. package/profile-picture-picker/index.d.ts +0 -5
  2212. package/profile-picture-picker/lib/profile-picture-picker/models/file-validation-errors.d.ts +0 -5
  2213. package/profile-picture-picker/lib/profile-picture-picker/models/index.d.ts +0 -4
  2214. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +0 -58
  2215. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +0 -13
  2216. package/profile-picture-picker/lib/profile-picture-picker/validators/index.d.ts +0 -1
  2217. package/profile-picture-picker/lib/profile-picture-picker/validators/validators.d.ts +0 -7
  2218. package/profile-picture-picker/package.json +0 -3
  2219. package/profile-picture-picker/public-api.d.ts +0 -4
  2220. package/progressbar/index.d.ts +0 -5
  2221. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -20
  2222. package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +0 -8
  2223. package/progressbar/lib/progressbar/progressbar.component.d.ts +0 -17
  2224. package/progressbar/lib/progressbar/progressbar.module.d.ts +0 -10
  2225. package/progressbar/lib/progressbar/types/index.d.ts +0 -2
  2226. package/progressbar/lib/progressbar/types/progressbar-colors.d.ts +0 -1
  2227. package/progressbar/lib/progressbar/types/progressbar-mode.d.ts +0 -1
  2228. package/progressbar/package.json +0 -3
  2229. package/progressbar/public-api.d.ts +0 -3
  2230. package/rating-scale/index.d.ts +0 -5
  2231. package/rating-scale/lib/rating-scale/models/index.d.ts +0 -1
  2232. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +0 -18
  2233. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +0 -9
  2234. package/rating-scale/package.json +0 -3
  2235. package/rating-scale/public-api.d.ts +0 -3
  2236. package/select-button/index.d.ts +0 -5
  2237. package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +0 -10
  2238. package/select-button/lib/select-button/select-button.component.d.ts +0 -22
  2239. package/select-button/lib/select-button/select-button.module.d.ts +0 -9
  2240. package/select-button/package.json +0 -3
  2241. package/select-button/public-api.d.ts +0 -3
  2242. package/shared/index.d.ts +0 -5
  2243. package/shared/lib/shared/border-button/border-button.component.d.ts +0 -9
  2244. package/shared/lib/shared/border-button/border-button.module.d.ts +0 -9
  2245. package/shared/lib/shared/models/border-button-options.d.ts +0 -9
  2246. package/shared/lib/shared/models/severities.d.ts +0 -8
  2247. package/shared/package.json +0 -3
  2248. package/shared/public-api.d.ts +0 -6
  2249. package/sidebar/index.d.ts +0 -5
  2250. package/sidebar/lib/sidebar/sidebar.component.d.ts +0 -29
  2251. package/sidebar/lib/sidebar/sidebar.module.d.ts +0 -10
  2252. package/sidebar/package.json +0 -3
  2253. package/sidebar/public-api.d.ts +0 -2
  2254. package/slide-panel/index.d.ts +0 -5
  2255. package/slide-panel/lib/slide-panel/slide-panel.component.d.ts +0 -32
  2256. package/slide-panel/lib/slide-panel/slide-panel.module.d.ts +0 -8
  2257. package/slide-panel/lib/slide-panel/slide-panel.service.d.ts +0 -10
  2258. package/slide-panel/package.json +0 -3
  2259. package/slide-panel/public-api.d.ts +0 -3
  2260. package/slider/index.d.ts +0 -5
  2261. package/slider/lib/slider/slider.component.d.ts +0 -97
  2262. package/slider/lib/slider/slider.module.d.ts +0 -9
  2263. package/slider/package.json +0 -3
  2264. package/slider/public-api.d.ts +0 -2
  2265. package/split-button/index.d.ts +0 -5
  2266. package/split-button/lib/split-button/models/index.d.ts +0 -2
  2267. package/split-button/lib/split-button/models/split-button-type.d.ts +0 -1
  2268. package/split-button/lib/split-button/split-button.component.d.ts +0 -22
  2269. package/split-button/lib/split-button/split-button.module.d.ts +0 -8
  2270. package/split-button/package.json +0 -3
  2271. package/split-button/public-api.d.ts +0 -3
  2272. package/stats-card/index.d.ts +0 -5
  2273. package/stats-card/lib/stats-card/stats-card.component.d.ts +0 -28
  2274. package/stats-card/lib/stats-card/stats-card.module.d.ts +0 -9
  2275. package/stats-card/package.json +0 -3
  2276. package/stats-card/public-api.d.ts +0 -2
  2277. package/steps/index.d.ts +0 -5
  2278. package/steps/lib/steps/steps.component.d.ts +0 -36
  2279. package/steps/lib/steps/steps.module.d.ts +0 -9
  2280. package/steps/package.json +0 -3
  2281. package/steps/public-api.d.ts +0 -2
  2282. package/structure/index.d.ts +0 -5
  2283. package/structure/lib/structure/footer.component.d.ts +0 -5
  2284. package/structure/lib/structure/header.component.d.ts +0 -5
  2285. package/structure/lib/structure/structure.module.d.ts +0 -9
  2286. package/structure/package.json +0 -3
  2287. package/structure/public-api.d.ts +0 -4
  2288. package/switch/index.d.ts +0 -5
  2289. package/switch/lib/switch/switch.component.d.ts +0 -25
  2290. package/switch/lib/switch/switch.module.d.ts +0 -8
  2291. package/switch/package.json +0 -3
  2292. package/switch/public-api.d.ts +0 -2
  2293. package/table/index.d.ts +0 -5
  2294. package/table/lib/table/export-utils.d.ts +0 -16
  2295. package/table/lib/table/navigation/navigation.directive.d.ts +0 -18
  2296. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +0 -10
  2297. package/table/lib/table/table-column/index.d.ts +0 -2
  2298. package/table/lib/table/table-column/models/badge-column.interface.d.ts +0 -9
  2299. package/table/lib/table/table-column/models/badge-configs.interface.d.ts +0 -5
  2300. package/table/lib/table/table-column/models/column-colors.d.ts +0 -1
  2301. package/table/lib/table/table-column/models/column-values.interface.d.ts +0 -18
  2302. package/table/lib/table/table-column/models/column.interface.d.ts +0 -28
  2303. package/table/lib/table/table-column/models/dynamic-editable-grid.interface.d.ts +0 -13
  2304. package/table/lib/table/table-column/models/index.d.ts +0 -10
  2305. package/table/lib/table/table-column/models/locale-options.interface.d.ts +0 -6
  2306. package/table/lib/table/table-column/models/number-locale-options.interface.d.ts +0 -6
  2307. package/table/lib/table/table-column/table-columns.component.d.ts +0 -53
  2308. package/table/lib/table/table-paging/index.d.ts +0 -2
  2309. package/table/lib/table/table-paging/models/index.d.ts +0 -1
  2310. package/table/lib/table/table-paging/table-paging.component.d.ts +0 -65
  2311. package/table/lib/table/table.module.d.ts +0 -17
  2312. package/table/package.json +0 -3
  2313. package/table/public-api.d.ts +0 -5
  2314. package/table-header/index.d.ts +0 -5
  2315. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +0 -31
  2316. package/table-header/lib/table-header/table-header-checkox.module.d.ts +0 -10
  2317. package/table-header/package.json +0 -3
  2318. package/table-header/public-api.d.ts +0 -2
  2319. package/tailwind.css +0 -711
  2320. package/template/index.d.ts +0 -5
  2321. package/template/lib/template/template.directive.d.ts +0 -9
  2322. package/template/lib/template/template.module.d.ts +0 -8
  2323. package/template/package.json +0 -3
  2324. package/template/public-api.d.ts +0 -2
  2325. package/text-area-ia/index.d.ts +0 -5
  2326. package/text-area-ia/lib/services/IAssist/iassist.service.d.ts +0 -16
  2327. package/text-area-ia/lib/services/IAssist/models/iassist-input-data.d.ts +0 -6
  2328. package/text-area-ia/lib/services/IAssist/models/iassist-response.d.ts +0 -5
  2329. package/text-area-ia/lib/text-area-ia/text-area-ia.component.d.ts +0 -40
  2330. package/text-area-ia/lib/text-area-ia/text-area-ia.module.d.ts +0 -13
  2331. package/text-area-ia/package.json +0 -3
  2332. package/text-area-ia/public-api.d.ts +0 -2
  2333. package/thumbnail/index.d.ts +0 -5
  2334. package/thumbnail/lib/thumbnail/thumbnail-size.d.ts +0 -1
  2335. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +0 -27
  2336. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +0 -8
  2337. package/thumbnail/lib/thumbnail/thumbnail.service.d.ts +0 -10
  2338. package/thumbnail/package.json +0 -3
  2339. package/thumbnail/public-api.d.ts +0 -3
  2340. package/thumbnails/index.d.ts +0 -5
  2341. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +0 -6
  2342. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +0 -11
  2343. package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +0 -23
  2344. package/thumbnails/lib/thumbnails/models/thumbnails-item.d.ts +0 -20
  2345. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +0 -20
  2346. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +0 -14
  2347. package/thumbnails/package.json +0 -3
  2348. package/thumbnails/public-api.d.ts +0 -3
  2349. package/tiered-menu/index.d.ts +0 -5
  2350. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +0 -35
  2351. package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +0 -5
  2352. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -18
  2353. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -27
  2354. package/tiered-menu/lib/tiered-menu/models/index.d.ts +0 -2
  2355. package/tiered-menu/lib/tiered-menu/models/tiered-menu-item-data.d.ts +0 -10
  2356. package/tiered-menu/lib/tiered-menu/models/tiered-menu-item-internal-data.d.ts +0 -6
  2357. package/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.d.ts +0 -14
  2358. package/tiered-menu/lib/tiered-menu/services/tiered-menu.global.service.d.ts +0 -7
  2359. package/tiered-menu/lib/tiered-menu/services/tiered-menu.service.d.ts +0 -15
  2360. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +0 -46
  2361. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +0 -12
  2362. package/tiered-menu/package.json +0 -3
  2363. package/tiered-menu/public-api.d.ts +0 -5
  2364. package/tile/index.d.ts +0 -5
  2365. package/tile/lib/tile/tile.component.d.ts +0 -19
  2366. package/tile/lib/tile/tile.module.d.ts +0 -10
  2367. package/tile/package.json +0 -3
  2368. package/tile/public-api.d.ts +0 -2
  2369. package/timeline/index.d.ts +0 -5
  2370. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +0 -9
  2371. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -10
  2372. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +0 -10
  2373. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -9
  2374. package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +0 -9
  2375. package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +0 -13
  2376. package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +0 -5
  2377. package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +0 -11
  2378. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +0 -24
  2379. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -13
  2380. package/timeline/lib/timeline/models/timeline-item.d.ts +0 -27
  2381. package/timeline/lib/timeline/timeline.component.d.ts +0 -23
  2382. package/timeline/lib/timeline/timeline.module.d.ts +0 -11
  2383. package/timeline/package.json +0 -3
  2384. package/timeline/public-api.d.ts +0 -5
  2385. package/toast/index.d.ts +0 -5
  2386. package/toast/lib/toast/toast.component.d.ts +0 -15
  2387. package/toast/lib/toast/toast.module.d.ts +0 -8
  2388. package/toast/lib/toast/toast.service.d.ts +0 -15
  2389. package/toast/lib/toast/types/toast.d.ts +0 -16
  2390. package/toast/package.json +0 -3
  2391. package/toast/public-api.d.ts +0 -3
  2392. package/token-list/index.d.ts +0 -5
  2393. package/token-list/lib/token-list/models/index.d.ts +0 -1
  2394. package/token-list/lib/token-list/token-list.component.d.ts +0 -16
  2395. package/token-list/lib/token-list/token-list.module.d.ts +0 -8
  2396. package/token-list/package.json +0 -3
  2397. package/token-list/public-api.d.ts +0 -3
  2398. package/tooltip/index.d.ts +0 -5
  2399. package/tooltip/lib/tooltip/models/mobile-behavior.d.ts +0 -1
  2400. package/tooltip/lib/tooltip/models/tooltip-event.d.ts +0 -1
  2401. package/tooltip/lib/tooltip/models/tooltip-position.d.ts +0 -1
  2402. package/tooltip/lib/tooltip/tooltip.component.d.ts +0 -12
  2403. package/tooltip/lib/tooltip/tooltip.directive.d.ts +0 -63
  2404. package/tooltip/lib/tooltip/tooltip.module.d.ts +0 -9
  2405. package/tooltip/package.json +0 -3
  2406. package/tooltip/public-api.d.ts +0 -5
  2407. package/utils/lib/utils/utils.d.ts +0 -25
  2408. package/utils/package.json +0 -3
  2409. package/utils/public-api.d.ts +0 -2
  2410. package/workspace-switch/index.d.ts +0 -5
  2411. package/workspace-switch/lib/workspace-switch/models/index.d.ts +0 -1
  2412. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +0 -33
  2413. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +0 -8
  2414. package/workspace-switch/package.json +0 -3
  2415. package/workspace-switch/public-api.d.ts +0 -3
  2416. /package/{checkbox/lib → components}/checkbox/models/checkbox-data.d.ts +0 -0
  2417. /package/{code-editor/lib → components}/code-editor/core/facades/linter-facade.d.ts +0 -0
  2418. /package/{code-editor/lib → components}/code-editor/core/models/enums/marker-severity.d.ts +0 -0
  2419. /package/{code-editor/lib → components}/code-editor/core/models/index.d.ts +0 -0
  2420. /package/{code-editor/lib → components}/code-editor/core/models/interfaces/marker.d.ts +0 -0
  2421. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/editor-languages.d.ts +0 -0
  2422. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.d.ts +0 -0
  2423. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.d.ts +0 -0
  2424. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.d.ts +0 -0
  2425. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.d.ts +0 -0
  2426. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.d.ts +0 -0
  2427. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.d.ts +0 -0
  2428. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.d.ts +0 -0
  2429. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.d.ts +0 -0
  2430. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.d.ts +0 -0
  2431. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.d.ts +0 -0
  2432. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.d.ts +0 -0
  2433. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.d.ts +0 -0
  2434. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.d.ts +0 -0
  2435. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.d.ts +0 -0
  2436. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.d.ts +0 -0
  2437. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.d.ts +0 -0
  2438. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.d.ts +0 -0
  2439. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.d.ts +0 -0
  2440. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.d.ts +0 -0
  2441. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.d.ts +0 -0
  2442. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.d.ts +0 -0
  2443. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.d.ts +0 -0
  2444. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.d.ts +0 -0
  2445. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.d.ts +0 -0
  2446. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.d.ts +0 -0
  2447. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.d.ts +0 -0
  2448. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.d.ts +0 -0
  2449. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.d.ts +0 -0
  2450. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.d.ts +0 -0
  2451. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.d.ts +0 -0
  2452. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.d.ts +0 -0
  2453. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/models/index.d.ts +0 -0
  2454. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/editor-themes.d.ts +0 -0
  2455. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.d.ts +0 -0
  2456. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.d.ts +0 -0
  2457. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.d.ts +0 -0
  2458. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.d.ts +0 -0
  2459. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.d.ts +0 -0
  2460. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.d.ts +0 -0
  2461. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.d.ts +0 -0
  2462. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.d.ts +0 -0
  2463. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/utils/index.d.ts +0 -0
  2464. /package/{code-editor/lib → components}/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.d.ts +0 -0
  2465. /package/{code-editor/lib → components}/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.d.ts +0 -0
  2466. /package/{code-editor/lib → components}/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.d.ts +0 -0
  2467. /package/{code-editor/lib → components}/code-editor/infra/utils/custom-http-client/json-response-formatters/index.d.ts +0 -0
  2468. /package/{code-editor/lib → components}/code-editor/infra/utils/custom-translations/index.d.ts +0 -0
  2469. /package/{code-editor/lib → components}/code-editor/infra/utils/custom-translations/models/index.d.ts +0 -0
  2470. /package/{code-editor/lib → components}/code-editor/infra/utils/custom-translations/models/interfaces/translations.d.ts +0 -0
  2471. /package/{code-editor/lib → components}/code-editor/infra/utils/index.d.ts +0 -0
  2472. /package/{code-editor/lib → components}/code-editor/models/enums/languages.d.ts +0 -0
  2473. /package/{code-editor/lib → components}/code-editor/models/enums/themes.d.ts +0 -0
  2474. /package/{code-editor/lib → components}/code-editor/models/index.d.ts +0 -0
  2475. /package/{code-editor/lib → components}/code-editor/models/interfaces/editor-options.d.ts +0 -0
  2476. /package/{country-phone-picker/lib → components}/country-phone-picker/models/country-phone-data.d.ts +0 -0
  2477. /package/{country-phone-picker/lib → components}/country-phone-picker/models/ordination.d.ts +0 -0
  2478. /package/{country-phone-picker/lib → components}/country-phone-picker/models/phone-selection-data.d.ts +0 -0
  2479. /package/{custom-fields/lib → components}/custom-fields/models/custom-field-type.d.ts +0 -0
  2480. /package/{dynamic-form/lib → components}/dynamic-form/configurations/dynamic-config.d.ts +0 -0
  2481. /package/{dynamic-form/lib → components}/dynamic-form/configurations/dynamic-type.d.ts +0 -0
  2482. /package/{dynamic-form/lib/dynamic-form/form-field → components/dynamic-form}/configurations/field-size.d.ts +0 -0
  2483. /package/{dynamic-form/lib/dynamic-form/form-field → components/dynamic-form}/configurations/fields/editor-field.d.ts +0 -0
  2484. /package/{dynamic-form/lib → components}/dynamic-form/configurations/grid-type.d.ts +0 -0
  2485. /package/{dynamic-form/lib → components}/dynamic-form/configurations/structure-type.d.ts +0 -0
  2486. /package/{file-upload/lib → components}/file-upload/models/list-blob-metadata.d.ts +0 -0
  2487. /package/{gantt/lib → components}/gantt/components/gantt/utils/date-utils.d.ts +0 -0
  2488. /package/{gantt/lib → components}/gantt/models/task.d.ts +0 -0
  2489. /package/{gantt/lib → components}/gantt/models/view-mode.d.ts +0 -0
  2490. /package/{inline-edit/lib → components}/inline-edit/components/index.d.ts +0 -0
  2491. /package/{inline-edit/lib → components}/inline-edit/fields/inline-edit-text-area-field.d.ts +0 -0
  2492. /package/{inline-edit/lib → components}/inline-edit/fields/inline-edit-text-area-ia-field.d.ts +0 -0
  2493. /package/{inline-edit/lib → components}/inline-edit/fields/inline-edit-text-field.d.ts +0 -0
  2494. /package/{loading-state/lib → components}/loading-state/components/loading-state-indicators.d.ts +0 -0
  2495. /package/{navigation-button/lib → components}/navigation-button/models/navigation-button-item.d.ts +0 -0
  2496. /package/{profile-picture-picker/lib → components}/profile-picture-picker/models/confirmation-texts.d.ts +0 -0
  2497. /package/{profile-picture-picker/lib → components}/profile-picture-picker/models/cropper-labels-config.d.ts +0 -0
  2498. /package/{profile-picture-picker/lib → components}/profile-picture-picker/models/profile-picture-picker-data.d.ts +0 -0
  2499. /package/{rating-scale/lib → components}/rating-scale/models/rating-scale-node.d.ts +0 -0
  2500. /package/{select-button/lib → components}/select-button/models/select-button-item.d.ts +0 -0
  2501. /package/{shared/lib → components}/shared/helpers.d.ts +0 -0
  2502. /package/{split-button/lib → components}/split-button/models/split-button-option.d.ts +0 -0
  2503. /package/{table/lib → components}/table/table-column/models/enum-badge-colors.d.ts +0 -0
  2504. /package/{table/lib → components}/table/table-column/models/enum-column-field-type.d.ts +0 -0
  2505. /package/{table/lib → components}/table/table-paging/models/custom-action.interface.d.ts +0 -0
  2506. /package/{tiered-menu/lib → components}/tiered-menu/utils.d.ts +0 -0
  2507. /package/{timeline/lib → components}/timeline/models/timeline-item-severity.d.ts +0 -0
  2508. /package/{timeline/lib → components}/timeline/models/timeline-item-size.d.ts +0 -0
  2509. /package/{token-list/lib → components}/token-list/models/token.d.ts +0 -0
  2510. /package/{utils/lib → components}/utils/breakpoints.d.ts +0 -0
  2511. /package/{table/lib → components/utils}/locale-utils.d.ts +0 -0
  2512. /package/{workspace-switch/lib → components}/workspace-switch/models/workspace.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-position.ts","ng://@seniorsistemas/angular-components/components/accordion/components/accordion-panel/accordion-panel.component.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.component.ts","ng://@seniorsistemas/angular-components/components/switch/switch.module.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/mobile-behavior.ts","ng://@seniorsistemas/angular-components/components/tooltip/models/tooltip-event.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.component.ts","ng://@seniorsistemas/angular-components/components/utils/debouce.ts","ng://@seniorsistemas/angular-components/components/utils/utils.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-colors.ts","ng://@seniorsistemas/angular-components/components/badge/models/badge-types.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.directive.ts","ng://@seniorsistemas/angular-components/components/tooltip/tooltip.module.ts","ng://@seniorsistemas/angular-components/components/accordion/accordion.module.ts","ng://@seniorsistemas/angular-components/components/alert/alert.component.ts","ng://@seniorsistemas/angular-components/components/alert/alert.module.ts","ng://@seniorsistemas/angular-components/components/button/models/button-priority.ts","ng://@seniorsistemas/angular-components/components/button/models/button-size.ts","ng://@seniorsistemas/angular-components/components/badge/badge.component.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.component.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.directive.ts","ng://@seniorsistemas/angular-components/components/info-sign/info-sign.module.ts","ng://@seniorsistemas/angular-components/components/badge/badge.module.ts","ng://@seniorsistemas/angular-components/components/locale/options/calendar.ts","ng://@seniorsistemas/angular-components/components/locale/options/number.ts","ng://@seniorsistemas/angular-components/components/locale/options/index.ts","ng://@seniorsistemas/angular-components/components/locale/locale.service.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.component.ts","ng://@seniorsistemas/angular-components/components/breadcrumb/breadcrumb.module.ts","ng://@seniorsistemas/angular-components/components/button/models/button-animation.ts","ng://@seniorsistemas/angular-components/components/card/models/card-template-types.ts","ng://@seniorsistemas/angular-components/components/button/button.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/services/tiered-menu.event.service.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/services/tiered-menu.service.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/utils.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/components/tiered-menu/tiered-menu.component.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/services/tiered-menu.global.service.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/tiered-menu.directive.ts","ng://@seniorsistemas/angular-components/components/tiered-menu/tiered-menu.module.ts","ng://@seniorsistemas/angular-components/components/button/button.module.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.directive.ts","ng://@seniorsistemas/angular-components/components/calendar-mask/calendar-mask.module.ts","ng://@seniorsistemas/angular-components/components/template/template.directive.ts","ng://@seniorsistemas/angular-components/components/card/card.component.ts","ng://@seniorsistemas/angular-components/components/template/template.module.ts","ng://@seniorsistemas/angular-components/components/card/card.module.ts","ng://@seniorsistemas/angular-components/components/chat/chat.component.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-bignumber-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-currency-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-date-impure.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-number.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/localized-time-impure.pipe.ts","ng://@seniorsistemas/angular-components/utils/currency/currency.service.ts","ng://@seniorsistemas/angular-components/components/locale/services/numeric.service.ts","ng://@seniorsistemas/angular-components/components/locale/pipes/numeric.pipe.ts","ng://@seniorsistemas/angular-components/components/locale/locale.module.ts","ng://@seniorsistemas/angular-components/components/chat/components/chat-message/chat-message.component.ts","ng://@seniorsistemas/angular-components/components/chat/chat.module.ts","ng://@seniorsistemas/angular-components/components/checkbox/checkbox.component.ts","ng://@seniorsistemas/angular-components/components/checkbox/checkbox.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/models/enums/themes.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/use-cases/core-linters.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/facades/core-facade.ts","ng://@seniorsistemas/angular-components/components/code-editor/code-editor.component.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-http-client/custom-http-client.ts","ng://@seniorsistemas/angular-components/components/code-editor/core/models/enums/marker-severity.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations-service.ts","ng://@seniorsistemas/angular-components/angular-components.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/utils/custom-translations/custom-translations.module.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/models/ordination.ts","ng://@seniorsistemas/angular-components/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.ts","ng://@seniorsistemas/angular-components/components/code-editor/code-editor.module.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.component.ts","ng://@seniorsistemas/angular-components/components/collapse-link/collapse-link.module.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.component.ts","ng://@seniorsistemas/angular-components/components/control-errors/control-errors.module.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/resources/countries.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-type.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.service.ts","ng://@seniorsistemas/angular-components/components/utils/breakpoints.ts","ng://@seniorsistemas/angular-components/components/utils/export-utils.ts","ng://@seniorsistemas/angular-components/components/utils/locale-utils.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.component.ts","ng://@seniorsistemas/angular-components/components/country-phone-picker/country-phone-picker.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/base-field-component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/field-size.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.directive.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/autocomplete-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/bignumber-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/blob-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/boolean-switch-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/calendar-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/checkbox-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/chips-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/country-phone-picker-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-type.ts","ng://@seniorsistemas/angular-components/components/number-input/number-input.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/number-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/decimal-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/currency-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/lookup-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/password-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/radio-button-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/select-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/slider-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-area-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-area-ia-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/text-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/button-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/editor-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/fields/profile-picture.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/form-field.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/lookup/lookup.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure-type.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/grid.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid/row.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/structure.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/fieldset.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/structure/section.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/dynamic-config.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/configurations/grid-type.ts","ng://@seniorsistemas/angular-components/components/file-upload/models/validate-errors.ts","ng://@seniorsistemas/angular-components/components/file-upload/models/file-upload-permissions.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.component.ts","ng://@seniorsistemas/angular-components/components/mouse-events/long-press.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/double-click.directive.ts","ng://@seniorsistemas/angular-components/components/mouse-events/mouse-events.module.ts","ng://@seniorsistemas/angular-components/components/toast/toast.component.ts","ng://@seniorsistemas/angular-components/components/toast/toast.service.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/services/IAssist/iassist.service.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/go-back/go-back.component.ts","ng://@seniorsistemas/angular-components/components/empty-state/empty-state.module.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.service.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/components/svg-factory-icons.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/file-upload/file-upload.module.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/components/iassist-icon/iassist-icon.component.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/components/senior-icon/senior-icon.component.ts","ng://@seniorsistemas/angular-components/components/loading-state/components/loading-state-indicators.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/svg-factory.directive.ts","ng://@seniorsistemas/angular-components/utils/svg-factory/svg-factory.module.ts","ng://@seniorsistemas/angular-components/components/loading-state/components/dots-indicator/dots-indicator.components.ts","ng://@seniorsistemas/angular-components/components/loading-state/components/logo-indicator/logo-indicator.component.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-strengths.ts","ng://@seniorsistemas/angular-components/components/password-strength/models/password-positions.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.component.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.directive.ts","ng://@seniorsistemas/angular-components/components/loading-state/loading-state.module.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.directive.ts","ng://@seniorsistemas/angular-components/components/localized-number-input/localized-number-input.module.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.pipe.ts","ng://@seniorsistemas/angular-components/components/mask/mask-formatter.module.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-column-field-type.ts","ng://@seniorsistemas/angular-components/components/table/table-column/models/enum-badge-colors.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.component.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.directive.ts","ng://@seniorsistemas/angular-components/components/password-strength/password-strength.module.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkbox.component.ts","ng://@seniorsistemas/angular-components/components/table-header/table-header-checkox.module.ts","ng://@seniorsistemas/angular-components/components/table/navigation/navigation.directive.ts","ng://@seniorsistemas/angular-components/components/table/row-toggler/row-toggler.directive.ts","ng://@seniorsistemas/angular-components/components/table/frozen-position/frozen-position.directive.ts","ng://@seniorsistemas/angular-components/components/table/table-column/table-columns.component.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail-size.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.component.ts","ng://@seniorsistemas/angular-components/components/token-list/token-list.module.ts","ng://@seniorsistemas/angular-components/components/table/table-paging/table-paging.component.ts","ng://@seniorsistemas/angular-components/components/table/table.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/calendar/calendar-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/chips/chips-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/file-upload/file-upload.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/lookup/lookup-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/radio-button/radio-button-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/select/select-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/slider/slider-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text-area/text-area-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/fieldset/fieldset.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/structure/section/section.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/grid/row/row.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/dynamic-field/dynamic-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/bignumber/bignumber-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/currency/currency-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/password/password-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text/text-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/checkbox/checkbox-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/editor/editor-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/number/number-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/button-field/button-field.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.directive.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/field-label/field-label.component.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/field-label/field-label.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/bignumber/bignumber-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/checkbox/checkbox-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/currency/currency-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/editor/editor-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/number/number-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/password/password-field.module.ts","ng://@seniorsistemas/angular-components/components/structure/header.component.ts","ng://@seniorsistemas/angular-components/components/structure/footer.component.ts","ng://@seniorsistemas/angular-components/components/structure/structure.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.component.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.module.ts","ng://@seniorsistemas/angular-components/components/image-cropper/image-cropper.service.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/models/file-validation-errors.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.service.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.component.ts","ng://@seniorsistemas/angular-components/components/thumbnail/thumbnail.module.ts","ng://@seniorsistemas/angular-components/components/custom-fields/models/custom-field-type.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.component.ts","ng://@seniorsistemas/angular-components/components/profile-picture-picker/profile-picture-picker.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/components/fields/text/text-field.module.ts","ng://@seniorsistemas/angular-components/components/dynamic-form/dynamic-form.module.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.service.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.component.ts","ng://@seniorsistemas/angular-components/components/gantt/models/view-mode.ts","ng://@seniorsistemas/angular-components/components/custom-fields/custom-fields.module.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.directive.ts","ng://@seniorsistemas/angular-components/components/editable-overlay/editable-overlay.module.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/date-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/utils/svg-utils.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/bar.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/popup.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/arrow.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt-options.ts","ng://@seniorsistemas/angular-components/components/gantt/components/gantt/gantt.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search-size.enum.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.component.ts","ng://@seniorsistemas/angular-components/components/gantt/components/side-table/side-table.component.ts","ng://@seniorsistemas/angular-components/components/gantt/gantt.module.ts","ng://@seniorsistemas/angular-components/components/ia-insight/models/ia-insight-template-types.ts","ng://@seniorsistemas/angular-components/components/global-search/elements/dropdown/global-search-dropdown-item.component.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.component.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.directive.ts","ng://@seniorsistemas/angular-components/components/infinite-scroll/infinite-scroll.module.ts","ng://@seniorsistemas/angular-components/components/global-search/global-search.module.ts","ng://@seniorsistemas/angular-components/components/ia-insight/components/ia-insight-card/ia-insight-card.component.ts","ng://@seniorsistemas/angular-components/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.ts","ng://@seniorsistemas/angular-components/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.ts","ng://@seniorsistemas/angular-components/components/kanban/models/kanban-template-types.ts","ng://@seniorsistemas/angular-components/components/ia-insight/ia-insight.component.ts","ng://@seniorsistemas/angular-components/components/ia-insight/ia-insight.module.ts","ng://@seniorsistemas/angular-components/components/grid-menu/grid-menu.component.ts","ng://@seniorsistemas/angular-components/components/grid-menu/components/grid-menu-item/grid-menu-item.component.ts","ng://@seniorsistemas/angular-components/components/grid-menu/grid-menu.module.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-calendar-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-lookup-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-number-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-text-area-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-text-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/fields/inline-edit-text-area-ia-field.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/inline-edit-item/inline-edit-item.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.ts","ng://@seniorsistemas/angular-components/components/inline-edit/inline-edit.component.ts","ng://@seniorsistemas/angular-components/components/text-area-ia/text-area-ia.component.ts","ng://@seniorsistemas/angular-components/components/text-area-ia/text-area-ia.module.ts","ng://@seniorsistemas/angular-components/components/inline-edit/inline-edit.module.ts","ng://@seniorsistemas/angular-components/components/kanban/kanban-event.service.ts","ng://@seniorsistemas/angular-components/components/shared/models/enum-severity.ts","ng://@seniorsistemas/angular-components/components/kanban/kanban.component.ts","ng://@seniorsistemas/angular-components/components/kanban/components/kanban-column/kanban-column.component.ts","ng://@seniorsistemas/angular-components/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.ts","ng://@seniorsistemas/angular-components/components/kanban/components/kanban-item/kanban-item.component.ts","ng://@seniorsistemas/angular-components/components/kanban/kanban.module.ts","ng://@seniorsistemas/angular-components/components/navigation-button/navigation-button.component.ts","ng://@seniorsistemas/angular-components/components/navigation-button/navigation-button.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/models/progressbar-colors.ts","ng://@seniorsistemas/angular-components/components/progressbar/models/progressbar-mode.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/field/object-card-field.component.ts","ng://@seniorsistemas/angular-components/components/object-card/elements/main/object-card-main.component.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.component.ts","ng://@seniorsistemas/angular-components/components/shared/border-button/border-button.module.ts","ng://@seniorsistemas/angular-components/components/object-card/object-card.module.ts","ng://@seniorsistemas/angular-components/components/panel/panel.component.ts","ng://@seniorsistemas/angular-components/components/panel/panel.module.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.component.ts","ng://@seniorsistemas/angular-components/components/product-header/product-header.module.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.ts","ng://@seniorsistemas/angular-components/components/progressbar/progressbar.module.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.component.ts","ng://@seniorsistemas/angular-components/components/rating-scale/rating-scale.module.ts","ng://@seniorsistemas/angular-components/components/select-button/select-button.component.ts","ng://@seniorsistemas/angular-components/components/select-button/components/select-button-item/select-button-item.component.ts","ng://@seniorsistemas/angular-components/components/select-button/select-button.module.ts","ng://@seniorsistemas/angular-components/components/shared/helpers.ts","ng://@seniorsistemas/angular-components/components/split-button/models/split-button-type.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.component.ts","ng://@seniorsistemas/angular-components/components/sidebar/sidebar.module.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.service.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.component.ts","ng://@seniorsistemas/angular-components/components/slide-panel/slide-panel.module.ts","ng://@seniorsistemas/angular-components/components/slider/slider.component.ts","ng://@seniorsistemas/angular-components/components/slider/slider.module.ts","ng://@seniorsistemas/angular-components/components/steps/steps.component.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.component.ts","ng://@seniorsistemas/angular-components/components/split-button/split-button.module.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.component.ts","ng://@seniorsistemas/angular-components/components/stats-card/stats-card.module.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-severity.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item-size.ts","ng://@seniorsistemas/angular-components/components/steps/steps.module.ts","ng://@seniorsistemas/angular-components/components/thumbnails/thumbnails.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/components/thumbnail-item/thumbnail-item.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.ts","ng://@seniorsistemas/angular-components/components/thumbnails/thumbnails.module.ts","ng://@seniorsistemas/angular-components/components/tile/tile.component.ts","ng://@seniorsistemas/angular-components/components/tile/tile.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/timeline-icon-item/timeline-icon-item.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/horizontal-timeline/horizontal-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/range-line/range-line.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.ts","ng://@seniorsistemas/angular-components/components/timeline/components/vertical-timeline/vertical-timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/timeline.module.ts","ng://@seniorsistemas/angular-components/components/timeline/models/timeline-item.ts","ng://@seniorsistemas/angular-components/components/picklist/picklist/models/picklist-models.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.component.ts","ng://@seniorsistemas/angular-components/components/workspace-switch/workspace-switch.module.ts","ng://@seniorsistemas/angular-components/components/label-value/label-value.component.ts","ng://@seniorsistemas/angular-components/components/label-value/label-value.module.ts","ng://@seniorsistemas/angular-components/components/picklist/picklist/picklist.component.ts","ng://@seniorsistemas/angular-components/components/picklist/picklist.module.ts","ng://@seniorsistemas/angular-components/components/chips/chips/chips.component.ts","ng://@seniorsistemas/angular-components/components/chips/chip-item/chip-item.component.ts","ng://@seniorsistemas/angular-components/components/chips/chips.module.ts","ng://@seniorsistemas/angular-components/components/help-popover/help-popover/help-popover.component.ts","ng://@seniorsistemas/angular-components/components/help-popover/help-popover.directive.ts","ng://@seniorsistemas/angular-components/components/help-popover/help-popover.module.ts","ng://@seniorsistemas/angular-components/components/toast/toast.module.ts","ng://@seniorsistemas/angular-components/locale/fallback.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","ar","error","__spread","concat","TooltipPosition","AccordionPanelComponent","disabled","cache","validationMessageIcon","validationMessageIconColor","panelOpened","EventEmitter","panelClosed","isAnimating","isContentAnimationDisabled","_isOpen","isOpen","ngOnChanges","changes","switchControl","currentValue","disable","emitEvent","enable","Error","ngAfterViewInit","_this","queueMicrotask","onIconButtonsClick","event","callback","stopPropagation","onTabClick","onContentAnimationStart","onContentAnimationDone","emit","Input","Output","Component","selector","template","animations","trigger","transition","style","height","animate","state","AccordionComponent","multiple","_unsubscribe$","Subject","_panels","ngAfterContentInit","panelsComponents","toArray","_openSubs","_setBehavior","_setupTabs","ngOnDestroy","complete","_a","undefined","activeIndex","activeTab","_closeOtherTabs","exception","forEach","panel","index","_enableMultiplePanelBehavior","_enableSinglePanelBehavior","pipe","takeUntil","subscribe","unsubscribe","ContentChildren","SwitchComponent","readonly","valueChanged","onFocusIn","switchRef","nativeElement","classList","add","onFocusOut","remove","writeValue","registerOnChange","onChange","_onChange","registerOnTouched","onTouched","_onTouched","setDisabledState","toggleCheck","ViewChild","static","HostListener","SwitchComponent_1","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","SwitchModule","NgModule","imports","CommonModule","declarations","exports","MobileBehavior","TooltipEvent","TooltipComponent","tooltip","position","Top","left","top","visible","escape","DebounceUtils","debounce","func","timeout","timer","args","_i","clearTimeout","setTimeout","debounceLeading","Injectable","providedIn","isNullOrUndefined","isMousePositionOutsideOfElement","elementArea","eventX","clientX","eventY","clientY","right","bottom","getElementPositionInfo","element","rect","getBoundingClientRect","scrollTop","window","scrollY","document","documentElement","scrollLeft","scrollX","elementHeight","elementWidth","width","elementVerticalCenter","elementHorizontalCenter","getElementLeftoverContentAvailable","windowWidth","innerWidth","popoverElementTriggerRect","freeDistanceToBottom","innerHeight","freeDistanceToTop","freeDistanceToLeft","freeDistanceToRight","BadgeColors","BadgeTypes","TooltipDirective","elementRef","appRef","componentFactoryResolver","injector","debounceUtils","renderer","showDelay","tooltipEvent","Hover","mobileBehavior","Pressing","componentRef","existFocusedInputRefTooltip","boundOnWindowMouseMoveFunction","onWindowMouseMove","bind","debounceCreateTooltipFunction","_createTooltip","ngOnInit","validatePosition","updateTooltipVisibilityWhenFocusOnInput","destroy","elementRect","toolTipRect","tooltipDivElement","totalElementArea","Math","min","max","focusedInputRef","inputFocus","icon_1","getIconFromFocusedInput","listen","removeTooltip","icon","querySelector","onClick","navigator","userAgent","match","onFocus","Focus","onBlur","onMouseEnter","onMouseLeave","onTouchStart","touchTimeout","_delay","onTouchEnd","Right","Bottom","Left","includes","getDomElement","componentFactory","resolveComponentFactory","attachView","hostView","rootNodes","useShowDelay","autoDestroy","hasText","hasComponentRef","domElement","appendChild","setTooltipComponentProperties","_showDelay","showTooltip","setTooltipPositionProperty","displayTime","instance","addEventListener","tooltipElementPosition","elementLeftover","elementTriggerPosition","distanceToBorders","canSetAtTop","canSetAtLeft","canSetAtRight","canSetAtBottom","topVertical","positions","pos","check","set","positionDefined","find","validPosition","canUseDefinedPosition","validAlternativePosition","_position","positionLeft","positionTop","round","showTimeout","detachView","removeEventListener","ElementRef","ApplicationRef","ComponentFactoryResolver","Injector","Renderer2","Directive","TooltipModule","AccordionModule","FormsModule","ReactiveFormsModule","AlertComponent","severity","closable","close","closeAlert","showAlert","onClose","AlertModule","ButtonPriority","ButtonSize","BadgeComponent","selectable","selected","text","_setDefaultValues","type","Pill","color","_b","Blue","iconPosition","_c","InfoSignComponent","InfoSignDirective","templateRef","viewContainer","useFocusedInputRef","createInfoSign","sInfoSign","clear","createComponent","_infoSignComponent","createEmbeddedView","TemplateRef","ViewContainerRef","InfoSignModule","entryComponents","BadgeModule","RouterModule","config","hourFormat","dateFormat","firstDayOfWeek","today","dayNames","dayNamesShort","dayNamesMin","monthNamesShort","monthNames","keys","thousandsSeparator","decimalSeparator","currencySymbol","calendar","CalendarLocaleOptions","number","NumberLocaleOptions","DEFAULT_CALENDAR_LOCALE_OPTIONS","DEFAULT_NUMBER_LOCALE_OPTIONS","DEFAULT_LOCALE_OPTIONS","LocaleOptions","moment","moment_","LocaleService","http","cookieService","localeOptionsAddress","localeOptionsVersion","get","localeOptions","of","getLocaleConfig","tap","locale","getLocale","from","getUserData","map","userData","tenantLocale","getLocaleOptions","JSON","parse","ex","console","warn","user","switchMap","response","catchError","err","getGroupingSeparator","numberFormat","Intl","NumberFormat","useGrouping","minimumFractionDigits","maximumFractionDigits","formatToParts","part","getDecimalSeparator","HttpClient","CookieService","BignumberInputDirective","_elementRef","_keyValueDiffers","localeService","_super","precision","scale","alignTo","AlignmentOptions","LEFT","allowNegative","onLocaleService","updateVariables","placeholder","padEnd","onKeypress","code","maxLength","_maxLength","options","align","prefix","suffix","calculateMaxLength","decSepLength","thoSepLength","ceil","first","KeyValueDiffers","HostBinding","BignumberInputDirective_1","CurrencyMaskDirective","BignumberInputModule","BreadcrumbComponent","activatedRoute","router","targetHomeUrl","ngUnsubscribe","events","filter","NavigationEnd","onNavigationEnd","currentRoute","root","validRoutes","getValidChildren","title","getCurrentTitle","home","getCurrentHome","items","getCurrentItems","route","valid","routeConfig","path","component","outlet","PRIMARY_OUTLET","children","reduce","child","routes","last","getTitle","homeUrl","url","getMenuItem","slice","pathFromRoot","routerLink","indexOf","item","snapshot","queryParams","routerLinkActiveOptions","exact","data","routeTitle","ActivatedRoute","Router","BreadcrumbModule","PrimeBreadcrumbModule","ButtonAnimation","CardTemplateTypes","ButtonComponent","minWidth","id","ButtonComponent_1","nextId","tooltipPosition","caret","baseZIndex","auxiliary","priority","Primary","model","menuOptions","size","Default","menu","toggle","validateSlideButton","slide","Link","hasIcon","iconClass","isMultiple","updateTooltipZIndex","tooltipZIndex","DomHandler","zindex","isRotateAnimation","animation","Rotate","TieredMenu","TieredMenuDividerComponent","TieredMenuEventService","incrementCurrentItemEvent","decrementCurrentItemEvent","closeAllMenusEvent","selectItemEvent","openItemMenuEvent","closeItemMenuEvent","createMenuEvent","TieredMenuItemComponent","_tieredMenuEventService","focused","highlight","triggerEvent","closeOnClick","submenu","_showTimeout","TieredMenuService","currentItems","normalizeData","parent","_generateId","markAllItemsAsClosed","searchTheHierarchy","itemA","itemB","cloneItems","stringify","random","toString","substring","enableScroll","overflow","disabledScroll","TieredMenuNestedComponent","tieredMenuService","onResize","onDocumentClick","closest","onKeydownHandler","currentItem","_subscribeEvents","_incrementCurItem","curIndex","divider","_decrementCurItem","_closeItem","itemAux","_lastOpenItem","_openItem","command","TieredMenuComponent","_appRef","_componentFactoryResolver","_injector","_changeDetectorRef","menuTriggerEvent","_componentRef","destroyRequest","detectChanges","stopImmediatePropagation","currentIndex","_createMenu","TieredMenuComponent_1","domElem","propagate","_destroy","_menuDivElement","_setMenuPosition","top_1","menuHeight","count","menuWidth","rightFreeSpace","bottomFreeSpace","current","some","ChangeDetectorRef","TieredMenuGlobalService","TieredMenuDirective","_tieredMenuService","_tieredMenuGlobalService","focusedItem","_isNested","_itemsAreValid","ngDoCheck","_previousItems","hasChanges","_compareItems","_updateServiceItems","_rebuildMenu","_lastActiveElement","activeElement","preventDefault","lastInstance","blur","clientWidth","_createNestedMenu","_createTieredMenu","_setMenuComponentProperties","item1","item2","TieredMenuModule","ButtonModule","PrimengTieredMenu","CalendarMaskDirective","host","SELECTORS","slotChar","autoClear","firstTime","setListeners","input","inputfieldViewChild","focusListener","onInputFocus","blurListener","onInputBlur","keydownListener","onKeyDown","keypressListener","onKeyPress","inputListener","onInputChange","pasteListener","handleInputChange","ua","androidChrome","test","createMaskFromDateFormat","initMask","_mask","val","checkVal","focusText","updateFilledState","updateModel","event_1","createEvent","initEvent","dispatchEvent","readonlyInput","begin","end","k","which","keyCode","iPhone","oldVal","seekPrev","seekNext","clearBuffer","shiftL","ctrlKey","altKey","metaKey","len","String","fromCharCode","tests","shiftR","buffer","writeBuffer","createCompleteMask","selectionMode","mask","rangeSeparator","allow","lastMatch","getPlaceholder","charAt","partialPosition","join","defaultBuffer","firstNonMaskPos","caretTimeoutId","replace","handleAndroidInput","updatedValue","onUserInput","filled","focus","completeMask","defs","9","maskTokens","split","RegExp","lastRequiredNonMaskPos","range","offsetParent","setSelectionRange","selectionStart","selectionEnd","createRange","duplicate","moveStart","collapse","moveEnd","select","j","curVal","isCompleted","sentVal","updateCalendarValue","dateVal","parseValueFromString","isSelectable","getDate","getMonth","getFullYear","updateUI","start","timeOnly","showTime","showSeconds","ngAfterViewChecked","onKeydownEventTest","previousFocusable_1","allFocusableElements","querySelectorAll","nextIsFocusable_1","forceCloseModal_1","shiftKey","focusableElement","activeTagName","tagName","inputId","hide","getElementById","hideOverlay","Calendar","CalendarMaskModule","TemplateDirective","CardComponent","fullWidth","showBanner","hasCustomTemplates","_getTemplates","_testLoadImage","_getHeaderTemplate","_getCustomTemplate","Header","_getBodyTemplate","Body","_getFooterTemplate","Footer","templates","headerTemplate","bodyTemplate","footerTemplate","img","Image","src","bannerImage","onload","onerror","TemplateModule","CardModule","ChatComponent","messages","scrollToBottom","messageElements","scrollIntoView","behavior","ViewChildren","read","LocalizedBignumberPipe","transform","applyMask","localeConfig","configs","_f","_d","_e","_j","_g","_h","_k","_l","isNumber","BigNumber","isNaN","Pipe","name","LocalizedBignumberImpurePipe","pure","LocalizedCurrencyPipeOptions","LocalizedCurrencyPipe","rawValue","Number","toFixed","onlyNumbers","integerPart","decimalPart","newValue","isZero","LocalizedCurrencyImpurePipe","LocalizedDatePipe","format","LocalizedDateImpurePipe","LocalizedNumberPipe","numericValue","LocalizedTimePipe","LocalizedTimeImpurePipe","CurrencyService","currencies","KHR","SSP","XCD","EGP","KWD","YER","HUF","MXN","MYR","ZWL","MUR","DKK","NOK","DJF","CRC","BND","NAD","MKD","CDF","GNF","EUR","OMR","CLP","BSD","TOP","IRR","BGN","BZD","CNY","FJD","SRD","SOS","GYD","VUV","MWK","MRU","LSL","ERN","BMD","WST","LRD","GMD","ARS","ZAR","RSD","MDL","USD","QAR","HRK","GIP","NPR","002","PLN","MAD","BAM","BTN","BBD","SHP","LKR","KPW","LAK","SZL","PHP","RWF","ISK","XOF","AUD","NGN","KGS","KYD","PGK","DZD","XAF","PEN","JPY","SBD","UGX","AMD","AED","ALL","XPF","AFN","RON","TND","NZD","JOD","VND","ETB","PYG","JMD","KES","IDR","HKD","BDT","GBP","AOA","PKR","TRY","SLL","CVE","LYD","ILS","UZS","CHF","SVC","BRL","GHS","CUP","FKP","NIO","GEL","TTD","AAA","COP","MGA","INR","KRW","HNL","MMK","TZS","THB","TMT","SAR","UYU","BIF","MVR","RUB","GTQ","SCR","IQD","UAH","BYN","VES","BOB","SGD","ZMW","CZK","TJS","DOP","AZN","PAB","STN","SDG","BWP","BHD","CAD","MNT","MOP","HTG","KZT","LBP","SYP","TWD","MZN","ANG","SEK","KMF","AWG","getCurrencySymbol","currency","currencyDisplay","x","NumericService","currencyService","instant","numberFormatOptions","getCurrencyMinimumFractionDigits","_m","getType","toUpperCase","baseType","tag","toStringTag","Function","startsWith","className","NumericPipe","numericService","LocaleModule","forRoot","ngModule","LocaleModule_1","forChild","ChatMessageComponent","fileName","message","attachmentUrl","getFileNameByUrl","ChatModule","TranslateModule","CheckboxComponent","checked","indeterminate","_initializeChildren","childrenState","updateParent","allChecked","every","someChecked","onCheckboxChange","_toggleChildrenCheck","renderType","CheckboxComponent_1","CheckboxModule","Languages","Themes","EnumTypeOrder","MetaType","RequestTypes","CompletionTypes","Keywords","CoreLinters","getLinter","language","languageLinterFactory","_LINTERS","Map","CoreFacade","$onCoreFinishLoad","ReplaySubject","$onCodeChange","$onCodeValidityChange","_completionItems","_lastCodeEmitted","changeEditorOptions","validateLanguage","validateTheme","theme","setLinter","setCoreEditorOptions","changeCode","safeCode","getSafeCode","setCode","getOnCoreFinishLoadObservable","asObservable","getOnCodeChangeObservable","getOnCodeValidityChangeObservable","notifyCoreFinishLoad","notifyCodeChange","validateCode","updateCompletionItems","_linter","lint","markers","highlightCode","notifyCodeValidityChange","validity","_lastCodeValidityEmitted","languages","values","themes","CodeEditorComponent","coreFacade","codeChange","isCodeValidChange","onCodeChange","onComponentFinishLoad","_ngUnsubscribe","initCore","setupCoreListeners","setCoreWrapperElement","destroyCore","coreWrapperElement","take","CodeEditorComponent_1","baseConfigs","LRLanguage","define","parser","buildParser","configure","props","styleTags","tags","keyword","string","formatJsonResponse","json","formatBlobResponse","blob","textResponse","MarkerSeverity","CustomHttpClient","GET","init","interceptRequest","method","formatResponse","POST","headers","Headers","append","originalReq","service","getRestUrl","restUrl","getAuthHeader","authHeader","request","Request","fetch","err_1","contentType","formatter","_responseFormatterMap","formattedContentType","ok","CustomTranslationsService","translate","translationKey","_TRANSLATION_PREFIX","_translations","setTranslations","translations","setTranslationsPrefix","hostProjectConfigs","domain","HostProjectConfigsInjectionToken","InjectionToken","AngularComponentsModule","AngularComponentsModule_1","useValue","CustomTranslationsModule","factoryTranslations","TranslateService","Inject","diagnosticSeverityInMarkerSeverityMap","Info","Warning","AutocompleteService","listContextMetadataById","abortSignal","BASE_URL","signal","listExpressionMetadata","listFacadeMetadataNames","getFacadeMetadataByPath","autocompleteLoadingStateHTMLElement","autocompleteEmptyStateHTMLElement","htmlElementToBeWrapped","autocompleteStateWrapper","StateField","getAutocompleteStateWrapper","update","transaction","field","compute","EditorView",".s-code-editor-taxCalculation-autocomplete-ul","padding",".s-code-editor-taxCalculation-autocomplete-li","cursor","line-height","showAutocompleteStateWrapper","CodeMirror6Core","updateEditorView","htmlElementToBeWrappedString","outerHTML","stateWrapper","selection","ranges","head","dom","getAutocompleteStateWrapperDomElement","elementToBeWrappedString","wrapperDiv","createElement","innerHTML","showAutocompleteLoadingState","loadingStateSpanWrapper","innerText","showAutocompleteEmptyState","emptyStateSpanWrapper","TaxCalculationLanguageConfigs","setConfigs","CONFIGS","getConfigs","contexts","getIconBasedOnUnicode","unicode","completionResults","TRANSLATION_PREFIX","getCompletionResults","context","stringBeforeCurrentPosition","isCurrentPositionInsideString","doc","finalCompletionResults","codeLength","token","AbortController","aborted","codeBeforeCursor","trim","getFilter","filterLength","stringWithoutPath","getPath","requests","languageConfigs","getLanguageConfigs","requestType","ListContextMetadataById","ListExpressionMetadata","subcontext","subContexts","pageRequest","offset","splittedPath","GetFacadeMetadataByPath","entityName","fields","ListFacadeMetadataNames","getSafeResponse","getRequestsBasedOnPath","all","responses","filteredCompletions","completions","completionItem","toLowerCase","getFilteredCompletions","SE","SENAO","CONTENHA","ENTAO","FIM_SE","NAO","E","OU","detail","Keyword","getKeywordsCompletions","contextsResponse","contextMetadata","Context","getContextsCompletions","expressionsResponse","expressionMetadata","PUBLIC_EXPRESSION","info","description","Expression","UserExpression","getExpressionsCompletions","facadesResponseFromList","facadeMetadataNames","facade","Entity","facadesResponseFromGet","facadeMetadata","ENTITY","FinalValue","getEntitiesCompletions","sortedCompletions","sort","completionsSortOrder","getSortedCompletions","getCompletionApply","getFormattedCompletions","startCompletion","getEditorView","searchCompletionResults","codeMirrorViewElement","contentDOM","cancelLastCompletionSearch","abort","startCompletionResultsSearch","oldApplyText","view","completion","to","newFrom","dispatch","insert","anchor","userEvent","annotations","pickedCompletion","TaxCalculation","LanguageSupport","autocompletion","override",".cm-completionIcon","font-family","font-weight",".cm-completionIcon-keyword::after","content",".cm-completionIcon-context::after",".cm-completionIcon-expression::after",".cm-completionIcon-userExpression::after",".cm-completionIcon-entity::after",".cm-completionIcon-finalValue::after","EditorLanguages","getLanguage","languageSupportFactory","_LANGUAGES","SDSLightHighlightStyle","HighlightStyle","generalFontStyle","font-style","font-size","SDSLight","&.cm-editor.cm-focused","outline","baseTheme","&.cm-editor",".cm-scroller","letter-spacing","font-variation-settings",".cm-tooltip.cm-tooltip-autocomplete > ul",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail","margin-left","lineNumbers",".cm-gutters","background-color","border-right",".cm-gutter",".cm-tooltip","border","border-radius",".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after",".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon","padding-right","margin-right",".cm-tooltip-autocomplete ul li[aria-selected]",".cm-tooltip.cm-completionInfo.cm-completionInfo-right","box-shadow","background",".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before","margin-top","border-color","border-style","border-right-color","border-width","Ordination","EditorThemes","getTheme","EditorThemeFactory","_THEMES","_codeReceivedBeforeViewCreation","_editorOptionsReceivedBeforeViewCreation","_editorView","transactionSpecs","createEditorView","changeEditorContent","setObservablesListeners","effects","StateEffect","reconfigure","getCodeChangeListenerExtension","diagnostics","textLength","marker","convertMarkersToDiagnostics","setDiagnostics","$onCompletionItemsUpdate","parentElement","EditorState","extensions","updateListener","docChanged","CodeEditorModule","useClass","CollapseLinkComponent","buttonId","CollapseLinkComponent_1","expandedLabel","collapsedLabel","collapsed","onCollapse","animating","onToggleDone","opacity","CollapseLinkModule","ControlErrorsComponent","ControlErrorsComponent_1","errorMessages","getErrorMessagesList","control","dirty","errors","ControlErrorsModule","countries","ddi","FieldType","CountryPhonePickerService","getCountries","ordination","AZ","sortAlphabetically","ZA","sortAlphabeticallyDescending","NO","a","aName","bName","localeCompare","Breakpoints","SM_MIN","SM_MAX","MD_MIN","MD_MAX","LG_MIN","LG_MAX","XL_MIN","XL_MAX","Infinity","ExportUtils","addClass","removeClass","exportCSV","columns","csvSeparator","documentName","csv","column","exportable","header","record","cellData","isArray","col","resolveFieldData","flat","separator","Blob","msSaveOrOpenBlob","link","display","download","setAttribute","URL","createObjectURL","click","open","encodeURI","removeChild","isFunction","obj","convertToMomentDateFormat","CountryPhonePickerComponent","_countryPhonePickerService","_translate","_eRef","platformId","currentItemIndex","phone","FormControl","dropTop","dropLeft","_open","offsetTop","focusLost","tabindex","_filterCountries","filteredCountriesList","_countriesList","country","_value","getMask","onSelectItem","setValue","onClickout","contains","valueChanges","selectedItem","_getSelectedCountryDefault","_applyMask","onKeydown","_moveToDown","_moveToUp","_createDropdownPortal","_portalHost","hasAttached","detach","phoneInput","onCleanFilter","onPhoneInputFocus","filteredByBr","selectList","scrollTo","rawMask","tokens","acumulador","contador","mask_1","mask_1_1","parseInt","isPlatformBrowser","dropElement","bodyElement","dropElementRect","DomPortalOutlet","portal","TemplatePortal","dropdownTemplate","viewContainerRef","attach","PLATFORM_ID","CountryPhonePickerComponent_1","CountryPhonePickerModule","NgxMaskModule","PortalModule","BaseFieldComponent","NumberAlignmentOption","FieldSize","sm","md","lg","xl","ignoreLabel","footer","help","required","infoSign","showClear","bottomTemplate","gridClass","defaultValue","representedBy","CustomFieldClass","CustomFieldComponentClass","displayTimeInfoSign","useInfoSignFocusedInputRef","AutocompleteField","Autocomplete","suggestions","suggestionsObservable","Field","BignumberField","numberLocaleOptions","browserAutocomplete","RIGHT","leftAddon","rightAddon","onComplete","onInput","BlobField","accept","files","chooseLabel","removeLabel","cancelLabel","successTooltip","onUploadFile","onRemoveFile","onCancelUpload","onDownloadFile","showFileUploadDate","true","false","empty","BooleanField","verticalAlignment","optionsLabel","BooleanOptionsLabel","BooleanSwitchField","CalendarField","minDate","maxDate","defaultDate","appendTo","showOnFocus","calendarLocaleOptions","onSelect","onTodayClick","onClearClick","onMonthChange","onYearChange","DateTime","LocalDateTime","Time","CheckboxField","ChipsField","showCopyButton","keyFilter","onAdd","onRemove","onChipClick","onCopy","CountryPhonePickerField","onSelected","onFocusLost","DynamicType","NumberInputDirective","regex","decimal","thousands","handleKeypress","NumberInputDirective_1","NumberInputModule","NumberField","DecimalField","CurrencyField","LookupField","Lookup","showSearch","autocompleteForceSelection","showAddOption","showEditOption","showRemoveOption","onUnselect","lookupSuggestions","searchObservable","delay","totalRecords","gridData","searchTotalRecordsLabel","_gridData","_searchTotalRecords","_searchTotalRecordsLabel","PasswordField","inputType","passwordStrength","passwordStrengthOptions","showToggle","RadioButtonField","clearLabel","SelectField","dataKey","optionLabel","autoDisplayFirst","multipleSelectedLabel","emptyMessage","editable","group","SliderField","maxDefault","onSlideEnd","orientation","TextAreaField","cols","rows","TextAreaIAField","prompt","TextField","characterPattern","unmask","sortableColumnName","ButtonField","iconColor","badge","styleClass","rightIconClass","mouseEnter","mouseLeave","EditorField","formats","modules","ProfilePictureField","simpleTitle","actionTitle","subtitle","aspectRatio","cropperLabelsConfig","removeButtonLabel","changeButtonLabel","confirmationTexts","maxFileSize","supportedExtensions","onChangeImage","onRemovedImage","onInvalidFile","Enum","Money","Integer","Double","Binary","Password","Text","TextIA","Boolean","Date","Radio","Checkbox","Chips","CountryPhonePicker","Slider","ProfilePicture","Editor","Button","Custom","getOwnPropertySymbols","propertyIsEnumerable","__rest","LookupComponent","hotkeysService","translateService","LookupComponent_1","lookupAppendTo","searchFields","onLookupRequest","onSearchRequest","onKeyUp","onClear","onEdit","dialogVisible","transitionOptions","originalFormValues","searchGridFields","FormField","gridField","getColWidth","calendarOptions","_convertToMomentDateFormat","_convertToMomentHourFormat","formGroup","formGroupDialog","FormGroup","printRecordTotalizer","recordLabel","searchTotalRecords","recordsLabel","autocomplete","onOverlayAnimationDone","searchGridData","loading","_setFocusFilter","getGridData","getLookupSuggestions","makeSearchRequestParams","filters","getRawValue","params","filterData","multiSortMeta","lazyLoadGrid","lazyLoadLookup","query","setDefaultFilters","defaultFilter","patchValue","showDialog","pause","hotkeys","setHotkeys","hideDialog","inputEL","multiInputEL","unpause","pausedHotkeys","search","resetTable","dialog","moveOnTop","reset","table","onSelectionChange","getFieldValue","prop","getBadgeFromValue","opt","getLabelForValue","option","isBooleanValue","getBooleanLabel","emptyFieldLabel","newHotkey","hotkey","combo","fn","Hotkey","filterToggle","getScale","getIntegerMaskConfig","getDoubleMaskConfig","getMoneyMaskConfig","getNumberMaskConfig","onTableRowDoubleClick","rowData","contentViewChild","getElementsByTagName","lookupDisplayField","HotkeysService","Table","Dialog","AutoComplete","encapsulation","ViewEncapsulation","None","animateChild","StructureType","Row","Grid","isFlex","Fieldset","Structure","Section","justifyContent","alignItems","GridType","ValidateErrors","FileUploadPermissions","DynamicFormComponent","LongPressDirective","sLongPressDelay","sLongPress","mouseUp","mouseDown","onMouseUp","onMouseDown","debounceTime","repeat","DoubleClickDirective","onDoubleClick","_timeout","_DOUBLE_CLICK_DELAY","handleOnClickEvent","MouseEventsModule","ToastComponent","dismiss","isLeaving","startDismissAnimation","dismissToast","toast","sticky","duration","ToastService","activeToasts","globalToastHostElement","ensureGlobalToastHost","flexDirection","zIndex","gap","show","splice","IAssistService","_toastService","askIA","_replacePlaceholder","_createPrompt","post","provider","parameters","max_tokens","temperature","status","statusText","throwError","log","EmptyStateComponent","EmptyStateComponent_1","showPrimaryAction","showSecondaryAction","primaryModel","primaryAction","secondaryAction","EmptyStateGoBackComponent","goBack","portalUrl","EmptyStateModule","FileUploadService","BASE_URL_FIELD_CUSTOMIZATION","TOKEN","getMetadataCustomField","SVGFactoryIcons","ALL_PERMISSIONS","Add","Read","Remove","FileUploadComponent","sanitizer","fileUploadService","ADD_PERMISSION","READ_PERMISSION","REMOVE_PERMISSION","FileUploadComponent_1","permissions","uploadHandler","removeFile","cancelUpload","downloadFile","validateErrors","_files","ngUsubscribe","inputValue","objectId","getUploadDate","file","isImage","objectURL","bypassSecurityTrustUrl","extension","onFileSelect","newFiles","isFileLimitExceeded","validation","MAX_FILE_LIMIT","clearFileInput","isFileCombinedSizeExceeded","MAX_COMBINED_FILE_SIZE","files_1","files_1_1","isUnsupportedFileExtension","UNSUPPORTED_EXTENSION","isFileSizeExceeded","MAX_FILE_SIZE","fileIndex","onDowloadFile","isSmallDevice","fileLimit","maxCombinedFileSize","combinedSize","inputUpload","blobFile","metadata","setModifiedDate","hour","modified","minutes","day","month","fullYear","modifiedDate","DomSanitizer","FileUploadModule","ProgressBarModule","IAssistIconComponent","SeniorIconComponent","LoadingStateIndicators","SVGFactoryDirective","cdr","_iconClass","_getIconClass","Senior","_createComponent","factory","IAssist","SVGFactoryModule","DotsIndicatorComponent","LoadingIndicatorComponent","PasswordStrengths","PasswordStrengthPositions","LoadingStateComponent","indicator","Dots","LoadingStateComponent_1","BLOCK_TIMEOUT_VALUE","UNBLOCK_TIMEOUT_VALUE","_loading","block","unblock","unblockTimeoutId","blockTimeoutId","blocking","LoadingStateDirective","loaderComponent","contents","LoadingStateModule","LocalizedNumberInputDirective","numberRegex","validate","invalidNumber","LocalizedNumberInputDirective_1","NG_VALIDATORS","LocalizedNumberInputModule","MaskFormatterPipe","*","maskFormat","opcionalPos","symbolsPosAfterOpcional","hasOpcional","tokenRegex","charAtPos","formattedValue","beforeSymbol","symbol","firstAfterSymbol","endOfString","symbolPos","substr","MaskFormatterModule","EnumColumnFieldType","EnumBadgeColors","PasswordStrengthComponent","weakTitle","setPasswordStrengthPosition","updateIndicators","strengthClass","strengthIndicator1","strengthIndicator2","strengthIndicator3","onIndicators","indicators","VeryWeak","Weak","Medium","mediumTitle","Strong","strongTitle","PasswordStrengthDirective","enabled","validateProperties","createPasswordStrength","destroyPasswordStrength","setPasswordStrengthComponentProperties","showPasswordStrength","elementRefHeight","elementRefWidth","positioned","invalidOptions","topShift","rightShift","leftShift","defaultValidator","points","regExpValidations","PasswordStrengthModule","TableHeaderCheckboxComponent","tableService","TableHeaderCheckboxComponent_1","valueSource$","updateCheckedState","selectionSource$","hasFocus","isDisabled","onToggleCheckbox","filteredValue","isAllFilteredValuesChecked","isAllValuesChecked","unselecteds","_selection","useAllObject","newRecord","rowProps","updateSelectionKeys","selectionChange","isStateful","saveState","isSelected","TableService","TableHeaderCheckboxModule","NavigationDirective","isRow","focusFirstColFromCurrentRow","isCol","focusNextSelectableCol","focusLastColFromPrevRow","focusPrevSelectableCol","setPrevRowFocus","setAboveColFocus","setNextRowFocus","setUnderColFocus","prevRow","findPrevSelectableRow","lastElementChild","row","firstCol","firstElementChild","nextCol","nextElementSibling","currentRow","prevCol","previousElementSibling","currentCol","cellIndex","cells","nextRow","findNextSelectableRow","toLocaleLowerCase","RowTogllerDirective","dt","isEnabled","toggleRow","RowToggler","TableFrozenPositionDirective","el","sTableFrozenPosition","isTableVisible","onColumnsChanged","TABLE_SCROLLABLE_WRAPPER_CLASS","setUpTableEvents","handleWindowResize","htmlHead","expandFrozenStyle","synchronizeRowHeight","setUpRowResizeMonitoring","applyStylesForTable","setUpColumnMonitoring","ngAfterContentChecked","tableHeadObservable","disconnect","rowExpandedObserver","tableWrapperObserver","onColResize","handleColResize","onRowExpand","ResizeObserver","applyHeightForExpandedRows","tdsToAdjust","originalsTds","td","originalTd","observe","MutationObserver","tableHead","subtree","childList","tableWraper","mutationObserver","frozenTDsToAdjust","unFrozenTDs","frozenTd","unfrozenHeight","frozenHeight","abs","scrollWrapper","frozenTable","order","borderRight","borderLeft","boxShadow","unfrozenTable","tableBodies","getElementsByClassName","divWrapper","childNodes","_resetRowHeight","_applyMaxRowHeight","tableHeads","tables","lengths","accumulator","trs","tables_1","e_1","tables_1_1","table_1","trs_1","e_2","trs_1_1","tables_2","tables_2_1","e_4","ThumbnailSize","TableColumnsComponent","cellsData","formattedColumns","validateComponentAttributes","previousValue","sortColumnsBySequence","createColumnsTemplate","getCellData","columnValue","uninformed","splittedString_1","isLastIndex","isUninformed","rowValue","getColumnValue","columnsTemplate","getColumnSeparator","getTranslationPrefix","isAttributeValueInvalid","attributeValue","getFormattedColumnValue","unifiedColumnValues","uninformedText","uninformedNumber","attributes","TOKENS","getAttributeValue","attribute","getNumberConfigs","getColumnScale","getDateFormat","numberConfigs","ENUM","enumPrefix","CURRENCY","DATE","BOOLEAN","NUMBER","getTokens","badgeConfigs","badgeConfig","enumValue","getColumnTooltip","getColumnInfoSign","onLinkClick","onColumnClick","compact","isValidTokenArray","isLabelObjectArray","isPrimitiveValuesArray","sequence","TokenListComponent","TokenListComponent_1","removableTokens","hidePointerEvents","tokenSelected","tokenRemoved","onTokenSelected","onTokenRemoved","TokenListModule","TablePagingComponent","enableExportSelectedRecords","totalRecordsText","getTranslatePrefix","getTooltipText","getActions","actions","exportCurrentPage","exportSelectedRecords","loadAllRecords","exportAllRecords","customActions","customMenus","validateComponent","getColumnsToExport","exportColumn","customExport","getCurrentPageRowsToExport","tableData","loadCurrentPageRecords","mapCustomExport","mapNumberFormatOptionsExport","mapColumnsTranslations","getSelectedRowsToExport","loadSelectedRecords","getPropertyValue","setPropertyValue","recursionSetValue","keysList","enumColumns","newRow","fieldName","columnData","translateValue","hasNumberFormatOptionsColumns","hasNumberFormatOptionsRows","columnsWithNumberFormatOptions","columnsWithNumberFormatOptions_1","columnsWithNumberFormatOptions_1_1","attributes_1","attributes_1_1","mappedValue","times","roundingMode","toNumber","keysWithNumberFormatOptions","keysWithNumberFormatOptions_1","keysWithNumberFormatOptions_1_1","customColumns","translatedValue","enumKey","convertToSnakeCase","str","getExportFileName","lang","currentLang","date","exportFileName","toLocaleDateString","toLocaleTimeString","dataToExport","serverData","TableModule","AutocompleteFieldComponent","changeDetectorRef","setInputRef","inputRef","BooleanFieldComponent","formControl","BooleanSwitchFieldComponent","CalendarFieldComponent","ChipsFieldComponent","clipboard","feedbackMessageVisible","copyButtonVisible","onCopyFieldContent","copy","Clipboard","CountryPhonePickerFieldComponent","dispatchFocusInputRef","addEventOnBlur","fromEvent","Event","LookupFieldComponent","RadioButtonComponent","SelectFieldComponent","SliderFieldComponent","isValid","subscribeToFormControlEvents","isValidRange","isInteger","isValidNoRange","startValue","endValue","getRangeLabel","value0","value1","getNonRangeLabel","TextAreaIAFieldComponent","_iassistService","_formBuilder","_translateService","isVisible","isLoading","_createDialogFields","_createDialogFormGroup","onHideDialog","submitContext","res","FormBuilder","TextAreaFieldComponent","FieldsetComponent","SectionComponent","RowComponent","getErrorMessages","DynamicFieldComponent","BignumberFieldComponent","onScale","CurrencyFieldComponent","PasswordFieldComponent","passwordVisible","onChangeVisible","TextFieldComponent","getCharacterPattern","getUnmask","CheckboxFieldComponent","EditorFieldComponent","NumberFieldComponent","ProfilePictureFieldComponent","ButtonFieldComponent","clickedButton","$event","handleMouseEnter","handleMouseLeave","DynamicForm","DynamicField","resolver","container","getComponent","_switchEmptyStringToNull","setVariablesByType","valueChanges$_1","onDestroy","DynamicStructure","structure","DynamicGrid","DynamicFormDirective","isField","directiveConfig","isStructure","isGrid","FieldLabelComponent","FieldLabelModule","BignumberFieldModule","InputMaskModule","InputTextModule","CheckboxFieldModule","CurrencyFieldModule","EditorFieldModule","EditorModule","NumberFieldModule","PasswordFieldModule","HeaderComponent","FooterComponent","StructureModule","ImageCropperComponent","ImageCropperComponent_1","cropLabel","selectAnotherLabel","emptyStateTitle","emptyStateActionLabel","emptyStateIconClass","NaN","rounded","allowSelectAnother","allowRemove","allowCancel","visibleChange","changeImage","croppedImage","croppedCanvas","removedImage","cancel","imageSource","initCropper","cropper","image","Cropper","guides","dragMode","minCropBoxHeight","minCropBoxWidth","toggleDragModeOnDblclick","getRoundedCanvas","sourceCanvas","canvas","getContext","imageSmoothingEnabled","drawImage","globalCompositeOperation","beginPath","arc","PI","fill","onCropImage","_croppedCanvas","getCroppedCanvas","toDataURL","onRemoveImage","onCancel","onModalVisibleChange","ContentChild","ImageCropperModule","DialogModule","ImageCropperService","activeCropper","configureInstance","param","FileValidation","ThumbnailService","getBinaryFile","getOrientation","XMLHttpRequest","readyState","orientation_1","responseType","send","DataView","getUint16","byteLength","getUint32","little","ThumbnailComponent","thumbnailService","fallback","ThumbnailComponent_1","hasAction","actionIconClass","isTile","isBrand","imgEl","ThumbnailModule","CustomFieldType","ProfilePicturePickerComponent","imageCropperService","confirmationService","changedImage","imageChange","invalidFile","base64","_normalizeSuportedExtensions","onDragOver","onDragLeave","onDrop","dataTransferFiles","dataTransfer","_showImageCropper","uploadPicture","thumbnail","uploadPictureWidth","_getWidthElement","infoWidth","selectPhoto","fileInputElement","fileInput","removePhoto","confirm","removalMessage","acceptLabel","removalAcceptLabel","rejectLabel","removalRejectLabel","removalHeader","rejectButtonStyleClass","photoSelected","srcElement","_validateData","fileReader","FileReader","readAsDataURL","onloadend","fileEvent","source","MaxFileLimit","_validateFileExtension","_validateFileSize","MaxFileSize","UnsupportedExtension","TypeInvalid","ConfirmationService","ProfilePicturePickerComponent_1","ProfilePicturePickerModule","ConfirmDialogModule","ProfilePictureModule","TextFieldModule","KeyFilterModule","DynamicFormModule","AutoCompleteModule","CalendarModule","ChipsModule","DropdownModule","HotkeyModule","InputTextareaModule","PanelModule","PrimeButtonModule","PrimeNGTableModule","MultiSelectModule","RadioButtonModule","FieldsetModule","SliderModule","CustomFieldsService","getCustomFields","entity","endpoint","entityDto","entityId","domain_","service_","getFileLocationUrl","dto","uploadTempFile","location","put","reportProgress","Content-Type","requestAccess","getFile","permanentUrl","CustomFieldsComponent","customFieldsService","controlContainer","invalidErrorLabel","customFieldsEndpoint","fileLocationEndpoint","requestAccessEndpoint","ready","parentForm","_validateInputs","_createForm","addDisplayTimeInfoSignToFields","enableOrDisableFields","disableFields","parseFieldsValues","parseValuesForFields","createFilesIfSetFormValuesAfterInit","entityObject","entity_","controls","controlErrors","cleanFields","controlName","observables","forkJoin","finalize","markAsPristine","parentControl","ready$","customFieldsResponse","defaults","defaultMask","Any","active","customizable","customization","formField","getFormField","fieldType","createBlobToFileUpload","validationRegex","asIsTypes","validators","Validators","pattern","addControl","createFieldCustomization","parsedValues","isString","notValid","toDate","hasUploaded","isTypeNumberOrEnum","hasBlob","getBlobParameters","getBooleanParameters","getEnumParameters","mandatory","currencyOptions","customEnumeration","getTranslateLabel","formfield","uploadFile","FormArray","toDelete","toInsert","lastIndexOf","savedFile","currentFile","uri","newFile","File","progress","isUploading","this_1","setValidators","updateValueAndValidity","defaltCatchError","version","uploadCanceled","HttpEventType","Response","UploadProgress","loaded","total","clearValidators","uploadError","ControlContainer","Optional","CustomFieldsComponent_1","ViewMode","CustomFieldsModule","HttpClientModule","EditableOverlayDirective","bindDocumentEditListener","bindDocument","isFromOverlayTrigger","isFromModal","documentEditListener","editingCell","editingCellClick","isEditingCellValid","unbindDocumentEditListener","EditableOverlayModule","DateUtils","with_time","formatString","monthName","startOf","monthNameCapitalized","dateToFormat","format_map","YYYY","MM","DD","ddd","HH","mm","ss","SSS","D","MMMM","MMM","formattedValues","diff","fistDate","secondDate","milliseconds","seconds","hours","days","months","years","endsWith","floor","dateStr","now","quantity","scores","shouldReset","_scale","max_score","vals","getHours","getMinutes","getSeconds","getMilliseconds","clone","getDateValues","getDaysInMonth","daysInMonth","$","expr","con","createSVG","attrs","elem","createElementNS","attr","append_to","getAnimationElement","svgElement","dur","animEl","attributeName","animateElement","calcMode","keyTimes","keySplines","cubic_bezier","ease","linear","ease-in","ease-out","ease-in-out","on","delegate","off","handler","delegatedTarget","matches","getAttribute","Bar","gantt","task","_isPopUpOpen","_setDefaults","_prepare","_draw","_bind","_arrows","arrows","_task","_element","_group","updateBarPosition","bar","dependencies","dep","_gantt","get_bar","getX","prev","curr","_updateAttr","columnWidth","_updateLabelPosition","_updateArrowPosition","dateChanged","changed","_computeStartEndDate","newStartDate","newEndDate","trigger_event","setActionCompleted","_actionCompleted","_prepareValues","_prepareHelpers","_invalid","invalid","_height","barHeight","_x","_computeX","_y","_computeY","_cornerRadius","barCornerRadius","_duration","_width","class","custom_class","data-id","_barGroup","SVGElement","getY","getWidth","getHeight","getEndX","_drawBar","_drawLabel","rx","ry","animatedSvgElement","animateSVG","showTaskName","requestAnimationFrame","_setupClickEvent","hasPopup","popupTrigger","_showPopup","unselect_all","hide_popup","bar_being_dragged","showOnlyHours","startDate","endDate","showOnlyDays","startHour","endHour","show_popup","target_element","xInUnits","width_in_units","view_is","QuarterHour","Hour","QuarterDay","HalfDay","Day","headerHeight","_index","getBBox","Popup","customHtml","make","positionMeta","html","pointer","HTMLElement","offsetWidth","Arrow","fromTask","toTask","_fromTask","_toTask","calculatePath","draw","_path","startX","startY","endX","endY","fromIsBelowTo","curve","arrowCurve","clockwise","curveY","down1","down2","data-from","data-to","defaultOptions","viewMode","customPopupHtml","allowMovement","Gantt","wrapper","tasks","setup_options","setup_wrapper","setup_tasks","change_view_mode","bind_events","_minDate","_maxDate","svg_element","wrapper_element","$svg","$container","containerWidth","popup_wrapper","_start","_end","_row_id","deps","generate_id","setup_dependencies","dependency_map","refresh","mode","setup_gantt_dates","update_view_scale","setup_dates","render","view_mode","Week","Month","Year","setup_date_values","_t","_u","marginBeforeStart","marginAfterEnd","_o","_p","_q","_r","_s","dates","cur_date","bind_grid_click","bind_bar_events","setup_layers","make_grid","make_dates","make_bars","make_arrows","map_arrows_on_bars","set_width","set_scroll_position","layers","layers_1","layers_1_1","layer","make_grid_background","make_grid_rows","make_grid_header","make_grid_highlights","make_grid_ticks","grid_width","distinct_rows","Set","grid_height","grid","rows_layer","lines_layer","row_width","row_height","row_y","x1","y1","x2","y2","header_width","header_height","tick_x","tick_y","tick_height","tick_class","isToday","isWeekend","getDay","get_dates_to_draw","lower_x","lower_y","lower_text","middle_text","middle_x","middle_y","upper_text","$upper_text","upper_x","upper_y","last_date","get_date_info","date_text","quarterHourUpper","quarterHourLower","hourUpper","hourLower","quarterDayUpper","quarterDayLower","halfDayUpper","halfDayLower","dayUpper","dayMiddle","dayLower","weekUpper","weekLower","monthUpper","monthLower","yearUpper","yearLower","base_pos","x_pos","quarterHourMiddle","hourMiddle","quarterDayMiddle","halfDayMiddle","weekMiddle","monthMiddle","yearMiddle","bars","task_id","dependency","get_task","arrow","this_2","cur_width","actual_width","parent_element","scroll_pos","get_oldest_starting_date","is_dragging","x_on_start","is_resizing_left","is_resizing_right","parent_bar_id","bar_wrapper","offsetX","ids","get_all_dependent_tasks","$bar","ox","oy","owidth","finaldx","dx","get_snap_position","out","to_process","acc","rem","odx","modes","popup","prev_date","GlobalSearchSizeEnum","GanttComponent","multipleTaskPerLine","showSideTable","taskClicked","taskDateChanged","viewChanged","_validateViewMode","_validateTasks","outer","side","_filterTask","onDateChange","onViewChange","tasksGroups","i_1","SideTableComponent","ROW_HEIGHT","_removeEmptyTasks","GanttModule","IAInsightTemplateTypes","GlobalSearchDropdownItemComponent","GlobalSearchDropdownItemComponent_1","STANDARD","buttonClick","isStandardSize","isMediumSize","MEDIUM","isSmallSize","SMALL","getImageSize","GlobalSearchComponent","showFooter","onSearch","onShowMore","wasSearched","isModalLoading","expanded","canShowGlobalSearchActive","focusIn","focusOut","showMore","removeActiveClassByGlobalSearch","globalSearch","dropdownItens","InfiniteScrollDirective","onScroll","scroll","scrollHeight","offsetHeight","InfiniteScrollModule","GlobalSearchModule","IAInsightCardComponent","toastService","likeSelected","dislikeSelected","_requestInsight","onLikeSelected","insight","onDislikeSelected","copyContent","reloadContent","request$","marked","IAInsightSidebarComponent","insights","opened","IAInsightCardLoaderComponent","KanbanTemplateTypes","IAInsightComponent","hasPermission","sidebar","getIntroTemplate","Intro","getNoPermissionTemplate","NoPermission","getEmptyTemplate","Empty","introTemplate","emptyTemplate","noPermissionTemplate","IAInsightModule","GridMenuComponent","itemsArray","GridMenuItemComponent","action","initialLetter","words","GridMenuModule","InlineEditCalendarField","InlineEditField","InlineEditLookupField","InlineEditNumberField","InlineEditTextAreaField","InlineEditTextField","InlineEditTextAreaIAField","InlineEditItemComponent","isEditing","_getCalendarLocaleOptions","onSave","dynamicComponentRef","saveValue","markAsDirty","onlySelf","setDynamicComponentRef","ref","getFormattedValue","getValueAsText","lookupField_1","_locale","InlineEditCalendarComponent","_getLocaleOptions","tempValue","InlineEditLookupComponent","InlineEditNumberComponent","_onLocaleService","InlineEditTextAreaComponent","InlineEditTextComponent","InlineEditTextAreaIAComponent","InlineEditComponent","_componentMap","_createFields","componentClass","inlineEditItemFactory","inlineEditItemRef","inlineEditItemInstance","TextAreaIAComponent","_isDisabled","onValueChange","TextAreaIAComponent_1","TextAreaIAModule","InlineEditModule","KanbanEventService","selectAllColumnItemsEvent","unselectAllColumnItemsEvent","unselectItemEvent","emitSelectAllColumnItemsEvent","emitUnselectAllColumnItemsEvent","emitSelectItemEvent","emitUnselectItemEvent","EnumSeverity","KanbanComponent","kanbanEventService","showItemCheckboxes","showColumnCheckboxes","itemsMoved","dataUpdated","itemsSelected","selectedItems","draggingItems","_normalizeData","drop","previousColumn","previousContainer","targetColumn","moveItemInArray","previousIndex","transferArrayItem","observers","selectItem","frozen","delete","selectedColumn","dragStarted","dragReleased","getLinkedColumns","currentColumn","getColumnHeaderTemplate","ColumnHeader","getColumnEmptyMessageTemplate","ColumnEmptyMessage","getItemHeaderTemplate","ItemHeader","getItemBodyTemplate","ItemBody","getItemFooterTemplate","ItemFooter","columnIds","columnHeaderTemplate","columnEmptyMessageTemplate","itemHeaderTemplate","itemBodyTemplate","itemFooterTemplate","KanbanColumnComponent","showCheckbox","selectionControl","_subscriveEvents","_createTieredOptions","KanbanItemDraggingComponent","quantityItems","KanbanItemComponent","_kanbanEventService","onSelectedChange","KanbanModule","DragDropModule","NavigationButtonComponent","changeOnInit","stepChanged","tieredMenuItems","_createTieredMenuItems","previous","steps","_setDefaultValue","findIndex","onNext","onPrevious","NavigationButtonComponent_1","NavigationButtonModule","ProgressBarColors","ProgressBarMode","ObjectCardFieldComponent","ObjectCardFieldComponent_1","ObjectCardMainComponent","ObjectCardMainComponent_1","hasThumbnail","hasDescription","_thumbnailSize","thumbnailComponent","thumbnailSize","Small","ObjectCardComponent","ObjectCardComponent_1","expandTooltip","collapseTooltip","fieldsMinWidth","expandedChange","maxVisibleFields","maxFieldQtd","mainFieldWidth","fieldElementList","fieldElementList_1","fieldElementList_1_1","expand","getExpandedFieldWidth","descendants","BorderButtonComponent","BorderButtonModule","ObjectCardModule","PanelComponent","toggleable","collapsedChange","toggleCollapsed","getHeaderTemplate","getBodyTemplate","getFooterTemplate","ProductHeaderComponent","ProductHeaderComponent_1","isHeaderFrame","borderBottom","borderTop","ProductHeaderModule","ProgressBarComponent","showValue","Determinate","validateInputs","targetValue","Indeterminate","targetLabel","ProgressBarDeterminateComponent","validateValues","onGetLocale","ProgressBarIndeterminateComponent","RatingScaleComponent","rating","RatingScaleComponent_1","RatingScaleModule","SelectButtonComponent","itemSelected","itemClicked","activeItems","iItem","onItemSelect","_compare","keysA","keysB","keysA_1","keysA_1_1","SelectButtonComponent_1","SelectButtonItemComponent","SelectButtonModule","CheckDisabled","disabledField","_target","_propertyKey","descriptor","originalMethod","SplitButtonType","SidebarComponent","focusTrapFactory","SidebarComponent_1","largeSized","onShow","innerSidebar","containerViewChild","focusInitialElementWhenReady","onHide","FocusTrapFactory","Sidebar","SidebarModule","A11yModule","PrimeSidebar","ScrollPanelModule","SlidePanelService","modalCloseMap","createSlidePanel","panelSubject","getModalCloseObservable","closeModal","subject","SlidePanelComponent","slidePanelService","SlidePanelComponent_1","openIcon","closeIcon","createOpen","noOverlap","isSlideOver","slideHeight","_checkOverBehavior","_calculateSlideHeight","onClickButton","_sideContentRef","clientHeight","SlidePanelModule","SliderComponent","MAX_RANGE_VALUE","MIN_RANGE_VALUE","valueChange","hiddenThumb","movingProgressBar","progressLeft","progressWidth","draggingThumb","progressBarEventPositionStart","startValueBeforeProgressBarEvent","rangeBetweenElementsBeforeProgressBarEvent","totalRangeBeforeProgressBarEvent","mapRangeValuesForSlider","activeMouseDown","focusActive","onThumbMove","newPosition","getPercentageByEvent","positionInUserRange","getValueFromMapByValue","needParseValues","isAtSameValue","newValueIsValidByStep","setProgress","handleProgressBarMove","newCenter","startPositionBeforeEvent","startValueBeforeEvent","calculateNewRange","newStart","newEnd","startValueBeforeEventUserRange","startPositionBeforeEventUserRange","centerUserRange","valueRange","newStart_1","newEnd_1","handleProgressBarMoveEnd","setUserRangeMapValues","hasChangesOnMin","firstChange","hasChangesOnMax","setRangeValues","isArrowKeyLeft","isArrowKeyRight","handleArrowKeyLeft","handleArrowKeyRight","onTrackClick","evt","trackClickPercentage","trackClickToUserRange","_trackClickValid","_setEndValue","_endValueUserValue","_endValue","validStart_1","validEnd_1","_updateStart","_startValueUserValue","_startValue","_setStartValue","_updateEnd","clickPercentageBetweenRange","isInRange","middle","setEnd","onProgressMouseDown","thumb","_setStartAndEndValue","getClosestValueFromMapSlider","difference","getDifference","endValueIsGreatherThanMax","startValueIsLessThanMin","needUpdateValues","valueGreatherThanMax","valueLessThanMin","needUpdateValue","mouseEvent","trackRect","track","newLeft","stepCount","mappedValues","mapped","parseFloat","errorPerStep","sliderValue","mapToArray","exactValue","userValue","closestValue","isFirstItem","isLastItem","getMidpoint","_incrementOrDecrementStartAndEndValue","_incrementOrDecrementEndValue","increment","startLessThanMin","endGreaterThanMax","_newEndValue","SliderComponent_1","oldStart","oldEnd","clickedPosition","finalPosition","rangeStart","rangeEnd","StepState","SplitButtonComponent","eRef","buttonClicked","closeDropdown","onButtonClick","onDropdownClick","onOptionClick","SplitButtonModule","StatsCardComponent","StatsCardComponent_1","alwaysWithBorder","lightVersion","lightMode","animateNumbers","clickable","ANIMATION_DURATION_MS","STEP_DURATION_MS","updateDisplayValue","displayValue","animationDuration","stepDuration","animationCount","dividedBy","previousRawValue","incrementValue","minus","absoluteValue","incremental","isLessThan","clearInterval","intervalId","replaceNumericPositions","counter","setInterval","plus","isGreaterThan","formattedNewValue","padStart","newValueIndex","char","StatsCardModule","TimelineItemSeverity","TimelineItemSize","StepsComponent","StepsComponent_1","stepSelected","stepClick","barAnimation","afterBarAnimation","hidden","aria-orientation","role","tab-index","background-position","StepsModule","ThumbnailsComponent","combineCheckboxEvent","itemOpened","onItemOpened","onItemSelected","_item","ThumbnailItemComponent","isCheckable","isChecked","_validateItemData","_createFormGroup","itemData","checkboxClick","checkboxFormGroup","checkbox","ThumbnailItemVideoComponent","videoPlayer","play","currentTime","ThumbnailItemImageComponent","ThumbnailsModule","TileComponent","TileComponent_1","tabIndex","useThumbnail","TileModule","TimelineComponent","highlightActiveItem","direction","collapsable","counterLabel","_items","checkDuplicateIds","_innerWidth","changeToVertical","TimelineIconItemComponent","TimelineItemModule","HorizontalTimelineComponent","HorizontalTimelineModule","VerticalTimelineComponent","isG1Collapsed","isG2Collapsed","_activeIndex","groupItems","onChangeG1","onChangeG2","firstItem","g1Items","activeItem","g2Items","lastItem","RangeLineComponent","CollapseOptionComponent","isCollapsed","change","CollapsedItemsComponent","isCollapsedChange","VerticalItemsComponent","VerticalTimelineModule","TimelineModule","PicklistTemplateTypes","TimelineItem","Normal","checkItemIconContent","testSize","valueOf","testSeverity","WorkspaceSwitchComponent","footerButtonLabel","showFooterButton","footerButtonClicked","selectedItemIndex","_calculateListMaxHeight","workspaces","_scrollToCurrentItem","validations","buttonOnBlur","workspace","onFooterButtonClick","listItems","WorkspaceSwitchModule","LabelValueComponent","isBadgeConfiguration","isTextConfiguration","isCurrencyConfiguration","isNumberConfiguration","isDateConfiguration","LabelValueModule","PicklistComponent","itensToSelect","selectedItens","filterBy","selectedItensChange","itensToSelectChange","availableItensFilter","selectedItensFilter","itensToSelectFilterUtil","rawItensToSelect","filteredItensToSelect","selectedItensFilterUtil","rawSelectedItens","filteredSelectedItens","selectedItensMap","itensToSelectId","randomHash","selectedItensId","itemToSelectTemplate","ItemToSelect","itemSelectedTemplate","SelectedItem","toggleSelected","internalPicklistItem","containerListId","unselectedItensByListId","getOppositiveId","itens","filterEnabled","itemRemove","filterSelectedItens","filterItensToSelect","emitData","searchTerm","compareStrings","onDragStart","dragListId","invisible","onDragRelease","checkAllAvailableItensChange","_checkAllSelectedItensChange","checkAllSelectedItensChange","_checkAllSelectedByList","list","_listItens","listId","getAllElementsByListId","parseValueEmit","normalizeString","normalize","mainString","mapData","PicklistModule","ChipsComponent","newItem","ChipsComponent_1","_id","allowDuplicated","caseSensitiveDuplication","addOnTab","addOnBlur","autofocus","infoLabel","maxLengthRenderWithoutTooltip","isTabEventActive","chipTemplate","isEnter","isSeparator","eventKeyIsTab","isTab","addItem","onInputLostFocus","removeItem","itemIndex","_removedItem","originalEvent","chipClicked","hasField","_mappedValues","valueToAdd","duplicatedItem","hasDuplicatedItem","storeValue","ChipItemComponent","clickRemove","clickedRemove","onChipClicked","dataRender","_text","_rawText","objectField","HelpPopoverComponent","VALID_POSITIONS","VALID_ARROW_POSITIONS","popoverContent","closeButton","button","arrowElement","_arrowPosition","closed","_hasHeader","hasHeaderText","hasCloseButton","_hasFooterText","hasFooterText","hasButtonText","clickButton","HelpPopoverDirective","MUTATION_OBSERVER_CONFIG","OBSERVER_CALLBACK","applyPositionIntoElement","RESIZE_OBSERVER","onResize$","sHelpPopover","popoverIcon","popoverHeader","popoverFooter","popoverButtonText","popoverArrowPosition","_popoverPosition","onDestroy$","mutationObserverPopoverElement","mutationObserverPopoverContent","internalPosition","manualTrigger","listener","popoverElementObserver","doClick","arrowPosition","popoverPosition","popoverElementPosition","popoverComponentInstance","applyPopoverPositionBottom","applyPopoverPositionTop","applyPopoverPositionLeft","applyPopoverPositionRight","popoverElement","getPopoverElement","leftPopover","getHorizontalLeft","popoverHeight","popoverWidth","getVerticalTop","_horizontalLeft","arrowElementPosition","popoverContentPosition","arrowMiddle","distanceArrowFromStart","distanceArrowFromEnd","getLeftoverContentAvailableForPopover","popoverElementWidth","popoverElementHeight","remainingSpaceBottom","remainingSpaceTop","freePositions","freeDistance","exportAs","HelpPopoverModule","ToastModule","platform.angular_components.attachment","platform.angular_components.watch","platform.angular_components.view","platform.angular_components.listen","platform.angular_components.drag_your_photo_or","platform.angular_components.select_a_file","platform.angular_components.change_photo","platform.angular_components.remove_image","platform.angular_components.confirmation_remove_image","platform.angular_components.strong","platform.angular_components.medium","platform.angular_components.weak","platform.angular_components.invalid_value","platform.angular_components.insight_intro","platform.angular_components.insight_empty","platform.angular_components.error_loading_insight_alt","platform.angular_components.loading_insight","platform.angular_components.insight_no_permission","platform.angular_components.count_items_in_target","platform.angular_components.count_items_selected","platform.angular_components.january","platform.angular_components.february","platform.angular_components.march","platform.angular_components.april","platform.angular_components.may","platform.angular_components.june","platform.angular_components.july","platform.angular_components.august","platform.angular_components.september","platform.angular_components.october","platform.angular_components.november","platform.angular_components.december","platform.angular_components.january_short","platform.angular_components.february_short","platform.angular_components.march_short","platform.angular_components.april_short","platform.angular_components.may_short","platform.angular_components.june_short","platform.angular_components.july_short","platform.angular_components.august_short","platform.angular_components.september_short","platform.angular_components.october_short","platform.angular_components.november_short","platform.angular_components.december_short","platform.angular_components.sunday","platform.angular_components.monday","platform.angular_components.tuesday","platform.angular_components.wednesday","platform.angular_components.thursday","platform.angular_components.friday","platform.angular_components.saturday","platform.angular_components.sunday_short","platform.angular_components.monday_short","platform.angular_components.tuesday_short","platform.angular_components.wednesday_short","platform.angular_components.thursday_short","platform.angular_components.friday_short","platform.angular_components.saturday_short","platform.angular_components.sunday_min","platform.angular_components.monday_min","platform.angular_components.tuesday_min","platform.angular_components.wednesday_min","platform.angular_components.thursday_min","platform.angular_components.friday_min","platform.angular_components.saturday_min","platform.angular_components.today","platform.angular_components.hour_format","platform.angular_components.date_format","platform.angular_components.ia_text_generator","platform.angular_components.attach_files","platform.angular_components.add_information","platform.angular_components.add","platform.angular_components.edit","platform.angular_components.remove","platform.angular_components.save","platform.angular_components.file_attached_successfully","platform.angular_components.loading_file","platform.angular_components.iassist_text_generator","platform.angular_components.copied_to_clipboard","platform.angular_components.copy_field_content","platform.angular_components.generate_text","platform.angular_components.context","platform.angular_components.filters","platform.angular_components.filter","platform.angular_components.clear","platform.angular_components.cancel","platform.angular_components.select","platform.angular_components.not_informed","platform.angular_components.advanced_search","platform.angular_components.no_records_found","platform.angular_components.total_record","platform.angular_components.total_records","platform.angular_components.total_records_selected","platform.angular_components.country_name_br","platform.angular_components.country_name_us","platform.angular_components.country_name_co","platform.angular_components.country_name_ar","platform.angular_components.country_name_cl","platform.angular_components.country_name_py","platform.angular_components.country_name_uy","platform.angular_components.country_name_cn","platform.angular_components.country_name_ca","platform.angular_components.country_name_as","platform.angular_components.country_name_ai","platform.angular_components.country_name_ag","platform.angular_components.country_name_bs","platform.angular_components.country_name_bb","platform.angular_components.country_name_bm","platform.angular_components.country_name_vg","platform.angular_components.country_name_ky","platform.angular_components.country_name_dm","platform.angular_components.country_name_do","platform.angular_components.country_name_gd","platform.angular_components.country_name_gu","platform.angular_components.country_name_jm","platform.angular_components.country_name_ms","platform.angular_components.country_name_mp","platform.angular_components.country_name_pr","platform.angular_components.country_name_kn","platform.angular_components.country_name_lc","platform.angular_components.country_name_vc","platform.angular_components.country_name_tt","platform.angular_components.country_name_tc","platform.angular_components.country_name_fi","platform.angular_components.country_name_rs","platform.angular_components.country_name_zm","platform.angular_components.country_name_af","platform.angular_components.country_name_al","platform.angular_components.country_name_hr","platform.angular_components.country_name_ec","platform.angular_components.country_name_et","platform.angular_components.country_name_gh","platform.angular_components.country_name_gr","platform.angular_components.country_name_ie","platform.angular_components.country_name_it","platform.angular_components.country_name_lr","platform.angular_components.country_name_na","platform.angular_components.country_name_nz","platform.angular_components.country_name_sa","platform.angular_components.country_name_za","platform.angular_components.country_name_lk","platform.angular_components.country_name_sd","platform.angular_components.country_name_th","platform.angular_components.country_name_ua","platform.angular_components.country_name_ae","platform.angular_components.country_name_va","platform.angular_components.country_name_zw","platform.angular_components.country_name_dz","platform.angular_components.country_name_be","platform.angular_components.country_name_yt","platform.angular_components.country_name_bl","platform.angular_components.country_name_mf","platform.angular_components.country_name_ad","platform.angular_components.country_name_ao","platform.angular_components.country_name_ba","platform.angular_components.country_name_bg","platform.angular_components.country_name_kh","platform.angular_components.country_name_cz","platform.angular_components.country_name_gq","platform.angular_components.country_name_gw","platform.angular_components.country_name_li","platform.angular_components.country_name_lu","platform.angular_components.country_name_mk","platform.angular_components.country_name_me","platform.angular_components.country_name_pe","platform.angular_components.country_name_pl","platform.angular_components.country_name_pt","platform.angular_components.country_name_si","platform.angular_components.country_name_am","platform.angular_components.country_name_aw","platform.angular_components.country_name_bn","platform.angular_components.country_name_fj","platform.angular_components.country_name_gm","platform.angular_components.country_name_gy","platform.angular_components.country_name_is","platform.angular_components.country_name_fm","platform.angular_components.country_name_nr","platform.angular_components.country_name_nu","platform.angular_components.country_name_pw","platform.angular_components.country_name_st","platform.angular_components.country_name_to","platform.angular_components.country_name_vu","platform.angular_components.country_name_fk","platform.angular_components.country_name_fo","platform.angular_components.country_name_sh","platform.angular_components.country_name_au","platform.angular_components.country_name_cx","platform.angular_components.country_name_cc","platform.angular_components.country_name_cd","platform.angular_components.country_name_kg","platform.angular_components.country_name_ro","platform.angular_components.country_name_rw","platform.angular_components.country_name_sk","platform.angular_components.country_name_sy","platform.angular_components.country_name_tw","platform.angular_components.country_name_tz","platform.angular_components.country_name_ye","platform.angular_components.country_name_at","platform.angular_components.country_name_ke","platform.angular_components.country_name_ug","platform.angular_components.country_name_az","platform.angular_components.country_name_ch","platform.angular_components.country_name_vn","platform.angular_components.country_name_bh","platform.angular_components.country_name_cr","platform.angular_components.country_name_sv","platform.angular_components.country_name_ee","platform.angular_components.country_name_sz","platform.angular_components.country_name_gt","platform.angular_components.country_name_hk","platform.angular_components.country_name_ls","platform.angular_components.country_name_mo","platform.angular_components.country_name_mt","platform.angular_components.country_name_mu","platform.angular_components.country_name_mn","platform.angular_components.country_name_ni","platform.angular_components.country_name_om","platform.angular_components.country_name_pg","platform.angular_components.country_name_qa","platform.angular_components.country_name_sg","platform.angular_components.country_name_tl","platform.angular_components.country_name_bd","platform.angular_components.country_name_im","platform.angular_components.country_name_by","platform.angular_components.country_name_bz","platform.angular_components.country_name_mv","platform.angular_components.country_name_mh","platform.angular_components.country_name_sr","platform.angular_components.country_name_bj","platform.angular_components.country_name_bt","platform.angular_components.country_name_bf","platform.angular_components.country_name_bi","platform.angular_components.country_name_cf","platform.angular_components.country_name_td","platform.angular_components.country_name_ci","platform.angular_components.country_name_dk","platform.angular_components.country_name_dj","platform.angular_components.country_name_fr","platform.angular_components.country_name_pf","platform.angular_components.country_name_ga","platform.angular_components.country_name_ml","platform.angular_components.country_name_mr","platform.angular_components.country_name_ne","platform.angular_components.country_name_sm","platform.angular_components.country_name_tg","platform.angular_components.country_name_bo","platform.angular_components.country_name_gi","platform.angular_components.country_name_ki","platform.angular_components.country_name_tv","platform.angular_components.country_name_bw","platform.angular_components.country_name_er","platform.angular_components.country_name_lv","platform.angular_components.country_name_lb","platform.angular_components.country_name_tn","platform.angular_components.country_name_cm","platform.angular_components.country_name_cv","platform.angular_components.country_name_km","platform.angular_components.country_name_pm","platform.angular_components.country_name_cg","platform.angular_components.country_name_mz","platform.angular_components.country_name_mm","platform.angular_components.country_name_ck","platform.angular_components.country_name_cu","platform.angular_components.country_name_cy","platform.angular_components.country_name_eg","platform.angular_components.country_name_ir","platform.angular_components.country_name_iq","platform.angular_components.country_name_ng","platform.angular_components.country_name_kp","platform.angular_components.country_name_ph","platform.angular_components.country_name_ge","platform.angular_components.country_name_gn","platform.angular_components.country_name_es","platform.angular_components.country_name_de","platform.angular_components.country_name_gl","platform.angular_components.country_name_wf","platform.angular_components.country_name_ht","platform.angular_components.country_name_hn","platform.angular_components.country_name_pa","platform.angular_components.country_name_hu","platform.angular_components.country_name_in","platform.angular_components.country_name_id","platform.angular_components.country_name_il","platform.angular_components.country_name_jp","platform.angular_components.country_name_jo","platform.angular_components.country_name_kz","platform.angular_components.country_name_kw","platform.angular_components.country_name_la","platform.angular_components.country_name_ly","platform.angular_components.country_name_lt","platform.angular_components.country_name_np","platform.angular_components.country_name_mg","platform.angular_components.country_name_mw","platform.angular_components.country_name_my","platform.angular_components.country_name_mx","platform.angular_components.country_name_md","platform.angular_components.country_name_mc","platform.angular_components.country_name_ma","platform.angular_components.country_name_nl","platform.angular_components.country_name_nc","platform.angular_components.country_name_no","platform.angular_components.country_name_pk","platform.angular_components.country_name_ru","platform.angular_components.country_name_ws","platform.angular_components.country_name_sb","platform.angular_components.country_name_sn","platform.angular_components.country_name_sc","platform.angular_components.country_name_sl","platform.angular_components.country_name_so","platform.angular_components.country_name_kr","platform.angular_components.country_name_se","platform.angular_components.country_name_tj","platform.angular_components.country_name_tk","platform.angular_components.country_name_tr","platform.angular_components.country_name_tm","platform.angular_components.country_name_uz","platform.angular_components.country_name_ve","platform.angular_components.date_modified_custom_blob","platform.angular_components.available-items","platform.angular_components.selected-items","platform.angular_components.picklist-placeholder","platform.angular_components.add_all","platform.angular_components.remove_all","platform.angular_components.country_name_gb","platform.angular_components.insight_footer","array","disabledFn"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export enum TooltipPosition {\n Top = \"top\",\n Bottom = \"bottom\",\n Left = \"left\",\n Right = \"right\",\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\nimport { trigger, style, animate, transition, state } from \"@angular/animations\";\n\nimport { AccordionButtonSettings } from \"../../models/accordion-button-settings\";\nimport { AccordionSwitchSettings } from \"../../models/accordion-switch-settings\";\nimport { FormControl } from \"@angular/forms\";\n\n@Component({\n selector: \"s-accordion-panel\",\n templateUrl: \"./accordion-panel.component.html\",\n styleUrls: [\"./accordion-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [style({ height: \"0\" }), animate(\"200ms linear\", style({ height: \"*\" }))]),\n transition(\":leave\", [style({ height: \"*\" }), animate(\"200ms linear\", style({ height: \"0\" }))]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ height: \"*\" })),\n state(\"false\", style({ height: '0px' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class AccordionPanelComponent implements OnChanges, AfterViewInit {\n @Input()\n public header: string;\n\n @Input()\n public buttons: AccordionButtonSettings[];\n\n @Input()\n public disabled = false;\n\n /**\n * @deprecated Use switchControl instead.\n */\n @Input()\n public switch: AccordionSwitchSettings;\n\n @Input()\n public switchControl: FormControl;\n\n @Input()\n public validationMessage: string;\n\n @Input()\n public cache = false;\n\n @Input() validationMessageIcon = 'fas fa-exclamation-circle';\n\n @Input() validationMessageIconColor: \"Red\" | \"Orange\" | \"Yellow\" | \"Green\" | \"Blue\" = 'Red';\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n\n private _isOpen = false;\n\n public get isOpen() {\n return this._isOpen;\n }\n\n public set isOpen(isOpen: boolean) {\n this._isOpen = isOpen;\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"disabled\" in changes) {\n if (this.switchControl) {\n changes[\"disabled\"].currentValue\n ? this.switchControl.disable({ emitEvent: false })\n : this.switchControl.enable({ emitEvent: false });\n }\n }\n\n if (\"switch\" in changes && \"switchControl\" in changes) {\n throw new Error(\"You can't set switch and switchControl together.\");\n }\n }\n\n public ngAfterViewInit(): void {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this.isContentAnimationDisabled = false;\n });\n }\n\n public onIconButtonsClick(event: Event, callback: VoidFunction) {\n if (this.disabled) {\n return;\n }\n\n event.stopPropagation();\n callback();\n }\n\n public onTabClick() {\n if (this.disabled || this.isAnimating) {\n return;\n }\n this.isOpen = !this.isOpen;\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n}\n","import { AfterContentInit, OnChanges, Component, ContentChildren, Input, QueryList, SimpleChanges, OnDestroy } from \"@angular/core\";\n\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"s-accordion\",\n templateUrl: \"./accordion.component.html\",\n styleUrls: [\"./accordion.component.scss\"],\n})\nexport class AccordionComponent implements AfterContentInit, OnChanges, OnDestroy {\n @Input()\n public activeIndex: number;\n\n @Input()\n public multiple = false;\n\n @ContentChildren(AccordionPanelComponent)\n public panelsComponents: QueryList<AccordionPanelComponent>;\n\n private _unsubscribe$ = new Subject<void>();\n private _panels: AccordionPanelComponent[] = [];\n private _openSubs: Subscription[];\n\n public ngAfterContentInit(): void {\n this._panels = this.panelsComponents.toArray();\n this._openSubs = new Array(this._panels.length);\n\n this._setBehavior(this.multiple);\n this._setupTabs();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.multiple) {\n this._setBehavior(changes.multiple.currentValue);\n }\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _setupTabs(): void {\n if (this._panels?.length) {\n if (this.activeIndex !== undefined && this.activeIndex !== null) {\n const activeTab = this._panels[this.activeIndex];\n\n if (!activeTab) {\n throw new Error(\"activeIndex does not represent any panel.\");\n }\n\n if (!activeTab.disabled) {\n this._panels[this.activeIndex].isOpen = true;\n }\n }\n }\n }\n\n private _closeOtherTabs(exception: number) {\n this._panels.forEach((panel, index) => {\n if (index !== exception) {\n panel.isOpen = false;\n }\n });\n }\n\n private _setBehavior(multiple: boolean): void {\n if (multiple) {\n this._enableMultiplePanelBehavior();\n } else {\n this._enableSinglePanelBehavior();\n }\n }\n\n private _enableSinglePanelBehavior() {\n this._panels.forEach((panel, index) => {\n this._openSubs[index] = panel.panelOpened\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this._closeOtherTabs(index);\n });\n });\n }\n\n private _enableMultiplePanelBehavior() {\n this._panels.forEach((_, index) => {\n if (this._openSubs[index]) {\n this._openSubs[index].unsubscribe();\n }\n });\n }\n}\n","// switch.component.ts\nimport { Component, ElementRef, EventEmitter, HostListener, Input, Output, ViewChild, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: 's-switch',\n templateUrl: './switch.component.html',\n styleUrls: ['./switch.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n }],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input()\n public readonly = false;\n\n @Input()\n public trueLabel?: string;\n\n @Input()\n public falseLabel?: string;\n\n @Input()\n public inputId: string;\n\n @Input()\n public inputName: string;\n\n @Input()\n public disabled = false;\n\n @Output()\n public valueChanged = new EventEmitter<boolean>();\n\n @Input()\n public value = false;\n\n @ViewChild(\"switch\", { static: true })\n public switchRef: ElementRef;\n\n @HostListener('focusin')\n onFocusIn() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.add(\"switch--focus\");\n }\n\n @HostListener('focusout')\n onFocusOut() {\n const switchElement = this.switchRef.nativeElement as HTMLDivElement; \n switchElement.classList.remove(\"switch--focus\");\n }\n\n private _onChange: (value: boolean) => void;\n private _onTouched: (value: boolean) => void;\n\n public writeValue(value: boolean): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n\n public registerOnChange(onChange: (value: boolean) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: boolean) => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public toggleCheck() {\n this.value = !this.value;\n this.valueChanged.emit(this.value);\n\n if (this._onChange) {\n this._onChange(this.value);\n }\n\n if (this._onTouched) {\n this._onTouched(this.value);\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SwitchComponent } from \"./switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SwitchComponent],\n exports: [SwitchComponent],\n})\nexport class SwitchModule { }","export enum MobileBehavior {\n Pressing = \"pressing\",\n Tap = \"tap\",\n}","export enum TooltipEvent {\n Focus = \"focus\",\n Hover = \"hover\",\n}","import { Component } from \"@angular/core\";\nimport { TooltipPosition } from \"./models/tooltip-position\";\n\n@Component({\n templateUrl: \"./tooltip.component.html\",\n styleUrls: [\"./tooltip.component.scss\"],\n})\nexport class TooltipComponent {\n public tooltip = \"\";\n public position = TooltipPosition.Top;\n public left = 0;\n public top = 0;\n public visible = false;\n public escape = false;\n}\n","import { Injectable } from '@angular/core';\n\nconst DEFAULT_TIMER = 300;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DebounceUtils {\n public debounce(func: Function, timeout = DEFAULT_TIMER){\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n func.apply(this, args);\n }, timeout);\n };\n }\n\n public debounceLeading(func: Function, timeout = DEFAULT_TIMER) {\n let timer: NodeJS.Timeout;\n return (...args: any) => {\n if (!timer) {\n func.apply(this, args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = null;\n }, timeout);\n };\n }\n}\n","export const isNullOrUndefined = (value: unknown) => value === null || value === undefined;\r\nexport type ElementPosition = {\r\n top: number;\r\n left: number;\r\n right: number;\r\n elementHeight: number;\r\n elementWidth: number;\r\n elementVerticalCenter: number;\r\n elementHorizontalCenter: number;\r\n}\r\n\r\nexport type ElementLeftoverPosition = {\r\n freeDistanceToBottom: number;\r\n freeDistanceToTop: number;\r\n freeDistanceToLeft: number;\r\n freeDistanceToRight: number;\r\n}\r\n\r\nexport const isMousePositionOutsideOfElement = (event: MouseEvent | PointerEvent, elementArea: {\r\n top: number;\r\n right: number;\r\n left: number;\r\n bottom: number;\r\n}) => {\r\n const eventX = event.clientX;\r\n const eventY = event.clientY;\r\n return eventX < elementArea.left || eventX >= elementArea.right || eventY < elementArea.top || eventY >= elementArea.bottom;\r\n}\r\n\r\nexport const getElementPositionInfo = (element: HTMLElement): ElementPosition => {\r\n const rect = element.getBoundingClientRect();\r\n const scrollTop = window.scrollY || document.documentElement.scrollTop;\r\n const scrollLeft = window.scrollX || document.documentElement.scrollLeft;\r\n\r\n const elementHeight = rect.height;\r\n const elementWidth = rect.width;\r\n const elementVerticalCenter = elementHeight / 2;\r\n const elementHorizontalCenter = elementWidth / 2;\r\n\r\n return {\r\n top: rect.top + scrollTop,\r\n left: rect.left + scrollLeft,\r\n right: rect.left + scrollLeft + elementWidth,\r\n elementHeight,\r\n elementWidth,\r\n elementVerticalCenter,\r\n elementHorizontalCenter\r\n };\r\n};\r\n\r\nexport const getElementLeftoverContentAvailable = (element: HTMLElement): ElementLeftoverPosition => {\r\n const windowWidth = window.innerWidth;\r\n const popoverElementTriggerRect = element.getBoundingClientRect();\r\n const freeDistanceToBottom = window.innerHeight - popoverElementTriggerRect.bottom;\r\n const freeDistanceToTop = popoverElementTriggerRect.top;\r\n const freeDistanceToLeft = popoverElementTriggerRect.left;\r\n const freeDistanceToRight = windowWidth - popoverElementTriggerRect.right;\r\n return {\r\n freeDistanceToBottom,\r\n freeDistanceToTop,\r\n freeDistanceToLeft,\r\n freeDistanceToRight\r\n }\r\n}\r\n","// Lembrar que toda vez que for adicionada uma cor nova, ser criada a referência no `EnumBadgeColors`\n// do s-table-columns.\n\nexport enum BadgeColors {\n Red = \"red\",\n Orange = \"orange\",\n Yellow = \"yellow\",\n Blue = \"blue\",\n Green = \"green\",\n Gray = \"gray\",\n}","export enum BadgeTypes {\n Pill = \"pill\",\n Chip = \"chip\",\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from \"@angular/core\";\nimport { DebounceUtils } from \"../utils/debouce\";\nimport { getElementLeftoverContentAvailable, getElementPositionInfo, isMousePositionOutsideOfElement, isNullOrUndefined } from './../utils/utils';\nimport { MobileBehavior, TooltipEvent, TooltipPosition } from \"./models\";\nimport { TooltipComponent } from \"./tooltip.component\";\n\n@Directive({\n selector: \"[sTooltip]\",\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n @Input(\"sTooltip\")\n public tooltip: string;\n\n @Input(\"tooltipPosition\")\n public position: TooltipPosition = TooltipPosition.Top;\n\n @Input()\n public showDelay = 500;\n\n @Input()\n public displayTime: number;\n\n @Input()\n public tooltipEvent = TooltipEvent.Hover;\n\n @Input()\n public escape = false;\n\n @Input()\n public visible = true;\n\n @Input()\n public mobileBehavior = MobileBehavior.Pressing;\n\n @Input()\n public focusedInputRef: HTMLInputElement;\n\n private componentRef: ComponentRef<TooltipComponent> = null;\n private showTimeout?: number;\n private touchTimeout?: number;\n private tooltipDivElement?: HTMLElement;\n private readonly boundOnWindowMouseMoveFunction: (event: MouseEvent) => void;\n private readonly debounceCreateTooltipFunction: () => void;\n private existFocusedInputRefTooltip = false;\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly appRef: ApplicationRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly injector: Injector,\n private readonly debounceUtils: DebounceUtils,\n private readonly renderer: Renderer2\n ) {\n this.boundOnWindowMouseMoveFunction = this.onWindowMouseMove.bind(this);\n this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(() => this._createTooltip(true, true));\n }\n\n public ngOnInit(): void {\n this.validatePosition();\n this.updateTooltipVisibilityWhenFocusOnInput();\n }\n\n public ngOnDestroy(): void {\n this.destroy();\n }\n\n private onWindowMouseMove(event: MouseEvent) {\n if (!this.componentRef) {\n return;\n }\n const elementRect = this.elementRef.nativeElement.getBoundingClientRect();\n const toolTipRect = this.tooltipDivElement.getBoundingClientRect();\n\n const totalElementArea = {\n top: Math.min(elementRect.top, toolTipRect.top),\n right: Math.max(elementRect.right, toolTipRect.right),\n left: Math.min(elementRect.left, toolTipRect.left),\n bottom: Math.max(elementRect.bottom, toolTipRect.bottom),\n };\n\n if (isMousePositionOutsideOfElement(event, totalElementArea) && !this.existFocusedInputRefTooltip) {\n this.destroy();\n }\n }\n\n /**\n * Manipula a visibilidade do tooltip quando houver uma referência de input.\n */\n private updateTooltipVisibilityWhenFocusOnInput() {\n if (this.focusedInputRef) {\n const inputFocus = this.focusedInputRef;\n const icon = this.getIconFromFocusedInput();\n this.renderer.listen(inputFocus, \"focus\", () => {\n if (icon) {\n this.existFocusedInputRefTooltip = true;\n this._createTooltip(false, false)\n }\n });\n this.renderer.listen(inputFocus, \"blur\", () => {\n if (icon) {\n this.removeTooltip(icon);\n this.destroy();\n this.existFocusedInputRefTooltip = false;\n }\n });\n }\n }\n\n /**\n * Obtém o elemento do ícone associado ao label do input em focus.\n * @returns O ícone do input em focus.\n */\n private getIconFromFocusedInput(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Remove o tooltip associado ao ícone do input em focus.\n * @param icon O ícone do input em focus.\n */\n private removeTooltip(icon: HTMLElement): void {\n const tooltip = icon.querySelector(\".tooltip\") as HTMLElement;\n if (tooltip) {\n tooltip.remove();\n }\n }\n\n // whenever the component with the tooltip is clicked I destroy the tooltip.\n // whenever a key is pressed on the component with the tooltip I destroy the tooltip.\n @HostListener(\"click\")\n @HostListener(\"keydown\")\n public onClick(): void {\n if (this.tooltipEvent === TooltipEvent.Hover && !navigator.userAgent.match(/Android/i) && !navigator.userAgent.match(/iPhone/i)) {\n this.destroy();\n }\n }\n\n @HostListener(\"focus\")\n public onFocus(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this._createTooltip(true, true)\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n if (this.tooltipEvent === TooltipEvent.Focus) {\n this.destroy();\n }\n }\n\n @HostListener(\"mouseenter\")\n public onMouseEnter(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n this.debounceCreateTooltipFunction();\n }\n }\n\n @HostListener(\"mouseleave\")\n @HostListener(\"wheel\")\n public onMouseLeave(): void {\n if (this.tooltipEvent === TooltipEvent.Hover && !this.existFocusedInputRefTooltip) {\n this.destroy();\n }\n }\n\n @HostListener(\"touchstart\")\n public onTouchStart(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n window.clearTimeout(this.touchTimeout);\n const _delay = this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0\n this.touchTimeout = window.setTimeout(() => {\n this._createTooltip(true, true);\n }, _delay)\n }\n }\n\n @HostListener(\"touchend\")\n public onTouchEnd(): void {\n if (this.tooltipEvent === TooltipEvent.Hover) {\n if (this.mobileBehavior === MobileBehavior.Pressing) {\n window.clearTimeout(this.touchTimeout);\n this.destroy();\n }\n }\n }\n\n private validatePosition() {\n const containsPosition = [TooltipPosition.Top, TooltipPosition.Right, TooltipPosition.Bottom, TooltipPosition.Left].includes(\n this.position\n );\n\n if (!containsPosition) {\n this.position = TooltipPosition.Top;\n throw new Error(`Tooltip ${this.position} position is unexpected`);\n }\n }\n\n private getDomElement(): HTMLElement {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n return (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n\n private _createTooltip(useShowDelay = false, autoDestroy = true) {\n const hasText = this.tooltip?.length > 0;\n const hasComponentRef = this.componentRef !== null;\n if (!hasText || hasComponentRef) {\n return;\n }\n const domElement = this.getDomElement();\n document.body.appendChild(domElement);\n this.tooltipDivElement = domElement.querySelector(\".tooltip\");\n this.setTooltipComponentProperties();\n const _showDelay = useShowDelay ? this.showDelay : 0;\n setTimeout(() => {\n this.showTooltip()\n }, _showDelay)\n\n\n\n this.renderer.listen(window, \"scroll\", () => {\n this.setTooltipPositionProperty();\n });\n\n if (autoDestroy && this.displayTime) {\n setTimeout(() => {\n this.destroy();\n }, this.displayTime)\n }\n\n }\n\n private showTooltip() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = this.visible;\n\n this.setTooltipPositionProperty();\n\n window.addEventListener(\"mousemove\", this.boundOnWindowMouseMoveFunction);\n }\n }\n\n private setTooltipPositionProperty() {\n if (!this.componentRef) {\n return\n }\n const anchorSize = 5;\n const { left, right } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const tooltipElementPosition = getElementPositionInfo(this.tooltipDivElement);\n const elementLeftover = getElementLeftoverContentAvailable(this.elementRef.nativeElement);\n const elementTriggerPosition = getElementPositionInfo(this.elementRef.nativeElement);\n const isPositionHorizontal = [TooltipPosition.Left, TooltipPosition.Right].includes(this.position);\n const distanceToBorders = isPositionHorizontal ? tooltipElementPosition.elementWidth : tooltipElementPosition.elementHorizontalCenter;\n const canSetAtTop = elementLeftover.freeDistanceToTop > tooltipElementPosition.elementHeight;\n const canSetAtLeft = elementLeftover.freeDistanceToLeft > distanceToBorders;\n const canSetAtRight = elementLeftover.freeDistanceToRight > distanceToBorders;\n const canSetAtBottom = elementLeftover.freeDistanceToBottom > tooltipElementPosition.elementHeight;\n const topVertical = elementTriggerPosition.top + elementTriggerPosition.elementVerticalCenter;\n const checkTopPosition = () => {\n return canSetAtTop && canSetAtLeft && canSetAtRight;\n }\n const checkBottomPosition = () => {\n return canSetAtBottom && canSetAtLeft && canSetAtRight;\n }\n const checkLeftPosition = () => {\n return canSetAtLeft && canSetAtTop && canSetAtBottom;\n }\n\n const checkRightPosition = () => {\n return canSetAtRight && canSetAtTop && canSetAtBottom;\n }\n\n const setTopPosition = (): { left: number, top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top - anchorSize\n }\n }\n\n const setBottomPosition = (): { left: number, top: number } => {\n return {\n left: left + (right - left) / 2,\n top: elementTriggerPosition.top + elementTriggerPosition.elementHeight\n };\n }\n\n const setLeftPosition = (): { left: number, top: number } => {\n return {\n left: left,\n top: topVertical\n };\n }\n\n const setRightPosition = (): { left: number, top: number } => {\n return {\n left: right,\n top: topVertical\n };\n }\n\n type Position = {\n pos: TooltipPosition,\n check: () => boolean,\n set: () => { left: number, top: number }\n }\n\n const positions: Position[] = [\n {\n pos: TooltipPosition.Top,\n check: checkTopPosition,\n set: setTopPosition\n },\n {\n pos: TooltipPosition.Bottom,\n check: checkBottomPosition,\n set: setBottomPosition\n },\n {\n pos: TooltipPosition.Left,\n check: checkLeftPosition,\n set: setLeftPosition\n },\n {\n pos: TooltipPosition.Right,\n check: checkRightPosition,\n set: setRightPosition\n\n }\n ];\n\n const positionDefined = positions.find((position) => position.pos === this.position);\n let validPosition: Position = positionDefined;\n const canUseDefinedPosition = positionDefined.check();\n if (canUseDefinedPosition) {\n validPosition = positionDefined;\n } else if (!canUseDefinedPosition) {\n const validAlternativePosition = positions.find((position) => position.check());\n if (validAlternativePosition) {\n validPosition = validAlternativePosition;\n }\n }\n const _position = validPosition.set();\n const positionLeft = _position.left;\n const positionTop = _position.top;\n this.componentRef.instance.left = Math.round(positionLeft);\n this.componentRef.instance.top = Math.round(positionTop);\n this.componentRef.instance.position = validPosition.pos;\n\n }\n private setTooltipComponentProperties() {\n if (this.componentRef !== null) {\n this.componentRef.instance.tooltip = this.tooltip;\n this.componentRef.instance.escape = this.escape;\n }\n }\n\n private destroy(): void {\n if (!isNullOrUndefined(this.componentRef)) {\n window.clearTimeout(this.showTimeout);\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n this.tooltipDivElement = null;\n }\n\n window.removeEventListener(\"mousemove\", this.boundOnWindowMouseMoveFunction);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipComponent } from \"./tooltip.component\";\nimport { TooltipDirective } from \"./tooltip.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n TooltipComponent,\n TooltipDirective,\n ],\n exports: [TooltipDirective],\n})\nexport class TooltipModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { AccordionComponent } from \"./accordion.component\";\nimport { AccordionPanelComponent } from \"./components/accordion-panel/accordion-panel.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n SwitchModule,\n ],\n declarations: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n exports: [\n AccordionComponent,\n AccordionPanelComponent,\n ],\n})\nexport class AccordionModule { }\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: \"s-alert\",\n templateUrl: \"./alert.component.html\",\n styleUrls: [\"./alert.component.scss\"],\n})\nexport class AlertComponent {\n @Input()\n public severity: \"info\" | \"success\" | \"warning\" | \"error\" = \"info\";\n\n @Input()\n public summary: string;\n\n @Input()\n public detail: string;\n\n @Input()\n public closable = true;\n\n @Output()\n public close = new EventEmitter<void>();\n\n public get isOpen(): boolean {\n return this._isOpen;\n }\n\n public closeAlert(): void {\n this._isOpen = false;\n }\n\n public showAlert(): void {\n this._isOpen = true;\n }\n\n public onClose(): void {\n this.close.emit();\n this.closeAlert();\n }\n\n private _isOpen = true;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { AlertComponent } from \"./alert.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n})\nexport class AlertModule {}\n","export enum ButtonPriority {\n Default = \"default\",\n Primary = \"primary\",\n Secondary = \"secondary\",\n Link = \"link\",\n Danger = \"danger\",\n}\n","export enum ButtonSize {\n Default = \"default\",\n Small = \"small\",\n}\n","import { Component, EventEmitter, HostListener, Input, OnInit, Output } from \"@angular/core\";\n\nimport { BadgeColors } from \"./models/badge-colors\";\nimport { BadgeTypes } from \"./models/badge-types\";\n\n@Component({\n selector: \"s-badge\",\n templateUrl: \"./badge.component.html\",\n styleUrls: [\"./badge.component.scss\"],\n})\nexport class BadgeComponent implements OnInit {\n @Input()\n public type: BadgeTypes;\n\n @Input()\n public color: BadgeColors;\n\n @Input()\n public title: string;\n\n @Input()\n public text: string;\n\n @Input()\n public selectable = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public iconPosition: \"left\" | \"right\";\n\n @Input()\n public infoSign: { text: string; displayTime?: number };\n\n @Output()\n public selected: EventEmitter<string> = new EventEmitter();\n\n @HostListener(\"click\")\n public onClick(): void {\n this.selected.emit(this.text);\n }\n\n public ngOnInit(): void {\n this._setDefaultValues();\n }\n\n private _setDefaultValues(): void {\n this.type = this.type ?? BadgeTypes.Pill;\n this.color = this.color ?? BadgeColors.Blue;\n this.iconPosition = this.iconPosition ?? \"left\";\n }\n}","import { Component, TemplateRef } from \"@angular/core\";\n\n@Component({\n selector: \"s-info-sign-component\",\n templateUrl: \"./info-sign.component.html\",\n styleUrls: [\"./info-sign.component.scss\"],\n})\nexport class InfoSignComponent {\n templateRef: TemplateRef<any>;\n tooltip: string;\n displayTime: number;\n focusedInputRef: HTMLInputElement;\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { InfoSignComponent } from \"./info-sign.component\";\n\n@Directive({\n selector: \"[sInfoSign]\"\n})\nexport class InfoSignDirective implements OnChanges, OnInit, OnDestroy {\n @Input()\n sInfoSign: string;\n\n @Input('sInfoSignDisplayTime')\n displayTime: number = 5000;\n\n @Input('sInfoSignFocusedInputRef')\n public focusedInputRef: HTMLInputElement;\n\n private componentRef: ComponentRef<any>;\n\n @Input('sInfoSignUseFocusedInputRef') public useFocusedInputRef = true;\n\n constructor(\n private readonly templateRef: TemplateRef<any>,\n private readonly viewContainer: ViewContainerRef,\n private readonly componentFactoryResolver: ComponentFactoryResolver\n ) { }\n\n public ngOnChanges(): void {\n this.createInfoSign();\n }\n\n public ngOnInit(): void {\n this.createInfoSign();\n }\n\n public ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n private createInfoSign(): void {\n if (!this.componentRef && this.sInfoSign) {\n this.viewContainer.clear();\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(InfoSignComponent);\n this.componentRef = this.viewContainer.createComponent(componentFactory);\n const _infoSignComponent = this.componentRef.instance as InfoSignComponent;\n _infoSignComponent.templateRef = this.templateRef;\n _infoSignComponent.tooltip = this.sInfoSign;\n _infoSignComponent.displayTime = this.displayTime;\n if (this.useFocusedInputRef) {\n _infoSignComponent.focusedInputRef = this.focusedInputRef;\n }\n } else if (this.componentRef && this.sInfoSign) {\n this.componentRef.instance.tooltip = this.sInfoSign;\n } else {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignComponent } from \"./info-sign.component\";\nimport { InfoSignDirective } from \"./info-sign.directive\";\n\n@NgModule({\n imports: [\n TooltipModule,\n CommonModule,\n ],\n declarations: [\n InfoSignDirective,\n InfoSignComponent,\n ],\n exports: [InfoSignDirective],\n entryComponents: [InfoSignComponent],\n})\nexport class InfoSignModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { BadgeComponent } from \"./badge.component\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, InfoSignModule],\n declarations: [BadgeComponent],\n exports: [BadgeComponent, RouterModule],\n})\nexport class BadgeModule {}\n","export interface ICalendarLocaleOptions {\n hourFormat?: string;\n dateFormat?: string;\n firstDayOfWeek?: number;\n today?: string;\n clear?: string;\n dayNames?: string[];\n dayNamesShort?: string[];\n dayNamesMin?: string[];\n monthNamesShort?: string[];\n monthNames?: string[];\n}\n\nexport class CalendarLocaleOptions implements ICalendarLocaleOptions {\n public hourFormat = \"24\";\n public dateFormat = \"dd/mm/yy\";\n public firstDayOfWeek = 0;\n public today = \"Hoje\";\n public clear = \"Limpar\";\n public dayNames: string[] = [\"Domingo\", \"Segunda\", \"Terça\", \"Quarta\", \"Quinta\", \"Sexta\", \"Sábado\"];\n public dayNamesShort: string[] = [\"Dom\", \"Seg\", \"Ter\", \"Qua\", \"Qui\", \"Sex\", \"Sab\"];\n public dayNamesMin: string[] = [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"];\n public monthNamesShort: string[] = [\"Jan\", \"Fev\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Out\", \"Nov\", \"Dez\"];\n public monthNames: string[] = [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n ];\n\n constructor(config: ICalendarLocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n","export interface INumberLocaleOptions {\n thousandsSeparator?: string;\n decimalSeparator?: string;\n currencySymbol?: string;\n}\n\nexport class NumberLocaleOptions implements INumberLocaleOptions {\n public thousandsSeparator = \".\";\n public decimalSeparator = \",\";\n public currencySymbol = \"R$\";\n\n constructor(config: INumberLocaleOptions = {}) {\n Object.assign(this, config);\n }\n}\n","import { CalendarLocaleOptions } from \"./calendar\";\nimport { NumberLocaleOptions } from \"./number\";\n\nexport interface ILocaleOptions {\n calendar?: CalendarLocaleOptions;\n number?: NumberLocaleOptions;\n}\n\nexport class LocaleOptions implements ILocaleOptions {\n locale: string;\n calendar = new CalendarLocaleOptions();\n number = new NumberLocaleOptions();\n\n constructor(config: ILocaleOptions = {}) {\n Object.keys(config).forEach(key => (this[key] = config[key] || this[key]));\n }\n}\n\n/**\n * @deprecated\n */\nexport const DEFAULT_CALENDAR_LOCALE_OPTIONS = new CalendarLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_NUMBER_LOCALE_OPTIONS = new NumberLocaleOptions();\n\n/**\n * @deprecated\n */\nexport const DEFAULT_LOCALE_OPTIONS = new LocaleOptions();\n\nexport * from \"./calendar\";\nexport * from \"./number\";\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { user } from \"@seniorsistemas/senior-platform-data\";\nimport * as moment_ from \"moment\";\nimport { from, Observable, of } from \"rxjs\";\nimport { catchError, map, switchMap, tap } from \"rxjs/operators\";\nimport { ILocaleOptions, LocaleOptions } from \"./options/index\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Injectable()\nexport class LocaleService {\n private locale: string;\n private localeOptions: LocaleOptions;\n private localeOptionsAddress = \"https://cdn.senior.com.br/primeng/locales\";\n private localeOptionsVersion = \"3.0.0\";\n\n constructor(\n private http: HttpClient,\n private cookieService: CookieService\n ) {}\n\n get(): Observable<LocaleOptions> {\n return this.localeOptions\n ? of(this.localeOptions)\n : this.getLocaleConfig().pipe(\n tap((localeOptions: LocaleOptions) => (this.localeOptions = { ...localeOptions, locale: this.locale }))\n );\n }\n\n getLocale(): Observable<string> {\n return this.locale\n ? of(this.locale)\n : from(this.getUserData()).pipe(\n map((userData: any) => {\n this.locale = <string>userData.locale || <string>userData.tenantLocale || \"pt-BR\";\n return this.locale;\n })\n );\n }\n\n /**\n * Returns an object with the locale options based on the user's locale(platform locale).\n * @return The locale options object.\n */\n getLocaleOptions(): LocaleOptions {\n return this.localeOptions;\n }\n\n private getUserData() {\n try {\n return of(JSON.parse(this.cookieService.get(\"com.senior.token\")));\n } catch (ex) {\n console.warn(\"Unable to obtain user locale from cookie, calling getUser\");\n return user.getUserData();\n }\n }\n\n private getLocaleConfig(): Observable<LocaleOptions> {\n return this.getLocale().pipe(\n switchMap((locale: string) => {\n moment.locale(locale);\n\n return this.http\n .get<ILocaleOptions>(`${this.localeOptionsAddress}/${this.localeOptionsVersion}/${locale}.json`)\n .pipe(map((response) => new LocaleOptions(response)));\n }),\n catchError((err: any) => {\n console.warn(`Error getting locale configuration. Using fallback.`, err);\n return of(new LocaleOptions());\n })\n );\n }\n\n getGroupingSeparator(): string {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: \"decimal\",\n useGrouping: true,\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n // The default groupingSeparator for 'fr' is the character code 8239. We need it to be the regular space.\n if (this.locale.includes(\"fr\")) return \" \";\n\n return numberFormat.formatToParts(1000).find((part) => part.type === \"group\")?.value;\n }\n\n getDecimalSeparator(): string {\n const numberFormat = new Intl.NumberFormat(this.locale, {\n style: \"decimal\",\n minimumFractionDigits: 5,\n maximumFractionDigits: 5,\n });\n\n return numberFormat.formatToParts(1.2).find((part) => part.type === \"decimal\")?.value;\n }\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n KeyValueDiffers,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { LocaleService } from \"../locale/locale.service\";\n\nimport { AlignmentOptions, CurrencyMaskDirective } from \"@seniorsistemas/ng2-currency-mask\";\nimport { first } from \"rxjs/operators\";\n\n@Directive({\n selector: \"input[sBignumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BignumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class BignumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator: string;\n\n @Input()\n public thousandsSeparator: string;\n\n @Input()\n public alignTo = AlignmentOptions.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n private _maxLength: number;\n\n constructor(\n _elementRef: ElementRef,\n _keyValueDiffers: KeyValueDiffers,\n private readonly localeService: LocaleService\n ) {\n super(null, _elementRef, _keyValueDiffers);\n\n this.onLocaleService();\n }\n\n public ngOnInit() {\n this.updateVariables();\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) {\n this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n }\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n @HostListener(\"keypress\", [\"$event\"])\n public onKeypress(event: KeyboardEvent) {\n const code = event.code;\n\n if (code === \"Minus\" || code === \"NumpadSubtract\") {\n if (this.allowNegative) {\n this.maxLength = this._maxLength + 1;\n }\n } else if (code === \"Equal\" || code === \"NumpadAdd\") {\n this.maxLength = this._maxLength;\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimalSeparator: this.decimalSeparator,\n thousandsSeparator: this.thousandsSeparator ?? \".\",\n scale: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative,\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator?.length ?? 1;\n\n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n\n this._maxLength = maxLength;\n this.maxLength = maxLength;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { BignumberInputDirective } from \"./number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BignumberInputDirective],\n exports: [BignumberInputDirective],\n})\nexport class BignumberInputModule {}\n","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\nimport { ActivatedRoute, Router, NavigationEnd, PRIMARY_OUTLET } from \"@angular/router\";\nimport { MenuItem } from \"primeng/api\";\nimport { Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: `s-breadcrumb`,\n templateUrl: `./breadcrumb.component.html`,\n})\nexport class BreadcrumbComponent implements OnDestroy {\n @Input() public homeUrl: string;\n @Input() public targetHomeUrl: string = \"_self\";\n public home: MenuItem;\n public items: MenuItem[];\n public title: string;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private activatedRoute: ActivatedRoute, private router: Router) {\n this.router.events\n .pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd))\n .subscribe(() => this.onNavigationEnd());\n }\n\n private onNavigationEnd() {\n const currentRoute = this.activatedRoute.root;\n const validRoutes: ActivatedRoute[] = this.getValidChildren(currentRoute);\n\n this.title = this.getCurrentTitle(validRoutes);\n this.home = this.getCurrentHome(validRoutes);\n this.items = this.getCurrentItems(validRoutes);\n }\n\n private getValidChildren(route: ActivatedRoute): ActivatedRoute[] {\n const valid = route.routeConfig && route.routeConfig.path && route.routeConfig.component && route.outlet === PRIMARY_OUTLET;\n return route.children.reduce((validRoutes, child) => [...validRoutes, ...this.getValidChildren(child)], valid ? [route] : []);\n }\n\n private getCurrentTitle(routes: ActivatedRoute[]) {\n const last = routes[routes.length - 1];\n if (last && last.routeConfig) return this.getTitle(last);\n }\n\n private getCurrentHome(routes: ActivatedRoute[]) {\n let home;\n\n if (this.homeUrl) home = { url: this.homeUrl, icon: \"fa fa-home\", target: this.targetHomeUrl };\n else if (routes.length) home = { ...this.getMenuItem(routes[0], routes.length === 1), icon: \"fa fa-home\" };\n\n return home;\n }\n\n private getCurrentItems(routes: ActivatedRoute[]) {\n if (!routes.length) return;\n const items = this.homeUrl ? routes : routes.slice(1);\n if (items.length) return items.map((route, i) => this.getMenuItem(route, i === routes.length - 1));\n }\n\n private getMenuItem(route: ActivatedRoute, disabled = false) {\n const label = this.getTitle(route);\n const routes = route.pathFromRoot;\n const routerLink = routes\n .slice(0, routes.indexOf(route) + 1)\n .reduce((result, item) => [...result, ...item.snapshot.url.map(url => url.path)], [\"/\"]);\n\n return {\n label,\n routerLink,\n queryParams: route.snapshot.queryParams,\n routerLinkActiveOptions: { exact: true },\n disabled,\n };\n }\n\n private getTitle(route: ActivatedRoute) {\n const { snapshot, routeConfig } = route;\n const title = snapshot.data.routeTitle;\n if (!title) throw new Error(`No routeTitle defined for the route /${routeConfig.path}`);\n return title;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { BreadcrumbModule as PrimeBreadcrumbModule } from \"primeng/breadcrumb\";\n\nimport { BreadcrumbComponent } from \"./breadcrumb.component\";\nimport { RouterModule } from \"@angular/router\";\n\n@NgModule({\n imports: [CommonModule, PrimeBreadcrumbModule, RouterModule],\n declarations: [BreadcrumbComponent],\n exports: [BreadcrumbComponent, RouterModule],\n})\nexport class BreadcrumbModule {}\n","\nexport enum ButtonAnimation {\n Rotate = 'rotate',\n}","export enum CardTemplateTypes {\n Header = \"header\",\n Body = \"body\",\n Footer = \"footer\",\n}","import { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from \"@angular/core\";\n\nimport { MenuItem } from \"primeng/api\";\nimport { DomHandler } from \"primeng/dom\";\nimport { TieredMenu } from \"primeng/tieredmenu\";\n\nimport { ButtonAnimation } from \"./models/button-animation\";\nimport { ButtonBadgeConfig } from \"./models/button-badge-config\";\nimport { ButtonPriority } from \"./models/button-priority\";\nimport { ButtonSize } from \"./models/button-size\";\nimport { TieredMenuItemData } from \"../tiered-menu\";\n@Component({\n selector: \"s-button\",\n templateUrl: \"./button.component.html\",\n styleUrls: [\"./button.component.scss\"],\n})\nexport class ButtonComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @HostBinding(\"style.min-width\")\n public minWidth = \"40px\";\n\n @Input()\n public id = `s-button-${ButtonComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public tooltip: string;\n\n @Input()\n public tooltipPosition: \"top\" | \"right\" | \"bottom\" | \"left\" = \"top\";\n\n @Input()\n public iconClass: string;\n\n @Input()\n public rightIconClass: string;\n\n @Input()\n public caret = true;\n\n @Input()\n public styleClass: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public disabled = false;\n\n @Input()\n public auxiliary = false;\n\n @Input()\n public type = \"button\";\n\n @Input()\n public priority: ButtonPriority = ButtonPriority.Primary;\n\n /**\n * @deprecated Use `menuOptions` instead.\n */\n @Input()\n public model: MenuItem[] = [];\n\n @Input()\n public menuOptions: TieredMenuItemData[] = [];\n\n @Input()\n public size = ButtonSize.Default;\n\n @Input()\n public slide: boolean;\n\n @Input()\n public animation: ButtonAnimation;\n\n @Input()\n public badge: ButtonBadgeConfig;\n\n @Input()\n public iconColor: string;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n public tooltipZIndex: number;\n\n // TODO: Remover na próxima major.\n @ViewChild(TieredMenu, { static: true })\n private menu: TieredMenu;\n\n public ngOnInit() {\n this.onClick.subscribe((event: any) => {\n if (!this.model || !this.model.length) return;\n\n // TODO: Remover na próxima major.\n this.menu.model = this.model;\n this.menu.toggle(event);\n });\n }\n\n public validateSlideButton() {\n return this.slide && (this.priority == ButtonPriority.Default || this.priority == ButtonPriority.Link) && this.label.length;\n }\n\n // TODO: Remover na próxima major.\n public isOpen() {\n return this.model && this.model.length && this.menu.visible;\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n const isMultiple = this.model && this.model.length;\n\n if (hasText || (hasIcon && isMultiple)) this.minWidth = \"80px\";\n if (hasText && hasIcon && isMultiple) this.minWidth = \"100px\";\n }\n\n public updateTooltipZIndex() {\n this.tooltipZIndex = this.baseZIndex + ++DomHandler.zindex;\n }\n\n public isRotateAnimation() {\n return this.animation === ButtonAnimation.Rotate;\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-tiered-menu-divider\",\n templateUrl: \"./tiered-menu-divider.component.html\",\n styleUrls: [\"./tiered-menu-divider.component.scss\"],\n})\nexport class TieredMenuDividerComponent { }","import { Injectable, EventEmitter } from '@angular/core';\n\nimport { TieredMenuItemInternalData } from '../models/tiered-menu-item-internal-data';\n\n@Injectable()\nexport class TieredMenuEventService {\n public incrementCurrentItemEvent = new EventEmitter();\n public decrementCurrentItemEvent = new EventEmitter();\n public closeAllMenusEvent = new EventEmitter();\n public selectItemEvent = new EventEmitter<TieredMenuItemInternalData>();\n public openItemMenuEvent = new EventEmitter<TieredMenuItemInternalData>();\n public closeItemMenuEvent = new EventEmitter<TieredMenuItemInternalData>();\n public createMenuEvent = new EventEmitter<TieredMenuItemInternalData>();\n}","import { Component, HostListener, Input } from \"@angular/core\";\n\nimport { TieredMenuEventService } from \"../../services/tiered-menu.event.service\";\nimport { TieredMenuItemInternalData } from \"../../models\";\n\n@Component({\n selector: \"s-tiered-menu-item\",\n templateUrl: \"./tiered-menu-item.component.html\",\n styleUrls: [\"./tiered-menu-item.component.scss\"],\n})\nexport class TieredMenuItemComponent {\n @Input()\n public item: TieredMenuItemInternalData;\n\n @Input()\n public focused = false;\n\n @Input()\n public highlight = false;\n\n @Input()\n public triggerEvent: \"click\" | \"hover\" = \"click\";\n\n @Input()\n public closeOnClick = false;\n\n private _showTimeout?: number;\n\n constructor(\n private readonly _tieredMenuEventService: TieredMenuEventService,\n ) { }\n\n @HostListener(\"click\")\n @HostListener(\"touchend\")\n public onClick(): void {\n if (this.item.disabled) return;\n\n if (this.item.submenu) {\n if (!this.item.isOpen) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n } else if(this.closeOnClick) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.item);\n }\n } else {\n this._tieredMenuEventService.selectItemEvent.emit(this.item);\n }\n }\n\n @HostListener(\"mouseenter\")\n public onMouseEnter(): void {\n if (this.item.disabled) return;\n\n if (this.triggerEvent === \"hover\" && !this.item.isOpen) {\n this._showTimeout = window.setTimeout(() => {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.item);\n }, 300);\n }\n }\n\n @HostListener(\"mouseleave\")\n public onMouseLeave(): void {\n window.clearTimeout(this._showTimeout);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { TieredMenuItemData } from \"../models/tiered-menu-item-data\";\nimport { TieredMenuItemInternalData } from \"../models/tiered-menu-item-internal-data\";\n\n@Injectable()\nexport class TieredMenuService {\n public currentItem: TieredMenuItemInternalData;\n public currentItems: TieredMenuItemInternalData[] = [];\n public items: TieredMenuItemInternalData[] = [];\n\n public normalizeData(items: TieredMenuItemData[], parent?: TieredMenuItemInternalData): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = {\n visible: true,\n ...i,\n };\n if (item.submenu) {\n item.submenu = this.normalizeData(item.submenu, item);\n }\n item.id = this._generateId();\n item.parent = parent;\n item.isOpen = false;\n return item;\n });\n }\n\n public markAllItemsAsClosed(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return items.map((i: TieredMenuItemInternalData) => {\n const item = {...i};\n if (item.submenu) {\n item.submenu = this.markAllItemsAsClosed(item.submenu);\n }\n item.isOpen = false;\n return item;\n });\n }\n\n public searchTheHierarchy(itemA: TieredMenuItemInternalData, itemB: TieredMenuItemInternalData) {\n let item = itemB;\n while(item) {\n if (item === itemA) {\n return true;\n }\n item = item.parent;\n }\n return false;\n }\n\n public cloneItems(items: TieredMenuItemInternalData[]): TieredMenuItemInternalData[] {\n return JSON.parse(JSON.stringify(items));\n }\n\n private _generateId(): string {\n return `id-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}-${Math.random().toString(36).substring(2, 9)}`\n } \n}","export const enableScroll = (): void => {\n document.body.style.overflow = \"auto\";\n}\n\nexport const disabledScroll = (): void => {\n document.body.style.overflow = \"hidden\";\n}","import { Component, HostListener, OnDestroy, OnInit } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TieredMenuItemInternalData } from \"../../models/tiered-menu-item-internal-data\";\nimport { TieredMenuEventService } from \"../../services/tiered-menu.event.service\";\nimport { TieredMenuService } from \"../../services/tiered-menu.service\";\nimport { enableScroll, disabledScroll } from \"../../utils\";\n@Component({\n templateUrl: \"./tiered-menu-nested.component.html\",\n styleUrls: [\"./tiered-menu-nested.component.scss\"],\n})\nexport class TieredMenuNestedComponent implements OnInit, OnDestroy {\n public items: TieredMenuItemInternalData[];\n public top = 0;\n public left = 0;\n // public maxHeight = 0;\n\n // Saves the last opened item to close it when a new one is opened\n private _lastOpenItem: TieredMenuItemInternalData;\n private _unsubscribe$ = new Subject<void>();\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest(\"s-tiered-menu-item\") || target.closest(\"s-tiered-menu-divider\");\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case \"Escape\":\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case \" \":\n case \"Enter\":\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n break;\n case \"ArrowLeft\":\n // When nested I need a reference to the current item's parent item, otherwise just the current item.\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem.parent);\n break;\n case \"ArrowRight\":\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n break;\n case \"ArrowUp\":\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n break;\n case \"ArrowDown\":\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n break;\n }\n }\n\n constructor(\n public readonly tieredMenuService: TieredMenuService,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n ) { }\n\n public ngOnInit(): void {\n this.tieredMenuService.currentItems = this.items;\n this._subscribeEvents();\n disabledScroll();\n }\n \n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n enableScroll();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (curIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _closeItem(item: TieredMenuItemInternalData): void {\n let itemAux = this._lastOpenItem;\n\n while (itemAux && itemAux != item) {\n itemAux.isOpen = false;\n itemAux = itemAux.parent;\n }\n\n item.isOpen = false;\n\n this.tieredMenuService.currentItem = itemAux ?? this.tieredMenuService.items[0];\n this.tieredMenuService.currentItems = itemAux?.parent?.submenu || this.tieredMenuService.items;\n }\n\n private _openItem(item: TieredMenuItemInternalData): void {\n if (item?.submenu) {\n item.isOpen = true;\n this.tieredMenuService.currentItems = item.submenu;\n\n // Only has focus if there has already been interaction.\n if (this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = item.submenu[0];\n }\n\n this._lastOpenItem = item;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.incrementCurrentItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this._incrementCurItem();\n });\n\n this._tieredMenuEventService.decrementCurrentItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this._decrementCurItem();\n });\n\n this._tieredMenuEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (item.command) {\n item.command();\n // Close all menus after the item was selected.\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n });\n\n this._tieredMenuEventService.openItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (!this.tieredMenuService.currentItems.includes(item)) {\n let itemAux = this._lastOpenItem;\n\n while (itemAux?.parent?.parent) {\n itemAux = itemAux.parent;\n }\n\n this._tieredMenuEventService.closeItemMenuEvent.emit(itemAux.parent ?? itemAux);\n }\n\n this._lastOpenItem = item;\n\n this._openItem(item);\n });\n\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (item) {\n this._closeItem(item);\n }\n });\n }\n}\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n EventEmitter,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n Output,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\nimport { takeUntil } from \"rxjs/operators\";\nimport { TieredMenuItemInternalData } from \"../../models/tiered-menu-item-internal-data\";\nimport { TieredMenuEventService } from \"../../services/tiered-menu.event.service\";\nimport { TieredMenuService } from \"../../services/tiered-menu.service\";\nimport { enableScroll, disabledScroll } from \"../../utils\";\n\n@Component({\n selector: \"s-tiered-menu\",\n templateUrl: \"./tiered-menu.component.html\",\n styleUrls: [\"./tiered-menu.component.scss\"],\n})\nexport class TieredMenuComponent implements OnInit, OnDestroy {\n public items: TieredMenuItemInternalData[];\n public top = 0;\n public left = 0;\n public menuTriggerEvent: \"click\" | \"hover\" = \"hover\";\n\n private _componentRef: ComponentRef<TieredMenuComponent> = null;\n private _menuDivElement?: HTMLElement;\n private _unsubscribe$ = new Subject<void>();\n\n @Output()\n public destroyRequest = new EventEmitter<boolean>();\n\n constructor(\n private readonly _appRef: ApplicationRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _injector: Injector,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n public readonly tieredMenuService: TieredMenuService,\n private readonly _tieredMenuEventService: TieredMenuEventService\n ) {}\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onDocumentClick(event: MouseEvent): void {\n // Closing menu when clicked outside.\n const target = event.target as Element;\n const clickedInside = target.closest(\"s-tiered-menu-item\") || target.closest(\"s-tiered-menu-divider\");\n if (!clickedInside) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n public onKeydownHandler(event: KeyboardEvent) {\n switch (event.key) {\n case \"Escape\":\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n break;\n case \" \":\n case \"Enter\":\n if (!this.tieredMenuService.currentItem.disabled) {\n this._tieredMenuEventService.selectItemEvent.emit(this.tieredMenuService.currentItem);\n }\n break;\n case \"ArrowLeft\":\n if (this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(this.tieredMenuService.currentItem);\n this._changeDetectorRef.detectChanges();\n }\n break;\n case \"ArrowRight\":\n if (!this.tieredMenuService.currentItem.disabled && this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.openItemMenuEvent.emit(this.tieredMenuService.currentItem);\n event.stopImmediatePropagation();\n }\n break;\n case \"ArrowUp\":\n if (!this.tieredMenuService.currentItem || this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.decrementCurrentItemEvent.emit();\n event.stopImmediatePropagation();\n }\n break;\n case \"ArrowDown\":\n if (!this.tieredMenuService.currentItem || this.items.includes(this.tieredMenuService.currentItem)) {\n this._tieredMenuEventService.incrementCurrentItemEvent.emit();\n event.stopImmediatePropagation();\n }\n break;\n }\n }\n\n public ngOnInit(): void {\n this.tieredMenuService.currentItems = this.items;\n this._subscribeEvents();\n disabledScroll();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _incrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n // Checking if it is the current menu.\n return;\n }\n\n const currentIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) + 1;\n\n if (currentIndex < this.tieredMenuService.currentItems.length) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[currentIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._incrementCurItem();\n }\n }\n\n private _decrementCurItem(): void {\n if (!this.tieredMenuService.currentItem) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[0];\n return;\n // Checking if it is the current menu.\n } else if (!this.items.includes(this.tieredMenuService.currentItem)) {\n return;\n }\n\n const curIndex = this.tieredMenuService.currentItems.indexOf(this.tieredMenuService.currentItem) - 1;\n\n if (curIndex >= 0) {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[curIndex];\n } else {\n this.tieredMenuService.currentItem = this.tieredMenuService.currentItems[this.tieredMenuService.currentItems.length - 1];\n }\n\n if (this.tieredMenuService.currentItem.divider) {\n this._decrementCurItem();\n }\n }\n\n private _createMenu(items: TieredMenuItemInternalData[], position: any): void {\n if (!this._componentRef && items) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n // Setting the menu items.\n this._componentRef.instance.items = items;\n\n // Subscribe menu events.\n this._componentRef.instance.destroyRequest.subscribe((propagate: boolean) => {\n this._destroy(propagate);\n });\n\n this._menuDivElement = domElem.querySelector(\".menu\");\n this._setMenuPosition(position);\n }\n }\n\n private _destroy(propagate = true): void {\n if (this._componentRef !== null) {\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = null;\n this._menuDivElement = null;\n }\n\n if (propagate) {\n this.destroyRequest.emit();\n }\n }\n\n private _setMenuPosition(position: any): void {\n const ITEM_HEIGHT = 37;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n\n if (this._componentRef !== null) {\n const { top, right, bottom, left } = position;\n\n const itemsCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n }, 0);\n\n const dividersCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n }, 0);\n\n // I need to calculate the height of the component because the internal elements have not been created yet.\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + 8;\n const menuWidth = this._menuDivElement.getBoundingClientRect().width;\n\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n if (rightFreeSpace > menuWidth) {\n this._componentRef.instance.left = right;\n } else {\n this._componentRef.instance.left = left - menuWidth;\n }\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(window.innerHeight - menuHeight, window.scrollY);\n } else {\n this._componentRef.instance.top = window.scrollY + top;\n }\n }\n }\n\n private _subscribeEvents(): void {\n // Increment current item event.\n this._tieredMenuEventService.incrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._incrementCurItem();\n });\n // Decrement current item event.\n this._tieredMenuEventService.decrementCurrentItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._decrementCurItem();\n });\n // Select item event.\n this._tieredMenuEventService.selectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: TieredMenuItemInternalData) => {\n if (item.submenu) {\n this._tieredMenuEventService.openItemMenuEvent.emit(item);\n } else if (item.command) {\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n item.command();\n }\n });\n // Close all menus event.\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n this.tieredMenuService.currentItem = null;\n this.tieredMenuService.currentItems = this.tieredMenuService.items;\n this.tieredMenuService.markAllItemsAsClosed(this.tieredMenuService.items);\n enableScroll();\n });\n\n // Open item menu event.\n this._tieredMenuEventService.openItemMenuEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: TieredMenuItemInternalData) => {\n if (this.tieredMenuService.currentItem) {\n if (this.tieredMenuService.currentItem.parent === item) {\n return;\n }\n\n if (!this.tieredMenuService.searchTheHierarchy(this.tieredMenuService.currentItem.parent, item)) {\n let current = this.tieredMenuService.currentItem;\n\n current.isOpen = false;\n\n while (current?.parent !== item.parent) {\n this._tieredMenuEventService.closeItemMenuEvent.emit(current);\n this._changeDetectorRef.detectChanges();\n\n current = current.parent;\n }\n\n if (current) {\n current.isOpen = false;\n }\n }\n }\n\n if (item.submenu && !item.isOpen && this.items.includes(item)) {\n const { top, right, left, bottom } = document.querySelector(`#${item.id}`).getBoundingClientRect();\n const position = { top, right, left, bottom };\n\n this._createMenu(item.submenu, position);\n this.tieredMenuService.currentItems = item.submenu;\n this.tieredMenuService.currentItem = item.submenu[0];\n item.isOpen = true;\n }\n });\n\n // Close item menu event.\n this._tieredMenuEventService.closeItemMenuEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: TieredMenuItemInternalData) => {\n if (this.items.some((i) => i.id === item.id)) {\n if (item.parent) {\n item.parent.isOpen = false;\n } else {\n enableScroll();\n }\n this.tieredMenuService.currentItems = item?.parent?.parent?.submenu || this.tieredMenuService.items;\n this.tieredMenuService.currentItem = item.parent;\n this.destroyRequest.emit(false);\n }\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { TieredMenuDirective } from \"../tiered-menu.directive\";\n\n@Injectable()\nexport class TieredMenuGlobalService {\n lastInstance: TieredMenuDirective;\n}\n","import {\n ApplicationRef,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TieredMenuNestedComponent } from \"./components/tiered-menu-nested/tiered-menu-nested.component\";\nimport { TieredMenuComponent } from \"./components/tiered-menu/tiered-menu.component\";\nimport { TieredMenuItemData } from \"./models/tiered-menu-item-data\";\nimport { TieredMenuEventService } from \"./services/tiered-menu.event.service\";\nimport { TieredMenuGlobalService } from \"./services/tiered-menu.global.service\";\nimport { TieredMenuService } from \"./services/tiered-menu.service\";\nimport { TieredMenuItemInternalData } from \"./models\";\nimport { enableScroll } from \"./utils\";\n\n@Directive({\n selector: \"[sTieredMenu]\",\n providers: [TieredMenuEventService, TieredMenuService],\n})\nexport class TieredMenuDirective implements OnInit, DoCheck, OnDestroy {\n @Input()\n public items: TieredMenuItemData[];\n\n @Input()\n public focusedItem: TieredMenuItemData = undefined;\n\n @Input()\n public triggerEvent: \"click\" | \"hover\" = \"click\";\n\n private _componentRef: ComponentRef<any> = null;\n private _showTimeout?: number;\n private _isNested = false;\n private _isOpen = false;\n private _unsubscribe$ = new Subject<void>();\n private _lastActiveElement: Element;\n private _previousItems: TieredMenuItemData[];\n private _itemsAreValid: boolean;\n\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _appRef: ApplicationRef,\n private readonly _componentFactoryResolver: ComponentFactoryResolver,\n private readonly _injector: Injector,\n private readonly _tieredMenuEventService: TieredMenuEventService,\n private readonly _tieredMenuService: TieredMenuService,\n private readonly _tieredMenuGlobalService: TieredMenuGlobalService,\n private readonly _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n public ngOnInit(): void {\n this._itemsAreValid = !!this.items?.length;\n\n if (!this._itemsAreValid) return;\n\n this._subscribeEvents();\n }\n\n public ngDoCheck(): void {\n if (!this._itemsAreValid) return;\n\n if (!this._previousItems) {\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n let hasChanges = false;\n\n if (this.items.length !== this._previousItems.length) {\n hasChanges = true;\n } else {\n for (let i = 0; i < this.items.length; i++) {\n if (!this._compareItems(this.items[i], this._previousItems[i])) {\n hasChanges = true;\n break;\n }\n }\n }\n\n if (hasChanges) {\n this._updateServiceItems();\n this._changeDetectorRef.detectChanges();\n this._rebuildMenu();\n }\n\n this._previousItems = this._tieredMenuService.cloneItems(this.items);\n }\n\n public ngOnDestroy(): void {\n if (!this._itemsAreValid) return;\n\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n\n this._destroy();\n }\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: MouseEvent): void {\n if (!this._itemsAreValid) return;\n\n if (this.triggerEvent === \"click\" && !this._isOpen) {\n this._lastActiveElement = document.activeElement;\n this._createMenu();\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n private _createMenu(): void {\n this._updateServiceItems();\n\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n this._tieredMenuGlobalService.lastInstance?._destroy();\n this._tieredMenuGlobalService.lastInstance = this;\n\n (this._lastActiveElement as HTMLElement)?.blur();\n this._isOpen = true;\n this._isNested = document.body.clientWidth < 600;\n\n this._isNested ? this._createNestedMenu() : this._createTieredMenu();\n }\n }\n\n private _createTieredMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuComponent);\n this._componentRef = componentFactory.create(this._injector);\n\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n\n this._componentRef.instance.destroyRequest.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._destroy();\n });\n\n this._setMenuPosition();\n }\n }\n\n private _createNestedMenu(): void {\n if (!this._componentRef && this._tieredMenuService.items?.length > 0) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(TieredMenuNestedComponent);\n this._componentRef = componentFactory.create(this._injector);\n this._appRef.attachView(this._componentRef.hostView);\n const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this._setMenuComponentProperties();\n this._setMenuPosition();\n }\n }\n\n private _destroy(): void {\n if (this._componentRef) {\n this._isOpen = false;\n window.clearTimeout(this._showTimeout);\n this._appRef.detachView(this._componentRef.hostView);\n\n this._componentRef.destroy();\n this._componentRef = null;\n\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n this._tieredMenuService.currentItem = this._tieredMenuService.items[0];\n this._tieredMenuEventService.closeAllMenusEvent.emit();\n }\n }\n\n private _setMenuPosition(): void {\n const ITEM_HEIGHT = 37;\n const ITEM_WIDTH = 176;\n const DIVIDER_HEIGHT = 5;\n const PADDING = 8;\n const MARGIN = 4;\n\n if (this._componentRef !== null) {\n this._componentRef.instance.top = 8;\n\n let { bottom, left, right } = this._elementRef.nativeElement.getBoundingClientRect();\n\n const itemsCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return !item.divider ? count + 1 : count;\n }, 0);\n\n const dividersCount = this._componentRef.instance.items?.reduce((count: number, item: TieredMenuItemInternalData) => {\n return item.divider ? count + 1 : count;\n }, 0);\n\n const menuHeight = itemsCount * ITEM_HEIGHT + dividersCount * DIVIDER_HEIGHT + PADDING + MARGIN;\n const rightFreeSpace = window.innerWidth - right;\n const bottomFreeSpace = window.innerHeight - bottom;\n\n this._componentRef.instance.top = bottom;\n this._componentRef.instance.left = left;\n\n if (bottomFreeSpace <= menuHeight) {\n this._componentRef.instance.top = Math.max(scrollY + bottom - menuHeight, 0);\n } else {\n this._componentRef.instance.top = window.scrollY + bottom + MARGIN;\n }\n\n if (rightFreeSpace > 176) {\n this._componentRef.instance.left = window.scrollX + left;\n } else {\n this._componentRef.instance.left = window.scrollX + right - ITEM_WIDTH;\n }\n\n if (this._isNested) {\n this._componentRef.instance.left = MARGIN;\n }\n }\n }\n\n private _setMenuComponentProperties(): void {\n if (this._componentRef != null) {\n this._componentRef.instance.items = this._tieredMenuService.items;\n }\n }\n\n private _subscribeEvents(): void {\n this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {\n this._tieredMenuService.items = this._tieredMenuService.markAllItemsAsClosed(this._tieredMenuService.items);\n this._destroy();\n enableScroll();\n });\n }\n\n private _compareItems(item1: TieredMenuItemData, item2: TieredMenuItemData): boolean {\n return JSON.stringify(item1) === JSON.stringify(item2);\n }\n\n private _rebuildMenu(): void {\n this._destroy();\n }\n\n private _updateServiceItems(): void {\n this._tieredMenuService.items = this._tieredMenuService.normalizeData(this.items);\n this._tieredMenuService.currentItems = this._tieredMenuService.items;\n\n this._tieredMenuService.currentItem =\n this._tieredMenuService.items.find((i) => i.label === this.focusedItem?.label) ?? this._tieredMenuService.items[0];\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TieredMenuDividerComponent } from \"./components/tiered-menu-divider/tiered-menu-divider.component\";\nimport { TieredMenuItemComponent } from \"./components/tiered-menu-item/tiered-menu-item.component\";\nimport { TieredMenuNestedComponent } from \"./components/tiered-menu-nested/tiered-menu-nested.component\";\nimport { TieredMenuComponent } from \"./components/tiered-menu/tiered-menu.component\";\nimport { TieredMenuGlobalService } from \"./services/tiered-menu.global.service\";\nimport { TieredMenuDirective } from \"./tiered-menu.directive\";\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n TieredMenuDirective,\n TieredMenuComponent,\n TieredMenuNestedComponent,\n TieredMenuItemComponent,\n TieredMenuDividerComponent,\n ],\n exports: [TieredMenuDirective],\n providers: [TieredMenuGlobalService],\n})\nexport class TieredMenuModule { }\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { RouterModule } from \"@angular/router\";\n\nimport { TieredMenuModule as PrimengTieredMenu } from \"primeng/tieredmenu\";\n\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { TieredMenuModule } from \"../tiered-menu/tiered-menu.module\";\nimport { ButtonComponent } from \"./button.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, RouterModule, BadgeModule, PrimengTieredMenu, TieredMenuModule, TooltipModule],\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n})\nexport class ButtonModule { }\n","import { AfterViewChecked, Directive, HostListener, Input, OnDestroy, OnInit, Renderer2 } from \"@angular/core\";\nimport { Calendar } from \"primeng/calendar\";\n\n@Directive({\n selector: \"p-calendar[sCalendarMask]\",\n})\nexport class CalendarMaskDirective implements OnInit, OnDestroy, AfterViewChecked {\n SELECTORS = 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n @Input()\n public slotChar = \"_\";\n\n @Input()\n public autoClear = false;\n\n public value: any;\n public input: HTMLInputElement;\n public filled: boolean;\n\n private _mask: string;\n private defs: any;\n private tests: any[];\n private partialPosition: any;\n private firstNonMaskPos: number;\n private lastRequiredNonMaskPos: any;\n private len: number;\n private oldVal: string;\n private buffer: any;\n private defaultBuffer: string;\n private focusText: string;\n private caretTimeoutId: any;\n private androidChrome: boolean;\n private firstTime = true;\n\n private focusListener: () => void;\n private blurListener: () => void;\n private keydownListener: () => void;\n private keypressListener: () => void;\n private inputListener: () => void;\n private pasteListener: () => void;\n\n constructor(\n public host: Calendar,\n public renderer: Renderer2\n ) {}\n\n private setListeners() {\n this.input = this.host.inputfieldViewChild.nativeElement;\n this.value = this.input.value;\n\n this.focusListener = this.renderer.listen(this.input, \"focus\", () => {\n this.onInputFocus();\n });\n\n this.blurListener = this.renderer.listen(this.input, \"blur\", (event: any) => {\n this.onInputBlur(event);\n });\n\n this.keydownListener = this.renderer.listen(this.input, \"keydown\", (event: any) => {\n this.onKeyDown(event);\n });\n\n this.keypressListener = this.renderer.listen(this.input, \"keypress\", (event: any) => {\n this.onKeyPress(event);\n });\n\n this.inputListener = this.renderer.listen(this.input, \"input\", (event: any) => {\n this.onInputChange(event);\n });\n\n this.pasteListener = this.renderer.listen(this.input, \"paste\", (event: any) => {\n this.handleInputChange(event);\n });\n }\n\n public ngOnInit() {\n const ua = navigator.userAgent;\n this.androidChrome = /chrome/i.test(ua) && /android/i.test(ua);\n\n this.createMaskFromDateFormat();\n this.initMask();\n }\n\n get mask(): string {\n return this._mask;\n }\n\n set mask(val: string) {\n this._mask = val;\n\n this.initMask();\n this.writeValue(\"\");\n }\n\n public writeValue(value: any): void {\n this.value = value;\n\n if (this.input) {\n if (this.value == undefined) {\n this.input.value = \"\";\n } else {\n this.input.value = this.value;\n }\n\n this.checkVal();\n this.focusText = this.input.value;\n this.updateFilledState();\n }\n }\n\n public onInputBlur(e: any) {\n this.checkVal();\n this.updateFilledState();\n\n if (this.value != this.focusText) {\n if (\n !this.input.disabled &&\n (this.value === undefined || this.value === null || (this.value as string).indexOf(this.slotChar) >= 0)\n ) {\n this.value = \"\";\n e.target.value = \"\";\n this.host.updateModel(null);\n }\n\n this.updateModel(e);\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"change\", true, false);\n this.input.dispatchEvent(event);\n }\n }\n\n public onKeyDown(e: any) {\n if (this.host.readonlyInput) {\n return;\n }\n\n const k = e.which || e.keyCode;\n const iPhone = /iphone/i.test(navigator.userAgent);\n let pos;\n let begin;\n let end;\n this.oldVal = this.input.value;\n\n // Backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || (iPhone && k === 127)) {\n pos = this.caret();\n begin = pos.begin;\n end = pos.end;\n\n if (end - begin === 0) {\n begin = k !== 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1));\n end = k === 46 ? this.seekNext(end) : end;\n }\n\n this.clearBuffer(begin, end);\n this.shiftL(begin, end - 1);\n this.updateModel(e);\n\n e.preventDefault();\n } else if (k === 13) {\n // Enter\n this.onInputBlur(e);\n this.updateModel(e);\n } else if (k === 27) {\n // Escape\n this.input.value = this.focusText;\n this.caret(0, this.checkVal());\n this.updateModel(e);\n e.preventDefault();\n }\n }\n\n public onKeyPress(e: any) {\n if (this.host.readonlyInput) return;\n\n const k = e.which || e.keyCode;\n const pos = this.caret();\n let p;\n let c;\n let next: any;\n\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32 || (k > 34 && k < 41)) {\n // Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n this.clearBuffer(pos.begin, pos.end);\n this.shiftL(pos.begin, pos.end - 1);\n }\n\n p = this.seekNext(pos.begin - 1);\n if (p < this.len) {\n c = String.fromCharCode(k);\n if (this.tests[p].test(c)) {\n this.shiftR(p);\n\n this.buffer[p] = c;\n this.writeBuffer();\n next = this.seekNext(p);\n\n if (/android/i.test(navigator.userAgent)) {\n // Path for CSP Violation on FireFox OS 1.1\n const proxy = () => {\n this.caret(next);\n };\n\n setTimeout(proxy, 0);\n } else {\n this.caret(next);\n }\n }\n }\n e.preventDefault();\n }\n\n this.updateModel(e);\n this.updateFilledState();\n }\n\n private createCompleteMask(): string {\n switch (this.host.selectionMode) {\n case \"range\":\n return this.mask + ` ${this.host.rangeSeparator} ` + this.mask;\n case \"single\":\n case \"multiple\":\n return this.mask;\n }\n }\n\n public checkVal(allow?: boolean) {\n // Try to place characters where they belong\n const test = this.input.value;\n let lastMatch = -1;\n let i: any;\n let c: any;\n let pos = 0;\n\n for (i = 0; i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (this.tests[i].test(c)) {\n this.buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n this.clearBuffer(i + 1, this.len);\n break;\n }\n } else {\n if (this.buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if (i < this.partialPosition) {\n lastMatch = i;\n }\n }\n }\n if (allow) {\n this.writeBuffer();\n } else if (lastMatch + 1 < this.partialPosition) {\n if (this.autoClear || this.buffer.join(\"\") === this.defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (this.input.value) {\n this.input.value = \"\";\n }\n this.clearBuffer(0, this.len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n this.writeBuffer();\n }\n } else {\n this.writeBuffer();\n this.input.value = this.input.value.substring(0, lastMatch + 1);\n }\n\n return this.partialPosition ? i : this.firstNonMaskPos;\n }\n\n public onInputFocus() {\n if (this.host.readonlyInput) return;\n\n clearTimeout(this.caretTimeoutId);\n let pos: any;\n\n this.focusText = this.input.value;\n\n pos = this.checkVal();\n\n this.caretTimeoutId = setTimeout(() => {\n if (this.input !== document.activeElement) {\n return;\n }\n this.writeBuffer();\n if (pos == this.mask.replace(\"?\", \"\").length) {\n this.caret(0, pos);\n } else {\n this.caret(pos);\n }\n }, 10);\n }\n\n public onInputChange(event: any) {\n if (this.androidChrome) this.handleAndroidInput(event);\n else this.handleInputChange(event);\n }\n\n public handleInputChange(event: any) {\n if (this.host.readonlyInput) return;\n\n setTimeout(() => {\n const pos = this.checkVal(true);\n this.caret(pos);\n this.updateModel(event);\n }, 0);\n }\n\n public updateModel(e: any) {\n const updatedValue = e.target.value;\n if (updatedValue !== null || updatedValue !== undefined) {\n this.value = updatedValue;\n this.host.onUserInput(e);\n }\n }\n\n public updateFilledState() {\n this.filled = this.input && this.input.value != \"\";\n }\n\n public focus() {\n this.input.focus();\n }\n\n private initMask() {\n const completeMask = this.createCompleteMask();\n\n this.tests = [];\n this.partialPosition = completeMask.length;\n this.len = completeMask.length;\n this.firstNonMaskPos = null;\n this.defs = {\n \"9\": \"[0-9]\",\n };\n\n const maskTokens = completeMask.split(\"\");\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c == \"?\") {\n this.len--;\n this.partialPosition = i;\n } else if (this.defs[c]) {\n this.tests.push(new RegExp(this.defs[c]));\n\n if (this.firstNonMaskPos === null) {\n this.firstNonMaskPos = this.tests.length - 1;\n }\n\n if (i < this.partialPosition) {\n this.lastRequiredNonMaskPos = this.tests.length - 1;\n }\n } else {\n this.tests.push(null);\n }\n }\n\n this.buffer = [];\n\n for (let i = 0; i < maskTokens.length; i++) {\n const c = maskTokens[i];\n\n if (c != \"?\") {\n if (this.defs[c]) {\n this.buffer.push(this.getPlaceholder(i));\n } else {\n this.buffer.push(c);\n }\n }\n }\n\n this.defaultBuffer = this.buffer.join(\"\");\n }\n\n private caret(first?: number, last?: number) {\n let range, begin, end;\n\n if (!this.input.offsetParent || this.input !== document.activeElement) {\n return;\n }\n\n if (typeof first == \"number\") {\n begin = first;\n end = typeof last === \"number\" ? last : begin;\n\n if (this.input.setSelectionRange) {\n this.input.setSelectionRange(begin, end);\n } else if (this.input[\"createTextRange\"]) {\n range = this.input[\"createTextRange\"]();\n range.collapse(true);\n range.moveEnd(\"character\", end);\n range.moveStart(\"character\", begin);\n range.select();\n }\n } else {\n if (this.input.setSelectionRange) {\n begin = this.input.selectionStart;\n end = this.input.selectionEnd;\n } else if (document[\"selection\"] && document[\"selection\"].createRange) {\n range = document[\"selection\"].createRange();\n begin = 0 - range.duplicate().moveStart(\"character\", -100000);\n end = begin + range.text.length;\n }\n\n return { begin: begin, end: end };\n }\n }\n\n private getPlaceholder(i: number) {\n if (i < this.slotChar.length) return this.slotChar.charAt(i);\n return this.slotChar.charAt(0);\n }\n\n private seekNext(pos: any) {\n while (++pos < this.len) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private seekPrev(pos: any) {\n while (--pos >= 0 && !this.tests[pos]) {\n if (this.tests[pos]) break;\n }\n return pos;\n }\n\n private shiftL(begin: number, end: number) {\n let i: any;\n let j: any;\n\n if (begin < 0) {\n return;\n }\n\n j = this.seekNext(end);\n\n for (i = begin; i < this.len; i++) {\n if (this.tests[i]) {\n if (j < this.len && this.tests[i].test(this.buffer[j])) {\n this.buffer[i] = this.buffer[j];\n this.buffer[j] = this.getPlaceholder(j);\n } else break;\n\n j = this.seekNext(j);\n }\n }\n this.writeBuffer();\n this.caret(Math.max(this.firstNonMaskPos, begin));\n }\n\n private shiftR(pos: any) {\n let i: any;\n let c = this.getPlaceholder(pos);\n let j: any;\n let t: any;\n\n for (i = pos; i < this.len; i++) {\n if (this.tests[i]) {\n j = this.seekNext(i);\n t = this.buffer[i];\n this.buffer[i] = c;\n\n if (j < this.len && this.tests[j].test(t)) {\n c = t;\n } else break;\n }\n }\n }\n\n private handleAndroidInput(e: any) {\n const curVal = this.input.value;\n const pos = this.caret();\n\n if (this.oldVal && this.oldVal.length && this.oldVal.length > curVal.length) {\n // A deletion or backspace happened\n this.checkVal(true);\n while (pos.begin > 0 && !this.tests[pos.begin - 1]) {\n pos.begin--;\n }\n if (pos.begin === 0) {\n while (pos.begin < this.firstNonMaskPos && !this.tests[pos.begin]) {\n pos.begin++;\n }\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n } else {\n this.checkVal(true);\n\n while (pos.begin < this.len && !this.tests[pos.begin]) {\n pos.begin++;\n }\n\n setTimeout(() => {\n this.caret(pos.begin, pos.begin);\n if (this.isCompleted()) {\n const sentVal = curVal.replace(this.slotChar, \"\"); // Limpa os caracteres placeholders extras caso ele esteja completo\n this.updateCalendarValue(sentVal);\n }\n }, 0);\n }\n }\n\n private updateCalendarValue(sentVal: string) {\n // TODO verificar\n const dateVal = <Date>this.host.parseValueFromString(sentVal);\n if (this.host.isSelectable(dateVal.getDate(), dateVal.getMonth(), dateVal.getFullYear(), false)) {\n this.host.updateModel(sentVal);\n this.host.updateUI();\n }\n }\n\n private clearBuffer(start: any, end: any) {\n let i;\n\n for (i = start; i < end && i < this.len; i++) {\n if (this.tests[i]) {\n this.buffer[i] = this.getPlaceholder(i);\n }\n }\n }\n\n private writeBuffer() {\n this.input.value = this.buffer.join(\"\");\n }\n\n private createMaskFromDateFormat() {\n const calendar = this.host;\n let mask = this.autoClear ? \"?\" : \"\";\n\n if (!calendar.timeOnly) {\n let dateFormat = calendar.dateFormat;\n dateFormat = dateFormat.replace(/y/g, \"yy\");\n mask += dateFormat.replace(/[^/*,.\\-+\\[\\]\\\\]/g, \"9\");\n if (calendar.showTime) {\n mask += \" \";\n }\n }\n\n if (calendar.showTime || calendar.timeOnly) {\n mask += \"99:99\";\n if (calendar.showSeconds) {\n mask += \":99\";\n }\n }\n\n this._mask = mask;\n\n this.initMask();\n }\n\n isCompleted(): boolean {\n for (let i = this.firstNonMaskPos; i <= this.lastRequiredNonMaskPos; i++) {\n if (this.tests[i] && this.buffer[i] === this.getPlaceholder(i)) {\n return false;\n }\n }\n\n return true;\n }\n\n ngAfterViewChecked(): void {\n if (this.host.inputfieldViewChild && this.firstTime) {\n this.firstTime = false;\n this.setListeners();\n this.input.type = \"tel\";\n }\n }\n\n ngOnDestroy(): void {\n if (this.focusListener) this.focusListener();\n if (this.blurListener) this.blurListener();\n if (this.keydownListener) this.keydownListener();\n if (this.keypressListener) this.keypressListener();\n if (this.inputListener) this.inputListener();\n if (this.pasteListener) this.pasteListener();\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeydownEventTest(e: KeyboardEvent) {\n const { key } = e;\n if (key == \"Tab\") {\n // Este código foi implementado para corrigir um problema no componente na v9\n // Deve ser removido assim que atualizarmos o PrimeNG para a v10\n const allFocusableElements = document.querySelectorAll(this.SELECTORS);\n let nextIsFocusable = false;\n let previousFocusable: string;\n let forceCloseModal = true;\n allFocusableElements.forEach((element) => {\n if (!e.shiftKey) {\n if (nextIsFocusable && element.id) {\n this.focusableElement(element.id, forceCloseModal);\n nextIsFocusable = false;\n e.preventDefault();\n return;\n }\n }\n\n let activeTagName = window.document.activeElement.tagName;\n if (e.shiftKey && element.id && element.tagName === \"INPUT\" && activeTagName == \"BUTTON\") {\n previousFocusable = element.id;\n forceCloseModal = false;\n }\n\n if (element.id === this.host.inputId) {\n if (previousFocusable) {\n this.focusableElement(previousFocusable, forceCloseModal);\n e.preventDefault();\n forceCloseModal = true;\n return;\n }\n nextIsFocusable = true;\n } else if (e.shiftKey && element.id) {\n previousFocusable = element.id;\n }\n });\n }\n }\n\n public focusableElement(id: string, hide: boolean) {\n const htmlElement = window.document.getElementById(id);\n htmlElement.focus();\n if (hide) {\n this.host.hideOverlay();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CalendarMaskDirective } from \"./calendar-mask.directive\";\nimport { CommonModule } from \"@angular/common\";\n\n@NgModule({\n declarations: [CalendarMaskDirective],\n imports: [CommonModule],\n exports: [CalendarMaskDirective],\n})\nexport class CalendarMaskModule {}\n","import { Directive, Input, TemplateRef } from \"@angular/core\";\n\n@Directive({\n selector: \"[sTemplate]\",\n})\nexport class TemplateDirective {\n @Input(\"sTemplate\")\n public type: string;\n\n constructor(public readonly template: TemplateRef<any>) {}\n}","import { AfterContentInit, Component, ContentChildren, Input, QueryList, TemplateRef } from \"@angular/core\";\n\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { CardTemplateTypes } from \"./models/card-template-types\";\n\n@Component({\n selector: \"s-card\",\n templateUrl: \"./card.component.html\",\n styleUrls: [\"./card.component.scss\"],\n})\nexport class CardComponent implements AfterContentInit {\n @Input()\n public bannerImage: string;\n\n @Input()\n public fullWidth = false;\n\n public showBanner = false;\n\n @ContentChildren(TemplateDirective)\n public templates: QueryList<TemplateDirective>;\n\n public hasCustomTemplates = false;\n public headerTemplate: TemplateRef<unknown>;\n public bodyTemplate: TemplateRef<unknown>;\n public footerTemplate: TemplateRef<unknown>;\n\n public ngAfterContentInit(): void {\n this._getTemplates();\n this._testLoadImage();\n }\n\n private _getHeaderTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(CardTemplateTypes.Header);\n }\n\n private _getBodyTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(CardTemplateTypes.Body);\n }\n\n private _getFooterTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(CardTemplateTypes.Footer);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private _getTemplates(): void {\n this.headerTemplate = this._getHeaderTemplate();\n this.bodyTemplate = this._getBodyTemplate();\n this.footerTemplate = this._getFooterTemplate();\n\n this.hasCustomTemplates = !!(this.headerTemplate || this.bodyTemplate || this.footerTemplate);\n }\n\n private _testLoadImage(): void {\n const img = new Image();\n img.src = this.bannerImage;\n\n img.onload = () => (this.showBanner = true);\n img.onerror = () => (this.showBanner = false);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TemplateDirective } from \"./template.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TemplateDirective],\n exports: [TemplateDirective],\n})\nexport class TemplateModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { CardComponent } from \"./card.component\";\nimport { TemplateModule } from \"../template/template.module\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [CardComponent],\n exports: [CardComponent, TemplateModule],\n})\nexport class CardModule {}\n","import { Component, ElementRef, Input, QueryList, ViewChildren } from \"@angular/core\";\n\nimport { ChatMessage } from \"./types/chat-message\";\n\n@Component({\n selector: \"s-chat\",\n templateUrl: \"./chat.component.html\",\n styleUrls: [\"./chat.component.scss\"],\n})\nexport class ChatComponent {\n @Input()\n public messages: ChatMessage[] = [];\n\n @ViewChildren(\"messageElements\", { read: ElementRef })\n private messageElements: QueryList<ElementRef<HTMLElement>>;\n\n public ngAfterViewInit(): void {\n this.scrollToBottom();\n\n this.messageElements.changes.subscribe(() => {\n this.scrollToBottom();\n });\n }\n\n private scrollToBottom(): void {\n this.messageElements?.last?.nativeElement.scrollIntoView({ behavior: \"smooth\" });\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { applyMask, MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\n\n@Pipe({\n name: \"localizedBignumber\",\n})\nexport class LocalizedBignumberPipe implements PipeTransform {\n constructor(\n private localeService: LocaleService\n ) {}\n\n public transform(value?: any, options?: MaskConfig): any {\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value?: any, options?: MaskConfig) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const configs: MaskConfig = {\n prefix: options?.prefix ?? localeConfig?.number?.currencySymbol ?? \"R$\",\n thousandsSeparator: options?.thousandsSeparator ?? localeConfig?.number?.thousandsSeparator ?? \".\",\n decimalSeparator: options?.decimalSeparator ?? localeConfig?.number?.decimalSeparator ?? \",\",\n scale: options?.scale ?? 2,\n allowNegative: options?.allowNegative ?? true\n };\n const isNumber = !(new BigNumber(value).isNaN());\n return applyMask(value, configs, isNumber);\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { LocalizedBignumberPipe } from \"./localized-bignumber.pipe\";\n\n@Pipe({\n name: \"localizedBignumberImpure\",\n pure: false,\n})\nexport class LocalizedBignumberImpurePipe extends LocalizedBignumberPipe implements PipeTransform {\n public transform(value?: any, options?: MaskConfig): any {\n return super.transform(value, options);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { INumberLocaleOptions, NumberLocaleOptions } from \"../options\";\n\nexport interface ILocalizedCurrencyPipeOptions extends INumberLocaleOptions {\n scale?: number;\n}\n\nexport class LocalizedCurrencyPipeOptions extends NumberLocaleOptions implements ILocalizedCurrencyPipeOptions {\n public scale = 2;\n\n constructor(config: ILocalizedCurrencyPipeOptions = {}) {\n super(config);\n }\n}\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrency\",\n})\nexport class LocalizedCurrencyPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value?: any, options?: LocalizedCurrencyPipeOptions): any {\n if (!options) {\n options = new LocalizedCurrencyPipeOptions();\n }\n return value !== undefined && value !== null ? this.applyMask(value, options) : of(value);\n }\n\n private applyMask(value: any, options: LocalizedCurrencyPipeOptions) {\n return this.localeService.get().pipe(\n map(localeConfig => {\n const config = { ...localeConfig.number, ...options };\n const { scale, currencySymbol, thousandsSeparator, decimalSeparator } = config;\n\n const rawValue = Number(value).toFixed(scale);\n const onlyNumbers = rawValue.replace(/[^0-9]/g, ``);\n const integerPart =\n onlyNumbers\n .slice(0, onlyNumbers.length - scale)\n .replace(/^0*/g, ``)\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator) || `0`;\n const decimalPart = onlyNumbers.slice(onlyNumbers.length - scale);\n const newValue = scale ? integerPart + decimalSeparator + decimalPart : integerPart;\n const isZero = !Number(onlyNumbers);\n const operator = rawValue.includes(\"-\") && !isZero ? \"-\" : \"\";\n return `${operator}${currencySymbol}${newValue}`;\n })\n );\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedCurrencyPipe, LocalizedCurrencyPipeOptions } from \"./localized-currency.pipe\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({\n name: \"localizedCurrencyImpure\",\n pure: false,\n})\nexport class LocalizedCurrencyImpurePipe extends LocalizedCurrencyPipe implements PipeTransform {\n public transform(value?: any, options: LocalizedCurrencyPipeOptions = new LocalizedCurrencyPipeOptions()): any {\n return super.transform(value, options);\n }\n}\n","import * as moment_ from \"moment\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\nimport { LocaleService } from \"../locale.service\";\nimport { map } from \"rxjs/operators\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedDate\",\n})\nexport class LocalizedDatePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"L LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value).format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedDatePipe } from \"./localized-date.pipe\";\n\n@Pipe({\n name: \"localizedDateImpure\",\n pure: false,\n})\nexport class LocalizedDateImpurePipe extends LocalizedDatePipe implements PipeTransform {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { from } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\n\n/**\n * @deprecated Should use localizedBignumberPipe instead\n */\n@Pipe({ name: \"localizedNumber\" })\nexport class LocalizedNumberPipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n transform(value: number | string, minimumFractionDigits?: number) {\n return from(this.localeService.getLocale()).pipe(\n map((locale: string) => {\n const numericValue = Number(value);\n\n if (!value && isNaN(numericValue)) return;\n\n return new Intl.NumberFormat(locale, {\n minimumFractionDigits: minimumFractionDigits || 0,\n }).format(Number(value));\n })\n );\n }\n}\n\nexport interface Locale {\n localidade?: string;\n tenantLocale?: string;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport * as moment_ from \"moment\";\nimport { map } from \"rxjs/operators\";\n\nimport { LocaleService } from \"../locale.service\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Pipe({\n name: \"localizedTime\",\n})\nexport class LocalizedTimePipe implements PipeTransform {\n constructor(private localeService: LocaleService) {}\n\n public transform(value: any, format: string = \"LTS\"): any {\n return this.localeService.get().pipe(map(() => (value ? moment(value, \"HH:mm:ss\").format(format) : value)));\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { LocalizedTimePipe } from \"./localized-time.pipe\";\n\n@Pipe({\n name: \"localizedTimeImpure\",\n pure: false,\n})\nexport class LocalizedTimeImpurePipe extends LocalizedTimePipe implements PipeTransform {}\n","import { Injectable } from \"@angular/core\";\r\nimport { LocaleService } from \"../../components/locale/locale.service\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class CurrencyService {\r\n currencies = {\r\n KHR: { precision: 12, scale: 2 },\r\n SSP: { precision: 12, scale: 2 },\r\n XCD: { precision: 12, scale: 2 },\r\n EGP: { precision: 12, scale: 2 },\r\n KWD: { precision: 12, scale: 3 },\r\n YER: { precision: 12, scale: 2 },\r\n HUF: { precision: 12, scale: 2 },\r\n MXN: { precision: 12, scale: 2 },\r\n MYR: { precision: 12, scale: 2 },\r\n ZWL: { precision: 12, scale: 2 },\r\n MUR: { precision: 12, scale: 2 },\r\n DKK: { precision: 12, scale: 2 },\r\n NOK: { precision: 12, scale: 2 },\r\n DJF: { precision: 12, scale: 0 },\r\n CRC: { precision: 12, scale: 2 },\r\n BND: { precision: 12, scale: 2 },\r\n NAD: { precision: 12, scale: 2 },\r\n MKD: { precision: 12, scale: 2 },\r\n CDF: { precision: 12, scale: 2 },\r\n GNF: { precision: 12, scale: 0 },\r\n EUR: { precision: 12, scale: 2 },\r\n OMR: { precision: 12, scale: 3 },\r\n CLP: { precision: 12, scale: 0 },\r\n BSD: { precision: 12, scale: 2 },\r\n TOP: { precision: 12, scale: 2 },\r\n IRR: { precision: 12, scale: 2 },\r\n BGN: { precision: 12, scale: 2 },\r\n BZD: { precision: 12, scale: 2 },\r\n CNY: { precision: 12, scale: 2 },\r\n FJD: { precision: 12, scale: 2 },\r\n SRD: { precision: 12, scale: 2 },\r\n SOS: { precision: 12, scale: 2 },\r\n GYD: { precision: 12, scale: 2 },\r\n VUV: { precision: 12, scale: 0 },\r\n MWK: { precision: 12, scale: 2 },\r\n MRU: { precision: 12, scale: 2 },\r\n LSL: { precision: 12, scale: 2 },\r\n ERN: { precision: 12, scale: 2 },\r\n BMD: { precision: 12, scale: 2 },\r\n WST: { precision: 12, scale: 2 },\r\n LRD: { precision: 12, scale: 2 },\r\n GMD: { precision: 12, scale: 2 },\r\n ARS: { precision: 12, scale: 2 },\r\n ZAR: { precision: 12, scale: 2 },\r\n RSD: { precision: 12, scale: 2 },\r\n MDL: { precision: 12, scale: 2 },\r\n USD: { precision: 12, scale: 2 },\r\n QAR: { precision: 12, scale: 2 },\r\n HRK: { precision: 12, scale: 2 },\r\n GIP: { precision: 12, scale: 2 },\r\n NPR: { precision: 12, scale: 2 },\r\n \"002\": { precision: 9, scale: 4 },\r\n PLN: { precision: 12, scale: 2 },\r\n MAD: { precision: 12, scale: 2 },\r\n BAM: { precision: 12, scale: 2 },\r\n BTN: { precision: 12, scale: 2 },\r\n BBD: { precision: 12, scale: 2 },\r\n SHP: { precision: 12, scale: 2 },\r\n LKR: { precision: 12, scale: 2 },\r\n KPW: { precision: 12, scale: 2 },\r\n LAK: { precision: 12, scale: 2 },\r\n SZL: { precision: 12, scale: 2 },\r\n PHP: { precision: 12, scale: 2 },\r\n RWF: { precision: 12, scale: 0 },\r\n ISK: { precision: 12, scale: 0 },\r\n XOF: { precision: 12, scale: 0 },\r\n AUD: { precision: 12, scale: 2 },\r\n NGN: { precision: 12, scale: 2 },\r\n KGS: { precision: 12, scale: 2 },\r\n KYD: { precision: 12, scale: 2 },\r\n PGK: { precision: 12, scale: 2 },\r\n DZD: { precision: 12, scale: 2 },\r\n XAF: { precision: 12, scale: 0 },\r\n PEN: { precision: 12, scale: 2 },\r\n JPY: { precision: 12, scale: 0 },\r\n SBD: { precision: 12, scale: 2 },\r\n UGX: { precision: 12, scale: 0 },\r\n AMD: { precision: 12, scale: 2 },\r\n AED: { precision: 12, scale: 2 },\r\n ALL: { precision: 12, scale: 2 },\r\n XPF: { precision: 12, scale: 0 },\r\n AFN: { precision: 12, scale: 2 },\r\n RON: { precision: 12, scale: 2 },\r\n TND: { precision: 12, scale: 3 },\r\n NZD: { precision: 12, scale: 2 },\r\n JOD: { precision: 12, scale: 3 },\r\n VND: { precision: 12, scale: 0 },\r\n ETB: { precision: 12, scale: 2 },\r\n PYG: { precision: 12, scale: 0 },\r\n JMD: { precision: 12, scale: 2 },\r\n KES: { precision: 12, scale: 2 },\r\n IDR: { precision: 12, scale: 2 },\r\n HKD: { precision: 12, scale: 2 },\r\n BDT: { precision: 12, scale: 2 },\r\n GBP: { precision: 12, scale: 2 },\r\n AOA: { precision: 12, scale: 2 },\r\n PKR: { precision: 12, scale: 2 },\r\n TRY: { precision: 12, scale: 2 },\r\n SLL: { precision: 12, scale: 2 },\r\n CVE: { precision: 12, scale: 2 },\r\n LYD: { precision: 12, scale: 3 },\r\n ILS: { precision: 12, scale: 2 },\r\n UZS: { precision: 12, scale: 2 },\r\n CHF: { precision: 12, scale: 2 },\r\n SVC: { precision: 12, scale: 2 },\r\n BRL: { precision: 12, scale: 2 },\r\n GHS: { precision: 12, scale: 2 },\r\n CUP: { precision: 12, scale: 2 },\r\n FKP: { precision: 12, scale: 2 },\r\n NIO: { precision: 12, scale: 2 },\r\n GEL: { precision: 12, scale: 2 },\r\n TTD: { precision: 12, scale: 2 },\r\n AAA: { precision: 1, scale: 1 },\r\n COP: { precision: 12, scale: 2 },\r\n MGA: { precision: 12, scale: 2 },\r\n INR: { precision: 12, scale: 2 },\r\n KRW: { precision: 12, scale: 0 },\r\n HNL: { precision: 12, scale: 2 },\r\n MMK: { precision: 12, scale: 2 },\r\n TZS: { precision: 12, scale: 2 },\r\n THB: { precision: 12, scale: 2 },\r\n TMT: { precision: 12, scale: 2 },\r\n SAR: { precision: 12, scale: 2 },\r\n UYU: { precision: 12, scale: 2 },\r\n BIF: { precision: 12, scale: 0 },\r\n MVR: { precision: 12, scale: 2 },\r\n RUB: { precision: 12, scale: 2 },\r\n GTQ: { precision: 12, scale: 2 },\r\n SCR: { precision: 12, scale: 2 },\r\n IQD: { precision: 12, scale: 3 },\r\n UAH: { precision: 12, scale: 2 },\r\n BYN: { precision: 12, scale: 2 },\r\n VES: { precision: 12, scale: 2 },\r\n BOB: { precision: 12, scale: 2 },\r\n SGD: { precision: 12, scale: 2 },\r\n ZMW: { precision: 12, scale: 2 },\r\n CZK: { precision: 12, scale: 2 },\r\n TJS: { precision: 12, scale: 2 },\r\n DOP: { precision: 12, scale: 2 },\r\n AZN: { precision: 12, scale: 2 },\r\n PAB: { precision: 12, scale: 2 },\r\n STN: { precision: 12, scale: 2 },\r\n SDG: { precision: 12, scale: 2 },\r\n BWP: { precision: 12, scale: 2 },\r\n BHD: { precision: 12, scale: 3 },\r\n CAD: { precision: 12, scale: 2 },\r\n MNT: { precision: 12, scale: 2 },\r\n MOP: { precision: 12, scale: 2 },\r\n HTG: { precision: 12, scale: 2 },\r\n KZT: { precision: 12, scale: 2 },\r\n LBP: { precision: 12, scale: 2 },\r\n SYP: { precision: 12, scale: 2 },\r\n TWD: { precision: 12, scale: 2 },\r\n MZN: { precision: 12, scale: 2 },\r\n ANG: { precision: 12, scale: 2 },\r\n SEK: { precision: 12, scale: 2 },\r\n KMF: { precision: 12, scale: 0 },\r\n AWG: { precision: 12, scale: 2 },\r\n };\r\n\r\n constructor(private readonly localeService: LocaleService) {}\r\n\r\n getCurrencySymbol({ currency }: { currency: string }): string {\r\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions().locale, {\r\n style: \"currency\",\r\n currency: currency ?? \"BRL\",\r\n currencyDisplay: \"narrowSymbol\",\r\n maximumFractionDigits: 5,\r\n });\r\n\r\n return numberFormat.formatToParts(1).find((x) => x.type === \"currency\")?.value ?? \"\";\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\nimport { LocaleService } from \"../locale.service\";\nimport BigNumber from \"bignumber.js\";\nimport { CurrencyService } from \"../../../utils/currency/currency.service\";\nimport { isNullOrUndefined } from \"../../utils/utils\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NumericService {\n constructor(\n private readonly localeService: LocaleService,\n private readonly currencyService: CurrencyService\n ) {}\n\n /**\n * Wrapper around Intl.NumberFormat that returns the localized value using the user's locale by default(platform's preferential language).\n *\n * This method should only be used after the localeService has been initialized by the host application, either by a resolver or a manual call.\n *\n * Can be overwritten by the provided Intl.NumberFormatOptions.\n *\n * Documentation is available at {@link https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat Intl.NumberFormatOptions}.\n *\n * @param {number | string | BigNumber} value The value to be formatted.\n * @param options Locale and numberFormatOptions that overwrites the default Intl.NumberFormatOptions.\n * @return `string` The formatted value.\n */\n instant(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n }\n ): string {\n if (isNullOrUndefined(value))\n return null;\n\n options = {\n ...options,\n locale: options?.locale ?? this.localeService.getLocaleOptions()?.locale ?? \"pt-BR\",\n numberFormatOptions: {\n useGrouping: true,\n ...options?.numberFormatOptions,\n currency:\n options?.numberFormatOptions?.style === \"currency\" ? (options?.numberFormatOptions?.currency ?? \"BRL\") : undefined,\n currencyDisplay:\n options?.numberFormatOptions?.style === \"currency\"\n ? (options?.numberFormatOptions?.currencyDisplay ?? \"narrowSymbol\")\n : undefined,\n minimumFractionDigits:\n options?.numberFormatOptions?.minimumFractionDigits ??\n this.getCurrencyMinimumFractionDigits(options?.numberFormatOptions?.currency),\n },\n };\n\n options.numberFormatOptions[\"roundingMode\"] = \"trunc\";\n\n // From https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n return new Intl.NumberFormat(options.locale, options.numberFormatOptions).format(\n this.getType(value) === \"number\" || this.getType(value) === \"string\" ? value : ((value as BigNumber).toString() as any)\n );\n }\n\n private getCurrencyMinimumFractionDigits(currency: string): number {\n if (!currency) return null;\n\n return this.currencyService.currencies[currency.toUpperCase()]?.scale;\n }\n\n private getType(value: unknown): string {\n // From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof\n\n if (value === null) {\n return \"null\";\n }\n\n const baseType = typeof value;\n\n // Primitive types\n if (baseType !== \"object\" && baseType !== \"function\") {\n return baseType;\n }\n\n // Symbol.toStringTag often specifies the \"display name\" of the\n // object's class. It's used in Object.prototype.toString().\n const tag = value[Symbol.toStringTag];\n\n if (typeof tag === \"string\") {\n return tag;\n }\n\n // If it's a function whose source code starts with the \"class\" keyword\n if (baseType === \"function\" && Function.prototype.toString.call(value).startsWith(\"class\")) {\n return \"class\";\n }\n\n // The name of the constructor; for example `Array`, `GeneratorFunction`,\n // `Number`, `String`, `Boolean` or `MyCustomClass`\n const className = value.constructor.name;\n\n if (typeof className === \"string\" && className !== \"\") {\n return className;\n }\n\n // At this point there's no robust way to get the type of value,\n // so we use the base implementation.\n return baseType;\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport BigNumber from \"bignumber.js\";\nimport { of } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale.service\";\nimport { NumericService } from \"../services/numeric.service\";\n\n@Pipe({ name: \"numeric\" })\nexport class NumericPipe implements PipeTransform {\n constructor(\n private readonly numericService: NumericService,\n private readonly localeService: LocaleService\n ) {}\n\n transform(\n value: number | string | BigNumber,\n options?: {\n locale?: string;\n numberFormatOptions?: Intl.NumberFormatOptions;\n }\n ) {\n return options?.locale\n ? of(this.numericService.instant(value, options))\n : this.localeService.getLocale().pipe(\n map((locale) =>\n this.numericService.instant(value, {\n locale,\n numberFormatOptions: options?.numberFormatOptions,\n })\n )\n );\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders } from \"@angular/compiler/src/core\";\nimport { NgModule } from \"@angular/core\";\nimport { LocaleService } from \"./locale.service\";\nimport { LocalizedBignumberImpurePipe } from \"./pipes/localized-bignumber-impure.pipe\";\nimport { LocalizedBignumberPipe } from \"./pipes/localized-bignumber.pipe\";\nimport { LocalizedCurrencyImpurePipe } from \"./pipes/localized-currency-impure.pipe\";\nimport { LocalizedCurrencyPipe } from \"./pipes/localized-currency.pipe\";\nimport { LocalizedDateImpurePipe } from \"./pipes/localized-date-impure.pipe\";\nimport { LocalizedDatePipe } from \"./pipes/localized-date.pipe\";\nimport { LocalizedNumberPipe } from \"./pipes/localized-number.pipe\";\nimport { LocalizedTimeImpurePipe } from \"./pipes/localized-time-impure.pipe\";\nimport { LocalizedTimePipe } from \"./pipes/localized-time.pipe\";\nimport { NumericPipe } from \"./pipes/numeric.pipe\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n NumericPipe\n ],\n declarations: [\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n NumericPipe\n ],\n})\nexport class LocaleModule {\n public static forRoot(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n providers: [\n LocaleService,\n LocalizedCurrencyPipe,\n LocalizedDatePipe,\n LocalizedTimePipe,\n LocalizedNumberPipe,\n LocalizedCurrencyImpurePipe,\n LocalizedDateImpurePipe,\n LocalizedTimeImpurePipe,\n LocalizedBignumberPipe,\n LocalizedBignumberImpurePipe,\n NumericPipe\n ],\n };\n }\n\n public static forChild(): ModuleWithProviders {\n return {\n ngModule: LocaleModule,\n };\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\n\nimport { ChatMessage } from \"../../types/chat-message\";\n\n@Component({\n selector: \"s-chat-message\",\n templateUrl: \"./chat-message.component.html\",\n styleUrls: [\"./chat-message.component.scss\"],\n})\nexport class ChatMessageComponent implements OnChanges {\n @Input()\n public message: ChatMessage;\n\n public fileName: string | null = null;\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"message\"]) {\n this.fileName = this.message.attachmentUrl ? this.getFileNameByUrl(this.message.attachmentUrl) : null;\n }\n }\n\n private getFileNameByUrl(path: string): string {\n const match = path.match(/[^\\\\\\/]+$/);\n return match ? match[0] : null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { LocaleModule } from \"../locale/locale.module\";\nimport { ChatComponent } from \"./chat.component\";\nimport { ChatMessageComponent } from \"./components/chat-message/chat-message.component\";\n\n@NgModule({\n imports: [CommonModule, LocaleModule, TranslateModule.forChild()],\n declarations: [ChatComponent, ChatMessageComponent],\n exports: [ChatComponent],\n})\nexport class ChatModule {}\n","import { Component, forwardRef, Input } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { CheckboxData } from \"./models/checkbox-data\";\nimport { CheckboxState } from \"./models/checkbox-state\";\n\n@Component({\n selector: \"s-checkbox\",\n templateUrl: \"./checkbox.component.html\",\n styleUrls: [\"./checkbox.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input()\n public data: CheckboxData;\n\n public state: CheckboxState = {\n checked: false,\n indeterminate: false,\n children: {},\n };\n\n private _onChange: (value: CheckboxState) => void = () => { };\n private _onTouched: () => void = () => { };\n\n public writeValue(value: CheckboxState): void {\n if (value) {\n this.state = value;\n } else {\n this.state = {\n checked: false,\n indeterminate: false,\n disabled: false,\n children: this._initializeChildren(this.data),\n };\n }\n }\n\n public registerOnChange(onChange: (value: CheckboxState) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n private _initializeChildren(item: CheckboxData): { [key: string]: CheckboxState } {\n const childrenState: { [key: string]: CheckboxState } = {};\n if (item.children) {\n item.children.forEach((child) => {\n childrenState[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n });\n }\n return childrenState;\n }\n\n public updateParent(): void {\n if (this.data.children && this.data.children.length > 0) {\n const allChecked = this.data.children.every((child) => this.state.children[child.label]?.checked);\n const someChecked = this.data.children.some(\n (child) => this.state.children[child.label]?.checked || this.state.children[child.label]?.indeterminate\n );\n this.state.checked = allChecked;\n this.state.indeterminate = !allChecked && someChecked;\n }\n this._onChange(this.state);\n this._onTouched();\n }\n\n public onCheckboxChange(): void {\n if (this.state.disabled) return;\n\n this.state.checked = !this.state.checked;\n this.state.indeterminate = false;\n this._toggleChildrenCheck(this.data, this.state, this.state.checked);\n this._onChange(this.state);\n this._onTouched();\n }\n\n public get renderType() {\n return this.data.renderType || \"inline\";\n }\n\n private _toggleChildrenCheck(item: CheckboxData, state: CheckboxState, checked: boolean): void {\n if (item.children?.length) {\n item.children.forEach((child) => {\n if (!state.children[child.label]) {\n state.children[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n }\n state.children[child.label].checked = checked;\n state.children[child.label].indeterminate = false;\n if (child.children) {\n this._toggleChildrenCheck(child, state.children[child.label], checked);\n }\n });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\n\nimport { CheckboxComponent } from \"./checkbox.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [CheckboxComponent],\n exports: [CheckboxComponent],\n})\nexport class CheckboxModule {}\n","export enum Languages {\n TaxCalculation = \"TaxCalculation\"\n}\n","export enum Themes {\n SDSLight = \"SDSLight\"\n}\n","import { Languages } from \"../../models\";\nimport { LinterFacade } from \"../facades/linter-facade\";\n\ntype LinterFacadeFactory = () => LinterFacade; \n\nexport class CoreLinters {\n\n private static _LINTERS: Map<Languages, LinterFacadeFactory> = new Map([]);\n\n public static getLinter(language: Languages): LinterFacade | undefined {\n const languageLinterFactory = CoreLinters._LINTERS.get(language);\n if (languageLinterFactory) return languageLinterFactory();\n }\n}\n","export enum EnumTypeOrder {\n // Tipo de ordenação - Crescente\n ASC = \"ASC\",\n // Tipo de ordenação - Decrescente\n DESC = \"DESC\"\n}\n","export enum MetaType {\n // Entity\n ENTITY = \"ENTITY\",\n // String\n STRING = \"STRING\",\n // Integer\n INTEGER = \"INTEGER\",\n // Double\n DOUBLE = \"DOUBLE\",\n // Long\n LONG = \"LONG\",\n // BigDecimal\n BIGDECIMAL = \"BIGDECIMAL\",\n // UUID\n UUID = \"UUID\",\n // Date\n DATE = \"DATE\",\n // DateTime\n DATETIME = \"DATETIME\",\n // DateTime\n LOCALDATETIME = \"LOCALDATETIME\",\n // Time\n TIME = \"TIME\",\n // Boolean\n BOOLEAN = \"BOOLEAN\",\n // List\n LIST = \"LIST\",\n // Enum\n ENUM = \"ENUM\",\n // CustomExpression\n CUSTOM_EXPRESSION = \"CUSTOM_EXPRESSION\",\n // PublicExpression\n PUBLIC_EXPRESSION = \"PUBLIC_EXPRESSION\"\n}\n","export enum RequestTypes {\n ListContextMetadataById,\n ListBlobMetadata,\n ListExpressionMetadata,\n ListFacadeMetadataNames,\n GetFacadeMetadataByPath,\n}\n","export enum CompletionTypes {\n Keyword = \"keyword\",\n Context = \"context\",\n Expression = \"expression\",\n UserExpression = \"userExpression\",\n Entity = \"entity\",\n FinalValue = \"finalValue\"\n}\n","export enum Keywords {\n SE = \"SE\",\n SENAO = \"SENAO\",\n CONTENHA = \"CONTENHA\",\n ENTAO = \"ENTAO\",\n FIM_SE = \"FIM_SE\",\n NAO = \"NAO\",\n E = \"E\",\n OU = \"OU\"\n}\n","import {\n Observable,\n ReplaySubject,\n Subject\n} from \"rxjs\";\n\nimport {\n EditorOptions,\n Languages,\n Themes\n} from \"../../models\";\nimport { Marker } from \"../models\";\nimport { CoreLinters } from \"../use-cases/core-linters\";\nimport { LinterFacade } from \"./linter-facade\";\n\nexport abstract class CoreFacade {\n\n private $onCoreFinishLoad: ReplaySubject<void> = new ReplaySubject(1);\n private $onCodeChange: Subject<string> = new Subject();\n private $onCodeValidityChange: Subject<boolean> = new Subject();\n private _completionItems: string[] = [];\n private _lastCodeEmitted = \"\";\n private _lastCodeValidityEmitted!: boolean;\n private _linter!: LinterFacade;\n\n public changeEditorOptions(options: EditorOptions): void {\n if (options) {\n if (typeof options !== \"object\") throw new Error(\"Editor's options must be an EditorOptions object\");\n\n this.validateLanguage(options.language);\n this.validateTheme(options.theme);\n this.setLinter(options.language);\n\n this.setCoreEditorOptions(options);\n }\n }\n\n public changeCode(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this.setCode(safeCode);\n }\n }\n\n public abstract initCore(): void;\n public abstract destroyCore(): void;\n\n public abstract setCoreWrapperElement(element: HTMLDivElement): void;\n public abstract setCode(code: string): void;\n\n public getOnCoreFinishLoadObservable(): Observable<void> {\n return this.$onCoreFinishLoad.asObservable();\n }\n\n public getOnCodeChangeObservable(): Observable<string> {\n return this.$onCodeChange.asObservable();\n }\n\n public getOnCodeValidityChangeObservable(): Observable<boolean> {\n return this.$onCodeValidityChange.asObservable();\n }\n\n protected abstract setCoreEditorOptions(options: EditorOptions): void;\n protected abstract highlightCode(markers: Marker[]): void;\n\n protected notifyCoreFinishLoad(): void {\n this.$onCoreFinishLoad.next();\n }\n\n protected notifyCodeChange(code: string): void {\n const safeCode = this.getSafeCode(code);\n if (safeCode !== this._lastCodeEmitted) {\n this._lastCodeEmitted = safeCode;\n this.$onCodeChange.next(safeCode);\n this.validateCode(safeCode);\n }\n }\n\n protected updateCompletionItems(items: string[]): void {\n this._completionItems = items || [];\n this.validateCode(this._lastCodeEmitted);\n }\n\n private setLinter(language: Languages): void {\n this._linter = CoreLinters.getLinter(language);\n }\n\n private async validateCode(code: string): Promise<void> {\n if (this._linter) {\n const markers: Marker[] = await this._linter.lint(code, this._completionItems);\n this.highlightCode(markers);\n this.notifyCodeValidityChange(!markers.length);\n }\n }\n\n private notifyCodeValidityChange(validity: boolean): void {\n if (validity !== this._lastCodeValidityEmitted) {\n this._lastCodeValidityEmitted = validity;\n this.$onCodeValidityChange.next(validity);\n }\n }\n\n private validateLanguage(language: Languages): void {\n const languages = Object.values(Languages);\n if (language && !languages.includes(language)) throw new Error(`The informed language \"${language}\" is not supported`);\n }\n\n private validateTheme(theme: Themes): void {\n const themes = Object.values(Themes);\n if (theme && !themes.includes(theme)) throw new Error(`The informed theme \"${theme}\" is not supported`);\n }\n\n private getSafeCode(code: string): string {\n return typeof code === \"string\" ? code : \"\";\n }\n}\n","import { Component, OnInit, AfterViewInit, OnDestroy, Input, Output, EventEmitter, ViewChild, ElementRef, forwardRef } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { take, takeUntil } from \"rxjs/operators\";\n\nimport { CoreFacade } from \"./core/facades/core-facade\";\nimport { EditorOptions } from \"./models\";\n\n@Component({\n selector: \"s-code-editor\",\n templateUrl: \"./code-editor.component.html\",\n styleUrls: [\"./code-editor.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditorComponent),\n multi: true,\n },\n ],\n})\nexport class CodeEditorComponent implements OnInit, AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input()\n public set editorOptions(options: EditorOptions) {\n this.coreFacade.changeEditorOptions(options);\n }\n\n @Input()\n public set code(code: string) {\n this.coreFacade.changeCode(code);\n }\n\n @Output()\n public codeChange = new EventEmitter<string>();\n\n @Output()\n public isCodeValidChange = new EventEmitter<boolean>();\n\n @Output()\n public onCodeChange = new EventEmitter<string>();\n\n @Output()\n public onComponentFinishLoad = new EventEmitter<void>();\n\n @ViewChild(\"coreWrapper\")\n private coreWrapperElement: ElementRef;\n\n private _ngUnsubscribe = new Subject<void>();\n\n private _onChange: (value: string) => void = () => {};\n private _onTouched: () => void = () => {};\n\n constructor(private readonly coreFacade: CoreFacade) {}\n\n public writeValue(value: string): void {\n this.code = 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 ngOnInit(): void {\n this.coreFacade.initCore();\n this.setupCoreListeners();\n }\n\n public ngAfterViewInit(): void {\n this.setCoreWrapperElement();\n }\n\n public ngOnDestroy(): void {\n this.coreFacade.destroyCore();\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n private setCoreWrapperElement(): void {\n this.coreFacade.setCoreWrapperElement(this.coreWrapperElement.nativeElement as HTMLDivElement);\n }\n\n private setupCoreListeners(): void {\n this.coreFacade\n .getOnCoreFinishLoadObservable()\n .pipe(take(1))\n .subscribe(() => this.onComponentFinishLoad.emit());\n\n this.coreFacade\n .getOnCodeChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((code) => {\n this.codeChange.emit(code);\n this.onCodeChange.emit(code);\n this._onTouched();\n this._onChange(code);\n });\n\n this.coreFacade\n .getOnCodeValidityChangeObservable()\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((validity) => {\n this.isCodeValidChange.emit(validity);\n });\n }\n}\n","import { LRLanguage } from \"@codemirror/language\";\nimport { buildParser } from \"@lezer/generator\";\nimport {\n styleTags,\n tags\n} from \"@codemirror/highlight\";\n\nimport parserGrammar from \"./grammar\";\nimport { Keywords } from \"../../models\";\n\nexport const baseConfigs = LRLanguage.define({\n parser: buildParser(parserGrammar)\n .configure({\n props: [\n styleTags({\n [Object.values(Keywords).join(\" \")]: tags.keyword,\n \"String\": tags.string,\n \"Number\": tags.number,\n })\n ]\n })\n});\n","export default `\n@top Script { statement+ }\n\nstatement[@isGroup=Statement] {\n Keyword |\n String |\n Number\n}\n\n@tokens {\n String { '\"' (![\\\\n\"])* '\"'? }\n\n Number { std.digit+ }\n\n identifierChar { std.asciiLetter | $[_$\\u{a1}-\\u{10ffff}] }\n\n word { identifierChar (identifierChar | std.digit)* }\n\n identifier { word }\n}\n\nKeyword {\n kw<\"SE\">\n kw<\"ENTAO\">\n kw<\"FIM_SE\">\n kw<\"SENAO\">\n kw<\"NAO\">\n kw<\"CONTENHA\">\n kw<\"OU\">\n kw<\"E\">\n}\n\nkw<term> { @specialize[@name={term}]<identifier, term> }\n\n@detectDelim\n`;\n","/**\n * Formats a JSON response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatJsonResponse(response: Response): Promise<any> {\n return response.json();\n}\n","/**\n * Formats a Blob response to a JS object\n * @param response The response to format\n * @returns A JS object based on the response's body\n */\nexport async function formatBlobResponse(response: Response): Promise<any> {\n const textResponse = await (await response.blob()).text();\n return JSON.parse(textResponse);\n}\n","import {\n service,\n user\n} from \"@seniorsistemas/senior-platform-data\";\n\nimport {\n formatJsonResponse,\n formatBlobResponse\n} from \"./json-response-formatters\";\n\n/**\n * Custom HttpClient for cases when is not possible to use the Angular's HttpClient\n */\nexport class CustomHttpClient {\n\n private static _responseFormatterMap: Map<string, (response: Response) => Promise<any>> = new Map([\n [\"application/json\", formatJsonResponse],\n [\"application/octet-stream\", formatBlobResponse]\n ]);\n\n /**\n * Executes a Http Get\n * @param url Url to execute the Get on\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async GET<T>(url: string, init: RequestInit = {}): Promise<T> {\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"GET\"\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Executes a Http Post\n * @param url Url to execute the Post on\n * @param body Info to send to server on Post\n * @param init Optional additional configs\n * @returns Whether a Promise<T> on request success or an error in request fail\n */\n public static async POST<T>(url: string, body: any, init: RequestInit = {}): Promise<T> {\n const headers = new Headers(init.headers);\n headers.append(\"Content-Type\", \"application/json\");\n headers.append(\"Accept\", \"application/json\");\n\n const response = await this.interceptRequest(url, {\n ...init,\n method: \"POST\",\n body: JSON.stringify(body),\n headers,\n });\n\n return this.formatResponse<T>(response);\n }\n\n /**\n * Intercepts the original request to add a required header for Senior in case of a internal request\n * @param url Url from the original request\n * @param originalReq Configs from the original request\n * @returns Whether a Promise<Response> if the request was made successfully or an error\n */\n private static async interceptRequest(url: string, originalReq: RequestInit = {}): Promise<Response> {\n try {\n if (!url.includes(\"://\")) {\n const restUrl = await service.getRestUrl();\n const authHeader = await user.getAuthHeader();\n\n const headers = new Headers(originalReq.headers);\n headers.append(\"Authorization\", authHeader);\n\n const request = new Request(\n restUrl + url,\n {\n ...originalReq,\n headers\n }\n );\n return fetch(request);\n }\n\n return fetch(url, originalReq);\n\n } catch (err) {\n throw new Error(`Error fetching requested URL: ${err}`);\n }\n }\n\n /**\n * Formats the request response to an object<T> or {}\n * @param response The response to be formatted\n * @returns Whether a Promise<T> if the response status is in the range 200-299 an error\n */\n private static async formatResponse<T>(response: Response): Promise<T> {\n const contentType = response.headers.get(\"content-type\");\n const formatter = CustomHttpClient._responseFormatterMap.get(contentType);\n const formattedContentType = formatter ? await formatter(response) : {};\n\n if (response.ok) return formattedContentType as unknown as T;\n throw new Error(JSON.stringify(formattedContentType));\n }\n}\n","export enum MarkerSeverity {\n Error,\n Info,\n Warning\n}\n","import { HostProjectConfigs } from \"../../../../../angular-components.module\";\nimport { Translations } from \"./models\";\n\n/**\n * Custom translator for cases when is not possible to use the \"TranslateService\" from \"@ngx-translate/core\"\n */\nexport class CustomTranslationsService {\n\n private static _translations: Translations = {};\n private static _TRANSLATION_PREFIX = \"\";\n\n /**\n * Method used to get the translation for an key based on the host project's translations. Always use the first available language\n * @param key Key used to search the translation\n * @returns The translation for the informed key or the key in case there is no translation\n */\n public static translate(key: string): string {\n if (key === undefined || key === null) return \"\";\n const translationKey = `${CustomTranslationsService._TRANSLATION_PREFIX}${key}`;\n const firstLanguageTranslations = Object.values(CustomTranslationsService._translations)[0] ?? {};\n return firstLanguageTranslations[translationKey] ?? translationKey;\n }\n\n /**\n * Method used to set the translations that will be used as base when calling the \"translate\" method\n * @param translations Translations to use as base\n */\n public static setTranslations(translations: Translations): void {\n CustomTranslationsService._translations = translations ?? {};\n }\n\n /**\n * Method used to set the prefix that will be used when calling the \"translate\" method\n * @param hostProjectConfigs The host project's configs used to create the prefix\n */\n public static setTranslationsPrefix(hostProjectConfigs: HostProjectConfigs): void {\n const { domain, service } = hostProjectConfigs ?? {};\n const prefix = `${domain}.${service}.`;\n CustomTranslationsService._TRANSLATION_PREFIX = prefix;\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class AngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<AngularComponentsModule> {\n return {\n ngModule: AngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","import {\n NgModule,\n Inject\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../../../angular-components.module\";\nimport { CustomTranslationsService } from \"./index\";\n\n/**\n * Responsible for setting up the translations that will be used by the \"CustomTranslationsService\".\n * Uses the host project's translations set by using the \"TranslationsModule\" from \"@seniorsistemas/platform-components\"\n */\n@NgModule()\nexport class CustomTranslationsModule {\n\n constructor (\n private readonly translate: TranslateService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {\n this.factoryTranslations(this.translate, this.hostProjectConfigs);\n }\n\n private factoryTranslations(translate: TranslateService, hostProjectConfigs: HostProjectConfigs): void {\n CustomTranslationsService.setTranslations(translate.translations);\n CustomTranslationsService.setTranslationsPrefix(hostProjectConfigs);\n }\n}\n","import { Diagnostic } from \"@codemirror/lint\";\n\nimport { DiagnosticSeverity } from \"../models\";\nimport {\n Marker,\n MarkerSeverity\n} from \"../../../../core/models\";\n\nconst diagnosticSeverityInMarkerSeverityMap: Map<number, DiagnosticSeverity> = new Map([\n [MarkerSeverity.Error, \"error\"],\n [MarkerSeverity.Info, \"info\"],\n [MarkerSeverity.Warning, \"warning\"]\n]);\n\nexport function convertMarkersToDiagnostics(markers: Marker[], textLength: number): Diagnostic[] {\n return markers.map(marker => ({\n from: marker.start || 0,\n to: marker.end || textLength,\n message: marker.message ?? \"\",\n severity: diagnosticSeverityInMarkerSeverityMap.get(marker.severity) ?? \"error\"\n }));\n}\n","import { CustomHttpClient } from \"../../../../../../utils\";\nimport {\n ListContextMetadataByIdRequest,\n ListContextMetadataByIdResponse,\n ListExpressionMetadataRequest,\n ListExpressionMetadataResponse,\n ListFacadeMetadataNamesRequest,\n ListFacadeMetadataNamesResponse,\n GetFacadeMetadataByPathRequest,\n GetFacadeMetadataByPathResponse,\n} from \"../../models\";\n\nexport class AutocompleteService {\n private static BASE_URL = \"platform/rule_metadata\";\n\n public static async listContextMetadataById(request: ListContextMetadataByIdRequest, abortSignal: AbortSignal): Promise<ListContextMetadataByIdResponse> {\n return CustomHttpClient.POST<ListContextMetadataByIdResponse>(\n `${AutocompleteService.BASE_URL}/queries/listContextMetadataById`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listExpressionMetadata(request: ListExpressionMetadataRequest, abortSignal: AbortSignal): Promise<ListExpressionMetadataResponse> {\n return CustomHttpClient.POST<ListExpressionMetadataResponse>(\n `${AutocompleteService.BASE_URL}/queries/listExpressionMetadata`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async listFacadeMetadataNames(request: ListFacadeMetadataNamesRequest, abortSignal: AbortSignal): Promise<ListFacadeMetadataNamesResponse> {\n return CustomHttpClient.POST<ListFacadeMetadataNamesResponse>(\n `${AutocompleteService.BASE_URL}/queries/listFacadeMetadataNames`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n\n public static async getFacadeMetadataByPath(request: GetFacadeMetadataByPathRequest, abortSignal: AbortSignal): Promise<GetFacadeMetadataByPathResponse> {\n return CustomHttpClient.POST<GetFacadeMetadataByPathResponse>(\n `${AutocompleteService.BASE_URL}/queries/getFacadeMetadataByPath`,\n request,\n {\n signal: abortSignal\n }\n );\n }\n}\n","import {\n EditorState,\n Extension,\n StateField\n} from \"@codemirror/state\";\nimport { showTooltip, Tooltip } from \"@codemirror/tooltip\";\n\nimport { CodeMirror6Core } from \"../../../../../../codemirror-6-core\";\nimport { style } from \"./autocomplete-state-wrapper-style\";\n\nlet htmlElementToBeWrapped: HTMLElement = null;\n\n/**\n * Adds a view updates's listener that creates an state over the autocomplete\n * @returns An extension containing everything needed to listen the updates and create the autocomplete's state\n */\n export function autocompleteStateWrapper(): Extension {\n return [\n autocompleteStateWrapperStateField(),\n style()\n ];\n}\n\n/**\n * Shows a state on a non-clickable autocomplete item's format with an HTMLElement inside\n * @param element The HTMLElement to show inside the state\n */\nexport function showAutocompleteStateWrapper(element: HTMLElement): void {\n htmlElementToBeWrapped = element;\n CodeMirror6Core.updateEditorView();\n}\n\n/**\n * Removes a possible showed autocomplete state\n */\nexport function hideAutocompleteStateWrapper(): void {\n htmlElementToBeWrapped = null;\n CodeMirror6Core.updateEditorView();\n}\n\n/*\n * Creates and returns a StateField responsible for listening the view's change and to add the autocomplete state's wrapper\n */\nfunction autocompleteStateWrapperStateField(): StateField<Tooltip> {\n return StateField.define({\n create: getAutocompleteStateWrapper,\n update(_, transaction) {\n return getAutocompleteStateWrapper(transaction.state);\n },\n provide(field) {\n return showTooltip.compute([field], state => state.field(field));\n }\n });\n}\n\n/*\n * Function responsible for creating the state's wrapper and returning the same as a Tooltip from \"@codemirror/tooltip\";\n * Only creates the Tooltip if the theres is element on the \"htmlElementToBeWrapped\" variable;\n * The same will also be removed when any view update is emitted;\n */\nfunction getAutocompleteStateWrapper(state: EditorState): Tooltip {\n if (!htmlElementToBeWrapped) return;\n\n const htmlElementToBeWrappedString = htmlElementToBeWrapped.outerHTML;\n const stateWrapper: Tooltip = {\n pos: state.selection.ranges[0].head,\n create: () => ({ dom: getAutocompleteStateWrapperDomElement(htmlElementToBeWrappedString) })\n };\n\n htmlElementToBeWrapped = null;\n return stateWrapper;\n}\n\nfunction getAutocompleteStateWrapperDomElement(elementToBeWrappedString: string): HTMLElement {\n const wrapperDiv = document.createElement(\"div\");\n wrapperDiv.className = \"cm-tooltip-autocomplete cm-tooltip\";\n wrapperDiv.innerHTML =\n `\n <ul class=\"s-code-editor-taxCalculation-autocomplete-ul\">\n <li class=\"s-code-editor-taxCalculation-autocomplete-li\">\n ${elementToBeWrappedString}\n </li>\n </ul>\n\n `;\n\n return wrapperDiv;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteLoadingStateHTMLElement!: HTMLElement;\n\n/**\n * Adds a loading-state over the autocomplete\n * @returns An extension containing everything needed to add the loading-state\n */\nexport function autocompleteLoadingState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the loading state on the autocomplete\n */\n/*\n * Must set the \"autocompleteLoadingStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteLoadingState(): void {\n if (!autocompleteLoadingStateHTMLElement) {\n autocompleteLoadingStateHTMLElement = getAutocompleteLoadingStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteLoadingStateHTMLElement);\n}\n\nfunction getAutocompleteLoadingStateHTMLElement(): HTMLElement {\n const loadingStateSpanWrapper = document.createElement(\"span\");\n loadingStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_fetching_suggestions\");\n\n return loadingStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\n\nimport { CustomTranslationsService } from \"../../../../../../../utils\";\nimport { autocompleteStateWrapper, showAutocompleteStateWrapper } from \"./autocomplete-state-wrapper/autocomplete-state-wrapper\";\n\nlet autocompleteEmptyStateHTMLElement!: HTMLElement;\n\n/**\n * Adds an empty-state over the autocomplete\n * @returns An extension containing everything needed to add the empty-state\n */\nexport function autocompleteEmptyState(): Extension {\n return [autocompleteStateWrapper()];\n}\n\n/**\n * Activates the empty-state on the autocomplete\n */\n/*\n * Must set the \"autocompleteEmptyStateHTMLElement\" here for when the document is loaded we do not have\n * yet the \"CustomTranslationsService\" ready\n */\nexport function showAutocompleteEmptyState(): void {\n if (!autocompleteEmptyStateHTMLElement) {\n autocompleteEmptyStateHTMLElement = getAutocompleteEmptyStateHTMLElement();\n }\n\n showAutocompleteStateWrapper(autocompleteEmptyStateHTMLElement);\n}\n\nfunction getAutocompleteEmptyStateHTMLElement(): HTMLElement {\n const emptyStateSpanWrapper = document.createElement(\"span\");\n emptyStateSpanWrapper.innerText = CustomTranslationsService.translate(\"core_language_tax_calculation_no_suggestions\");\n\n return emptyStateSpanWrapper;\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to autocomplete's state-wrapper\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".s-code-editor-taxCalculation-autocomplete-ul\": {\n \"padding\": \".75rem !important\",\n },\n\n \".s-code-editor-taxCalculation-autocomplete-li\": {\n cursor: \"default !important\",\n \"line-height\": \"1.375em !important\",\n },\n });\n}\n","import { TaxCalculationConfigs } from \"./models\";\n\nexport * from \"./models/interfaces/tax-calculation-configs\";\n\nexport class TaxCalculationLanguageConfigs {\n\n private static CONFIGS: TaxCalculationConfigs = { contexts: [] };\n\n public static setConfigs(configs: TaxCalculationConfigs): void {\n TaxCalculationLanguageConfigs.CONFIGS = JSON.parse(JSON.stringify(configs));\n }\n\n public static getConfigs(): TaxCalculationConfigs {\n return TaxCalculationLanguageConfigs.CONFIGS;\n }\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the autocomplete\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \".cm-completionIcon\": {\n \"font-family\": \"'Font Awesome 5 Pro'\",\n \"font-weight\": \"900\",\n },\n\n \".cm-completionIcon-keyword::after\": {\n \"content\": getIconBasedOnUnicode(\"f084\"),\n },\n\n \".cm-completionIcon-context::after\": {\n \"content\": getIconBasedOnUnicode(\"f466\"),\n },\n\n \".cm-completionIcon-expression::after\": {\n \"content\": getIconBasedOnUnicode(\"f505\"),\n },\n\n \".cm-completionIcon-userExpression::after\": {\n \"content\": getIconBasedOnUnicode(\"f4ff\"),\n },\n\n \".cm-completionIcon-entity::after\": {\n \"content\": getIconBasedOnUnicode(\"f126\"),\n },\n\n \".cm-completionIcon-finalValue::after\": {\n \"content\": getIconBasedOnUnicode(\"f192\"),\n },\n });\n}\n\nfunction getIconBasedOnUnicode(unicode: string): string {\n return `\"\\\\${unicode}\"`;\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport {\n autocompletion,\n Completion,\n CompletionContext,\n CompletionResult,\n pickedCompletion,\n startCompletion\n} from \"@codemirror/autocomplete\";\n\nimport { CustomTranslationsService } from \"../../../../../../utils\";\nimport { CodeMirror6Core } from \"../../../../codemirror-6-core\";\nimport { isCurrentPositionInsideString } from \"../../../../utils\";\nimport { AutocompleteService } from \"./autocomplete.service\";\nimport {\n autocompleteLoadingState,\n showAutocompleteLoadingState,\n autocompleteEmptyState,\n showAutocompleteEmptyState\n} from \"./autocomplete-states\";\nimport {\n TaxCalculationConfigs,\n RequestTypes,\n Response,\n SafeRequest,\n SafeResponse,\n ListContextMetadataByIdResponse,\n CompletionTypes,\n ListExpressionMetadataResponse,\n MetaType,\n GetFacadeMetadataByPathResponse,\n ListFacadeMetadataNamesResponse,\n Keywords,\n} from \"../../models\";\nimport {\n getLanguageConfigs,\n getSafeResponse\n} from \"../../utils\";\nimport { style } from \"./autocomplete-style\";\n\n/**\n * Adds an autocomplete to the editor\n * @returns An extension containing everything needed to create the autocomplete\n */\nexport function autocomplete (): Extension {\n return [\n autocompletion({ override: [getCompletionResults] }),\n autocompleteLoadingState(),\n autocompleteEmptyState(),\n style(),\n ];\n}\n\nconst TRANSLATION_PREFIX = \"core_language_tax_calculation\";\nlet completionResults!: CompletionResult;\n\n/*\n * A function to be called when a key is pressed, the ctrl+space is triggered or when the search for completionResults is done.\n * If there is a completionResult, returns it, otherwise starts a new async search.\n * Will only execute the autocompletion if the current cursor position is not inside a string\n */\nfunction getCompletionResults(context: CompletionContext): CompletionResult {\n const isCursorInsideString = isCurrentPositionInsideString(context.state.doc.toString().substring(0, context.pos));\n if (isCursorInsideString) return;\n\n if (completionResults) {\n const finalCompletionResults: CompletionResult = { ...completionResults };\n const codeLength = context.state.doc.toString().length;\n finalCompletionResults.from = finalCompletionResults.from > codeLength\n ? codeLength\n : finalCompletionResults.from;\n completionResults = null;\n return finalCompletionResults;\n }\n startCompletionResultsSearch(context);\n}\n\nlet cancelLastCompletionSearch: () => void = () => {};\nlet codeMirrorViewElement!: HTMLElement;\n\n/*\n * Starts a new completionResults's async search.\n * Avoids the last search to be finished by calling the \"cancelLastCompletionSearch\" callback function\n */\nfunction startCompletionResultsSearch(context: CompletionContext): void {\n const token = new AbortController();\n setTimeout(() => {\n if (!token.signal.aborted) {\n showAutocompleteLoadingState();\n searchCompletionResults(context, token);\n }\n }, 500);\n\n /*\n * IMPORTANT: The following lines MUST be the way they are!\n * Here is being add the listener to any keydown/click event so when any key is downed or mouse clicked, we cancel the last request.\n * We do this to not show to the user a completionItem in an incorrect place of text, that can be done by either pressing the\n * arrows, home, end, backspace and etc. The flow is:\n * 1. We add an eventListener to keydown/click when the autocompletion's request is triggered;\n * 2. When any key/click is pressed, we remove the listener and cancel the last request by changing the isSearchCanceled on token object\n * to true;\n * 3. If any key that requires autocompletion is triggered, the flow repeats;\n */\n codeMirrorViewElement = CodeMirror6Core.getEditorView().contentDOM;\n\n cancelLastCompletionSearch = () => {\n codeMirrorViewElement.removeEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.removeEventListener(\"click\", cancelLastCompletionSearch);\n token.abort();\n };\n\n codeMirrorViewElement.addEventListener(\"keydown\", cancelLastCompletionSearch);\n codeMirrorViewElement.addEventListener(\"click\", cancelLastCompletionSearch);\n}\n\n/*\n * Requests the necessary items to fill the completionResults, although it only really opens the autocomplete\n * box (by calling the \"startCompletion()\", that calls the \"getCompletionResults\") if the current search was not cancelled\n * by a new one\n */\nasync function searchCompletionResults(context: CompletionContext, token: AbortController): Promise<void> {\n const codeBeforeCursor = context?.state?.doc?.toString().substring(0, context?.pos ?? 0) ?? \"\";\n const filter = getFilter(codeBeforeCursor);\n const path = getPath(codeBeforeCursor, filter.length);\n const requests: SafeResponse[] = getRequestsBasedOnPath(path, filter, token.signal);\n\n Promise\n .all(requests)\n .then(responses => {\n if (!token.signal.aborted) {\n const completions = [].concat(\n getKeywordsCompletions(path),\n getContextsCompletions(responses),\n getExpressionsCompletions(responses),\n getEntitiesCompletions(responses)\n );\n const filteredCompletions: Completion[] = getFilteredCompletions(completions, filter);\n\n if (filteredCompletions.length) {\n const formattedCompletions: Completion[] = getFormattedCompletions(filteredCompletions, filter);\n const sortedCompletions: Completion[] = getSortedCompletions(formattedCompletions);\n\n completionResults = {\n from: context.pos,\n filter: false,\n options: sortedCompletions\n };\n startCompletion(CodeMirror6Core.getEditorView());\n\n } else {\n showAutocompleteEmptyState();\n }\n\n }\n });\n}\n\n/*\n * Returns the filter in the code written.\n * For example in the code \"controladoria.empresa\", \"empresa\" would be the filter\n * and in \"controladoria\", \"controladoria\" would be the filter.\n * Allows only alphanumerics, underscore and hashtag on filter's start.\n * Does not allow spaces\n */\nfunction getFilter(string: string): string {\n if (string === undefined || string === null) return \"\";\n\n const filter = string.match(/(#|\\.|)\\w*$/)?.[0] ?? \"\";\n return filter.replace(\".\", \"\").trim();\n}\n\n/*\n * Returns the path in the code written based on filter.\n * For example in the code \"controladoria.empresa\", \"controladoria\" would be the path\n * and in \"controladoria\", \"\" would be the path.\n * Does not allow spaces\n */\nfunction getPath(string: string, filterLength: number): string {\n if (string === undefined || string === null) return \"\";\n\n const stringWithoutPath = string.substring(0, string.length - filterLength);\n const path = stringWithoutPath.match(/(\\w*\\.)*$/)?.[0] ?? \"\";\n return path.replace(/\\.$/, \"\");\n}\n\nfunction getRequestsBasedOnPath(path: string, filter: string, abortSignal: AbortSignal): SafeResponse[] {\n const languageConfigs: TaxCalculationConfigs = getLanguageConfigs();\n const requests: SafeRequest[] = [];\n\n if (path === \"\") {\n requests.push({\n requestType: RequestTypes.ListContextMetadataById,\n request: AutocompleteService.listContextMetadataById(\n {\n id: languageConfigs.contexts,\n },\n abortSignal\n )\n });\n requests.push({\n requestType: RequestTypes.ListExpressionMetadata,\n request: AutocompleteService.listExpressionMetadata(\n {\n context: languageConfigs.contexts,\n subcontext: languageConfigs.subContexts ?? [],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 20\n }\n },\n abortSignal\n )\n });\n\n } else if (path.includes(\".\")) {\n const splittedPath = path.split(\".\");\n requests.push({\n requestType: RequestTypes.GetFacadeMetadataByPath,\n request: AutocompleteService.getFacadeMetadataByPath(\n {\n context: splittedPath[0],\n entityName: splittedPath[1],\n fields: splittedPath[2] === undefined ? undefined : splittedPath.slice(2)\n },\n abortSignal\n )\n });\n\n } else {\n requests.push({\n requestType: RequestTypes.ListFacadeMetadataNames,\n request: AutocompleteService.listFacadeMetadataNames(\n {\n context: [path],\n name: filter,\n pageRequest: {\n offset: 0,\n size: 30\n }\n },\n abortSignal\n )\n });\n }\n\n return requests.map(request => getSafeResponse(request));\n}\n\nfunction getKeywordsCompletions(path: string): Completion[] {\n if (path !== \"\") return [];\n\n const completions = [\n {\n label: Keywords.SE,\n apply: \"SE ()\\nENTAO\\n\\tacao\\nFIM_SE\",\n },\n {\n label: Keywords.SENAO,\n apply: \"SENAO\\n\\tacao\",\n },\n {\n label: Keywords.CONTENHA,\n apply: \"CONTENHA(condicao)\",\n },\n {\n label: Keywords.ENTAO,\n apply: \"ENTAO\\n\\tacao\",\n },\n {\n label: Keywords.FIM_SE,\n apply: \"FIM_SE \",\n },\n {\n label: Keywords.NAO,\n apply: \"NAO \",\n },\n {\n label: Keywords.E,\n apply: \"E \",\n },\n {\n label: Keywords.OU,\n apply: \"OU \"\n },\n ];\n\n return completions.map(completionItem => ({\n ...completionItem,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_keyword`),\n type: CompletionTypes.Keyword\n }));\n}\n\nfunction getContextsCompletions(responses: Response<any>[]): Completion[] {\n const contextsResponse: Response<ListContextMetadataByIdResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListContextMetadataById\n );\n\n if (contextsResponse) {\n return (contextsResponse.response?.contextMetadata ?? [])\n .map(contextMetadata => ({\n label: contextMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_context`),\n apply: contextMetadata.name,\n type: CompletionTypes.Context\n }));\n }\n\n return [];\n}\n\nfunction getExpressionsCompletions(responses: Response<any>[]): Completion[] {\n const expressionsResponse: Response<ListExpressionMetadataResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListExpressionMetadata\n );\n\n if (expressionsResponse) {\n return (expressionsResponse.response?.expressionMetadata ?? [])\n .map(expressionMetadata => ({\n label: expressionMetadata.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n expressionMetadata.type === MetaType.PUBLIC_EXPRESSION\n ? \"senior_expression\"\n : \"user_expression\"\n }`),\n apply: expressionMetadata.name,\n info: expressionMetadata.description,\n type: expressionMetadata.type === MetaType.PUBLIC_EXPRESSION ? CompletionTypes.Expression : CompletionTypes.UserExpression\n }));\n }\n\n return [];\n}\n\nfunction getEntitiesCompletions(responses: Response<any>[]): Completion[] {\n const facadesResponseFromList: Response<ListFacadeMetadataNamesResponse> = responses.find(response =>\n response?.requestType === RequestTypes.ListFacadeMetadataNames\n );\n\n if (facadesResponseFromList) {\n return (facadesResponseFromList.response?.facadeMetadataNames ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_entity`),\n apply: facade.name,\n type: CompletionTypes.Entity\n }));\n }\n\n const facadesResponseFromGet: Response<GetFacadeMetadataByPathResponse> = responses.find(response =>\n response?.requestType === RequestTypes.GetFacadeMetadataByPath\n );\n\n if (facadesResponseFromGet) {\n return (facadesResponseFromGet.response?.facadeMetadata?.fields ?? [])\n .map(facade => ({\n label: facade.name,\n detail: CustomTranslationsService.translate(`${TRANSLATION_PREFIX}_${\n facade.type === MetaType.ENTITY\n ? \"entity\"\n : \"field\"\n }`),\n apply: facade.name,\n type: facade.type === MetaType.ENTITY ? CompletionTypes.Entity : CompletionTypes.FinalValue\n }));\n }\n\n return [];\n}\n\n/*\n * Filtering the completions to only deal with the necessary items\n */\nfunction getFilteredCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .filter(completionItem =>\n completionItem\n .label\n .toLowerCase()\n .startsWith(filter.toLowerCase()));\n}\n\n\n/*\n * Overwriting the completions's apply to remove the entire current written value and apply the the entire completion's apply \n */\nfunction getFormattedCompletions(completions: Completion[], filter: string): Completion[] {\n return completions\n .map(completionItem => ({\n ...completionItem,\n apply: getCompletionApply(filter, `${completionItem.apply}`)\n }));\n}\n\nfunction getCompletionApply(filter: string, oldApplyText: string): ((view: EditorView, completion: Completion, from: number, to: number) => void) {\n return (view: EditorView, completion: Completion, from: number, to: number): void => {\n const newFrom = from - filter.length;\n \n view.dispatch({\n changes: {\n from: newFrom,\n to,\n insert: oldApplyText\n },\n selection: {\n anchor: newFrom + oldApplyText.length\n },\n userEvent: \"input.complete\",\n annotations: pickedCompletion.of(completion)\n });\n } \n}\n\nconst completionsSortOrder: CompletionTypes[] = [\n CompletionTypes.Keyword,\n CompletionTypes.Context,\n CompletionTypes.UserExpression,\n CompletionTypes.Expression,\n CompletionTypes.Entity,\n CompletionTypes.FinalValue\n];\n\n/*\n * Sorts the completions following the \"completionsSortOrder\" priority order\n */\nfunction getSortedCompletions(completions: Completion[]): Completion[] {\n return completions.sort((x: Completion, y: Completion) => {\n const xPriority = completionsSortOrder.indexOf(x.type as CompletionTypes);\n const yPriority = completionsSortOrder.indexOf(y.type as CompletionTypes);\n\n return xPriority - yPriority;\n });\n}\n","export function isCurrentPositionInsideString(stringBeforeCurrentPosition: string): boolean {\n const doubleQuotesQuantity = stringBeforeCurrentPosition.match(/\"/g)?.length || 0;\n return doubleQuotesQuantity % 2 !== 0;\n}\n","import { TaxCalculationConfigs } from \"../models\";\nimport { TaxCalculationLanguageConfigs } from \"../tax-calculation-language-configs\";\n\n/**\n * Gets the configs for the TaxCalculationLanguage\n * @returns The configs\n */\nexport function getLanguageConfigs(): TaxCalculationConfigs {\n const configs = TaxCalculationLanguageConfigs.getConfigs();\n if (!configs.contexts?.length) throw new Error(\n \"In order to use the TaxCalculation Language's autocomplete, \"\n + \"one must inform at least one context by using the \"\n + \"'TaxCalculationLanguageConfigs.setConfigs()'\"\n );\n return configs;\n}\n","import {\n SafeRequest,\n Response\n} from \"../models\";\n\n/**\n * Wraps the request to return the same with an identification or undefined in case of error, so the promise will\n * always trigger the \"then\"\n * @param request Request to wrap\n * @returns The typed request's response\n */\nexport async function getSafeResponse(request: SafeRequest): Promise<Response> {\n try {\n return {\n ...request,\n response: await request.request\n };\n } catch (_) {}\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { baseConfigs } from \"./extensions/base-configs/base-configs\";\nimport { autocomplete } from \"./extensions/autocomplete/autocomplete\";\n\nexport function TaxCalculation(): LanguageSupport {\n return new LanguageSupport(\n baseConfigs,\n [\n autocomplete(),\n ]\n );\n}\n","import { LanguageSupport } from \"@codemirror/language\";\n\nimport { Languages } from \"../../../../models\";\n\n/* Languages */\nimport { TaxCalculation } from \"./tax-calculation/tax-calculation.language\";\n\ntype LanguageSupportFactory = () => LanguageSupport\n\nexport class EditorLanguages {\n\n private static _LANGUAGES: Map<Languages, LanguageSupportFactory> = new Map([\n [Languages.TaxCalculation, TaxCalculation]\n ]);\n\n public static getLanguage(language: Languages): LanguageSupport {\n const languageSupportFactory = EditorLanguages._LANGUAGES.get(language);\n if (languageSupportFactory) return languageSupportFactory();\n return [] as unknown as LanguageSupport;\n }\n}\n","import { HighlightStyle, tags } from \"@codemirror/highlight\";\n\nexport const SDSLightHighlightStyle: HighlightStyle = HighlightStyle.define([\n {\n tag: tags.keyword,\n color: \"#008080\",\n },\n {\n tag: tags.string,\n color: \"#9C3A3A\",\n },\n {\n tag: tags.number,\n color: \"#400753\",\n },\n]);\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { StyleSpec } from \"style-mod\";\n\n/**\n * Adds style to editor'font\n * @returns An extension containing everything needed to add the font style\n */\nexport function fontStyle(): Extension {\n return [style()];\n}\n\nconst generalFontStyle: StyleSpec = {\n \"font-family\": \"'Noto Sans Mono', 'sans-serif'\",\n \"font-style\": \"normal\",\n \"font-size\": \"1rem\",\n};\n\nfunction style() {\n return EditorView.theme({\n \".cm-scroller\": {\n ...generalFontStyle,\n \"letter-spacing\": \"0\",\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 400\",\n \"color\": \"#333333\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul\": {\n ...generalFontStyle,\n \"font-variation-settings\": \"'wght' 300\",\n \"color\": \"#697882\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionLabel\": {\n \"line-height\": \"1.5em\",\n \"font-variation-settings\": \"'wght' 500\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"font-size\": \"0.875em\",\n \"font-style\": \"normal\",\n \"margin-left\": \"0.75rem\",\n },\n });\n}\n","import { EditorTheme } from \"../../models\";\n\n/* General Style */\nimport { style } from \"./sds-light-style\";\n\n/* HighlightStyle */\nimport { SDSLightHighlightStyle } from \"./sds-light-highlight-style\";\n\n/* Theme's Extensions */\nimport { scrollbars } from \"./extensions/scrollbars\";\nimport { fontStyle } from \"./extensions/font-style\";\nimport { lineCounter } from \"./extensions/line-counter\";\nimport { autocompleteTooltip } from \"./extensions/autocomplete-tooltip\";\n\nexport function SDSLight(): EditorTheme {\n return [\n [\n style(),\n scrollbars(),\n fontStyle(),\n lineCounter(),\n autocompleteTooltip()\n ], \n SDSLightHighlightStyle\n ];\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds style to the editor in general\n * @returns An extension containing the style\n */\nexport function style(): Extension {\n return EditorView.theme({\n \"&.cm-editor.cm-focused\": {\n outline: \"none\",\n },\n });\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a vertical scrollbar when the editor's height overflows the parent's height\n * @returns An extension containing everything needed to add the scrollbar\n */\nexport function scrollbars(): Extension {\n return [\n style()\n ];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \"&.cm-editor\": {\n \"height\": \"100%\"\n },\n\n });\n}\n","import { lineNumbers } from \"@codemirror/gutter\"\nimport { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds a line counter\n * @returns An extension containing everything needed to add the line counter\n */\nexport function lineCounter(): Extension {\n return [\n lineNumbers(),\n style()\n ];\n}\n\nfunction style() {\n return EditorView.theme(\n {\n \".cm-gutters\": {\n \"background-color\": \"#fff\",\n \"color\": \"#428BCA\",\n \"border-right\": \"none\"\n },\n \".cm-gutter\": {\n \"padding\": \"0 2rem 0 2rem\"\n }\n }\n );\n}\n","import { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\n\n/**\n * Adds styles to the autocomplete's tooltip\n * @returns An extension containing everything needed to add the style\n */\nexport function autocompleteTooltip(): Extension {\n return [style()];\n}\n\nfunction style() {\n return EditorView.baseTheme({\n \".cm-tooltip\": {\n \"border\": \"none !important\",\n \"border-radius\": \"4px\",\n \"background-color\": \"#E5EAEA !important\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul[role='listbox']\": {\n \"padding\": \"1rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail\": {\n \"margin-left\": \".75rem\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::before\": {\n \"content\": \"'[ '\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionDetail::after\": {\n \"content\": \"' ]'\",\n },\n\n \".cm-tooltip.cm-tooltip-autocomplete > ul .cm-completionIcon\": {\n \"padding-right\": 0,\n \"margin-right\": \".475rem\",\n \"width\": \"1rem\",\n },\n\n \".cm-tooltip-autocomplete ul li[aria-selected]\": {\n \"border-radius\": \"4px\",\n \"background-color\": \"#5D96A2 !important\",\n \"color\": \"#fff !important\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right\": {\n \"border-radius\": \"3px\",\n \"box-shadow\": \"0 2px 4px -1px rgb(0 0 0 / 20%), 0 4px 5px 0 rgb(0 0 0 / 14%), 0 1px 10px 0 rgb(0 0 0 / 12%)\",\n \"background\": \"#495057 !important\",\n \"color\": \"#fff\",\n \"padding\": \".5rem\",\n \"left\": \"101.6%\",\n },\n\n \".cm-tooltip.cm-completionInfo.cm-completionInfo-right::before\": {\n \"content\": \"''\",\n \"position\": \"absolute\",\n \"width\": 0,\n \"height\": 0,\n \"top\": \".8125rem\",\n \"left\": \"-.25rem\",\n \"margin-top\": \"-.25rem\",\n \"border-color\": \"transparent\",\n \"border-style\": \"solid\",\n \"border-right-color\": \"#495057\",\n \"border-width\": \".25rem .25rem .25rem 0\",\n },\n });\n}\n","import { Themes } from \"../../../../models\";\nimport { EditorTheme } from \"../models\";\n\n/* Themes */\nimport { SDSLight } from \"./sds-light/sds-light-theme\";\n\ntype EditorThemeFactory = () => EditorTheme; \n\nexport class EditorThemes {\n\n private static _THEMES: Map<Themes, EditorThemeFactory> = new Map([\n [Themes.SDSLight, SDSLight]\n ]);\n\n public static getTheme(theme: Themes): EditorTheme {\n const EditorThemeFactory = EditorThemes._THEMES.get(theme);\n if (EditorThemeFactory) return EditorThemeFactory();\n return [] as unknown as EditorTheme;\n }\n}\n","export enum Ordination {\n NO = \"no\",\n AZ = \"az\",\n ZA = \"za\",\n}","import { EditorView } from \"@codemirror/view\";\nimport {\n EditorState,\n StateEffect,\n Extension,\n TransactionSpec\n} from \"@codemirror/state\";\nimport { setDiagnostics } from \"@codemirror/lint\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { CoreFacade } from \"../../../core/facades/core-facade\";\nimport { Marker } from \"../../../core/models\";\nimport { EditorOptions } from \"../../../models\";\nimport { EditorLanguages } from \"./languages/editor-languages\";\nimport { EditorThemes } from \"./themes/editor-themes\";\nimport { convertMarkersToDiagnostics } from \"./utils\";\n\nexport class CodeMirror6Core extends CoreFacade {\n\n public static $onCompletionItemsUpdate: Subject<string[]> = new Subject();\n private static _ngUnsubscribe: Subject<void> = new Subject();\n private static _editorView: EditorView = null;\n\n /* These are necessary for the setCode and setEditorOptions can be called before view has been created */\n private _codeReceivedBeforeViewCreation = \"\";\n private _editorOptionsReceivedBeforeViewCreation: Extension = [];\n\n constructor() {\n super();\n }\n\n public static getEditorView(): EditorView {\n return CodeMirror6Core._editorView;\n }\n\n public static updateEditorView(...transactionSpecs: TransactionSpec[]): void {\n CodeMirror6Core._editorView.dispatch(...transactionSpecs);\n }\n\n public setCoreWrapperElement(element: HTMLDivElement): void {\n this.createEditorView(element);\n }\n\n public setCode(code: string): void {\n this.changeEditorContent(code);\n }\n\n public initCore(): void {\n this.setObservablesListeners();\n }\n\n public destroyCore(): void {\n this._codeReceivedBeforeViewCreation = \"\";\n CodeMirror6Core._editorView = null;\n CodeMirror6Core._ngUnsubscribe.next();\n CodeMirror6Core._ngUnsubscribe.complete();\n }\n\n protected setCoreEditorOptions(options: EditorOptions): void {\n const language = EditorLanguages.getLanguage(options.language);\n const theme = EditorThemes.getTheme(options.theme);\n\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n effects: StateEffect.reconfigure.of([\n language,\n theme,\n this.getCodeChangeListenerExtension()\n ])\n });\n } else {\n this._editorOptionsReceivedBeforeViewCreation = [language, theme];\n }\n }\n\n protected highlightCode(markers: Marker[]): void {\n const diagnostics = convertMarkersToDiagnostics(markers, CodeMirror6Core._editorView.state.doc.length);\n CodeMirror6Core.updateEditorView(setDiagnostics(CodeMirror6Core._editorView.state, diagnostics));\n }\n\n private setObservablesListeners(): void {\n CodeMirror6Core.$onCompletionItemsUpdate\n .pipe(takeUntil(CodeMirror6Core._ngUnsubscribe))\n .subscribe(items => this.updateCompletionItems(items));\n }\n\n private createEditorView(parentElement: HTMLElement): void {\n CodeMirror6Core._editorView = new EditorView({\n parent: parentElement,\n state: EditorState.create({\n doc: this._codeReceivedBeforeViewCreation,\n extensions: [\n this._editorOptionsReceivedBeforeViewCreation,\n this.getCodeChangeListenerExtension()\n ]\n })\n });\n\n this.notifyCoreFinishLoad();\n }\n\n private getCodeChangeListenerExtension(): Extension {\n return EditorView.updateListener.of(update => update.docChanged && this.notifyCodeChange(update.state.doc.toString()));\n }\n\n private changeEditorContent(code: string): void {\n if (CodeMirror6Core._editorView) {\n CodeMirror6Core.updateEditorView({\n changes: {\n from: 0,\n to: CodeMirror6Core._editorView.state.doc.length,\n insert: code\n }\n });\n } else {\n this._codeReceivedBeforeViewCreation = code;\n }\n }\n\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { CodeEditorComponent } from \"./code-editor.component\";\nimport { CoreFacade } from \"./core/facades/core-facade\";\nimport { CodeMirror6Core } from \"./infra/cores/codemirror-6/codemirror-6-core\";\nimport { CustomTranslationsModule } from \"./infra/utils/custom-translations/custom-translations.module\";\n\n@NgModule({\n imports: [CommonModule, CustomTranslationsModule],\n declarations: [CodeEditorComponent],\n exports: [CodeEditorComponent],\n providers: [\n {\n provide: CoreFacade,\n useClass: CodeMirror6Core,\n },\n ],\n})\nexport class CodeEditorModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-link\",\n templateUrl: \"./collapse-link.component.html\",\n styleUrls: [\"./collapse-link.component.scss\"],\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"void\",\n style({\n height: 0,\n opacity: 0,\n })\n ),\n state(\n \"*\",\n style({\n height: \"*\",\n opacity: 1,\n })\n ),\n transition(\"void <=> *\", animate(\"400ms cubic-bezier(0.86, 0, 0.07, 1)\")),\n ]),\n ],\n})\nexport class CollapseLinkComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public buttonId = `s-collapse-button-${CollapseLinkComponent.nextId++}`;\n @Input()\n public expandedLabel = \"Mostrar menos\";\n @Input()\n public collapsedLabel = \"Mostrar mais\";\n @Input()\n public disabled = false;\n @Input()\n public collapse = true;\n\n public collapsed = true;\n public animating: boolean;\n\n constructor() {}\n\n public ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.collapse) {\n this.onCollapse(changes.collapse.currentValue);\n }\n }\n\n public toggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n public onCollapse(collapse: boolean) {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = collapse;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { CollapseLinkComponent } from \"./collapse-link.component\";\n\n@NgModule({\n declarations: [CollapseLinkComponent],\n exports: [CollapseLinkComponent],\n imports: [CommonModule],\n})\nexport class CollapseLinkModule {}\n","import { AbstractControl } from \"@angular/forms\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-control-errors\",\n templateUrl: \"./control-errors.component.html\",\n styleUrls: [\"./control-errors.component.scss\"],\n})\nexport class ControlErrorsComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-control-errors-${ControlErrorsComponent.nextId++}`;\n @Input()\n control: AbstractControl;\n @Input()\n errorMessages: any = {};\n @Input()\n form: any;\n\n getErrorMessagesList() {\n if (!this.control || !this.control.dirty) {\n return [];\n }\n return Object.keys(this.control.errors || {}).map(error => this.errorMessages?.[error]);\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","import { CountryPhoneData } from \"../models/country-phone-data\";\n\nexport const countries: CountryPhoneData[] = [\n { id: \"gb\", ddi: \"+44\", mask: \"00-0000-0000\" },\n { id: \"br\", ddi: \"+55\", mask: [\"(00) 0000-00009\", \"(00) 00000-0000\"] },\n { id: \"ar\", ddi: \"+54\", mask: [\"(00) 0000-00009\", \"(000) 0000-0000\"] },\n { id: \"bo\", ddi: \"+591\", mask: \"0 000 0000\" },\n { id: \"cl\", ddi: \"+56\", mask: \"0 0000 0000\" },\n { id: \"co\", ddi: \"+57\", mask: [\"0 00000009\", \"000 0000000\"] },\n { id: \"cr\", ddi: \"+506\", mask: \"0000 0000\" },\n { id: \"cu\", ddi: \"+53\", mask: [\"000 0009\", \"00 000000\"] },\n { id: \"ec\", ddi: \"+593\", mask: [\"000 00009\", \"000 000 000\"] },\n { id: \"sv\", ddi: \"+503\", mask: \"0000 0000\" },\n { id: \"gt\", ddi: \"+502\", mask: \"0000 0000\" },\n { id: \"ht\", ddi: \"+509\", mask: \"0000 0000\" },\n { id: \"hn\", ddi: \"+504\", mask: \"0000-0000\" },\n { id: \"mx\", ddi: \"+52\", mask: [\"00 0000 00009\", \"0 00 0000 0000\"] },\n { id: \"ni\", ddi: \"+505\", mask: \"0000 0000\" },\n { id: \"pa\", ddi: \"+507\", mask: \"0000 0000\" },\n { id: \"py\", ddi: \"+595\", mask: [\"00 000 0009\", \"000 000000\"] },\n { id: \"pe\", ddi: \"+51\", mask: \"000 000 000\" },\n { id: \"do\", ddi: \"+1809\", mask: \"000 000-0000\" },\n { id: \"uy\", ddi: \"+598\", mask: [\"0000 00009\", \"0000 00000\"] },\n { id: \"ve\", ddi: \"+58\", mask: \"000-0000000\" },\n { id: \"us\", ddi: \"+1\", mask: \"000-000-0000\" },\n { id: \"ca\", ddi: \"+1\", mask: \"000-000-0000\" },\n { id: \"cn\", ddi: \"+86\", mask: \"000 0000 0000\" },\n { id: \"as\", ddi: \"+1684\", mask: \"000-0000\" },\n { id: \"ai\", ddi: \"+1264\", mask: \"000-0000\" },\n { id: \"ag\", ddi: \"+1268\", mask: \"000-0000\" },\n { id: \"bs\", ddi: \"+1242\", mask: \"000-0000\" },\n { id: \"bb\", ddi: \"+1246\", mask: \"000-0000\" },\n { id: \"bm\", ddi: \"+1441\", mask: \"000-0000\" },\n { id: \"vg\", ddi: \"+1284\", mask: \"000-0000\" },\n { id: \"ky\", ddi: \"+1345\", mask: \"000-0000\" },\n { id: \"dm\", ddi: \"+1767\", mask: \"000-0000\" },\n { id: \"gd\", ddi: \"+1473\", mask: \"000-0000\" },\n { id: \"gu\", ddi: \"+1671\", mask: \"000-0000\" },\n { id: \"jm\", ddi: \"+1876\", mask: \"000-0000\" },\n { id: \"ms\", ddi: \"+1664\", mask: \"000-0000\" },\n { id: \"mp\", ddi: \"+1670\", mask: \"000-0000\" },\n { id: \"pr\", ddi: \"+1\", mask: \"000-0000\" },\n { id: \"kn\", ddi: \"+1869\", mask: \"000-0000\" },\n { id: \"lc\", ddi: \"+1758\", mask: \"000-0000\" },\n { id: \"vc\", ddi: \"+1784\", mask: \"000-0000\" },\n { id: \"tt\", ddi: \"+1868\", mask: \"000-0000\" },\n { id: \"tc\", ddi: \"+1649\", mask: \"000-0000\" },\n { id: \"fi\", ddi: \"+358\", mask: \"000 0000000\" },\n { id: \"rs\", ddi: \"+381\", mask: \"000 0000000\" },\n { id: \"zm\", ddi: \"+260\", mask: \"000 0000000\" },\n { id: \"af\", ddi: \"+93\", mask: \"000 000 0000\" },\n { id: \"al\", ddi: \"+355\", mask: \"000 000 0000\" },\n { id: \"hr\", ddi: \"+385\", mask: \"000 000 0000\" },\n { id: \"et\", ddi: \"+251\", mask: \"000 000 0000\" },\n { id: \"gh\", ddi: \"+233\", mask: \"000 000 0000\" },\n { id: \"gr\", ddi: \"+30\", mask: \"000 000 0000\" },\n { id: \"ie\", ddi: \"+353\", mask: \"000 000 0000\" },\n { id: \"it\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"lr\", ddi: \"+231\", mask: \"000 000 0000\" },\n { id: \"na\", ddi: \"+264\", mask: \"000 000 0000\" },\n { id: \"nz\", ddi: \"+64\", mask: \"000 000 0000\" },\n { id: \"sa\", ddi: \"+966\", mask: \"000 000 0000\" },\n { id: \"za\", ddi: \"+27\", mask: \"000 000 0000\" },\n { id: \"lk\", ddi: \"+94\", mask: \"000 000 0000\" },\n { id: \"sd\", ddi: \"+249\", mask: \"000 000 0000\" },\n { id: \"th\", ddi: \"+66\", mask: \"000 000 0000\" },\n { id: \"ua\", ddi: \"+380\", mask: \"000 000 0000\" },\n { id: \"ae\", ddi: \"+971\", mask: \"000 000 0000\" },\n { id: \"va\", ddi: \"+39\", mask: \"000 000 0000\" },\n { id: \"zw\", ddi: \"+263\", mask: \"000 000 0000\" },\n { id: \"dz\", ddi: \"+213\", mask: \"0000 00 00 00\" },\n { id: \"be\", ddi: \"+32\", mask: \"0000 00 00 00\" },\n { id: \"yt\", ddi: \"+262\", mask: \"0000 00 00 00\" },\n { id: \"bl\", ddi: \"+590\", mask: \"0000 00 00 00\" },\n { id: \"mf\", ddi: \"+1599\", mask: \"0000 00 00 00\" },\n { id: \"ad\", ddi: \"+376\", mask: \"000-000\" },\n { id: \"ao\", ddi: \"+244\", mask: \"000 000 000\" },\n { id: \"ba\", ddi: \"+387\", mask: \"000 000 000\" },\n { id: \"bg\", ddi: \"+359\", mask: \"000 000 000\" },\n { id: \"kh\", ddi: \"+855\", mask: \"000 000 000\" },\n { id: \"cz\", ddi: \"+420\", mask: \"000 000 000\" },\n { id: \"gq\", ddi: \"+240\", mask: \"000 000 000\" },\n { id: \"gw\", ddi: \"+245\", mask: \"000 000 000\" },\n { id: \"li\", ddi: \"+423\", mask: \"000 000 000\" },\n { id: \"lu\", ddi: \"+352\", mask: \"000 000 000\" },\n { id: \"mk\", ddi: \"+389\", mask: \"000 000 000\" },\n { id: \"me\", ddi: \"+382\", mask: \"000 000 000\" },\n { id: \"pl\", ddi: \"+48\", mask: \"000 000 000\" },\n { id: \"pt\", ddi: \"+351\", mask: \"000 000 000\" },\n { id: \"si\", ddi: \"+386\", mask: \"000 000 000\" },\n { id: \"am\", ddi: \"+374\", mask: \"000 000000\" },\n { id: \"aw\", ddi: \"+297\", mask: \"000 0000\" },\n { id: \"bn\", ddi: \"+673\", mask: \"000 0000\" },\n { id: \"fj\", ddi: \"+679\", mask: \"000 0000\" },\n { id: \"gm\", ddi: \"+220\", mask: \"000 0000\" },\n { id: \"gy\", ddi: \"+592\", mask: \"000 0000\" },\n { id: \"is\", ddi: \"+354\", mask: \"000 0000\" },\n { id: \"fm\", ddi: \"+691\", mask: \"000 0000\" },\n { id: \"nr\", ddi: \"+674\", mask: \"000 0000\" },\n { id: \"nu\", ddi: \"+683\", mask: \"000 0000\" },\n { id: \"pw\", ddi: \"+680\", mask: \"000 0000\" },\n { id: \"st\", ddi: \"+239\", mask: \"000 0000\" },\n { id: \"to\", ddi: \"+676\", mask: \"000 0000\" },\n { id: \"vu\", ddi: \"+678\", mask: \"000 0000\" },\n { id: \"fk\", ddi: \"+500\", mask: \"00000\" },\n { id: \"fo\", ddi: \"+298\", mask: \"00000\" },\n { id: \"sh\", ddi: \"+290\", mask: \"00000\" },\n { id: \"au\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cx\", ddi: \"+61\", mask: \"0000 000 000\" }, \n { id: \"cc\", ddi: \"+61\", mask: \"0000 000 000\" },\n { id: \"cd\", ddi: \"+243\", mask: \"0000 000 000\" },\n { id: \"kg\", ddi: \"+996\", mask: \"0000 000 000\" },\n { id: \"ro\", ddi: \"+40\", mask: \"0000 000 000\" },\n { id: \"rw\", ddi: \"+250\", mask: \"0000 000 000\" },\n { id: \"sk\", ddi: \"+421\", mask: \"0000 000 000\" },\n { id: \"sy\", ddi: \"+963\", mask: \"0000 000 000\" },\n { id: \"tw\", ddi: \"+886\", mask: \"0000 000 000\" },\n { id: \"tz\", ddi: \"+255\", mask: \"0000 000 000\" },\n { id: \"ye\", ddi: \"+967\", mask: \"0000 000 000\" },\n { id: \"at\", ddi: \"+43\", mask: \"0000 000000\" },\n { id: \"ke\", ddi: \"+254\", mask: \"0000 000000\" },\n { id: \"ug\", ddi: \"+256\", mask: \"0000 000000\" },\n { id: \"az\", ddi: \"+994\", mask: \"000 000 00 00\" },\n { id: \"ch\", ddi: \"+41\", mask: \"000 000 00 00\" },\n { id: \"vn\", ddi: \"+84\", mask: \"000 000 00 00\" },\n { id: \"bh\", ddi: \"+973\", mask: \"0000 0000\" },\n { id: \"ee\", ddi: \"+372\", mask: \"0000 0000\" },\n { id: \"sz\", ddi: \"+268\", mask: \"0000 0000\" },\n { id: \"hk\", ddi: \"+852\", mask: \"0000 0000\" },\n { id: \"ls\", ddi: \"+266\", mask: \"0000 0000\" },\n { id: \"mo\", ddi: \"+853\", mask: \"0000 0000\" },\n { id: \"mt\", ddi: \"+356\", mask: \"0000 0000\" },\n { id: \"mu\", ddi: \"+230\", mask: \"0000 0000\" },\n { id: \"mn\", ddi: \"+976\", mask: \"0000 0000\" },\n { id: \"om\", ddi: \"+968\", mask: \"0000 0000\" },\n { id: \"pg\", ddi: \"+675\", mask: \"0000 0000\" },\n { id: \"qa\", ddi: \"+974\", mask: \"0000 0000\" },\n { id: \"sg\", ddi: \"+65\", mask: \"0000 0000\" },\n { id: \"tl\", ddi: \"+670\", mask: \"0000 0000\" }, \n { id: \"bd\", ddi: \"+880\", mask: \"00000 000000\" },\n { id: \"im\", ddi: \"+44\", mask: \"00000 000000\" },\n { id: \"by\", ddi: \"+375\", mask: \"0 000 000-00-00\" },\n { id: \"bz\", ddi: \"+501\", mask: \"000-0000\" },\n { id: \"mv\", ddi: \"+960\", mask: \"000-0000\" },\n { id: \"mh\", ddi: \"+692\", mask: \"000-0000\" },\n { id: \"sr\", ddi: \"+597\", mask: \"000-0000\" },\n { id: \"bj\", ddi: \"+229\", mask: \"00 00 00 00\" },\n { id: \"bt\", ddi: \"+975\", mask: \"00 00 00 00\" },\n { id: \"bf\", ddi: \"+226\", mask: \"00 00 00 00\" },\n { id: \"bi\", ddi: \"+257\", mask: \"00 00 00 00\" },\n { id: \"cf\", ddi: \"+236\", mask: \"00 00 00 00\" },\n { id: \"td\", ddi: \"+235\", mask: \"00 00 00 00\" },\n { id: \"ci\", ddi: \"+225\", mask: \"00 00 00 00\" },\n { id: \"dk\", ddi: \"+45\", mask: \"00 00 00 00\" },\n { id: \"dj\", ddi: \"+253\", mask: \"00 00 00 00\" },\n { id: \"fr\", ddi: \"+33\", mask: \"00 00 00 00\" },\n { id: \"pf\", ddi: \"+689\", mask: \"00 00 00 00\" },\n { id: \"ga\", ddi: \"+241\", mask: \"00 00 00 00\" },\n { id: \"ml\", ddi: \"+223\", mask: \"00 00 00 00\" },\n { id: \"mr\", ddi: \"+222\", mask: \"00 00 00 00\" },\n { id: \"ne\", ddi: \"+227\", mask: \"00 00 00 00\" },\n { id: \"sm\", ddi: \"+378\", mask: \"00 00 00 00\" },\n { id: \"tg\", ddi: \"+228\", mask: \"00 00 00 00\" },\n { id: \"gi\", ddi: \"+350\", mask: \"00000000\" },\n { id: \"ki\", ddi: \"+686\", mask: \"00000000\" },\n { id: \"tv\", ddi: \"+688\", mask: \"00000000\" },\n { id: \"bw\", ddi: \"+267\", mask: \"00 000 000\" },\n { id: \"er\", ddi: \"+291\", mask: \"00 000 000\" },\n { id: \"lv\", ddi: \"+371\", mask: \"00 000 000\" },\n { id: \"lb\", ddi: \"+961\", mask: \"00 000 000\" },\n { id: \"tn\", ddi: \"+216\", mask: \"00 000 000\" },\n { id: \"cm\", ddi: \"+237\", mask: \"0 00 00 00 00\" },\n { id: \"cv\", ddi: \"+238\", mask: \"000 00 00\" },\n { id: \"km\", ddi: \"+269\", mask: \"000 00 00\" },\n { id: \"pm\", ddi: \"+508\", mask: \"000 00 00\" },\n { id: \"cg\", ddi: \"+242\", mask: \"00 000 0000\" },\n { id: \"mz\", ddi: \"+258\", mask: \"00 000 0000\" },\n { id: \"mm\", ddi: \"+95\", mask: \"00 000 0000\" },\n { id: \"ck\", ddi: \"+682\", mask: \"00 000\" },\n { id: \"cy\", ddi: \"+357\", mask: \"00 000000\" },\n { id: \"eg\", ddi: \"+20\", mask: \"0000 000 0000\" },\n { id: \"ir\", ddi: \"+98\", mask: \"0000 000 0000\" },\n { id: \"iq\", ddi: \"+964\", mask: \"0000 000 0000\" },\n { id: \"ng\", ddi: \"+234\", mask: \"0000 000 0000\" },\n { id: \"kp\", ddi: \"+850\", mask: \"0000 000 0000\" },\n { id: \"ph\", ddi: \"+63\", mask: \"0000 000 0000\" },\n { id: \"ge\", ddi: \"+995\", mask: \"000 00 00 00\" },\n { id: \"gn\", ddi: \"+224\", mask: \"000 00 00 00\" },\n { id: \"es\", ddi: \"+34\", mask: \"000 00 00 00\" },\n { id: \"de\", ddi: \"+49\", mask: \"00000 0000000\" },\n { id: \"gl\", ddi: \"+299\", mask: \"00 00 00\" },\n { id: \"wf\", ddi: \"+681\", mask: \"00 00 00\" },\n { id: \"hu\", ddi: \"+36\", mask: \"(00) 000 0000\" },\n { id: \"in\", ddi: \"+91\", mask: \"000000 00000\" },\n { id: \"id\", ddi: \"+62\", mask: \"0000-000-000\" },\n { id: \"il\", ddi: \"+972\", mask: \"000-000-0000\" },\n { id: \"jp\", ddi: \"+81\", mask: \"000-000-0000\" },\n { id: \"jo\", ddi: \"+962\", mask: \"00 0000 0000\" },\n { id: \"kz\", ddi: \"+7\", mask: \"0 (000) 000-0000\" },\n { id: \"kw\", ddi: \"+965\", mask: \"000 00000\" },\n { id: \"la\", ddi: \"+856\", mask: \"000 00 000 000\" },\n { id: \"ly\", ddi: \"+218\", mask: \"000-0000000\" },\n { id: \"lt\", ddi: \"+370\", mask: \"(0-000) 00000\" },\n { id: \"np\", ddi: \"+977\", mask: \"(0-000) 00000\" },\n { id: \"mg\", ddi: \"+261\", mask: \"000 00 000 00\" },\n { id: \"mw\", ddi: \"+265\", mask: \"000 00 000 00\" },\n { id: \"my\", ddi: \"+60\", mask: \"000-000 0000\" },\n { id: \"md\", ddi: \"+373\", mask: \"0000 00 000\" },\n { id: \"mc\", ddi: \"+377\", mask: \"00 00 00 00 00\" },\n { id: \"ma\", ddi: \"+212\", mask: \"0000-000000\" },\n { id: \"nl\", ddi: \"+31\", mask: \"00 00000000\" },\n { id: \"nc\", ddi: \"+687\", mask: \"00.00.00\" },\n { id: \"no\", ddi: \"+47\", mask: \"000 00 000\" },\n { id: \"pk\", ddi: \"+92\", mask: \"0000 0000000\" },\n { id: \"ru\", ddi: \"+7\", mask: \"0 (000) 000-00-00\" },\n { id: \"ws\", ddi: \"+685\", mask: \"00 00000\" },\n { id: \"sb\", ddi: \"+677\", mask: \"00 00000\" },\n { id: \"sn\", ddi: \"+221\", mask: \"00 000 00 00\" },\n { id: \"sc\", ddi: \"+248\", mask: \"0 000 000\" },\n { id: \"sl\", ddi: \"+232\", mask: \"(000) 000000\" },\n { id: \"so\", ddi: \"+252\", mask: \"0 0000000\" },\n { id: \"kr\", ddi: \"+82\", mask: \"000-0000-0000\" },\n { id: \"se\", ddi: \"+46\", mask: \"000-000 00 00\" },\n { id: \"tj\", ddi: \"+992\", mask: \"000 00 0000\" },\n { id: \"tk\", ddi: \"+690\", mask: \"0000\" },\n { id: \"tr\", ddi: \"+90\", mask: \"0000 000 00 00\" },\n { id: \"tm\", ddi: \"+993\", mask: \"0 00 000000\" }, \n { id: \"uz\", ddi: \"+998\", mask: \"0 00 000 00 00\" },\n];","export enum FieldType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Blob = \"Blob\",\n Boolean = \"Boolean\",\n Checkbox = \"Checkbox\",\n Chips = \"Chips\",\n CodeEditor = \"CodeEditor\",\n CountryPhonePicker = \"CountryPhonePicker\",\n Custom = \"Custom\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n Double = \"Double\",\n Editor = \"Editor\",\n Enum = \"Enum\",\n Integer = \"Integer\",\n LocalDateTime = \"LocalDateTime\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Number = \"Number\",\n Password = \"Password\",\n Radio = \"Radio\",\n Slider = \"Slider\",\n String = \"String\",\n Text = \"Text\",\n TextIA = \"TextIA\",\n Time = \"Time\",\n ProfilePicture = \"ProfilePicture\",\n Button = \"Button\",\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CountryPhoneData } from \"./models/country-phone-data\";\nimport { countries } from \"./resources/countries\";\nimport { Ordination } from \"./models/ordination\";\n\n@Injectable()\nexport class CountryPhonePickerService {\n constructor(private readonly translate: TranslateService) { }\n\n public getCountries(ordination: Ordination) {\n switch (ordination) {\n case Ordination.AZ:\n return this.sortAlphabetically();\n case Ordination.ZA:\n return this.sortAlphabeticallyDescending();\n case Ordination.NO:\n default:\n return countries;\n }\n }\n\n private sortAlphabetically(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return aName.localeCompare(bName);\n });\n }\n\n private sortAlphabeticallyDescending(): CountryPhoneData[] {\n return countries.sort((a: CountryPhoneData, b: CountryPhoneData) => {\n const aName = this.translate.instant(`platform.angular_components_${a.id}`);\n const bName = this.translate.instant(`platform.angular_components_${b.id}`);\n\n return bName.localeCompare(aName);\n });\n }\n}","export const Breakpoints = {\n SM_MIN: 0,\n SM_MAX: 767,\n MD_MIN: 768,\n MD_MAX: 991,\n LG_MIN: 992,\n LG_MAX: 1199,\n XL_MIN: 1200,\n XL_MAX: Infinity,\n};\n","import { ElementRef } from \"@angular/core\";\n\nexport class ExportUtils {\n constructor() {\n throw new Error(\"Classe não deve ser instanciada.\");\n }\n\n public static addClass(element: ElementRef, className: string) {\n element.nativeElement.className = `${element.nativeElement.className} ${className}`;\n }\n\n public static removeClass(element: ElementRef, className: string) {\n if (element.nativeElement.className.includes(className)) {\n element.nativeElement.className = element.nativeElement.className.replace(className, \"\");\n }\n }\n\n public static exportCSV(\n columns: Partial<any>[] = [],\n data: any[] = [],\n csvSeparator: string = \";\",\n documentName: string = \"download\"\n ) {\n let csv = \"\\ufeff\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n csv += `\"${column.header || column.field}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n\n data.forEach((record: any) => {\n csv += \"\\n\";\n\n columns.filter((column: any) => column.exportable && column.field).forEach((column: any, i: number) => {\n let cellData;\n if (Array.isArray(column.field)) {\n const fieldValues = column.field.map((col: string) => this.resolveFieldData(record, col));\n\n cellData = fieldValues\n .flat()\n .filter((value: string) => value !== null && value !== undefined)\n .join(column.separator);\n } else {\n cellData = this.resolveFieldData(record, column.field);\n }\n\n if (cellData != null) cellData = String(cellData).replace(/\"/g, `\"\"`);\n else cellData = \"\";\n\n csv += `\"${cellData}\"`;\n\n if (i < columns.length - 1) csv += csvSeparator;\n });\n });\n\n const blob = new Blob([csv], {\n type: \"text/csv;charset=utf-8;\",\n });\n\n if (window.navigator.msSaveOrOpenBlob) navigator.msSaveOrOpenBlob(blob, documentName + \".csv\");\n else {\n const link = document.createElement(\"a\");\n link.style.display = \"none\";\n document.body.appendChild(link);\n if (link.download !== undefined) {\n link.setAttribute(\"href\", URL.createObjectURL(blob));\n link.setAttribute(\"download\", documentName + \".csv\");\n link.click();\n } else {\n csv = \"data:text/csv;charset=utf-8,\" + csv;\n window.open(encodeURI(csv));\n }\n document.body.removeChild(link);\n }\n }\n\n private static resolveFieldData(data: any, field: any): any {\n if (data && field) {\n if (this.isFunction(field)) return field(data);\n else if (field.indexOf(\".\") == -1) return data[field];\n else {\n const fields: string[] = field.split(\".\");\n let value = data;\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else return null;\n }\n\n private static isFunction(obj: any) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n}\n","export const convertToMomentDateFormat = (format: string): string => {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n}","import { DomPortalOutlet, TemplatePortal } from \"@angular/cdk/portal\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Output,\n PLATFORM_ID,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { isNullOrUndefined } from \"../utils\";\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\nimport { CountryPhoneData, Ordination } from \"./models\";\nimport { PhoneSelectionData } from \"./models/phone-selection-data\";\n\n@Component({\n selector: \"s-country-phone-picker\",\n templateUrl: \"./country-phone-picker.component.html\",\n styleUrls: [\"./country-phone-picker.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CountryPhonePickerComponent),\n multi: true,\n },\n ],\n})\nexport class CountryPhonePickerComponent implements OnInit, ControlValueAccessor {\n public mask: string;\n public selectedItem: CountryPhoneData;\n public currentItemIndex = 0;\n public filteredCountriesList: CountryPhoneData[];\n public phone = new FormControl(\"\");\n public filter = new FormControl(\"\");\n public dropTop = 0;\n public dropLeft = 0;\n\n private _value: PhoneSelectionData;\n private _onChange: (value: PhoneSelectionData) => void;\n private _onTouched: (value: PhoneSelectionData) => void;\n private _countriesList: CountryPhoneData[];\n private _open = false;\n private offsetTop = 0;\n private _portalHost: DomPortalOutlet;\n\n\n constructor(\n private readonly _countryPhonePickerService: CountryPhonePickerService,\n private readonly _translate: TranslateService,\n private readonly _eRef: ElementRef,\n @Inject(PLATFORM_ID) private platformId: Object,\n ) {}\n\n @ViewChild(\"dropdownTemplate\")\n public dropdownTemplate: TemplateRef<any>;\n\n @ViewChild(\"dropElement\", { read: ViewContainerRef })\n public viewContainerRef: ViewContainerRef;\n\n @ViewChild(\"dropElement\", { read: ElementRef })\n public dropElement: ElementRef;\n\n @ViewChild(\"#dropdownContainer\", { read: ElementRef })\n public dropdownContainer: ElementRef;\n\n public get value() {\n return this._value;\n }\n\n public set value(value: PhoneSelectionData) {\n this._value = value;\n this.mask = this.getMask();\n }\n\n public writeValue(value: PhoneSelectionData): void {\n this.value = value;\n\n if (value?.id) {\n const country = this._countriesList.filter(({ id }) => id == value.id);\n if (country.length) {\n this.onSelectItem(country[0]);\n }\n }\n\n if (value?.rawValue) {\n this.phone.setValue(value.rawValue);\n }\n }\n\n public registerOnChange(onChange: (value: PhoneSelectionData) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: PhoneSelectionData) => void): void {\n this._onTouched = onTouched;\n }\n\n @Input()\n public countries: string[];\n\n @Input()\n public ordination: Ordination = Ordination.NO;\n\n @Output()\n public selected: EventEmitter<CountryPhoneData> = new EventEmitter();\n\n /**\n * @deprecated Use focusLost event instead.\n */\n @Output()\n public blur: EventEmitter<PhoneSelectionData> = new EventEmitter();\n\n @Output()\n public focusLost: EventEmitter<PhoneSelectionData> = new EventEmitter();\n\n @ViewChild(\"phoneInput\", { static: true })\n public phoneInput: ElementRef;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this._eRef.nativeElement.contains(event.target)) {\n if (this.open) {\n this.open = false;\n }\n }\n }\n\n public ngOnInit(): void {\n const countries = this._countryPhonePickerService.getCountries(this.ordination);\n this.filter.valueChanges.subscribe(this._filterCountries);\n\n if (this.countries?.length) {\n this._countriesList = countries.filter((country) => this.countries.includes(country.id));\n } else {\n this._countriesList = countries;\n }\n this.filteredCountriesList = this._countriesList;\n this.selectedItem = this._getSelectedCountryDefault();\n this.mask = this.getMask();\n\n this.phone.valueChanges.subscribe((value) => {\n this.value = {\n id: this.selectedItem.id,\n ddi: this.selectedItem.ddi,\n rawValue: value ?? \"\",\n value: value ? `${this._applyMask(value)}` : \"\",\n };\n if (this._onChange) {\n this._onChange(this.value);\n }\n });\n }\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n this.selectedItem = this._countriesList[this.currentItemIndex];\n this.selected.emit(this.selectedItem);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n this._moveToDown();\n } else if (event.key === \"ArrowUp\") {\n this._moveToUp();\n }\n }\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n\n if (open) {\n this._createDropdownPortal();\n } else {\n if (this._portalHost && this._portalHost.hasAttached()) {\n this._portalHost.detach();\n }\n this.phoneInput.nativeElement.focus();\n }\n }\n\n public onSelectItem(country: CountryPhoneData) {\n this.open = false;\n this.selectedItem = country;\n this.phone.setValue(\"\");\n this.currentItemIndex = this._countriesList.indexOf(this.selectedItem);\n this.selected.emit(this.selectedItem);\n }\n\n public onCleanFilter() {\n this.filter.setValue(\"\");\n }\n\n public onPhoneInputFocus() {\n this.open = false;\n }\n\n public getMask() {\n const mask = this.selectedItem.mask;\n\n if (Array.isArray(mask)) {\n return !this.value?.rawValue || this.value.rawValue.length <= mask[0].replace(/[^0]/g, \"\").length\n ? mask[0] // fixo\n : mask[1]; // celular\n } else {\n return mask;\n }\n }\n\n public getPlaceholder() {\n return this.mask.replace(/9/g, \"\");\n }\n\n public onBlur(value: PhoneSelectionData) {\n this.blur.emit(value);\n this.focusLost.emit(value);\n }\n\n private _getSelectedCountryDefault() {\n if (!this._countriesList.length) {\n throw new Error(\"No country loaded\");\n }\n\n const filteredByBr = this._countriesList.filter((country: CountryPhoneData) => country.id === \"br\");\n\n return filteredByBr.length ? filteredByBr[0] : this._countriesList[0];\n }\n\n private _filterCountries = (value: string) => {\n if (!value) {\n this.filteredCountriesList = this._countriesList;\n } else {\n this.filteredCountriesList = this._countriesList.filter((country) => {\n const countryName = this._translate.instant(`platform.angular_components.country_name_${country.id}`) as string;\n return countryName.toLowerCase().includes(value.toLowerCase());\n });\n }\n };\n\n private _moveToUp() {\n if (this.currentItemIndex == 0) {\n return;\n }\n\n this.currentItemIndex--;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop <= this.offsetTop) {\n this.offsetTop -= 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _moveToDown() {\n if (this.currentItemIndex >= this._countriesList.length - 1) {\n return;\n }\n\n this.currentItemIndex++;\n\n const selectList: any = document.querySelector(\".select-list\");\n const item = selectList.children[this.currentItemIndex];\n\n if (item.offsetTop - selectList.offsetTop > this.offsetTop + 180) {\n this.offsetTop += 45;\n selectList.scrollTo(0, this.offsetTop);\n }\n }\n\n private _applyMask(value: string) {\n let mask;\n\n if (Array.isArray(this.selectedItem.mask)) {\n const rawMask = this.selectedItem.mask[0].replace(/[^0]/g, \"\");\n mask = value.length <= rawMask.length ? this.selectedItem.mask[0] + \"\\0\" : this.selectedItem.mask[1] + \"\\0\";\n } else {\n mask = this.selectedItem.mask + \"\\0\";\n }\n\n let tokens = \"\";\n let replace = \"\";\n let acumulador = 0;\n let contador = 0;\n\n for (const token of mask) {\n if (isNaN(parseInt(token))) {\n if (acumulador) {\n tokens += `(\\\\d{${acumulador}})`;\n replace += `$${++contador}`;\n acumulador = 0;\n }\n\n if (token !== \"\\0\") {\n replace += token;\n }\n } else {\n acumulador++;\n }\n }\n\n tokens = `^${tokens}*`;\n return this.phone.value.replace(new RegExp(tokens), replace);\n }\n\n private _createDropdownPortal(): void {\n if (!isPlatformBrowser(this.platformId) || isNullOrUndefined(this.dropElement)) return;\n\n const bodyElement = document.body;\n const dropElementRect = this.dropElement.nativeElement.getBoundingClientRect();\n\n this.dropTop = dropElementRect.bottom + window.scrollY;\n this.dropLeft = dropElementRect.left + window.scrollX;\n\n this._portalHost = new DomPortalOutlet(bodyElement, null, null, null);\n const portal = new TemplatePortal(this.dropdownTemplate, this.viewContainerRef);\n this._portalHost.attach(portal);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { PortalModule } from \"@angular/cdk/portal\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NgxMaskModule } from \"ngx-mask\";\n\nimport { CountryPhonePickerService } from \"./country-phone-picker.service\";\nimport { CountryPhonePickerComponent } from \"./country-phone-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n NgxMaskModule.forRoot(),\n PortalModule,\n ],\n declarations: [CountryPhonePickerComponent],\n exports: [CountryPhonePickerComponent],\n providers: [CountryPhonePickerService],\n})\nexport class CountryPhonePickerModule { }","import { FormControl } from \"@angular/forms\";\n\nimport { AutocompleteField } from \"../../configurations/fields/autocomplete-field\";\nimport { BlobField } from \"../../configurations/fields/blob-field\";\nimport { BooleanField } from \"../../configurations/fields/boolean-field\";\nimport { CalendarField } from \"../../configurations/fields/calendar-field\";\nimport { CheckboxField } from \"../../configurations/fields/checkbox-field\";\nimport { ChipsField } from \"../../configurations/fields/chips-field\";\nimport { CountryPhonePickerField } from \"../../configurations/fields/country-phone-picker-field\";\nimport { CurrencyField } from \"../../configurations/fields/currency-field\";\nimport { EditorField } from \"../../configurations/fields/editor-field\";\nimport { LookupField } from \"../../configurations/fields/lookup-field\";\nimport { NumberField } from \"../../configurations/fields/number-field\";\nimport { PasswordField } from \"../../configurations/fields/password-field\";\nimport { RadioButtonField } from \"../../configurations/fields/radio-button-field\";\nimport { SelectField } from \"../../configurations/fields/select-field\";\nimport { SliderField } from \"../../configurations/fields/slider-field\";\nimport { TextAreaField } from \"../../configurations/fields/text-area-field\";\nimport { TextAreaIAField } from \"../../configurations/fields/text-area-ia-field\";\nimport { TextField } from \"../../configurations/fields/text-field\";\n\nexport interface BaseFieldComponentConfig {\n field:\n | AutocompleteField\n | BooleanField\n | BlobField\n | CalendarField\n | CheckboxField\n | ChipsField\n | CountryPhonePickerField\n | CurrencyField\n | EditorField\n | LookupField\n | NumberField\n | PasswordField\n | RadioButtonField\n | SelectField\n | SliderField\n | TextAreaField\n | TextAreaIAField\n | TextField;\n formControl: FormControl;\n}\n\nexport class BaseFieldComponent {\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public trigger(callback: any) {\n return callback();\n }\n}\n","export class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor({ sm = 12, md = 6, lg = 6, xl = 6 }: FieldSize) {\n this.sm = sm;\n this.md = md;\n this.lg = lg;\n this.xl = xl;\n }\n}\n","import {\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n Injectable,\n Input,\n KeyValueDiffers,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { CurrencyMaskDirective } from \"ng2-currency-mask\";\nimport { first } from \"rxjs/operators\";\n\n/**\n * @deprecated Should use 'AlignmentOptions' from @seniorsistemas/ng2-currency-mask instead\n */\nexport enum NumberAlignmentOption {\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * @deprecated Should use BigNumberInput directive instead\n */\n@Directive({\n selector: \"input[sNumberInput]\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class NumberInputDirective extends CurrencyMaskDirective implements OnInit, OnChanges {\n @Input()\n public precision = 15;\n\n @Input()\n public scale = 0;\n\n @Input()\n public decimalSeparator: string;\n\n @Input()\n public thousandsSeparator: string;\n\n @Input()\n public alignTo = NumberAlignmentOption.LEFT;\n\n @Input()\n public allowNegative = true;\n\n @Input()\n @HostBinding(\"attr.placeholder\")\n public placeholder: string;\n\n @HostBinding(\"attr.maxLength\")\n public maxLength: number;\n\n private regex: RegExp = /\\d/;\n\n constructor(\n _elementRef: ElementRef,\n _keyValueDiffers: KeyValueDiffers,\n private readonly localeService: LocaleService\n ) {\n super(null, _elementRef, _keyValueDiffers);\n\n this.onLocaleService();\n }\n\n ngOnInit(): void {\n this.updateVariables();\n\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n const placeholderChange = changes.placeholder && changes.placeholder.currentValue;\n if (!placeholderChange && this.scale) this.placeholder = `0${this.decimalSeparator}${\"\".padEnd(this.scale, \"0\")}`;\n\n if (\n changes.scale ||\n changes.decimalSeparator ||\n changes.thousandsSeparator ||\n changes.alignTo ||\n changes.precision ||\n changes.allowNegative\n ) {\n this.updateVariables();\n }\n }\n\n /**\n * Update the options values according to the directive input values.\n */\n private updateVariables(): void {\n this.options = {\n align: this.alignTo,\n decimal: this.decimalSeparator,\n thousands: this.thousandsSeparator,\n precision: this.scale || 0,\n prefix: \"\",\n suffix: \"\",\n allowNegative: this.allowNegative,\n };\n this.calculateMaxLength();\n }\n\n /**\n * Responsible to calculate the field maximum length considering the separators.\n */\n private calculateMaxLength(): void {\n const decSepLength = this.decimalSeparator.length;\n const thoSepLength = this.thousandsSeparator.length;\n\n let maxLength = this.precision + (this.scale ? decSepLength : 0);\n maxLength += Math.ceil((this.precision - (this.scale ? this.scale : 0)) / 3 - 1) * thoSepLength;\n\n this.maxLength = maxLength;\n }\n\n /**\n * Prevents the default CurrencyMask behavior when typed a incorrect value.\n * By default the CurrencyMask inputs the mask value to the component value when typed a incorrect value.\n */\n public handleKeypress(event: KeyboardEvent): void {\n const negativeOperator = \"-\";\n const { key } = event;\n\n if (\n this.thousandsSeparator.includes(key) ||\n this.decimalSeparator.includes(key) ||\n negativeOperator.includes(key) ||\n this.regex.test(key) ||\n \"Enter\".toUpperCase() === key.toUpperCase()\n )\n super.handleKeypress(event);\n else event.preventDefault();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n });\n }\n}\n","import { TemplateRef } from \"@angular/core\";\nimport { FieldSize } from \"../field-size\";\nimport { FieldType } from \"../field-type\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { FormField } from \"../form-field\";\n\nexport interface FieldConfig {\n defaultValue?: any;\n required?: () => boolean;\n visible?: () => boolean;\n id?: string;\n name: string;\n label: string;\n infoSign?: string;\n tooltip?: string;\n placeholder?: string;\n showClear?: boolean;\n type?: FieldType;\n size?: FieldSize;\n representedBy?: \"radio\" | \"switch\";\n errorMessages?: () => ({}) | {};\n bottomTemplate?: TemplateRef<Element>;\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n CustomFieldClass?: unknown;\n CustomFieldComponentClass?: unknown;\n displayTimeInfoSign?: number;\n sortableColumnName?: string\n useInfoSignFocusedInputRef?: boolean;\n ignoreLabel?: boolean\n}\n\nexport abstract class Field {\n public required?: () => boolean;\n public visible?: () => boolean;\n public id?: string;\n public name: string;\n public label: string;\n public infoSign?: string;\n public tooltip?: string;\n public placeholder?: string;\n public showClear?: boolean;\n public type: FieldType;\n public size: FieldSize;\n public gridClass: string[];\n public defaultValue?: any;\n public representedBy?: \"radio\" | \"switch\";\n public errorMessages?: () => ({}) | {};\n public bottomTemplate?: TemplateRef<Element>;\n public CustomFieldClass?: unknown;\n public CustomFieldComponentClass?: unknown;\n public displayTimeInfoSign?: number;\n public sortableColumnName?: string\n public footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n public useInfoSignFocusedInputRef?: boolean;\n\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel? = false;\n\n constructor(config: FieldConfig) {\n if (config.footer?.help) {\n config.footer.help = {\n visible: () => true,\n ...config.footer?.help\n }\n }\n\n if (config.footer?.link) {\n config.footer.link = {\n visible: () => true,\n ...config.footer?.link\n }\n }\n\n this.required = config.required || (() => false);\n this.visible = config.visible || (() => true);\n this.id = config.id;\n this.name = config.name;\n this.label = config.label;\n this.infoSign = config.infoSign;\n this.tooltip = config.tooltip;\n this.placeholder = config.placeholder || \"\";\n this.showClear = config.showClear || false;\n this.type = config.type;\n this.size = new FieldSize(config.size || {});\n this.errorMessages = config.errorMessages;\n this.bottomTemplate = config.bottomTemplate;\n this.footer = config.footer;\n this.gridClass = Object.keys(this.size).map(key => `ui-${key}-${this.size[key]}`);\n this.defaultValue = config.defaultValue;\n this.representedBy = config.representedBy;\n this.CustomFieldClass = config.CustomFieldClass;\n this.CustomFieldComponentClass = config.CustomFieldComponentClass;\n this.displayTimeInfoSign = config.displayTimeInfoSign ?? 5000;\n this.useInfoSignFocusedInputRef = config.useInfoSignFocusedInputRef ?? true;\n this.ignoreLabel = config.ignoreLabel ?? false;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface AutocompleteFieldConfig extends FieldConfig {\n dataKey?: string;\n displayField?: string;\n multiple?: boolean;\n appendTo?: string;\n emptyMessage?: string;\n suggestionsObservable: Observable<any>;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onSearch: (value: string) => void;\n onBlur?: (event: FocusEvent) => void;\n}\n\nexport class AutocompleteField extends Field {\n public dataKey: string;\n public displayField?: string;\n public multiple?: boolean;\n public appendTo?: string;\n public emptyMessage?: string;\n public suggestionsObservable: Observable<any>;\n public suggestions: any[] = [];\n\n public onSelect?: (event: any) => void;\n public onUnselect?: (event: any) => void;\n public onClear?: (event: any) => void;\n public onSearch: (value: string) => void;\n public onBlur?: (event: FocusEvent) => void;\n\n constructor(config: AutocompleteFieldConfig) {\n super({ ...config, type: FieldType.Autocomplete } as AutocompleteFieldConfig);\n Object.assign(this, config);\n this.suggestionsObservable.subscribe(suggestions => (this.suggestions = suggestions));\n }\n}\n","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { NumberLocaleOptions } from \"../../../locale/index\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BignumberFieldConfig extends FieldConfig {\n allowNegative: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n autoClear?: boolean;\n}\n\nexport class BignumberField extends Field {\n public allowNegative: boolean;\n public numberLocaleOptions: NumberLocaleOptions;\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n public autoClear?: boolean;\n\n constructor(config: BignumberFieldConfig) {\n super(config);\n this.allowNegative = config.allowNegative ?? true;\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.autoClear = config.autoClear ?? true;\n }\n}\n","import { ElementRef } from \"@angular/core\";\nimport { FileDto } from \"../../../file-upload/index\";\nimport { FormField } from \"./../../configurations/form-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BlobFieldConfig extends FieldConfig {\n accept: string;\n files: FileDto[];\n chooseLabel: string;\n removeLabel: string;\n cancelLabel: string;\n successTooltip: string;\n multiple: boolean;\n onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n onRemoveFile: (event: FileDto, field: FormField) => void;\n onCancelUpload: (event: number, field: FormField) => void;\n onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n showFileUploadDate: boolean;\n}\n\nexport class BlobField extends Field {\n public accept: string;\n public files: FileDto[];\n public chooseLabel: string;\n public removeLabel: string;\n public cancelLabel: string;\n public successTooltip: string;\n public multiple: boolean;\n public onUploadFile: (event: { files: FileDto[] }, field: FormField) => void;\n public onRemoveFile: (event: FileDto, field: FormField) => void;\n public onCancelUpload: (event: number, field: FormField) => void;\n public onDownloadFile: (event: { index: number; anchor: ElementRef }, field: FormField) => void;\n public showFileUploadDate: boolean;\n\n constructor(config: BlobFieldConfig) {\n super(config);\n this.accept = config.accept;\n this.files = config.files || [];\n this.chooseLabel = config.chooseLabel;\n this.removeLabel = config.removeLabel;\n this.cancelLabel = config.cancelLabel;\n this.successTooltip = config.successTooltip;\n this.multiple = config.multiple;\n this.onUploadFile = config.onUploadFile;\n this.onRemoveFile = config.onRemoveFile;\n this.onCancelUpload = config.onCancelUpload;\n this.onDownloadFile = config.onDownloadFile;\n this.showFileUploadDate = config.showFileUploadDate;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\nexport interface BooleanFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n optionsLabel: BooleanOptionsLabel;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class BooleanField extends Field {\n public verticalAlignment?: boolean;\n public optionsLabel: BooleanOptionsLabel;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: BooleanFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n this.representedBy = \"radio\";\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { BooleanOptionsLabel } from \"./boolean-field\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface BooleanSwitchFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n optionsLabel?: BooleanOptionsLabel;\n}\n\nexport class BooleanSwitchField extends Field {\n public onChange?: (event: any) => void;\n public optionsLabel?: BooleanOptionsLabel;\n constructor(config: BooleanSwitchFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n if (config.optionsLabel) {\n this.optionsLabel = new BooleanOptionsLabel(config.optionsLabel);\n }\n this.representedBy = \"switch\";\n }\n}\n","import { CalendarLocaleOptions } from \"../../../locale/index\";\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CalendarFieldConfig extends FieldConfig {\n view?: string;\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n calendarLocaleOptions?: CalendarLocaleOptions;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: string;\n rangeSeparator?: string;\n showSeconds?: boolean;\n}\n\nexport class CalendarField extends Field {\n public view?: string;\n public appendTo: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public calendarLocaleOptions: CalendarLocaleOptions;\n public showOnFocus?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: string;\n public rangeSeparator?: string;\n public showSeconds: boolean;\n\n constructor(config: CalendarFieldConfig) {\n super(config);\n this.view = config.view || \"date\";\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.defaultDate = config.defaultDate;\n this.appendTo = config.appendTo;\n this.showOnFocus = typeof config.showOnFocus === \"boolean\" ? config.showOnFocus : true;\n this.calendarLocaleOptions = config.calendarLocaleOptions;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onSelect = config.onSelect;\n this.onInput = config.onInput;\n this.onClose = config.onClose;\n this.onTodayClick = config.onTodayClick;\n this.onClearClick = config.onClearClick;\n this.onMonthChange = config.onMonthChange;\n this.onYearChange = config.onYearChange;\n this.selectionMode = config.selectionMode || \"single\";\n this.rangeSeparator = config.rangeSeparator || \"-\";\n this.showSeconds = config.showSeconds;\n\n // Tornando true o padrão para showSeconds.\n if (this.showSeconds === null || this.showSeconds === undefined) {\n switch (this.type) {\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n this.showSeconds = true;\n break;\n }\n }\n }\n}\n","import { CheckboxData } from \"../../../checkbox/models\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface CheckboxFieldConfig extends FieldConfig {\n data: CheckboxData;\n}\n\nexport class CheckboxField extends Field {\n public data: CheckboxData;\n\n constructor(config: CheckboxFieldConfig) {\n super(config);\n this.data = config.data;\n }\n}","import { Field, FieldConfig } from \"./field\";\n\nexport interface ChipsFieldConfig extends FieldConfig {\n keyFilter?: RegExp;\n separator?: string;\n showCopyButton?: boolean;\n onAdd: (event: any) => void;\n onRemove: (event: any) => void;\n onChipClick: (event: any) => void;\n onFocus: (event: any) => void;\n onBlur: (event: any) => void;\n onCopy: (content: string) => void;\n}\n\nexport class ChipsField extends Field {\n public keyFilter?: RegExp;\n public showCopyButton = false;\n public separator?: string;\n public onAdd: (event: any) => void;\n public onRemove: (event: any) => void;\n public onChipClick: (event: any) => void;\n public onFocus: (event: any) => void;\n public onBlur: (event: any) => void;\n public onCopy: (content: string) => void; \n\n constructor(config: ChipsFieldConfig) {\n super(config);\n this.keyFilter = config.keyFilter;\n this.showCopyButton = config.showCopyButton;\n this.separator = config.separator;\n this.onAdd = config.onAdd;\n this.onRemove = config.onRemove;\n this.onChipClick = config.onChipClick;\n this.onFocus = config.onFocus;\n this.onBlur = config.onBlur;\n this.onCopy = config.onCopy;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\nimport { CountryPhoneData, Ordination, PhoneSelectionData } from \"../../../country-phone-picker\";\n\nexport interface CountryPhonePickerConfig extends FieldConfig {\n countries: string[];\n ordination: Ordination;\n onSelected: (data: CountryPhoneData) => void;\n onFocusLost: (data: PhoneSelectionData) => void;\n}\n\nexport class CountryPhonePickerField extends Field {\n public countries: string[];\n public ordination: Ordination;\n public onSelected: (data: CountryPhoneData) => void;\n public onFocusLost: (data: PhoneSelectionData) => void;\n\n constructor(config: CountryPhonePickerConfig) {\n super(config);\n this.countries = config.countries;\n this.ordination = config.ordination;\n this.onSelected = config.onSelected;\n this.onFocusLost = config.onFocusLost;\n }\n}","export enum DynamicType {\n Autocomplete = \"Autocomplete\",\n Binary = \"Binary\",\n Boolean = \"Boolean\",\n Chips = \"Chips\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Double = \"Double\",\n Enum = \"Enum\",\n Fieldset = \"Fieldset\",\n Integer = \"Integer\",\n Lookup = \"Lookup\",\n Money = \"Money\",\n Radio = \"Radio\",\n Row = \"Row\",\n Section = \"Section\",\n String = \"String\",\n Text = \"Text\",\n Time = \"Time\",\n Number = \"Number\",\n Password = \"Password\",\n Slider = \"Slider\",\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { NumberInputDirective } from \"./number-input.directive\";\n\n/**\n * @deprecated Should use 'BignumberInputModule' instead\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [NumberInputDirective],\n exports: [NumberInputDirective],\n})\nexport class NumberInputModule {}\n","import { NumberLocaleOptions } from \"../../../locale/index\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\n\n/**\n * @deprecated Should use BignumberFieldConfig instead\n */\nexport interface NumberFieldConfig extends FieldConfig {\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: (() => number) | number;\n alignTo?: NumberAlignmentOption;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class NumberField extends Field {\n /**\n * @deprecated `numberLocaleOptions` should not be used. It is not needed anymore and should be removed if possible.\n */\n public numberLocaleOptions: NumberLocaleOptions;\n\n public browserAutocomplete: boolean;\n public precision?: Function | number;\n public scale?: (() => number) | number;\n public alignTo: NumberAlignmentOption;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n\n constructor(config: NumberFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.browserAutocomplete = config.browserAutocomplete;\n this.precision = config.precision;\n this.scale = config.scale;\n this.alignTo = config.alignTo || NumberAlignmentOption.LEFT;\n this.mask = config.mask;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { NumberAlignmentOption } from \"../../../number-input\";\nimport { NumberField, NumberFieldConfig } from \"./number-field\";\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport interface DecimalFieldConfig extends NumberFieldConfig {\n scale?: (() => number) | number;\n}\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class DecimalField extends NumberField implements DecimalFieldConfig {\n public scale?: (() => number) | number;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.numberLocaleOptions = config.numberLocaleOptions;\n this.alignTo = config.alignTo || NumberAlignmentOption.RIGHT;\n this.scale = typeof config.scale === \"function\" ? config.scale() : config.scale;\n }\n}\n","import { NumberLocaleOptions } from \"../../../locale\";\nimport { DecimalField, DecimalFieldConfig } from \"./decimal-field\";\n\n\n/**\n * @deprecated Should use BignumberField instead\n */\nexport class CurrencyField extends DecimalField {\n currency: () => string;\n\n constructor(config: DecimalFieldConfig) {\n super(config);\n this.currency = config['currency'];\n this.numberLocaleOptions = config.numberLocaleOptions;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\n\nimport { FieldType } from \"../field-type\";\nimport { Field, FieldConfig } from \"./field\";\nimport { DefaultFilter } from \"../../components/lookup/models\";\n\nexport interface LookupFieldConfig extends FieldConfig {\n multiple?: boolean;\n showSearch?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle?: string;\n searchEmptyTitle?: string;\n filterLabel?: string;\n filterTitle?: string;\n clearLabel?: string;\n cancelLabel?: string;\n selectLabel?: string;\n emptyMessage?: string;\n recordLabel?: string;\n recordsLabel?: string;\n emptyFieldLabel?: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n showAddOption: boolean;\n showEditOption: boolean;\n showRemoveOption: boolean; \n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n onAdd?: () => void;\n onEdit?: (selectedItem: unknown) => void;\n onRemove?: (selectedItems: unknown[]) => void;\n}\n\nexport class LookupField extends Field {\n public multiple = false;\n public showSearch = true;\n public searchFields: any[];\n public searchGridFields: any[];\n public lookupSuggestions: any[];\n public suggestionsObservable: Observable<any[]>;\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n public dataKey: string;\n public lookupDisplayField: string;\n public searchTitle: string;\n public searchEmptyTitle: string;\n public filterLabel: string;\n public filterTitle: string;\n public clearLabel: string;\n public cancelLabel: string;\n public selectLabel: string;\n public recordLabel: string;\n public recordsLabel: string;\n public emptyFieldLabel: string;\n public emptyMessage: string;\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public showAddOption = false;\n public showEditOption = false;\n public showRemoveOption = false;\n public defaultFilter: DefaultFilter[];\n public sortableColumnsDisabled: string[];\n public onLookupRequest: (query: string) => void;\n public onSearchRequest: (event: any) => void;\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n public onAdd?: () => void;\n public onEdit?: (selectedItem: unknown) => void;\n public onRemove?: (selectedItems: unknown[]) => void;\n\n private _gridData: any[];\n private _searchTotalRecords: number;\n private _searchTotalRecordsLabel: string;\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n\n constructor(config: LookupFieldConfig) {\n super({ ...config, type: FieldType.Lookup } as LookupFieldConfig);\n Object.assign(this, config);\n\n this.suggestionsObservable.subscribe(suggestions => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel;\n });\n }\n}\n","import { PasswordStrengths } from \"../../../password-strength\";\nimport { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface PasswordFieldConfig extends FieldConfig {\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n passwordStrength: boolean;\n passwordStrengthOptions?: PasswordStrengthOptions;\n showToggle: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class PasswordField extends Field {\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public passwordStrength: boolean;\n public passwordStrengthOptions?: PasswordStrengthOptions;\n public showToggle: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: PasswordFieldConfig) {\n super(config);\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.passwordStrength = config.passwordStrength;\n this.passwordStrengthOptions = config.passwordStrengthOptions;\n this.showToggle = config.showToggle;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n }\n}\n\nexport interface PasswordStrengthOptions {\n description?: string;\n weakTitle?: string;\n mediumTitle?: string;\n strongTitle?: string;\n validation?: (content: string) => PasswordStrengths;\n}","import { Field, FieldConfig } from \"./field\";\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n}\n\nexport class RadioButtonField extends Field {\n public verticalAlignment?: boolean;\n public clearLabel?: string;\n public options: RationButtonOption[];\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onClick?: (event: any) => void;\n\n constructor(config: RadioButtonFieldConfig) {\n super(config);\n this.verticalAlignment = config.verticalAlignment;\n this.clearLabel = config.clearLabel;\n this.options = config.options;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onClick = config.onClick;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface SelectFieldConfig extends FieldConfig {\n appendTo?: string;\n optionLabel?: string;\n dataKey?: string;\n autoDisplayFirst?: boolean;\n options: () => SelectOption[] | any[];\n multiple?: boolean;\n multipleSelectedLabel?: string;\n onClick?: (event: any) => void;\n onChange?: (event: any) => void;\n emptyMessage?: string;\n editable?: boolean;\n filter?: boolean;\n group?: boolean;\n}\n\nexport class SelectField extends Field {\n public appendTo?: string;\n public optionLabel?: string;\n public dataKey?: string;\n public autoDisplayFirst?: boolean;\n public options: () => SelectOption[] | any[];\n public multiple?: boolean;\n public multipleSelectedLabel?: string;\n public onClick?: (event: any) => void;\n public onChange?: (event: any) => void;\n public emptyMessage?: string;\n public editable?: boolean;\n public filter?: boolean;\n public group?: boolean;\n\n constructor(config: SelectFieldConfig) {\n super(config);\n this.appendTo = config.appendTo;\n this.dataKey = config.dataKey;\n this.optionLabel = config.optionLabel;\n this.autoDisplayFirst = config.autoDisplayFirst;\n this.options = config.options;\n this.multiple = config.multiple;\n this.multipleSelectedLabel = config.multipleSelectedLabel;\n this.onClick = config.onClick;\n this.onChange = config.onChange;\n this.emptyMessage = config.emptyMessage;\n this.editable = config.editable;\n this.filter = config.filter;\n this.group = config.group;\n }\n}\n\nexport class SelectOption {\n label: string;\n value?: any;\n\n constructor(config: SelectOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface SliderFieldConfig extends FieldConfig {\n onChange?: (event: any) => void;\n onSlideEnd?: (event: any) => void;\n range?: boolean;\n min?: number;\n max?: number;\n step?: number;\n orientation?: \"horizontal\" | \"vertical\";\n animate?: boolean;\n disabled?: boolean;\n prefix: string;\n suffix: string;\n rangeSeparator: string;\n}\n\nexport class SliderField extends Field {\n public onChange?: (event: any) => void;\n public onSlideEnd?: (event: any) => void;\n public range?: boolean;\n public min: number;\n public max: number;\n public step: number;\n public orientation: \"horizontal\" | \"vertical\";\n public animate: boolean;\n public disabled: boolean;\n public prefix: string;\n public suffix: string;\n public rangeSeparator: string;\n\n private readonly maxDefault = 100;\n\n constructor(config: SliderFieldConfig) {\n super(config);\n this.onChange = config.onChange;\n this.onSlideEnd = config.onSlideEnd;\n this.range = config.range ?? false;\n this.min = config.min ?? 0;\n this.max = config.max ?? this.maxDefault;\n this.orientation = config.orientation ?? \"horizontal\";\n this.step = config.step ?? 1;\n this.animate = config.animate ?? false;\n this.disabled = config.disabled ?? false;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.rangeSeparator = config.rangeSeparator ?? ' - ';\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: { [klass: string]: any };\n readonly?: () => boolean;\n}\n\nexport class TextAreaField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: { [klass: string]: any };\n public readonly?: () => boolean;\n\n constructor(config: TextAreaFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = config.style;\n this.readonly = config.readonly;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface TextAreaIAFieldConfig extends FieldConfig {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n style?: { [klass: string]: any };\n prompt?: string;\n readonly?: () => boolean;\n}\n\nexport class TextAreaIAField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: { [klass: string]: any };\n public prompt?: string;\n public readonly?: () => boolean;\n\n constructor(config: TextAreaIAFieldConfig) {\n super(config);\n this.cols = config.cols;\n this.rows = config.rows;\n this.keyFilter = config.keyFilter;\n this.style = config.style;\n this.prompt = config.prompt;\n this.readonly = config.readonly;\n }\n}","import { AddonConfig } from \"../addon-config\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface TextFieldConfig extends FieldConfig {\n mask?: () => string | any;\n characterPattern?: (() => string) | string;\n unmask?: (() => boolean) | boolean;\n readonly?: () => boolean;\n inputType?: string;\n keyFilter?: any;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n maxLength?: string | number;\n browserAutocomplete?: boolean;\n style?: { [klass: string]: any };\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class TextField extends Field {\n public mask?: () => string | any;\n public characterPattern?: (() => string) | string;\n public unmask?: (() => boolean) | boolean;\n public readonly?: () => boolean;\n public inputType?: string;\n public keyFilter?: any;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public maxLength?: string | number;\n public browserAutocomplete?: boolean;\n public style?: { [klass: string]: any };\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: any) => void;\n public onInput?: (event: any) => void;\n\n constructor(config: TextFieldConfig) {\n super(config);\n this.mask = config.mask;\n this.characterPattern = config.characterPattern ?? \"[A-Za-z]\";\n this.unmask = config.unmask ?? false;\n this.readonly = config.readonly;\n this.inputType = config.inputType;\n this.keyFilter = config.keyFilter;\n this.leftAddon = config.leftAddon;\n this.rightAddon = config.rightAddon;\n this.maxLength = config.maxLength || 9999999;\n this.browserAutocomplete = config.browserAutocomplete;\n this.style = config.style;\n this.onBlur = config.onBlur;\n this.onFocus = config.onFocus;\n this.onComplete = config.onComplete;\n this.onInput = config.onInput;\n this.sortableColumnName = config.sortableColumnName;\n }\n}\n","import { ButtonBadgeConfig, ButtonSize } from \"../../../button\";\nimport { ButtonComponent } from \"../../../button/button.component\";\nimport { ButtonAnimation } from \"../../../button/models/button-animation\";\nimport { ButtonPriority } from \"../../../button/models/button-priority\";\nimport { Field, FieldConfig } from \"./field\";\n\n\ntype ExtractedButtonProperties = Partial<Pick<ButtonComponent, 'priority' | 'iconClass' | 'disabled' | 'auxiliary' | 'caret' | 'iconColor' | 'badge' | 'animation' | 'slide' | 'menuOptions' | 'model' | 'baseZIndex' | 'styleClass' | 'rightIconClass' | 'tooltipPosition'>>;\n\nexport interface ButtonFieldConfig extends FieldConfig, ExtractedButtonProperties {\n onClick?: (event?: any) => any;\n fullWidth?: boolean\n mouseEnter?: (button: ButtonField) => void\n mouseLeave?: (button: ButtonField) => void\n}\n\nexport class ButtonField extends Field implements ExtractedButtonProperties {\n public priority?: ButtonPriority;\n public iconClass?: string;\n public disabled?: boolean;\n public auxiliary?: boolean;\n public caret?: boolean;\n public onClick?: (event?: Event) => any;\n public fullWidth?: boolean;\n public iconColor?: string;\n public badge?: ButtonBadgeConfig;\n public animation?: ButtonAnimation;\n public slide?: boolean;\n public menuOptions?: any[];\n public model?: any[];\n public baseZIndex?: number;\n public styleClass?: string;\n public rightIconClass?: string;\n public tooltipPosition?: \"top\" | \"right\" | \"bottom\" | \"left\" = \"top\";\n public buttonType?: string;\n public buttonSize?: ButtonSize;\n public mouseEnter?: (button: ButtonField) => void;\n public mouseLeave?: (button: ButtonField) => void;\n\n constructor(config: ButtonFieldConfig) {\n super(config);\n this.priority = config.priority || ButtonPriority.Primary;\n this.iconClass = config.iconClass || \"\";\n this.disabled = config.disabled || false;\n this.auxiliary = config.auxiliary || false;\n this.caret = config.caret || false;\n this.id = config.id || `s-button-${ButtonComponent.nextId++}`;\n this.onClick = config.onClick || (() => { });\n this.fullWidth = config.fullWidth || false;\n this.iconColor = config.iconColor;\n this.badge = config.badge;\n this.animation = config.animation;\n this.slide = config.slide;\n this.menuOptions = config.menuOptions;\n this.model = config.model;\n this.baseZIndex = config.baseZIndex;\n this.styleClass = config.styleClass;\n this.rightIconClass = config.rightIconClass;\n this.tooltipPosition = config.tooltipPosition || 'top';\n this.mouseEnter = config.mouseEnter;\n this.mouseLeave = config.mouseLeave;\n }\n}\n","import { Field, FieldConfig } from \"./field\";\n\nexport interface EditorFieldConfig extends FieldConfig {\n formats?: string[];\n readonly?: boolean;\n modules?: any;\n style?: { [klass: string]: unknown };\n}\n\nexport class EditorField extends Field {\n public formats?: string[];\n public readonly?: boolean;\n public modules?: any;\n public style?: { [klass: string]: unknown };\n\n constructor(config: EditorFieldConfig) {\n super(config);\n this.formats = config.formats;\n this.readonly = config.readonly;\n this.modules = config.modules;\n this.style = config.style;\n }\n}\n","import { CropperLabelsConfig } from \"../../../profile-picture-picker\";\nimport { ConfirmationTexts, FileValidationErrors, ProfilePicturePickerData } from \"../../../profile-picture-picker/models\";\nimport { Field, FieldConfig } from \"./field\";\n\nexport interface ProfilePictureConfig extends FieldConfig {\n simpleTitle?: string;\n actionTitle?: string;\n subtitle?: string;\n aspectRatio?: number;\n cropperLabelsConfig?: CropperLabelsConfig;\n removeButtonLabel?: string;\n changeButtonLabel?: string;\n confirmationTexts?: ConfirmationTexts;\n maxFileSize?: number;\n accept?: string;\n supportedExtensions?: string[];\n onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n onRemovedImage?: () => void;\n onInvalidFile?: (event: FileValidationErrors) => void;\n}\n\nexport class ProfilePictureField extends Field {\n public simpleTitle?: string;\n public actionTitle?: string;\n public subtitle?: string;\n public aspectRatio?: number;\n public cropperLabelsConfig?: CropperLabelsConfig;\n public removeButtonLabel?: string;\n public changeButtonLabel?: string;\n public confirmationTexts?: ConfirmationTexts;\n public maxFileSize?: number;\n public accept?: string;\n public supportedExtensions?: string[];\n public onChangeImage?: (event: string | ProfilePicturePickerData) => void;\n public onRemovedImage?: () => void;\n public onInvalidFile?: (event: FileValidationErrors) => void;\n\n constructor(config: ProfilePictureConfig) {\n super(config);\n this.simpleTitle = config.simpleTitle;\n this.actionTitle = config.actionTitle;\n this.subtitle = config.subtitle;\n this.aspectRatio = config.aspectRatio;\n this.cropperLabelsConfig = config.cropperLabelsConfig;\n this.removeButtonLabel = config.removeButtonLabel;\n this.changeButtonLabel = config.changeButtonLabel;\n this.confirmationTexts = config.confirmationTexts;\n this.maxFileSize = config.maxFileSize;\n this.accept = config.accept;\n this.supportedExtensions = config.supportedExtensions;\n this.onChangeImage = config.onChangeImage;\n this.onRemovedImage = config.onRemovedImage;\n this.onInvalidFile = config.onInvalidFile;\n }\n}","import { TemplateRef } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\nimport { FileDto } from \"../../file-upload/index\";\nimport { CalendarLocaleOptions, NumberLocaleOptions } from \"../../locale/index\";\nimport { NumberAlignmentOption } from \"../../number-input\";\nimport { AddonConfig } from \"./addon-config\";\nimport { FieldSize } from \"./field-size\";\nimport { FieldType } from \"./field-type\";\nimport { CheckboxField, CountryPhonePickerField } from \"./fields\";\nimport { AutocompleteField } from \"./fields/autocomplete-field\";\nimport { BignumberField } from \"./fields/bignumber-field\";\nimport { BlobField } from \"./fields/blob-field\";\nimport { BooleanField, BooleanOptionsLabel } from \"./fields/boolean-field\";\nimport { BooleanSwitchField } from \"./fields/boolean-switch-field\";\nimport { CalendarField } from \"./fields/calendar-field\";\nimport { ChipsField } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField } from \"./fields/decimal-field\";\nimport { EditorField } from \"./fields/editor-field\";\nimport { LookupField } from \"./fields/lookup-field\";\nimport { NumberField } from \"./fields/number-field\";\nimport { PasswordField } from \"./fields/password-field\";\nimport { ProfilePictureField } from \"./fields/profile-picture\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField } from \"./fields/select-field\";\nimport { SliderField } from \"./fields/slider-field\";\nimport { TextAreaField } from \"./fields/text-area-field\";\nimport { TextAreaIAField } from \"./fields/text-area-ia-field\";\nimport { TextField } from \"./fields/text-field\";\nimport { ButtonField } from \"./fields/button-field\";\n\nexport class FormField {\n id?: string;\n /**\n * Tells whether the field is required or not\n */\n required?: () => boolean;\n name?: string;\n sortableColumnName?: string;\n type?: FieldType;\n label?: string;\n /**\n * Labels of a Radio Button, only used to FieldType Boolean\n */\n optionsLabel?: BooleanOptionsLabel;\n tooltip?: string;\n /**\n * Mask pattern.\n */\n mask?: () => string | string;\n /**\n * Message to display when there are no results for a query.\n */\n emptyMessage?: string;\n cols?: number;\n rows?: number;\n placeholder?: string;\n options?: any;\n calendarLocaleOptions?: CalendarLocaleOptions;\n numberLocaleOptions?: NumberLocaleOptions;\n multiple?: boolean;\n appendTo?: string;\n browserAutocomplete?: boolean;\n showClear?: boolean;\n showOnFocus?: boolean;\n style?: { [klass: string]: any };\n representedBy?: \"radio\" | \"switch\";\n /**\n * Whether the `RadioButton` should be displayed on the vertical or not.\n *\n * @default false\n */\n verticalAlignment?: boolean;\n /**\n * Field max length\n */\n precision?: Function | number;\n /**\n * Number of decimal places\n */\n scale?: Function | number;\n /**\n * @deprecated Using FieldType.Number this attribute is unnecessary\n */\n alignTo?: NumberAlignmentOption | AlignmentOptions;\n gridClass?:\n | string\n | string[]\n | Set<string>\n | {\n [klass: string]: any;\n };\n size?: FieldSize;\n multipleSelectedLabel?: string;\n inputType?: string;\n accept?: string;\n files?: FileDto[];\n autocompleteForceSelection?: boolean;\n /**\n * The minimum selectable date.\n */\n minDate?: Date;\n /**\n * The maximum selectable date.\n */\n maxDate?: Date;\n /**\n * Set the date to highlight on first opening if the field is blank.\n */\n defaultDate?: Date;\n /**\n * Text or icon to be grouped in the left of an input.\n */\n leftAddon?: AddonConfig;\n /**\n * Text or icon to be grouped in right of an input.\n */\n rightAddon?: AddonConfig;\n /**\n * InfoSign para a label do input.\n */\n infoSign?: string;\n /**\n * Expression to restricts user input\n */\n keyFilter?: RegExp;\n\n /**\n * Default value for field\n */\n defaultValue?: any;\n /**\n * Customized FormField error message\n */\n errorMessages?: () => ({}) | {};\n visible?: () => boolean;\n /**\n * Callback to invoke when the field loses focus\n */\n onBlur?: (event: FocusEvent) => void;\n /**\n * Callback to invoke when the field receives focus\n */\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: any) => void;\n onInput?: (event: any) => void;\n onChange?: (event: boolean) => void;\n onSelect?: (event: any) => void;\n /**\n * Callback to invoke on component click.\n */\n onClick?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n /**\n * Callback to invoke when a value is added.\n */\n onAdd?: (event: any) => void;\n /**\n * Callback to invoke when a value is removed.\n */\n onRemove?: (event: any) => void;\n /**\n * Callback to invoke when a chip is clicked.\n */\n onChipClick?: (event: any) => void;\n\n /**\n * Callback to invoke when a slider is released\n */\n onSlideEnd?: (event: any) => void;\n\n CustomFieldClass?: any;\n CustomFieldComponentClass?: any;\n\n /**\n * @deprecated You should use footer attribute instead.\n */\n bottomTemplate?: TemplateRef<Element>;\n\n autoClear?: boolean;\n displayTimeInfoSign?: number;\n\n footer?: {\n help?: {\n text: string;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n link?: {\n label: string;\n onClick: (options: { abstractControl: AbstractControl, formField: FormField }) => void;\n visible?: (options: { abstractControl: AbstractControl, formField: FormField }) => boolean;\n };\n };\n\n /**\n * In some cases DynamicFormField use a custom field that alredy exists, this happen in CustomFields when convert 'Integer, Double & Money' types to 'Custom' this create two labels. activate this property hide the parent label.\n */\n ignoreLabel? = false;\n\n constructor(config: any) {\n switch (config.type) {\n case FieldType.Enum:\n return new SelectField(config);\n case FieldType.Autocomplete:\n return new AutocompleteField(config);\n case FieldType.Money:\n return new CurrencyField(config);\n case FieldType.Integer:\n return new NumberField(config);\n case FieldType.Double:\n return new DecimalField(config);\n case FieldType.Number:\n return new BignumberField(config);\n case FieldType.String:\n case FieldType.Binary:\n return new TextField(config);\n case FieldType.Password:\n return new PasswordField(config);\n case FieldType.Text:\n return new TextAreaField(config);\n case FieldType.TextIA:\n return new TextAreaIAField(config);\n case FieldType.Boolean:\n return config.representedBy === \"switch\" ? new BooleanSwitchField(config) : new BooleanField(config);\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return new CalendarField(config);\n case FieldType.Lookup:\n return new LookupField(config);\n case FieldType.Radio:\n return new RadioButtonField(config);\n case FieldType.Checkbox:\n return new CheckboxField(config);\n case FieldType.Chips:\n return new ChipsField(config);\n case FieldType.CountryPhonePicker:\n return new CountryPhonePickerField(config);\n case FieldType.Blob:\n return new BlobField(config);\n case FieldType.Slider:\n return new SliderField(config);\n case FieldType.ProfilePicture:\n return new ProfilePictureField(config);\n case FieldType.Editor:\n return new EditorField(config);\n case FieldType.Button:\n return new ButtonField(config);\n case FieldType.Custom:\n const { CustomFieldClass, ...otherConfigs } = config;\n return new CustomFieldClass(otherConfigs);\n }\n }\n}\n\nexport class Option {\n label: string;\n value?: any;\n\n constructor(label: string, value: any) {\n this.label = label;\n this.value = value;\n }\n}\n","import { animate, animateChild, group, query, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n forwardRef,\n Injectable,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MaskConfig } from \"@seniorsistemas/ng2-currency-mask\";\nimport { Hotkey, HotkeysService } from \"angular2-hotkeys\";\nimport BigNumber from \"bignumber.js\";\nimport { SortMeta } from \"primeng/api\";\nimport { AutoComplete } from \"primeng/autocomplete\";\nimport { Dialog } from \"primeng/dialog\";\nimport { Table } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { FieldType } from \"../..\";\nimport { BadgeComponent } from \"../../../badge/badge.component\";\nimport { CalendarLocaleOptions } from \"../../../locale/options/calendar\";\nimport { BignumberFieldConfig } from \"../../configurations/fields/bignumber-field\";\nimport { BooleanOptionsLabel } from \"../../configurations/fields/boolean-field\";\nimport { FormField } from \"../../configurations/form-field\";\nimport { DefaultFilter } from \"./models/default-filter\";\n\n@Injectable()\n@Component({\n selector: \"s-lookup\",\n templateUrl: \"./lookup.component.html\",\n styleUrls: [\"./lookup.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger(\"collapseContent\", [\n state(\n \"hidden\",\n style({\n width: \"10px\",\n padding: 0,\n })\n ),\n state(\n \"visible\",\n style({\n width: \"*\",\n })\n ),\n transition(\"visible <=> hidden\", [group([query(\"@childCollapseContent\", animateChild()), animate(\"{{transitionParams}}\")])]),\n ]),\n trigger(\"childCollapseContent\", [\n state(\n \":leave\",\n style({\n opacity: 0,\n })\n ),\n state(\n \":enter\",\n style({\n opacity: 1,\n })\n ),\n transition(\"* <=> *\", animate(\"{{transitionParams}}\")),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public formControlName: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple: boolean;\n\n @Input()\n public dataKey: string;\n\n @Input()\n public required: boolean;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[];\n\n @Input()\n public lookupDisplayField: string;\n\n @Input()\n public lookupDisplayFieldTooltip: boolean;\n\n @Input()\n public lookupEmptyMessage: string;\n\n @Input()\n public lookupAppendTo = \"body\";\n\n @Input()\n public searchEmptyDescription: string;\n\n @Input()\n public searchGridData: any[];\n\n @Input()\n public searchTotalRecords: number;\n\n @Input()\n public searchFields: FormField[] = [];\n\n @Input()\n public searchGridFields: FormField[];\n\n @Input()\n public multiSortMeta: SortMeta[];\n\n @Input()\n public placeholder: string;\n\n @Input()\n public sortableColumnsDisabled: string[];\n\n @Input()\n public lookupRowProps: string[];\n\n @Input()\n public defaultFilter: DefaultFilter[];\n\n @Input()\n public showAddOption = false;\n\n @Input()\n public showEditOption = false;\n\n @Input()\n public showRemoveOption = false;\n\n @Output()\n public onLookupRequest = new EventEmitter();\n\n @Output()\n public onSearchRequest = new EventEmitter();\n\n @Output()\n public onFocus = new EventEmitter();\n\n @Output()\n public onBlur = new EventEmitter();\n\n @Output()\n public onKeyUp = new EventEmitter();\n\n @Output()\n public onSelect = new EventEmitter();\n\n @Output()\n public onUnselect = new EventEmitter();\n\n @Output()\n public onClear = new EventEmitter();\n\n @Output()\n public onAdd = new EventEmitter();\n\n @Output()\n public onEdit = new EventEmitter<unknown>();\n\n @Output()\n public onRemove = new EventEmitter<unknown[]>();\n\n @ViewChild(Table, { static: false })\n public table: Table;\n\n @ViewChild(Dialog, { static: false })\n public dialog: Dialog;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete;\n\n @Input()\n public searchTitle: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public searchEmptyTitle: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public searchTotalRecordsLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public filterTitle: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public filterLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public clearLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public cancelLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public selectLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public emptyFieldLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public recordLabel: string;\n\n /**\n * @deprecated Lookup can do this for you.\n */\n @Input()\n public recordsLabel: string;\n\n public value: any;\n public loading: boolean;\n public animating: boolean;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog: FormGroup;\n public transitionOptions = \"400ms cubic-bezier(0.86, 0, 0.07, 1)\";\n\n private onChange: Function;\n private onTouched: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject();\n\n constructor(\n private readonly hotkeysService: HotkeysService,\n protected readonly translateService: TranslateService\n ) {}\n\n public ngOnInit() {\n if (!this.searchGridFields) {\n this.searchGridFields = this.searchFields\n .filter((item) => !item.visible || item.visible?.())\n .map((item) => new FormField({ ...item }));\n }\n\n this.searchFields = this.searchFields.map(\n (value: FormField) =>\n new FormField({\n ...value,\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n })\n );\n\n this.searchGridFields = this.searchGridFields\n .filter((gridField: FormField) => !gridField.visible || gridField.visible?.())\n .map((gridField: FormField) => {\n gridField[\"width\"] = this.getColWidth(gridField.label);\n\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case FieldType.Date:\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case FieldType.Time:\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat,\n calendarOptions.dateFormat\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n\n return gridField;\n });\n\n const formGroup = this.searchFields.reduce((result: any, field) => {\n result[field.name] = new FormControl(field.defaultValue);\n this.originalFormValues[field.name] = field.defaultValue;\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this._subscribeEvents();\n }\n\n public printRecordTotalizer(): string {\n if (this.searchTotalRecordsLabel) {\n return this.searchTotalRecordsLabel;\n }\n\n const recordLabel = this.recordLabel\n ? `${this.searchTotalRecords} ${this.recordLabel}`\n : this.translateService.instant(\"platform.angular_components.total_record\", { count: this.searchTotalRecords });\n\n const recordsLabel = this.recordsLabel\n ? `${this.searchTotalRecords} ${this.recordsLabel}`\n : this.translateService.instant(\"platform.angular_components.total_records\", { count: this.searchTotalRecords });\n\n return this.searchTotalRecords === 1 ? recordLabel : recordsLabel;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === \"dd/mm/yy\") {\n // valor padrão para o format.\n return \"LTS\";\n }\n\n if (hourFormat === \"12\") {\n return format\n .replace(/\\bH\\b/, \"h\") // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, \"hh\"); // hour (12 hour time)\n }\n\n if (hourFormat === \"24\") {\n return format\n .replace(/\\bh\\b/, \"H\") // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, \"HH\"); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, \"D\") // day of month (no leading zero)\n .replace(/\\bdd\\b/, \"DD\") // day of month\n .replace(/\\bo\\b/, \"DDD\") // day of the year (no leading zero)\n .replace(/\\boo\\b/, \"DDDD\") // day of the year\n .replace(/\\bM\\b/, \"MMM\") // month name short\n .replace(/\\bMM\\b/, \"MMMM\") // month name long\n .replace(/\\bm\\b/, \"M\") // month of year (no leading)\n .replace(/\\bmm\\b/, \"MM\") // month of year\n .replace(/\\by\\b/, \"YY\") // year (two digits)\n .replace(/\\byy\\b/, \"YYYY\"); // year (four digits)\n }\n\n public ngAfterViewInit() {\n this.autocomplete.onOverlayAnimationDone = (event) => {};\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes.searchGridData) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public lazyLoadLookup(event: any) {\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(({ field }) => this.formGroupDialog.contains(field) && !this.formGroupDialog.get([field]).dirty)\n .forEach(({ value, field }) => {\n this.formGroupDialog.get([field]).patchValue(value instanceof Function ? value() : value);\n });\n }\n\n public showDialog() {\n this.setDefaultFilters();\n this.searchGridData = undefined;\n this.onTouched();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n public hideDialog() {\n const { inputEL, multiInputEL } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n\n if (this.multiple) multiInputEL.nativeElement.focus();\n else inputEL.nativeElement.focus();\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n this.dialog.moveOnTop();\n }\n\n public clear() {\n this.formGroupDialog.reset(this.originalFormValues);\n this.resetTable();\n }\n\n protected resetTable() {\n this.table.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(onChange: Function) {\n this.onChange = (value: any) => {\n this.writeValue(value);\n onChange(value);\n };\n }\n\n public registerOnTouched(onTouched: Function) {\n this.onTouched = onTouched;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split(\".\").reduce((result, prop) => (result[prop] === undefined ? \"\" : result[prop]), obj);\n }\n\n public getBadgeFromValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent[\"type\"];\n color?: BadgeComponent[\"color\"];\n iconClass?: BadgeComponent[\"iconClass\"];\n iconPosition?: BadgeComponent[\"iconPosition\"];\n };\n }[]\n ) {\n return options?.find((opt) => opt.value === value)?.badge;\n }\n\n public getLabelForValue(\n value: unknown,\n options: {\n label: string;\n value: unknown;\n badge?: {\n type?: BadgeComponent[\"type\"];\n color?: BadgeComponent[\"color\"];\n iconClass?: BadgeComponent[\"iconClass\"];\n iconPosition?: BadgeComponent[\"iconPosition\"];\n };\n }[]\n ) {\n if (!options) return value;\n\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : value;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel) {\n const value = this.getFieldValue(obj, path);\n if (value === true) return optionsLabel.true;\n else if (value === false) return optionsLabel.false;\n else return this.emptyFieldLabel;\n }\n\n public isNumber(obj: any, path: string) {\n return !new BigNumber(this.getFieldValue(obj, path)).isNaN();\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey(\"alt+shift+l\", this.clear.bind(this));\n const findHotkey = this.newHotkey(\"alt+shift+f\", this.search.bind(this));\n const hideHotkey = this.newHotkey(\"alt+shift+c\", this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey(\"alt+shift+s\", this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(combo, () => {\n fn();\n return false;\n }, [\"INPUT\", \"SELECT\", \"TEXTAREA\"]);\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n };\n }\n\n public getDoubleMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: \"\",\n };\n }\n\n public getMoneyMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public getNumberMaskConfig(col: BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.dialog?.contentViewChild?.nativeElement?.getElementsByTagName(\"input\")[0];\n\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n\n private _subscribeEvents(): void {\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange(this.value));\n\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple) {\n return;\n }\n this.onChange(null);\n });\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched();\n });\n\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: Event) => {\n const target = event.target as HTMLInputElement;\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = \"\";\n target.value = newValue;\n this.onChange(newValue);\n });\n }\n}\n","export enum StructureType {\n Fieldset = \"Fieldset\",\n Section = \"Section\",\n}\n","import { isNullOrUndefined } from \"../../../utils\";\nimport { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Section } from \"../structure/section\";\n\nexport interface GridConfig {\n fields?: Array<FormField | Section>;\n type: GridType;\n visible?: () => boolean;\n}\n\nexport class Grid implements GridConfig {\n public fields: Array<FormField | Section>;\n public type: GridType;\n public visible?: () => boolean;\n\n constructor(config: GridConfig) {\n Object.assign(this, { ...config });\n if (isNullOrUndefined(config.visible)) {\n this.visible = () => true;\n }\n }\n}\n","import { FormField } from \"../form-field\";\nimport { GridType } from \"../grid-type\";\nimport { Grid, GridConfig } from \"./grid\";\n\nexport class Row extends Grid {\n public fields: FormField[];\n public type: GridType;\n\n constructor(config: GridConfig) {\n super(config);\n }\n}\n","import { FormField } from \"../form-field\";\nimport { Grid } from \"../grid/grid\";\nimport { StructureType } from \"../structure-type\";\n\nexport interface StructureConfig {\n header?: string;\n configs?: Grid[];\n type: StructureType;\n}\n\nexport abstract class Structure {\n public header?: string;\n public configs?: Grid[] | FormField[];\n public type: StructureType;\n public isFlex? = false;\n\n constructor(config: StructureConfig) {\n Object.assign(this, { ...config });\n }\n}\n","import { Structure, StructureConfig } from \"./structure\";\n\nexport interface FieldsetConfig extends StructureConfig {\n beforeToggle?: (event: any) => void;\n afterToggle?: (event: any) => void;\n}\n\nexport class Fieldset extends Structure {\n public beforeToggle?: (event: any) => void;\n public afterToggle?: (event: any) => void;\n\n constructor(config: FieldsetConfig) {\n super(config);\n Object.assign(this, { ...config });\n }\n}\n","import { FieldSize } from \"../field-size\";\nimport { Structure, StructureConfig } from \"./structure\";\n\nexport class Section extends Structure {\n /**\n * Define if the structure is a flex container.\n */\n public isFlex? = false;\n /**\n * Define the justify-content property.\n */\n public justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly' = 'flex-start';\n /**\n * Define the align-items property.\n */\n public alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'initial' | 'inherit' = 'flex-start';\n\n public visible?: () => boolean = () => true;\n\n public size?: FieldSize;\n protected gridClass?: string[];\n constructor(config: Section) {\n super(config as StructureConfig);\n this.isFlex = config.isFlex || false;\n this.justifyContent = config.justifyContent || 'flex-start';\n this.alignItems = config.alignItems || 'flex-start';\n\n if (config.visible) {\n this.visible = config.visible\n }\n\n this.size = new FieldSize(config.size || {});\n this.gridClass = Object.keys(this.size).map((key: keyof FieldSize) => `ui-${key}-${this.size[key]}`);\n }\n}\n","import { DynamicType } from \"./dynamic-type\";\nimport { AutocompleteField, AutocompleteFieldConfig } from \"./fields/autocomplete-field\";\nimport { BignumberField, BignumberFieldConfig } from \"./fields/bignumber-field\";\nimport { SliderField, SliderFieldConfig } from \"./fields/slider-field\";\nimport { BooleanField, BooleanFieldConfig } from \"./fields/boolean-field\";\nimport { BooleanSwitchField, BooleanSwitchFieldConfig } from \"./fields/boolean-switch-field\";\nimport { CalendarField, CalendarFieldConfig } from \"./fields/calendar-field\";\nimport { ChipsField, ChipsFieldConfig } from \"./fields/chips-field\";\nimport { CurrencyField } from \"./fields/currency-field\";\nimport { DecimalField, DecimalFieldConfig } from \"./fields/decimal-field\";\nimport { LookupField, LookupFieldConfig } from \"./fields/lookup-field\";\nimport { NumberField, NumberFieldConfig } from \"./fields/number-field\";\nimport { PasswordField, PasswordFieldConfig } from \"./fields/password-field\";\nimport { RadioButtonField } from \"./fields/radio-button-field\";\nimport { SelectField, SelectFieldConfig } from \"./fields/select-field\";\nimport { TextAreaField, TextAreaFieldConfig } from \"./fields/text-area-field\";\nimport { TextField, TextFieldConfig } from \"./fields/text-field\";\nimport { Row } from \"./grid/row\";\nimport { Fieldset, FieldsetConfig } from \"./structure/fieldset\";\nimport { Section } from \"./structure/section\";\nimport { StructureConfig } from \"./structure/structure\";\n\nexport class DynamicConfig {\n constructor(config: any) {\n const { type, representedBy } = config;\n switch (type) {\n case DynamicType.Autocomplete:\n return new AutocompleteField(config as AutocompleteFieldConfig);\n case DynamicType.Binary:\n case DynamicType.String:\n return new TextField(config as TextFieldConfig);\n case DynamicType.Password:\n return new PasswordField(config as PasswordFieldConfig);\n case DynamicType.Boolean:\n if (representedBy === \"switch\") {\n return new BooleanSwitchField(config as BooleanSwitchFieldConfig);\n }\n return new BooleanField(config as BooleanFieldConfig);\n case DynamicType.Chips:\n return new ChipsField(config as ChipsFieldConfig);\n case DynamicType.Date:\n case DynamicType.DateTime:\n case DynamicType.LocalDateTime:\n case DynamicType.Time:\n return new CalendarField(config as CalendarFieldConfig);\n case DynamicType.Double:\n return new DecimalField(config as DecimalFieldConfig);\n case DynamicType.Enum:\n return new SelectField(config as SelectFieldConfig);\n case DynamicType.Fieldset:\n return new Fieldset(config as FieldsetConfig);\n case DynamicType.Integer:\n return new NumberField(config as NumberFieldConfig);\n case DynamicType.Number:\n return new BignumberField(config as BignumberFieldConfig);\n case DynamicType.Lookup:\n return new LookupField(config as LookupFieldConfig);\n case DynamicType.Money:\n return new CurrencyField(config as DecimalFieldConfig);\n case DynamicType.Radio:\n return new RadioButtonField(config);\n case DynamicType.Row:\n return new Row(config);\n case DynamicType.Section:\n return new Section(config as StructureConfig);\n case DynamicType.Slider:\n return new SliderField(config as SliderFieldConfig);\n case DynamicType.Text:\n return new TextAreaField(config as TextAreaFieldConfig);\n }\n }\n}\n","export enum GridType {\n Row = \"Row\",\n}\n","export enum ValidateErrors {\n MAX_FILE_SIZE = \"MAX_FILE_SIZE\",\n MAX_FILE_LIMIT = \"MAX_FILE_LIMIT\",\n MAX_COMBINED_FILE_SIZE = \"MAX_COMBINED_FILE_SIZE\",\n UNSUPPORTED_EXTENSION = \"UNSUPPORTED_EXTENSION\",\n}\n","export enum FileUploadPermissions {\n Add = \"add\",\n Read = \"read\",\n Remove = \"remove\",\n}\n\nexport const ALL_PERMISSIONS = [\n FileUploadPermissions.Add,\n FileUploadPermissions.Read,\n FileUploadPermissions.Remove,\n];","import { Component, Input, ViewEncapsulation, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { DynamicConfig } from \"./configurations/dynamic-config\";\nimport { FormField } from \"./configurations/form-field\";\n\n@Component({\n selector: \"s-dynamic-form\",\n templateUrl: \"./dynamic-form.component.html\",\n styleUrls: [\"dynamic-form.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n @Input()\n public id: string;\n @Input()\n public configs: DynamicConfig[];\n @Input()\n public fields: FormField[]; // @TODO deve-se remover em uma vesão de quebra. O default deve ser configs.\n @Input()\n public form: FormGroup;\n @Input()\n public errorMessages?: any = {};\n\n}\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { debounceTime, repeat, takeUntil } from \"rxjs/operators\";\n\n@Directive({\n selector: \"[sLongPress]\",\n})\nexport class LongPressDirective implements OnInit, OnDestroy {\n @Input()\n public sLongPressDelay = 500;\n\n @Output()\n public sLongPress = new EventEmitter<MouseEvent>();\n\n public mouseUp = new Subject<MouseEvent>();\n public mouseDown = new Subject<MouseEvent>();\n public ngUnsubscribe = new Subject();\n\n @HostListener(\"mouseup\", [\"$event\"])\n @HostListener(\"touchend\", [\"$event\"])\n public onMouseUp(event: MouseEvent) {\n this.mouseUp.next(event);\n }\n\n @HostListener(\"mousedown\", [\"$event\"])\n @HostListener(\"touchstart\", [\"$event\"])\n public onMouseDown(event: MouseEvent) {\n this.mouseDown.next(event);\n }\n\n public ngOnInit() {\n this.mouseDown\n .pipe(\n debounceTime(this.sLongPressDelay),\n takeUntil(this.mouseUp),\n repeat(),\n takeUntil(this.ngUnsubscribe)\n )\n .subscribe(event => this.sLongPress.emit(event));\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostListener,\n Output\n} from '@angular/core';\n\n@Directive({\n selector: '[sDoubleClick]'\n})\nexport class DoubleClickDirective {\n\n @Output() public onDoubleClick: EventEmitter<PointerEvent> = new EventEmitter();\n \n private _timeout: NodeJS.Timeout = null;\n private _DOUBLE_CLICK_DELAY = 500;\n\n @HostListener(\"click\", [\"$event\"])\n public onClick(event: PointerEvent): void {\n this.handleOnClickEvent(event);\n }\n\n private handleOnClickEvent(event: PointerEvent): void {\n if (this._timeout) {\n this.clearTimeout();\n this.onDoubleClick.emit(event);\n } else {\n this._timeout = setTimeout(() => this.clearTimeout(), this._DOUBLE_CLICK_DELAY)\n }\n \n }\n\n private clearTimeout(): void {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LongPressDirective } from \"./long-press.directive\";\nimport { DoubleClickDirective } from \"./double-click.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n LongPressDirective,\n DoubleClickDirective\n ],\n exports: [\n LongPressDirective,\n DoubleClickDirective\n ],\n})\nexport class MouseEventsModule {}\n","import { Component, Input, Output, EventEmitter, HostBinding, OnDestroy } from \"@angular/core\"; // Adicionado HostBinding, OnDestroy\nimport { Toast } from \"./types/toast\";\n\n@Component({\n selector: \"s-toast\",\n templateUrl: \"./toast.component.html\",\n styleUrls: [\"./toast.component.scss\"],\n})\nexport class ToastComponent implements OnDestroy {\n @Input()\n public toast!: Toast;\n\n @Output()\n public dismiss = new EventEmitter<void>();\n\n @HostBinding(\"class.toast--leaving\")\n public isLeaving = false;\n\n private timer: ReturnType<typeof setTimeout> | null = null;\n\n public startDismissAnimation(): void {\n this.isLeaving = true;\n\n setTimeout(() => {\n this.dismiss.emit();\n }, 300);\n }\n\n public dismissToast(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.startDismissAnimation();\n }\n\n public ngOnInit(): void {\n if (!this.toast.sticky && this.toast.duration) {\n this.timer = setTimeout(() => {\n this.startDismissAnimation();\n }, this.toast.duration);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n}\n","import { Injectable, ComponentRef, ApplicationRef, Injector, EmbeddedViewRef, ComponentFactoryResolver } from \"@angular/core\";\n\nimport { ToastComponent } from \"./toast.component\";\nimport { Toast } from \"./types/toast\";\nimport { first } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ToastService {\n private activeToasts: ComponentRef<ToastComponent>[] = [];\n private globalToastHostElement: HTMLElement | null = null;\n\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n private ensureGlobalToastHost(): void {\n if (!this.globalToastHostElement) {\n this.globalToastHostElement = document.createElement(\"div\");\n document.body.appendChild(this.globalToastHostElement);\n\n this.globalToastHostElement.style.display = \"flex\";\n this.globalToastHostElement.style.flexDirection = \"column\";\n this.globalToastHostElement.style.position = \"fixed\";\n this.globalToastHostElement.style.right = \"20px\";\n this.globalToastHostElement.style.top = \"20px\";\n this.globalToastHostElement.style.zIndex = \"99999\";\n this.globalToastHostElement.style.gap = \"10px\";\n }\n }\n\n public show(toast: Toast): void {\n this.ensureGlobalToastHost();\n\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ToastComponent);\n const componentRef = componentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n\n if (!toast.sticky) {\n toast.duration = toast.duration ?? 10000;\n }\n\n componentRef.instance.toast = {\n closable: true,\n ...toast,\n };\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n this.globalToastHostElement.appendChild(domElem);\n domElem.style.display = \"flex\";\n domElem.style.justifyContent = \"center\";\n\n componentRef.instance.dismiss.pipe(first()).subscribe(() => {\n const index = this.activeToasts.indexOf(componentRef);\n\n if (index !== -1) {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n this.activeToasts.splice(index, 1);\n }\n\n if (this.activeToasts.length === 0 && this.globalToastHostElement) {\n this.globalToastHostElement.remove();\n this.globalToastHostElement = null;\n }\n });\n\n this.activeToasts.push(componentRef);\n }\n}\n","import { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\n\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nimport { ToastService } from \"../../../toast/toast.service\";\nimport { IAssistInputData } from \"./models/iassist-input-data\";\nimport { IAssistResponse } from \"./models/iassist-response\";\n\n@Injectable()\nexport class IAssistService {\n constructor(\n private readonly http: HttpClient,\n private readonly _toastService: ToastService\n ) {}\n\n public askIA(context: string, data: IAssistInputData): Observable<IAssistResponse> {\n const prompt: string = data.prompt ? this._replacePlaceholder(context, data) : this._createPrompt(context, data);\n\n return this.http\n .post<IAssistResponse>(\"platform/iassist/api/latest/completions\", {\n prompt,\n provider: \"OPEN_AI\",\n parameters: {\n model: \"gpt-3.5-turbo\",\n max_tokens: 700,\n temperature: 1,\n },\n })\n .pipe(\n catchError((err: HttpErrorResponse) => {\n this._toastService.show({\n severity: \"error\",\n title: err.status ? String(err.status) : \"Error\",\n text: (err.error && err.error.message) || err.statusText || err.message || \"Error\",\n });\n return throwError(err);\n })\n );\n }\n\n private _replacePlaceholder(context: string, data: IAssistInputData): string {\n const values = { ...data, context };\n delete values.prompt;\n\n let result = data.prompt;\n for (const key in { ...values, context: context }) {\n const placeholder = new RegExp(`{{\\\\s*${key}\\\\s*}}`, \"g\");\n result = result.replace(placeholder, values[key]);\n }\n\n console.log(\"prompt\", result);\n return result;\n }\n\n private _createPrompt(context: string, data: IAssistInputData): string {\n return `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 }\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\n@Component({\n selector: `s-empty-state`,\n templateUrl: `./empty-state.component.html`,\n styleUrls: [\"./empty-state.component.css\"],\n})\nexport class EmptyStateComponent {\n public static nextId = 0;\n\n @Input() id = `s-empty-state-${EmptyStateComponent.nextId++}`;\n @Input() iconClass = \"fa fa-inbox\";\n @Input() title: string;\n @Input() description?: string;\n @Input() showPrimaryAction = true;\n @Input() showSecondaryAction = true;\n @Input() primaryActionLabel?: string;\n @Input() secondaryActionLabel?: string;\n @Input() primaryModel?: MenuItem[] = [];\n\n @Output() primaryAction = new EventEmitter();\n @Output() secondaryAction = new EventEmitter();\n}\n","import { Component, Input } from \"@angular/core\";\nimport { CookieService } from \"ngx-cookie-service\";\n\n@Component({\n selector: `s-empty-state-go-back`,\n templateUrl: `./go-back.component.html`,\n styleUrls: [],\n})\nexport class EmptyStateGoBackComponent {\n public static nextId = 0;\n\n @Input() iconClass = \"fa fa-exclamation-triangle\";\n @Input() title: string;\n @Input() description?: string;\n @Input() primaryActionLabel: string;\n\n constructor(private cookieService: CookieService) {}\n\n public goBack() {\n const portalUrl = this.cookieService.get(\"com.senior.portal.url\");\n window.open(portalUrl, \"_top\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nimport { ButtonModule } from \"../button/index\";\nimport { EmptyStateComponent } from \"./empty-state.component\";\nimport { EmptyStateGoBackComponent } from \"./go-back/go-back.component\";\n\n@NgModule({\n imports: [CommonModule, ButtonModule],\n providers: [CookieService],\n declarations: [EmptyStateComponent, EmptyStateGoBackComponent],\n exports: [EmptyStateComponent, EmptyStateGoBackComponent ],\n})\nexport class EmptyStateModule {}\n","import { Injectable } from \"@angular/core\";\nimport { CustomHttpClient } from \"../code-editor/infra/utils\";\nimport {\n ListBlobMetadataRequest,\n ListBlobMetadataResponse\n} from \"./models/list-blob-metadata\"\n\n@Injectable()\nexport class FileUploadService {\n private BASE_URL_FIELD_CUSTOMIZATION = \"platform/field_customization\";\n private TOKEN = new AbortController();\n\n public async getMetadataCustomField<T>(request: ListBlobMetadataRequest): Promise<ListBlobMetadataResponse> {\n return CustomHttpClient.POST(\n `${this.BASE_URL_FIELD_CUSTOMIZATION}/queries/getFileMetadata`,\n request,\n { signal: this.TOKEN.signal }\n );\n }\n}\n","export enum SVGFactoryIcons {\n IAssist = \"iassist\",\n Senior = \"senior\",\n}","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Subject } from \"rxjs\";\nimport * as moment_ from \"moment\";\n\nimport { Breakpoints } from \"../utils\";\nimport { FileUploadService } from \"./file-upload.service\";\nimport { ListBlobMetadataResponse } from \"./models/list-blob-metadata\";\nimport { FileDto } from \"./models/file-dto\";\nimport { UploadError } from \"./models/uploadError\";\nimport { ValidateErrors } from \"./models/validate-errors\";\nimport { FileUploadPermissions, ALL_PERMISSIONS } from \"./models/file-upload-permissions\";\n\nconst moment = moment_;\n\n@Component({\n selector: \"s-file-upload\",\n templateUrl: \"./file-upload.component.html\",\n styleUrls: [\"./file-upload.component.scss\"],\n})\nexport class FileUploadComponent implements OnInit, OnDestroy, AfterContentInit {\n public static nextId = 0;\n\n public ADD_PERMISSION = FileUploadPermissions.Add;\n public READ_PERMISSION = FileUploadPermissions.Read;\n public REMOVE_PERMISSION = FileUploadPermissions.Remove;\n\n @ViewChild(\"inputUpload\", { static: false })\n private readonly inputUpload: ElementRef;\n\n @ViewChild(\"anchor\", { static: false })\n private readonly anchor: ElementRef;\n\n @Input()\n public id = `s-file-upload-${FileUploadComponent.nextId++}`;\n\n @Input()\n public chooseLabel: string;\n\n @Input()\n public removeLabel: string;\n\n @Input()\n public cancelLabel: string;\n\n @Input()\n public successTooltip: string;\n\n @Input()\n public multiple: boolean;\n\n @Input()\n public accept: string;\n\n @Input()\n public supportedExtensions: string[] = [];\n\n @Input()\n public ariaLabelFileName: string;\n\n @Input()\n public maxFileSize: number;\n\n @Input()\n public maxCombinedFileSize: number;\n\n @Input()\n public fileLimit: number;\n\n @Input()\n public ariaLabelProgress: string;\n\n @Input()\n public ariaLabelSuccess: string;\n\n @Input()\n public ariaLabelError: string;\n\n @Input()\n public ariaLabelRemove: string;\n\n @Input()\n public formGroup: FormControl;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showFileUploadDate: boolean = false;\n\n @Input()\n public permissions: FileUploadPermissions[] = ALL_PERMISSIONS;\n\n @Input()\n public set files(files: FileDto[]) {\n if (this.showFileUploadDate && files[0]?.objectId) {\n this.getUploadDate(files);\n }\n this._files = files.map(file => {\n if (this.isImage(file)) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(file));\n }\n return file;\n });\n }\n\n @Output()\n public uploadHandler: EventEmitter<{ files: FileDto[] }> = new EventEmitter();\n\n @Output()\n public removeFile: EventEmitter<{ file: File }> = new EventEmitter();\n\n @Output()\n public cancelUpload: EventEmitter<number> = new EventEmitter();\n\n @Output()\n public downloadFile: EventEmitter<{ index: number; anchor: ElementRef }> = new EventEmitter();\n\n @Output()\n public validateErrors: EventEmitter<UploadError> = new EventEmitter();\n\n private _files: FileDto[] = [];\n private readonly ngUsubscribe: Subject<void> = new Subject();\n public isSmallDevice: boolean;\n public inputValue = \"\";\n public modifiedDate: string;\n\n constructor(private readonly sanitizer: DomSanitizer,\n private readonly fileUploadService: FileUploadService,\n private readonly translate: TranslateService) { }\n\n public ngOnInit(): void {\n this.supportedExtensions = this.supportedExtensions\n .map(extension => extension.replace(\".\", \"\").toLowerCase());\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public onFileSelect(files: FileDto[]): void {\n const newFiles: FileDto[] = [];\n\n if (!this.multiple) {\n this.files = [];\n }\n\n if (this.isFileLimitExceeded(files)) {\n this.validateErrors.emit({\n files,\n validation: ValidateErrors.MAX_FILE_LIMIT,\n });\n this.clearFileInput();\n return;\n }\n\n if (this.isFileCombinedSizeExceeded(files)) {\n this.validateErrors.emit({\n files: files,\n validation: ValidateErrors.MAX_COMBINED_FILE_SIZE,\n });\n this.clearFileInput();\n return;\n }\n\n for (const file of files) {\n if (this.isUnsupportedFileExtension(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.UNSUPPORTED_EXTENSION,\n });\n continue;\n }\n\n if (this.isFileSizeExceeded(file)) {\n this.validateErrors.emit({\n files: [file],\n validation: ValidateErrors.MAX_FILE_SIZE,\n });\n continue;\n }\n\n newFiles.push(file);\n }\n\n if (newFiles.length) {\n this.files = this.files.concat(newFiles);\n this.uploadHandler.emit({\n files: newFiles,\n });\n }\n\n this.clearFileInput();\n }\n\n public onRemoveFile(file: FileDto): void {\n const fileIndex = this.files.indexOf(file);\n const removedFiles = this.files.splice(fileIndex, 1);\n\n if (removedFiles.length) {\n this.removeFile.emit({ file });\n }\n }\n\n public onCancelUpload(index: number) {\n const removedFiles = this.files.splice(index, 1);\n\n if (removedFiles.length) {\n this.cancelUpload.emit(index);\n }\n\n this.clearFileInput();\n }\n\n public onDowloadFile(index: number) {\n this.downloadFile.emit({\n index,\n anchor: this.anchor,\n });\n }\n\n public get files(): FileDto[] {\n return this._files;\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n this.isSmallDevice = windowWidth <= Breakpoints.SM_MAX;\n }\n\n private isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n private isFileLimitExceeded(files: FileDto[]) {\n if (!this.fileLimit) {\n return false;\n }\n return this.files.length + files.length > this.fileLimit;\n }\n\n private isFileCombinedSizeExceeded(files: File[]): boolean {\n if (!this.maxCombinedFileSize) {\n return false;\n }\n\n const filesList = [...files, ...this.files];\n\n const combinedSize = filesList.reduce((combinedSize, file) => combinedSize + file.size, 0);\n\n return combinedSize > this.maxCombinedFileSize;\n }\n\n private isFileSizeExceeded(file: File): boolean {\n if (!this.maxFileSize) {\n return false;\n }\n return file.size > this.maxFileSize;\n }\n\n private isUnsupportedFileExtension(file: File) {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return !this.supportedExtensions.includes(extension);\n }\n return false;\n }\n\n private clearFileInput() {\n this.inputUpload.nativeElement.value = null;\n }\n\n private getUploadDate(blobFile: FileDto[]): void {\n if (!blobFile) {\n return;\n }\n\n this.fileUploadService.getMetadataCustomField({ objectId: blobFile[0].objectId })\n .then(metadata => this.setModifiedDate(metadata));\n }\n\n private setModifiedDate(metadata: ListBlobMetadataResponse): void {\n const hour = moment(metadata.modified).format(\"HH\");\n const minutes = moment(metadata.modified).format(\"mm\");\n const day = moment(metadata.modified).format(\"DD\");\n const month = moment(metadata.modified).format(\"MM\");\n const fullYear = moment(metadata.modified).format(\"YYYY\");\n\n this.modifiedDate = this.translate.instant(\"platform.angular_components.date_modified_custom_blob\", { hour, minutes, day, month, fullYear });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ProgressBarModule } from \"primeng/progressbar\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { FileUploadService } from \"./file-upload.service\";\nimport { FileUploadComponent } from \"./file-upload.component\";\n\n@NgModule({\n declarations: [FileUploadComponent],\n imports: [\n CommonModule,\n ButtonModule,\n TooltipModule,\n ProgressBarModule,\n TranslateModule,\n ],\n providers: [FileUploadService],\n exports: [FileUploadComponent],\n})\nexport class FileUploadModule {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n templateUrl: \"./iassist-icon.component.html\",\n})\nexport class IAssistIconComponent {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n templateUrl: \"./senior-icon.component.html\",\n})\nexport class SeniorIconComponent {}\n","export enum LoadingStateIndicators {\n Dots = \"dots\",\n Logo = \"logo\",\n}","import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, ChangeDetectorRef, AfterViewInit } from \"@angular/core\";\n\nimport { IAssistIconComponent } from \"./components/iassist-icon/iassist-icon.component\";\nimport { SeniorIconComponent } from \"./components/senior-icon/senior-icon.component\";\nimport { SVGFactoryIcons } from \"./components/svg-factory-icons\";\n\n@Directive({\n selector: \"[sSVGFactory]\",\n})\nexport class SVGFactoryDirective implements AfterViewInit {\n @Input(\"sSVGFactory\")\n public set sSVGFactory(icon: SVGFactoryIcons) {\n this._iconClass = this._getIconClass(icon);\n }\n\n private _iconClass = this._getIconClass(SVGFactoryIcons.Senior);\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit() {\n this._createComponent();\n }\n\n private _createComponent() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(this._iconClass);\n this.viewContainerRef.clear();\n this.viewContainerRef.createComponent(factory);\n this.cdr.detectChanges();\n }\n\n private _getIconClass(icon: SVGFactoryIcons) {\n switch (icon) {\n case SVGFactoryIcons.IAssist:\n return IAssistIconComponent;\n case SVGFactoryIcons.Senior:\n default:\n return SeniorIconComponent;\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SVGFactoryDirective } from \"./svg-factory.directive\";\nimport { IAssistIconComponent } from \"./components/iassist-icon/iassist-icon.component\";\nimport { SeniorIconComponent } from \"./components/senior-icon/senior-icon.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n SVGFactoryDirective,\n IAssistIconComponent,\n SeniorIconComponent,\n ],\n exports: [SVGFactoryDirective],\n})\nexport class SVGFactoryModule {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-dots-indicator\",\n templateUrl: \"./dots-indicator.component.html\",\n styleUrls: [\"./dots-indicator.component.scss\"],\n})\nexport class DotsIndicatorComponent {}","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-logo-indicator\",\n templateUrl: \"./logo-indicator.component.html\",\n styleUrls: [\"./logo-indicator.component.scss\"],\n})\nexport class LoadingIndicatorComponent {}\n","export enum PasswordStrengths {\n VeryWeak = \"Very_weak\",\n Weak = \"weak\",\n Medium = \"medium\",\n Strong = \"strong\",\n}","export enum PasswordStrengthPositions {\n Top = \"top\",\n Right = \"right\",\n Left = \"left\",\n}","import { Component, Input, OnDestroy, TemplateRef } from \"@angular/core\";\n\nimport { LoadingStateIndicators } from \"./components/loading-state-indicators\";\n\n@Component({\n selector: \"s-loading-state\",\n templateUrl: \"./loading-state.component.html\",\n styleUrls: [\"./loading-state.component.scss\"],\n})\nexport class LoadingStateComponent implements OnDestroy {\n public static nextId = 0;\n \n @Input()\n public indicator: LoadingStateIndicators = LoadingStateIndicators.Dots;\n\n @Input()\n public id = `s-loading-state-${LoadingStateComponent.nextId++}`;\n\n @Input()\n public blockWindow: boolean;\n\n @Input()\n public set loading(loading: boolean) {\n this._loading = loading;\n loading ? this.block() : this.unblock(); \n }\n\n public get loading() {\n return this._loading;\n }\n\n public contents: TemplateRef<any>;\n public blocking: boolean;\n\n private _loading: boolean;\n private BLOCK_TIMEOUT_VALUE = 300;\n private UNBLOCK_TIMEOUT_VALUE = 200;\n private blockTimeoutId: any;\n private unblockTimeoutId: any;\n\n public block(): void {\n if (this.unblockTimeoutId) {\n clearTimeout(this.unblockTimeoutId);\n this.unblockTimeoutId = undefined;\n }\n\n if (!this.blockTimeoutId) {\n this.blockTimeoutId = setTimeout(() => {\n this.blocking = true;\n this.blockTimeoutId = undefined;\n }, this.BLOCK_TIMEOUT_VALUE);\n }\n }\n\n public unblock(): void {\n if (this.blockTimeoutId) {\n clearTimeout(this.blockTimeoutId);\n this.blockTimeoutId = undefined;\n }\n\n if (!this.unblockTimeoutId) {\n this.unblockTimeoutId = setTimeout(() => {\n this.blocking = false;\n this.unblockTimeoutId = undefined;\n }, this.UNBLOCK_TIMEOUT_VALUE);\n }\n }\n\n public ngOnDestroy(): void {\n if (this.blockTimeoutId) {\n clearTimeout(this.blockTimeoutId);\n }\n\n if (this.unblockTimeoutId) {\n clearTimeout(this.unblockTimeoutId);\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n Input,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { LoadingStateComponent } from \"./loading-state.component\";\nimport { LoadingStateIndicators } from \"./components/loading-state-indicators\";\n\n@Directive({\n selector: \"[sLoadingState]\",\n})\nexport class LoadingStateDirective implements AfterViewInit, OnDestroy {\n @Input(\"sLoadingState\")\n public set sLoadingState(value: boolean | { loading: boolean; indicator?: LoadingStateIndicators }) {\n if (typeof value === \"boolean\") {\n this._loading = value;\n this.indicator = LoadingStateIndicators.Dots;\n } else if (typeof value === \"object\") {\n this._loading = value.loading;\n this.indicator = value.indicator || LoadingStateIndicators.Dots;\n }\n\n if (this.loaderComponent) {\n this.loaderComponent.instance.loading = this._loading;\n this.loaderComponent.instance.indicator = this.indicator;\n }\n }\n\n private _loading = false;\n private indicator = LoadingStateIndicators.Dots;\n private loaderComponent: ComponentRef<LoadingStateComponent>;\n\n constructor(\n private target: ViewContainerRef,\n private template: TemplateRef<any>,\n private componentFactoryResolver: ComponentFactoryResolver,\n private cdr: ChangeDetectorRef\n ) {}\n\n public ngAfterViewInit() {\n this.createComponent();\n }\n\n private createComponent() {\n const factory = this.componentFactoryResolver.resolveComponentFactory(LoadingStateComponent);\n this.loaderComponent = this.target.createComponent(factory);\n this.loaderComponent.instance.contents = this.template;\n this.loaderComponent.instance.loading = this._loading;\n this.loaderComponent.instance.indicator = this.indicator;\n this.cdr.detectChanges();\n }\n\n public ngOnDestroy() {\n if (this.loaderComponent) {\n this.loaderComponent.destroy();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { SVGFactoryModule } from \"../../utils/svg-factory/svg-factory.module\";\nimport { DotsIndicatorComponent } from \"./components/dots-indicator/dots-indicator.components\";\nimport { LoadingIndicatorComponent } from \"./components/logo-indicator/logo-indicator.component\";\nimport { LoadingStateComponent } from \"./loading-state.component\";\nimport { LoadingStateDirective } from \"./loading-state.directive\";\n\n@NgModule({\n imports: [\n CommonModule,\n SVGFactoryModule,\n ],\n declarations: [\n LoadingStateComponent,\n LoadingStateDirective,\n DotsIndicatorComponent,\n LoadingIndicatorComponent,\n ],\n exports: [\n LoadingStateComponent,\n LoadingStateDirective,\n ],\n entryComponents: [LoadingStateComponent],\n})\nexport class LoadingStateModule {}\n","import { Directive, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from \"@angular/forms\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { first } from \"rxjs/operators\";\n\n@Directive({\n selector: \"input[sLocalizedNumberInput]\",\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => LocalizedNumberInputDirective),\n multi: true,\n },\n ],\n})\nexport class LocalizedNumberInputDirective implements OnInit, Validator {\n @Input()\n public decimalSeparator: string;\n @Input()\n public thousandsSeparator: string;\n @Input()\n public precision = 2;\n\n private numberRegex: string;\n\n constructor(private readonly localeService: LocaleService) {}\n\n ngOnInit() {\n // Gera a expressão regular para validar números de acordo com os separadores decimais e de milhares.\n // Exemplo: /^(\\+?)(\\-?)([0-9]{0,3})*((\\,[0-9]{3,3})|((\\,[0-9]{3,3})+(\\,[0-9]{3,3}))|((\\,[0-9]{3,3})+(\\.[0-9]{1,10})))?$/g\n // tslint:disable-next-line: max-line-length\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this.localeService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this.localeService.getGroupingSeparator();\n\n this.numberRegex = `^((\\\\+?)|(-?))([0-9]{1,3})+((\\\\${this.thousandsSeparator}[0-9]{3,3})|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.thousandsSeparator}[0-9]{3,3}))|((\\\\${this.thousandsSeparator}[0-9]{3,3})+(\\\\${this.decimalSeparator}[0-9]{1,2}))|(\\\\${this.decimalSeparator}[0-9]{1,${this.precision}}))?$`;\n });\n }\n\n validate(control: AbstractControl): ValidationErrors {\n if (control.value && !String(control.value).match(new RegExp(this.numberRegex, \"g\"))) return { invalidNumber: true };\n return null;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { LocalizedNumberInputDirective } from \"./localized-number-input.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [LocalizedNumberInputDirective],\n exports: [LocalizedNumberInputDirective],\n})\nexport class LocalizedNumberInputModule {}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: \"sMaskFormatter\",\n})\nexport class MaskFormatterPipe implements PipeTransform {\n private defs = {\n \"9\": \"[0-9]\",\n a: \"[A-Za-z]\",\n \"*\": \"[A-Za-z]|[0-9]\",\n };\n\n transform(value: string, maskFormat: string): any {\n const buffer = [];\n let opcionalPos;\n let pos = 0;\n const maskTokens = maskFormat.split(\"\");\n const symbolsPosAfterOpcional = [];\n const hasOpcional = maskFormat.includes(\"?\");\n\n for (let i = 0; i < maskTokens.length; i++) {\n const token = maskTokens[i];\n\n if (token != \"?\") {\n if (this.defs[token]) {\n const tokenRegex = this.defs[token];\n const charAtPos = value.charAt(pos);\n const isValidChar = new RegExp(tokenRegex).test(charAtPos);\n if (isValidChar) {\n if (pos < maskTokens.length) {\n buffer.push(value.charAt(pos));\n pos++;\n }\n } else {\n throw new Error(\"Value doesn't match mask format\");\n }\n } else {\n buffer.push(token);\n if (hasOpcional && i > opcionalPos) {\n symbolsPosAfterOpcional.push(i);\n }\n }\n } else {\n opcionalPos = i;\n }\n }\n\n if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\n let formattedValue = buffer.join(\"\");\n let beforeSymbol;\n let symbol;\n let firstAfterSymbol;\n let endOfString;\n\n for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\n const symbolPos = symbolsPosAfterOpcional[i];\n beforeSymbol = formattedValue.substr(0, symbolPos - 1);\n symbol = formattedValue.substr(symbolPos - 1, 1);\n firstAfterSymbol = formattedValue.substr(symbolPos, 1);\n endOfString = formattedValue.substr(symbolPos + 1);\n\n formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\n }\n return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\n }\n\n return buffer.join(\"\");\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MaskFormatterPipe } from \"./mask-formatter.pipe\";\n\n@NgModule({\n exports: [MaskFormatterPipe],\n declarations: [MaskFormatterPipe],\n})\nexport class MaskFormatterModule {}\n","export enum EnumColumnFieldType {\n STRING = \"STRING\",\n NUMBER = \"NUMBER\",\n BOOLEAN = \"BOOLEAN\",\n DATE = \"DATE\",\n CURRENCY = \"CURRENCY\",\n ENUM = \"ENUM\",\n LOOKUP = \"LOOKUP\",\n LINK = \"LINK\",\n TOKENS = \"TOKENS\"\n}\n","import { BadgeColors } from \"../../../badge/models/badge-colors\";\n\nexport enum EnumBadgeColors {\n RED = BadgeColors.Red,\n ORANGE = BadgeColors.Orange,\n YELLOW = BadgeColors.Yellow,\n GREEN = BadgeColors.Green,\n BLUE = BadgeColors.Blue,\n GRAY = BadgeColors.Gray,\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { PasswordStrengths, PasswordStrengthPositions } from \"./models/index\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Component({\n templateUrl: \"./password-strength.component.html\",\n styleUrls: [\"./password-strength.component.scss\"],\n})\nexport class PasswordStrengthComponent implements OnInit {\n @Input()\n public weakTitle: string;\n\n @Input()\n public mediumTitle: string;\n\n @Input()\n public strongTitle: string;\n\n @Input()\n public description: string;\n\n public title: string;\n public position = PasswordStrengthPositions.Right;\n public left = 0;\n public top = 0;\n public visible = false;\n\n constructor(private readonly translate: TranslateService) {}\n\n public ngOnInit(): void {\n this.title = this.weakTitle;\n }\n\n public setPasswordStrengthPosition() {\n const passwordStrength = document.querySelector(\".password-strength\");\n\n switch (this.position) {\n case PasswordStrengthPositions.Top:\n passwordStrength.classList.add(\"password-strength--top\");\n break;\n case PasswordStrengthPositions.Right:\n passwordStrength.classList.add(\"password-strength--right\");\n break;\n case PasswordStrengthPositions.Left:\n passwordStrength.classList.add(\"password-strength--left\");\n break;\n }\n }\n\n public updateIndicators(passwordStrength: PasswordStrengths) {\n const strengthIndicator1 = document.querySelector(\"#strength-indicator-1\");\n const strengthIndicator2 = document.querySelector(\"#strength-indicator-2\");\n const strengthIndicator3 = document.querySelector(\"#strength-indicator-3\");\n\n const onIndicators = [];\n const indicators = [\n strengthIndicator1,\n strengthIndicator2,\n strengthIndicator3,\n ];\n\n let strengthClass: string;\n\n switch (passwordStrength) {\n case PasswordStrengths.VeryWeak:\n this.title = this.weakTitle ?? this.translate.instant(\"platform.angular_components.weak\");\n break;\n case PasswordStrengths.Weak:\n this.title = this.weakTitle ?? this.translate.instant(\"platform.angular_components.weak\");\n strengthClass = \"strength-indicator--weak\";\n onIndicators.push(strengthIndicator1);\n break;\n case PasswordStrengths.Medium:\n this.title = this.mediumTitle ?? this.translate.instant(\"platform.angular_components.medium\");\n strengthClass = \"strength-indicator--medium\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n break;\n case PasswordStrengths.Strong:\n this.title = this.strongTitle ?? this.translate.instant(\"platform.angular_components.strong\");\n strengthClass = \"strength-indicator--strong\";\n onIndicators.push(strengthIndicator1);\n onIndicators.push(strengthIndicator2);\n onIndicators.push(strengthIndicator3);\n break;\n }\n\n indicators.forEach(indicator => {\n indicator.classList.remove(\n \"strength-indicator--weak\",\n \"strength-indicator--medium\",\n \"strength-indicator--strong\",\n );\n });\n\n onIndicators.forEach(indicator => {\n indicator.classList.add(strengthClass);\n });\n }\n}","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostListener,\n Injector,\n Input,\n OnInit,\n} from \"@angular/core\";\n\nimport { PasswordStrengthPositions, PasswordStrengths } from \"./models/index\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@Directive({\n selector: \"[sPasswordStrength]\",\n})\nexport class PasswordStrengthDirective implements OnInit {\n @Input(\"sPasswordStrength\")\n public enabled = true;\n\n @Input(\"psValidation\")\n public validation: (content: string) => PasswordStrengths;\n\n @Input(\"psPosition\")\n public position = PasswordStrengthPositions.Right;\n\n @Input(\"psWeakTitle\")\n public weakTitle: string;\n\n @Input(\"psMediumTitle\")\n public mediumTitle: string;\n\n @Input(\"psStrongTitle\")\n public strongTitle: string;\n\n @Input(\"psDescription\")\n public description: string;\n\n private componentRef: ComponentRef<any> = null;\n\n constructor(\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n ) { }\n\n public ngOnInit() {\n this.validateProperties();\n }\n\n @HostListener(\"keyup\")\n @HostListener(\"focus\")\n public onFocus(): void {\n const content = this.elementRef.nativeElement.value ?? \"\";\n \n if (content) {\n this.createPasswordStrength();\n this.componentRef?.instance.updateIndicators(this.validation(content));\n } else {\n this.componentRef?.instance.updateIndicators(PasswordStrengths.VeryWeak);\n }\n }\n\n @HostListener(\"blur\")\n public onBlur(): void {\n this.destroyPasswordStrength();\n }\n\n private createPasswordStrength() {\n if (this.enabled && this.componentRef === null) {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PasswordStrengthComponent);\n this.componentRef = componentFactory.create(this.injector);\n this.appRef.attachView(this.componentRef.hostView);\n const domElem = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n this.setPasswordStrengthComponentProperties();\n\n this.showPasswordStrength();\n }\n }\n\n private showPasswordStrength() {\n if (this.componentRef !== null) {\n this.componentRef.instance.visible = true;\n }\n }\n\n private setPasswordStrengthComponentProperties() {\n if (this.componentRef != null) {\n this.componentRef.instance.position = this.position;\n this.componentRef.instance.weakTitle = this.weakTitle;\n this.componentRef.instance.mediumTitle = this.mediumTitle;\n this.componentRef.instance.strongTitle = this.strongTitle;\n this.componentRef.instance.description = this.description;\n\n const { top, right, bottom, left } = this.elementRef.nativeElement.getBoundingClientRect();\n\n const margin = 20;\n const elementRefHeight = bottom - top;\n const elementRefWidth = right - left;\n const safeSpace = 150;\n\n let positioned = false;\n const invalidOptions: PasswordStrengthPositions[] = [];\n\n while (!positioned) {\n if (invalidOptions.includes(PasswordStrengthPositions.Top)\n && invalidOptions.includes(PasswordStrengthPositions.Right)\n && invalidOptions.includes(PasswordStrengthPositions.Left)) {\n this.destroyPasswordStrength();\n throw new Error(\"No space to show password strength\");\n }\n\n switch (this.position) {\n case PasswordStrengthPositions.Top: {\n const topShift = top;\n const rightShift = document.body.clientWidth - right;\n const leftShift = left;\n\n if (topShift <= elementRefHeight + safeSpace || rightShift < 50 || leftShift < 50) {\n this.position = PasswordStrengthPositions.Right;\n invalidOptions.push(PasswordStrengthPositions.Top);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top - margin);\n this.componentRef.instance.left = Math.round(elementRefWidth / 2 + left);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Right: {\n const rightShift = document.body.clientWidth - right;\n\n if (rightShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Left;\n invalidOptions.push(PasswordStrengthPositions.Right);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(right + margin);\n positioned = true;\n break;\n }\n case PasswordStrengthPositions.Left: {\n const leftShift = left;\n\n if (leftShift <= elementRefWidth + safeSpace) {\n this.position = PasswordStrengthPositions.Top;\n invalidOptions.push(PasswordStrengthPositions.Left);\n break;\n }\n\n this.componentRef.instance.top = Math.round(top + elementRefHeight / 2);\n this.componentRef.instance.left = Math.round(left - margin);\n positioned = true;\n break;\n }\n default: {\n break;\n }\n }\n\n this.componentRef.instance.position = this.position;\n }\n }\n }\n\n private validateProperties() {\n this.validation = this.validation || this.defaultValidator;\n }\n\n private destroyPasswordStrength(): void {\n if (this.componentRef !== null) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private defaultValidator(content: string): PasswordStrengths {\n let points = 0;\n\n const regExpValidations = [\n new RegExp(\"(?=.*\\\\d)\"), // number\n new RegExp(\"(?=.*[a-z])\"), // lowercase\n new RegExp(\"(?=.*[A-Z])\"), // uppercase\n new RegExp(\"(?=.*[!@#$%&*.\\\\-=+^~])\"), // special character\n ];\n\n if (content.length >= 6) {\n points++;\n }\n\n regExpValidations.forEach(validation => {\n if (validation.test(content)) {\n points++;\n }\n });\n\n if (points < 1) {\n return PasswordStrengths.VeryWeak;\n } else if (points < 4) {\n return PasswordStrengths.Weak;\n } else if (points < 5) {\n return PasswordStrengths.Medium;\n } else {\n return PasswordStrengths.Strong;\n }\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PasswordStrengthDirective } from \"./password-strength.directive\";\nimport { PasswordStrengthComponent } from \"./password-strength.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n PasswordStrengthComponent,\n PasswordStrengthDirective,\n ],\n exports: [PasswordStrengthDirective],\n})\nexport class PasswordStrengthModule { }\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { Table, TableService } from \"primeng/table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n selector: \"s-table-header-checkbox\",\n template: `\n <div class=\"ui-chkbox ui-widget\" (click)=\"onClick()\">\n <div class=\"ui-helper-hidden-accessible\">\n <input type=\"checkbox\" [checked]=\"checked\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [disabled]=\"isDisabled()\">\n </div>\n <div [ngClass]=\"{'ui-chkbox-box ui-widget ui-state-default':true,\n 'ui-state-active':checked, 'ui-state-disabled': isDisabled(), 'ui-state-focus': hasFocus}\">\n <span [id]=\"id\" class=\"ui-chkbox-icon ui-clickable\" [ngClass]=\"{'pi pi-check':checked}\"></span>\n </div>\n </div>\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n @Input()\n public disabled: boolean;\n @Input()\n public rowProps: string[];\n @Input()\n public useAllObject: boolean;\n\n public checked: boolean;\n public hasFocus: boolean;\n\n private ngUnsubscribe = new Subject();\n\n constructor(public table: Table, public tableService: TableService) {\n this.table.tableService.valueSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit() {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n }\n\n public onFocus() {\n this.hasFocus = true;\n }\n\n public onBlur() {\n this.hasFocus = false;\n }\n\n isDisabled() {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n onClick() {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean) {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (checked) {\n const unselecteds = gridData\n .filter(record => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked() {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked() {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TableHeaderCheckboxComponent } from \"./table-header-checkbox.component\";\n\n@NgModule({\n imports: [CommonModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule {}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({ selector: \"[sNavigation]\" })\nexport class NavigationDirective {\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n switch (event.key) {\n case \"Right\": // IE 11\n case \"ArrowRight\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusFirstColFromCurrentRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusNextSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Left\": // IE 11\n case \"ArrowLeft\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.focusLastColFromPrevRow(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.focusPrevSelectableCol(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Up\": // IE 11\n case \"ArrowUp\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setPrevRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setAboveColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n case \"Down\": // IE 11\n case \"ArrowDown\":\n if (this.isRow(event.target as HTMLTableElement)) {\n this.setNextRowFocus(event.target as HTMLTableRowElement);\n } else if (this.isCol(event.target as HTMLTableElement)) {\n this.setUnderColFocus(event.target as HTMLTableColElement);\n }\n event.preventDefault();\n break;\n }\n }\n\n private focusLastColFromPrevRow(event: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(event);\n\n if (prevRow) {\n (prevRow.lastElementChild as HTMLTableColElement).focus();\n }\n }\n\n private focusFirstColFromCurrentRow(row: HTMLTableRowElement): void {\n const firstCol = row.firstElementChild as HTMLTableColElement;\n\n if (firstCol) {\n firstCol.focus();\n }\n }\n\n private focusNextSelectableCol(col: HTMLTableColElement): void {\n const nextCol = col.nextElementSibling as HTMLTableColElement;\n\n if (nextCol) {\n nextCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return this.setNextRowFocus(currentRow);\n }\n }\n\n private focusPrevSelectableCol(col: HTMLTableColElement): void {\n const prevCol = col.previousElementSibling as HTMLTableColElement;\n\n if (prevCol) {\n prevCol.focus();\n } else {\n const currentRow = col.parentElement as HTMLTableRowElement;\n return currentRow.focus();\n }\n }\n\n private setAboveColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const prevRow = this.findPrevSelectableRow(currentRow as HTMLTableRowElement);\n\n if (prevRow) (prevRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setUnderColFocus(currentCol: HTMLTableColElement): void {\n const cellIndex = currentCol[\"cellIndex\"];\n const currentRow = currentCol.parentElement;\n const nextRow = this.findNextSelectableRow(currentRow as HTMLTableRowElement);\n if (nextRow) (nextRow.cells[cellIndex] as HTMLTableDataCellElement).focus();\n }\n\n private setNextRowFocus(row: HTMLTableRowElement): void {\n const nextRow = this.findNextSelectableRow(row);\n if (nextRow) {\n nextRow.focus();\n }\n }\n\n private setPrevRowFocus(row: HTMLTableRowElement): void {\n const prevRow = this.findPrevSelectableRow(row);\n if (prevRow) {\n prevRow.focus();\n }\n }\n\n private isRow(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"tr\";\n }\n\n private isCol(event: HTMLTableElement): boolean {\n return event.tagName.toLocaleLowerCase() === \"td\";\n }\n\n private findPrevSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const prevRow = <HTMLTableRowElement>row.previousElementSibling;\n if (prevRow) return prevRow;\n else return null;\n }\n\n private findNextSelectableRow(row: HTMLTableRowElement): HTMLTableRowElement {\n const nextRow = <HTMLTableRowElement>row.nextElementSibling;\n if (nextRow) return nextRow;\n else return null;\n }\n}\n","import { Directive, HostListener, Input } from \"@angular/core\";\nimport { RowToggler, Table } from \"primeng/table\";\n\n@Directive({ selector: \"[sRowToggler]\" })\nexport class RowTogllerDirective extends RowToggler {\n @Input(\"sRowToggler\")\n data: any;\n\n constructor(public dt: Table) {\n super(dt);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent) {\n if (this.isEnabled()) {\n switch (event.key) {\n case \"Enter\":\n this.dt.toggleRow(this.data, event);\n event.preventDefault();\n break;\n default:\n event.preventDefault();\n break;\n }\n }\n }\n}\n","import { AfterContentChecked, AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy } from \"@angular/core\";\nimport { Table } from \"primeng/table\";\n\n@Directive({\n selector: \"[sTableFrozenPosition]\"\n})\nexport class TableFrozenPositionDirective implements AfterViewInit, OnDestroy, AfterContentChecked {\n @Input()\n sTableFrozenPosition = \"left\";\n\n @Input()\n set sTableFrozenValue(_: any[]) {\n setTimeout(() => {\n this.synchronizeRowHeight();\n this.setUpRowResizeMonitoring();\n });\n }\n\n private table: Table;\n private isTableVisible = false;\n\n tableHeadObservable: MutationObserver;\n rowExpandedObserver: any;\n onColumnsChanged: EventEmitter<any> = new EventEmitter();\n\n private tableWrapperObserver: MutationObserver;\n\n private readonly TABLE_SCROLLABLE_WRAPPER_CLASS = \".ui-table-scrollable-wrapper\";\n\n constructor(private el: ElementRef, host: Table) {\n this.table = host;\n this.table.styleClass = (this.table.styleClass || \"\") + \" s-table-frozen-position\";\n this.setUpTableEvents();\n\n window.addEventListener(\"resize\", this.handleWindowResize.bind(this));\n\n const htmlHead = document.getElementsByTagName(\"head\")[0];\n\n const expandFrozenStyle = document.createElement(\"style\");\n expandFrozenStyle.innerHTML = \".s-table-frozen-position .ui-table-frozen-view .sds-expanded-row > td { visibility: hidden; }\";\n htmlHead.appendChild(expandFrozenStyle);\n }\n\n ngAfterViewInit(): void {\n if (this.sTableFrozenPosition === \"left\") return;\n this.applyStylesForTable();\n this.setUpColumnMonitoring();\n }\n\n ngAfterContentChecked(): void {\n if (!this.isTableVisible && !!this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = true;\n\n this.synchronizeRowHeight();\n } else if (this.isTableVisible && !this.table.el.nativeElement.offsetParent) {\n this.isTableVisible = false;\n }\n }\n\n ngOnDestroy(): void {\n window.removeEventListener(\"resize\", this.handleWindowResize.bind(this));\n if (this.tableHeadObservable) {\n this.tableHeadObservable.disconnect();\n }\n\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n\n if (this.tableWrapperObserver) {\n this.tableWrapperObserver.disconnect();\n }\n }\n\n private setUpTableEvents() {\n this.table.onColResize.subscribe(() => {\n this.handleColResize();\n });\n\n this.table.onRowExpand.subscribe(() => {\n this.setUpRowResizeMonitoring();\n });\n }\n\n private setUpRowResizeMonitoring() {\n if (this.rowExpandedObserver) {\n this.rowExpandedObserver.disconnect();\n }\n\n // The version of Angular/Typescript does not recognize the object ResizeObserver and breaks build\n this.rowExpandedObserver = new (window as any).ResizeObserver(() => {\n this.applyHeightForExpandedRows();\n });\n\n setTimeout(() => {\n const tdsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const originalsTds = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n tdsToAdjust.forEach((td: HTMLElement, index: number) => {\n const originalTd: HTMLElement = originalsTds[index];\n td.innerHTML = null;\n td.style.padding = \"0px\";\n\n this.rowExpandedObserver.observe(originalTd);\n });\n });\n }\n\n private setUpColumnMonitoring() {\n this.tableHeadObservable = new MutationObserver(() => {\n this.synchronizeRowHeight();\n this.onColumnsChanged.emit(null);\n });\n const tableHeads = [...this.el.nativeElement.getElementsByTagName(\"thead\")];\n tableHeads.forEach((tableHead: Element) => {\n this.tableHeadObservable.observe(tableHead, {\n subtree: true,\n childList: true\n });\n });\n\n const tableWraper = this.el.nativeElement.querySelector(this.TABLE_SCROLLABLE_WRAPPER_CLASS);\n if (tableWraper) {\n const mutationObserver = new MutationObserver(() => {\n this.synchronizeRowHeight();\n })\n\n mutationObserver.observe(tableWraper, {\n subtree: true,\n childList: true\n })\n this.tableWrapperObserver = mutationObserver;\n }\n }\n\n private applyHeightForExpandedRows() {\n const frozenTDsToAdjust = this.el.nativeElement.querySelectorAll(\".ui-table-frozen-view .sds-expanded-row > td\");\n const unFrozenTDs = this.el.nativeElement.querySelectorAll(\".ui-table-unfrozen-view .sds-expanded-row > td\");\n frozenTDsToAdjust.forEach((frozenTd: HTMLElement, index: number) => {\n const unfrozenTD: HTMLElement = unFrozenTDs[index];\n const unfrozenHeight = unfrozenTD.getBoundingClientRect().height;\n const frozenHeight = frozenTd.getBoundingClientRect().height;\n\n if (Math.abs(unfrozenHeight - frozenHeight) > 1) {\n frozenTd.style.height = `${unfrozenHeight}px`;\n frozenTd.innerHTML = null;\n }\n });\n }\n\n private applyStylesForTable() {\n const scrollWrapper = this.el.nativeElement.querySelector(this.TABLE_SCROLLABLE_WRAPPER_CLASS);\n if (!scrollWrapper) {\n console.warn(\"Unable to find scroll-wrapper element from table. Is the table configured with frozen template?\");\n return;\n }\n scrollWrapper.style.display = \"flex\";\n scrollWrapper.style.flexDirection = \"row\";\n\n const frozenTable = this.el.nativeElement.querySelector(\".ui-table-frozen-view\");\n if (!frozenTable) {\n console.warn(\"Unable to find frozen element from table. Is the table configured with frozen template?\");\n return;\n }\n\n frozenTable.style.order = \"1\";\n frozenTable.style.borderRight = \"none\";\n frozenTable.style.borderLeft = \"1px solid #dddddd\";\n frozenTable.style.boxShadow = \"-5px 0 5px -5px #cccccc\";\n\n const unfrozenTable = this.el.nativeElement.querySelector(\".ui-table-unfrozen-view\");\n if (!unfrozenTable) {\n console.warn(\"Unable to find unfrozen element from table. Is the table configured with frozen template?\");\n return;\n }\n unfrozenTable.style.position = \"unset\";\n }\n\n private handleWindowResize() {\n this.synchronizeRowHeight();\n }\n\n private handleColResize() {\n this.synchronizeRowHeight();\n }\n\n private synchronizeRowHeight() {\n const tableBodyWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-body\");\n const tableBodies = [...tableBodyWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableBodies);\n this._applyMaxRowHeight(tableBodies);\n\n const tableHeadWrappers = this.el.nativeElement.getElementsByClassName(\"ui-table-scrollable-header-box\");\n const tableHeads = [...tableHeadWrappers].map(divWrapper => [...divWrapper.childNodes].find(p => p.tagName === \"TABLE\"));\n this._resetRowHeight(tableHeads);\n this._applyMaxRowHeight(tableHeads);\n }\n\n private _applyMaxRowHeight(tables: any[]) {\n if (!tables || !tables.length) {\n return;\n }\n\n const lengths = tables.map(table => table.rows.length);\n const maxLength = lengths.reduce((accumulator, currentValue) => Math.max(accumulator, currentValue), lengths[0]);\n const minLength = lengths.reduce((accumulator, currentValue) => Math.min(accumulator, currentValue), lengths[0]);\n\n if (maxLength !== minLength) {\n throw new Error(\"The number of rows in both tables must be the same\");\n }\n\n const table = tables[0];\n\n for (let i = 0; i < table.rows.length; i++) {\n const trs = [];\n for (const table of tables) {\n trs.push(table.rows[i] as HTMLTableRowElement);\n }\n\n const max = trs.reduce((accumulator, currentValue) =>\n Math.max(accumulator, currentValue.getBoundingClientRect().height), trs[0].getBoundingClientRect().height);\n\n for (const tr of trs) {\n tr.style.height = `${max}px`;\n }\n }\n }\n\n private _resetRowHeight(tables: any[]) {\n for (const table of tables) {\n for (const row of table.rows) {\n row.style.height = \"unset\";\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MaskConfig, applyMask } from \"@seniorsistemas/ng2-currency-mask\";\nimport BigNumber from \"bignumber.js\";\nimport * as moment_ from \"moment\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../angular-components.module\";\nimport { LocaleService } from \"../../locale/locale.service\";\nimport { NumericService } from \"../../locale/services/numeric.service\";\nimport { IToken } from \"../../token-list\";\nimport { convertToMomentDateFormat } from \"../../utils/locale-utils\";\nimport { isNullOrUndefined } from \"../../utils/utils\";\nimport { Column, ColumnValues, EnumColumnFieldType, TableColumnLocaleOptions } from \"./models\";\n\nconst moment = moment_;\n\n@Component({\n templateUrl: \"./table-columns.component.html\",\n styleUrls: [\"./table-columns.component.scss\"],\n selector: \"s-table-columns\",\n})\nexport class TableColumnsComponent implements OnChanges {\n @ViewChild(\"columnsTemplate\", { static: true }) columnsTemplate: TemplateRef<any>;\n\n @Input()\n public columns!: Column[];\n\n @Input()\n public rowValue!: any;\n\n @Input()\n public locale: TableColumnLocaleOptions = {\n calendar: {\n ...this.localeService.getLocaleOptions().calendar,\n dateFormat: convertToMomentDateFormat(this.localeService.getLocaleOptions().calendar.dateFormat),\n },\n number: {\n ...this.localeService.getLocaleOptions().number,\n scale: 0,\n },\n };\n\n cellsData: CellData[] = [];\n\n formattedColumns: ColumnValues[] = [];\n\n @ViewChildren(\"column\") testeElements: QueryList<ElementRef>;\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly viewContainerRef: ViewContainerRef,\n private readonly translate: TranslateService,\n private readonly numericService: NumericService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.validateComponentAttributes(changes);\n\n if (changes.columns && changes.columns.currentValue !== changes.columns.previousValue) {\n this.columns = this.sortColumnsBySequence(changes.columns.currentValue);\n }\n\n this.createColumnsTemplate(changes);\n }\n\n public isArray(value: any): boolean {\n return Array.isArray(value);\n }\n\n private getCellData(column: ColumnValues): CellData {\n const { columnValue, separator, uninformed } = column;\n\n if (typeof columnValue === \"string\") {\n const splittedString = columnValue.split(separator);\n\n return splittedString.map((string, index) => {\n const isLastIndex = splittedString.length - 1 === index;\n\n return {\n value: string,\n isUninformed: string === uninformed,\n separator: !isLastIndex ? separator : null,\n };\n });\n }\n\n return null;\n }\n\n private validateComponentAttributes(changes: SimpleChanges): void {\n if (!this.columns && !changes.columns?.currentValue) {\n throw new Error(\"The 'columns' attribute must be informed!\");\n }\n if (!this.rowValue && !changes.rowValue?.currentValue) {\n throw new Error(\"The 'rowValue' attribute must be informed!\");\n }\n }\n\n private createColumnsTemplate(changes: SimpleChanges): void {\n this.viewContainerRef.clear();\n\n const columns: Column[] = changes.columns?.currentValue || this.columns;\n const rowValue: object = changes.rowValue?.currentValue || this.rowValue;\n const locale: TableColumnLocaleOptions = changes.locale?.currentValue || this.locale;\n\n this.formattedColumns = columns.map((column) => this.getColumnValue(column, rowValue, locale));\n\n this.cellsData = this.formattedColumns.map((column) => this.getCellData(column));\n\n this.viewContainerRef.createEmbeddedView(this.columnsTemplate);\n }\n\n private getColumnSeparator(column: Column) {\n return column.separator ? column.separator : \" - \";\n }\n\n private getTranslationPrefix(column: Column) {\n return column.prefix ? column.prefix : `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n private isAttributeValueInvalid(attributeValue: any) {\n return (\n attributeValue === null ||\n attributeValue === undefined ||\n (attributeValue?.options?.numberFormatOptions && isNullOrUndefined(attributeValue?.value)) ||\n (this.isArray(attributeValue) && !attributeValue.length) ||\n (typeof attributeValue === \"string\" && attributeValue.trim() === \"\")\n );\n }\n\n private getFormattedColumnValue(\n column: Column,\n columnValue: any[],\n unifiedColumnValues: string,\n uninformedText: string,\n uninformedNumber: number\n ) {\n if (uninformedNumber === column.attributes.length) {\n return uninformedText;\n }\n\n if (column.type === EnumColumnFieldType.TOKENS) {\n return [].concat.apply(\n [],\n columnValue.filter((values) => values !== uninformedText)\n );\n }\n\n return unifiedColumnValues;\n }\n\n private getAttributeValue(attribute: string, rowValue: any) {\n let attributeValue!: any;\n\n attribute.split(\"/\").forEach((value: string) => {\n if (!attributeValue) {\n value.split(\".\").forEach((val: string, i) => {\n if (!rowValue) {\n return;\n }\n\n if (i === 0) {\n attributeValue = rowValue[val];\n } else {\n if (attributeValue) {\n attributeValue = attributeValue[val];\n }\n }\n });\n }\n });\n\n return attributeValue;\n }\n\n private getNumberConfigs(column: Column): MaskConfig {\n return {\n ...this.locale.number,\n scale: column.scale !== null && column.scale !== undefined ? this.getColumnScale(column.scale) : this.locale.number.scale,\n prefix: `${this.locale.number.currencySymbol} `,\n };\n }\n\n private getDateFormat(column: Column, locale: TableColumnLocaleOptions) {\n return column.dateFormat ? column.dateFormat : locale.calendar.dateFormat;\n }\n\n private getColumnValue(column: Column, rowValue: any, locale: TableColumnLocaleOptions): ColumnValues {\n const prefix = this.getTranslationPrefix(column);\n const separator = this.getColumnSeparator(column);\n const uninformed = this.translate.instant(prefix + \"empty_label\");\n const style = column.style;\n\n const columnValue = column.attributes.map((attribute: string) => {\n const attributeValue = this.getAttributeValue(attribute, rowValue);\n\n if (this.isAttributeValueInvalid(attributeValue)) {\n return uninformed;\n }\n\n const numberConfigs = this.getNumberConfigs(column);\n\n switch (column.type) {\n case EnumColumnFieldType.ENUM:\n return this.translate.instant(column.enumPrefix + attributeValue.toString().toLowerCase());\n\n case EnumColumnFieldType.CURRENCY: {\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n\n case EnumColumnFieldType.DATE:\n const dateFormat = this.getDateFormat(column, locale);\n return moment(attributeValue).format(dateFormat);\n\n case EnumColumnFieldType.BOOLEAN:\n const value = attributeValue ? \"yes\" : \"no\";\n return this.translate.instant(prefix + value);\n\n case EnumColumnFieldType.NUMBER: {\n numberConfigs.prefix = \"\";\n\n const numberFormatOptions = attributeValue?.options?.numberFormatOptions\n ? attributeValue.options.numberFormatOptions\n : typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData: rowValue,\n })\n : column.numberFormatOptions;\n\n return numberFormatOptions\n ? this.numericService.instant(attributeValue, {\n numberFormatOptions,\n })\n : applyMask(attributeValue, numberConfigs, this.isNumber(attributeValue));\n }\n case EnumColumnFieldType.TOKENS:\n return this.getTokens(attributeValue);\n\n default:\n return attributeValue;\n }\n });\n\n const unifiedColumnValues = columnValue.join(separator);\n const uninformedNumber = unifiedColumnValues.split(separator).filter((value) => value === uninformed).length;\n const formattedColumnValue = this.getFormattedColumnValue(column, columnValue, unifiedColumnValues, uninformed, uninformedNumber);\n\n return {\n style,\n columnValue: formattedColumnValue,\n separator,\n uninformed,\n badgeConfigs: column?.badgeConfigs?.find(\n (badgeConfig) => badgeConfig.enumValue === rowValue[column.attributes[0] ?? column.field]\n ),\n color: column.color?.(rowValue),\n type: column.type,\n tooltip: this.getColumnTooltip(column.tooltip),\n infoSign: this.getColumnInfoSign(column.infoSign),\n onLinkClick: column.onLinkClick,\n onColumnClick: column.onColumnClick,\n compact: column.compact,\n };\n }\n\n private getColumnScale(scale: number | ((rowValue: any) => number)): number {\n if (typeof scale === \"function\") {\n return scale(this.rowValue);\n }\n return scale;\n }\n\n private getColumnInfoSign(infoSign: string | ((rowValue: any) => string)): string {\n if (infoSign !== undefined && infoSign !== null) {\n if (typeof infoSign === \"function\") {\n return infoSign(this.rowValue);\n }\n return infoSign;\n }\n return null;\n }\n\n private getColumnTooltip(tooltip: string | ((rowValue: any) => string)): string {\n if (tooltip !== undefined && tooltip !== null) {\n if (typeof tooltip === \"function\") {\n return tooltip(this.rowValue);\n }\n return tooltip;\n }\n return \"\";\n }\n\n private isNumber(value: any): boolean {\n return !new BigNumber(value).isNaN();\n }\n\n private getTokens(values: any): IToken[] {\n if (!this.isArray(values)) {\n throw new Error(\"To use tokens an array must be informed\");\n }\n\n if (!this.isValidTokenArray(values)) {\n throw new Error(\"Not a valid token array. Must be a primitive values array or an objects with label attribute array\");\n }\n\n if (this.isLabelObjectArray(values)) {\n return values;\n }\n\n return values\n .filter((value: any) => value !== undefined && value !== null)\n .map((value: any) => {\n const label = typeof value === \"symbol\" ? value.toString() : `${value}`;\n return {\n label,\n };\n });\n }\n\n private isValidTokenArray(values: any[]): boolean {\n return this.isPrimitiveValuesArray(values) || this.isLabelObjectArray(values);\n }\n\n private isPrimitiveValuesArray(values: any[]): boolean {\n return values.filter((value) => value !== Object(value)).length === values.length;\n }\n\n private isLabelObjectArray(values: any[]): boolean {\n return values.filter((value) => value?.label !== null && value?.label !== undefined).length === values.length;\n }\n\n private sortColumnsBySequence(columns: Column[]): Column[] {\n return columns.sort((a, b) => a.sequence - b.sequence);\n }\n}\n\ntype CellData = { value: string; isUninformed: boolean; separator: string }[];\n","export enum ThumbnailSize {\n Small = \"small\",\n Medium = \"medium\",\n Large = \"large\",\n}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { IToken } from \"./models/token\";\n\n@Component({\n selector: `s-token-list`,\n templateUrl: `./token-list.component.html`,\n styleUrls: [\"./token-list.component.scss\"],\n})\nexport class TokenListComponent {\n public static nextId = 0;\n\n @Input()\n id = `s-token-list-${TokenListComponent.nextId++}`;\n\n @Input()\n tokens: IToken[];\n\n @Input()\n removableTokens = false;\n\n @Input()\n hidePointerEvents = false;\n\n @Output()\n public tokenSelected: EventEmitter<IToken> = new EventEmitter();\n\n @Output()\n public tokenRemoved: EventEmitter<IToken> = new EventEmitter();\n\n public onTokenSelected(token: IToken): void {\n if (!token.disabled) {\n this.tokenSelected.next(token);\n }\n }\n\n public onTokenRemoved(token: IToken): void {\n if (!token.disabled) {\n this.tokenRemoved.next(token);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TokenListComponent } from \"./token-list.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TokenListComponent],\n exports: [TokenListComponent],\n})\nexport class TokenListModule {}\n","import { Component, Inject, Input, OnChanges, Output, SimpleChanges } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MenuItem } from \"primeng/api\";\nimport { Table } from \"primeng/table\";\nimport { Column } from \"../table-column/models/column.interface\";\n\nimport { HostProjectConfigs, HostProjectConfigsInjectionToken } from \"../../../angular-components.module\";\nimport { ExportUtils, isNullOrUndefined } from \"../../utils\";\nimport { CustomAction } from \"./models\";\nimport { LocaleService } from \"../../locale/locale.service\";\n\nimport BigNumber from \"bignumber.js\";\n\ntype RowValueFormatOption = {\n value?: number;\n options?: {\n numberFormatOptions?: Intl.NumberFormatOptions;\n };\n};\n\n@Component({\n templateUrl: \"./table-paging.component.html\",\n styleUrls: [\"./table-paging.component.scss\"],\n selector: \"s-table-paging\",\n})\nexport class TablePagingComponent implements OnChanges {\n @Input()\n public totalRecords!: number;\n\n @Input()\n public exportFileName?: string;\n\n @Input()\n public table!: Table;\n\n @Input()\n public exportable = true;\n\n @Input()\n public enableExportSelectedRecords = true;\n\n @Input()\n public customActions?: CustomAction[];\n\n @Input()\n public loadAllRecords?: () => Promise<any[]>;\n\n @Input()\n public loadCurrentPageRecords?: () => any[];\n\n @Input()\n public loadSelectedRecords?: () => any[];\n\n @Output()\n public totalRecordsText: string;\n\n constructor(\n private readonly translate: TranslateService,\n private readonly localeService: LocaleService,\n @Inject(HostProjectConfigsInjectionToken) private readonly hostProjectConfigs: HostProjectConfigs\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.totalRecords?.currentValue) {\n this.totalRecordsText = this.translate.instant(`${this.getTranslatePrefix()}total_records`, {\n value: changes.totalRecords.currentValue,\n });\n }\n }\n\n private getTranslatePrefix() {\n return `${this.hostProjectConfigs.domain}.${this.hostProjectConfigs.service}.`;\n }\n\n public getTooltipText() {\n return this.translate.instant(`${this.getTranslatePrefix()}export_to_csv`);\n }\n\n public getActions(): MenuItem[] {\n const actions: MenuItem[] = [\n {\n id: \"exportCurrentPage\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_current_page`),\n command: () => this.exportCurrentPage(),\n },\n ];\n\n if (this.enableExportSelectedRecords) {\n actions.push({\n id: \"exportSelected\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_selected_records`),\n command: () => this.exportSelectedRecords(),\n });\n }\n\n if (this.loadAllRecords) {\n actions.push({\n id: \"exportAll\",\n label: this.translate.instant(`${this.getTranslatePrefix()}export_all_records`),\n command: () => this.exportAllRecords(),\n });\n }\n\n if (this.customActions?.length) {\n const customMenus = this.customActions.map((p, index) => ({\n id: \"customAction_\" + index,\n label: p.label,\n command: p.command,\n }));\n actions.push(...customMenus);\n }\n\n return actions;\n }\n\n private validateComponent() {\n if (!this.table) {\n throw new Error(\"Table component not defined\");\n }\n }\n\n public getColumnsToExport() {\n return [...this.table.columns].map((column) => {\n const exportColumn = {\n ...column,\n header: column.header,\n exportable: true,\n field: column.field,\n separator: column.separator ?? \" - \",\n enumPrefix: column.enumPrefix,\n customExport: column.customExport,\n };\n\n if (column.exportable === false) {\n exportColumn.exportable = false;\n }\n\n if (column.attributes && column.attributes.length) {\n if (column.attributes.length === 1) {\n exportColumn.field = column.attributes[0];\n } else {\n exportColumn.field = column.attributes;\n }\n }\n\n return exportColumn;\n });\n }\n\n private getCurrentPageRowsToExport(columns: any[]) {\n let tableData = this.table.value;\n if (this.loadCurrentPageRecords) {\n tableData = this.loadCurrentPageRecords();\n }\n\n tableData = this.mapCustomExport(columns, tableData);\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getSelectedRowsToExport(columns: any[]) {\n let tableData = this.table.selection;\n if (this.loadSelectedRecords) {\n tableData = this.loadSelectedRecords();\n }\n\n tableData = this.mapCustomExport(columns, tableData);\n\n tableData = this.mapNumberFormatOptionsExport(columns, tableData);\n\n return this.mapColumnsTranslations(columns, tableData);\n }\n\n private getPropertyValue(obj: any, path: string) {\n return path.split(\".\").reduce((result: any, prop: any) => (result[prop] === undefined ? undefined : result[prop]), obj);\n }\n\n private setPropertyValue(obj: any, path: string, value: any) {\n this.recursionSetValue(obj, path.split(\".\"), value);\n }\n\n private recursionSetValue(obj: any, keysList: string[], value: any): any {\n const key = keysList[0];\n if (keysList.length === 1) {\n obj[key] = value;\n return obj;\n }\n obj[key] = this.recursionSetValue(obj?.[key] || {}, keysList.slice(1), value);\n return obj;\n }\n\n public mapColumnsTranslations(columns: any[], rows: any[]) {\n const enumColumns = columns.filter((p) => p.enumPrefix);\n if (!enumColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n enumColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n\n const newValue = this.translateValue(column, columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n /**\n * The purpose of this method is to map values\n * from the TableColumnsComponent, which uses the numberFormatOptions\n * field, along with rows that have a custom numberFormatOptions,\n * to ensure the correct values are exported by the TablePagingComponent.\n *\n * @returns Returns the correctly mapped tableData.\n */\n public mapNumberFormatOptionsExport(\n columns: Partial<Column>[],\n tableData: {\n [key: string]: RowValueFormatOption | number | string | null | undefined;\n }[]\n ) {\n const hasNumberFormatOptionsColumns = columns.some((column) => column.numberFormatOptions);\n const hasNumberFormatOptionsRows = tableData.some((rowData) =>\n Object.keys(rowData).some((key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions)\n );\n\n if (!hasNumberFormatOptionsColumns && !hasNumberFormatOptionsRows) return tableData;\n\n if (hasNumberFormatOptionsColumns) {\n tableData = tableData.map((rowData) => {\n const columnsWithNumberFormatOptions = columns.filter((column) => column.numberFormatOptions);\n\n for (const column of columnsWithNumberFormatOptions) {\n const attributes = column.attributes;\n\n const numberFormatOptions =\n typeof column.numberFormatOptions === \"function\"\n ? column.numberFormatOptions({\n rowData,\n })\n : column.numberFormatOptions;\n\n for (const attribute of attributes) {\n if (isNullOrUndefined(rowData[attribute as string])) continue;\n\n if ((rowData[attribute as string] as RowValueFormatOption).options?.numberFormatOptions) {\n continue;\n }\n\n const value = rowData[attribute as string] as string | number;\n\n const mappedValue =\n numberFormatOptions.style === \"percent\" ? new BigNumber(value).times(100) : new BigNumber(value);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions().locale, {\n ...numberFormatOptions,\n style: \"decimal\",\n useGrouping: false,\n roundingMode: \"trunc\",\n } as any);\n\n rowData[attribute as string] = numberFormat.format(mappedValue.toNumber());\n }\n }\n\n return rowData;\n });\n }\n\n if (hasNumberFormatOptionsRows) {\n tableData = tableData.map((rowData) => {\n const keysWithNumberFormatOptions = Object.keys(rowData).filter(\n (key) => (rowData[key] as RowValueFormatOption)?.options?.numberFormatOptions\n );\n\n for (const key of keysWithNumberFormatOptions) {\n const value = (rowData[key] as RowValueFormatOption).value;\n\n const numberFormatOptions = (rowData[key] as RowValueFormatOption).options.numberFormatOptions;\n\n const mappedValue = numberFormatOptions.style === \"percent\" ? new BigNumber(value).times(100) : new BigNumber(value);\n\n const numberFormat = new Intl.NumberFormat(this.localeService.getLocaleOptions().locale, {\n ...numberFormatOptions,\n style: \"decimal\",\n useGrouping: false,\n roundingMode: \"trunc\",\n } as any);\n\n (rowData[key] as string | number) = numberFormat.format(mappedValue.toNumber());\n }\n\n return rowData;\n });\n }\n\n return tableData;\n }\n\n public mapCustomExport(columns: any[], rows: any[]) {\n const customColumns = columns.filter((p) => p.customExport);\n if (!customColumns.length) {\n return rows;\n }\n\n return [...rows].map((row) => {\n const newRow = { ...row };\n customColumns.forEach((column) => {\n const fields = !Array.isArray(column.field) ? [column.field] : column.field;\n fields.forEach((fieldName: string) => {\n const columnData = this.getPropertyValue(row, fieldName);\n if (columnData === null || columnData === undefined) {\n return;\n }\n const newValue = column.customExport(columnData);\n this.setPropertyValue(newRow, fieldName, newValue);\n });\n });\n\n return newRow;\n });\n }\n\n private translateValue(column: any, columnData: any) {\n // Default usage: ENUM_VALUE -> domain.service.enum_value\n const enumValue = columnData.toString().toLowerCase();\n let translationKey = column.enumPrefix + enumValue;\n let translatedValue = this.translate.instant(translationKey);\n\n // Custom usage 1: V9 -> domain.service.v_9\n if (translationKey === translatedValue && enumValue.length > 1) {\n translationKey = `${column.enumPrefix}${enumValue.substring(0, 1)}_${enumValue.substr(1)}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n // Custom usage 2: EnumValue -> domain.service.enum_value\n if (translationKey === translatedValue) {\n const enumKey = this.convertToSnakeCase(columnData.toString());\n translationKey = `${column.enumPrefix}${enumKey}`;\n translatedValue = this.translate.instant(translationKey);\n }\n\n return translatedValue;\n }\n\n private convertToSnakeCase(str: string) {\n return str.replace(/([A-Z])/g, (match, group) => `_${group.toLowerCase()}`).replace(/^_/, \"\");\n }\n\n private getExportFileName() {\n const lang = this.translate.currentLang ?? \"pt-BR\";\n const date = new Date();\n\n const fileName = this.exportFileName ?? \"download\";\n const formattedDate = date.toLocaleDateString(lang).replace(\"_\", \"-\");\n const formattedTime = date.toLocaleTimeString(lang).replace(\" \", \"-\");\n\n return `${fileName}_${formattedDate}_${formattedTime}`;\n }\n\n public exportCurrentPage() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getCurrentPageRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public exportSelectedRecords() {\n this.validateComponent();\n const columns = this.getColumnsToExport();\n const dataToExport = this.getSelectedRowsToExport(columns);\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n\n public async exportAllRecords() {\n this.validateComponent();\n\n let serverData = await this.loadAllRecords();\n\n const columns = this.getColumnsToExport();\n\n serverData = this.mapCustomExport(columns, serverData);\n\n serverData = this.mapNumberFormatOptionsExport(columns, serverData);\n\n const dataToExport = this.mapColumnsTranslations(columns, serverData);\n\n ExportUtils.exportCSV(columns, dataToExport, undefined, this.getExportFileName());\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { NavigationDirective } from \"./navigation/navigation.directive\";\nimport { RowTogllerDirective } from \"./row-toggler/row-toggler.directive\";\nimport { TableFrozenPositionDirective } from \"./frozen-position/frozen-position.directive\";\nimport { TableColumnsComponent } from \"./table-column/table-columns.component\";\nimport { TokenListModule } from \"../token-list/token-list.module\";\nimport { TablePagingComponent } from \"./table-paging/table-paging.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { BadgeModule } from \"../badge/badge.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TokenListModule,\n TranslateModule,\n ButtonModule,\n InfoSignModule,\n BadgeModule\n ],\n exports: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n declarations: [\n RowTogllerDirective,\n NavigationDirective,\n TableColumnsComponent,\n TableFrozenPositionDirective,\n TablePagingComponent\n ],\n})\nexport class TableModule {}\n","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { AutocompleteField } from \"../../../configurations/fields/autocomplete-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"autocomplete-field.component.html\",\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: AutocompleteField;\n @Input()\n public formControl: FormControl;\n\n public inputRef: ElementRef;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { BooleanField } from \"../../../configurations/fields/boolean-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-field.component.html\",\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanField;\n @Input()\n public formControl: FormControl;\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BooleanSwitchField } from \"../../../configurations/fields/boolean-switch-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"boolean-switch-field.component.html\",\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BooleanSwitchField;\n @Input()\n public formControl: FormControl;\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { CalendarField } from \"../../../configurations/fields/calendar-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"calendar-field.component.html\",\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig {\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n @Input()\n public field: CalendarField;\n\n @Input()\n public formControl: FormControl;\n\n @Input()\n public showTime: boolean;\n\n @Input()\n public timeOnly: boolean;\n\n @ViewChild('calendar') calendar: ElementRef;\n \n public inputRef: ElementRef;\n\n public locale = {\n firstDayOfWeek: 0,\n dayNames: [\n this.translateService.instant(\"platform.angular_components.sunday\"),\n this.translateService.instant(\"platform.angular_components.monday\"),\n this.translateService.instant(\"platform.angular_components.tuesday\"),\n this.translateService.instant(\"platform.angular_components.wednesday\"),\n this.translateService.instant(\"platform.angular_components.thursday\"),\n this.translateService.instant(\"platform.angular_components.friday\"),\n this.translateService.instant(\"platform.angular_components.saturday\"),\n ],\n dayNamesShort: [\n this.translateService.instant(\"platform.angular_components.sunday_short\"),\n this.translateService.instant(\"platform.angular_components.monday_short\"),\n this.translateService.instant(\"platform.angular_components.tuesday_short\"),\n this.translateService.instant(\"platform.angular_components.wednesday_short\"),\n this.translateService.instant(\"platform.angular_components.thursday_short\"),\n this.translateService.instant(\"platform.angular_components.friday_short\"),\n this.translateService.instant(\"platform.angular_components.saturday_short\"),\n ],\n dayNamesMin: [\n this.translateService.instant(\"platform.angular_components.sunday_min\"),\n this.translateService.instant(\"platform.angular_components.monday_min\"),\n this.translateService.instant(\"platform.angular_components.tuesday_min\"),\n this.translateService.instant(\"platform.angular_components.wednesday_min\"),\n this.translateService.instant(\"platform.angular_components.thursday_min\"),\n this.translateService.instant(\"platform.angular_components.friday_min\"),\n this.translateService.instant(\"platform.angular_components.saturday_min\"),\n ],\n monthNames: [\n this.translateService.instant(\"platform.angular_components.january\"),\n this.translateService.instant(\"platform.angular_components.february\"),\n this.translateService.instant(\"platform.angular_components.march\"),\n this.translateService.instant(\"platform.angular_components.april\"),\n this.translateService.instant(\"platform.angular_components.may\"),\n this.translateService.instant(\"platform.angular_components.june\"),\n this.translateService.instant(\"platform.angular_components.july\"),\n this.translateService.instant(\"platform.angular_components.august\"),\n this.translateService.instant(\"platform.angular_components.september\"),\n this.translateService.instant(\"platform.angular_components.october\"),\n this.translateService.instant(\"platform.angular_components.november\"),\n this.translateService.instant(\"platform.angular_components.december\"),\n ],\n monthNamesShort: [\n this.translateService.instant(\"platform.angular_components.january_short\"),\n this.translateService.instant(\"platform.angular_components.february_short\"),\n this.translateService.instant(\"platform.angular_components.march_short\"),\n this.translateService.instant(\"platform.angular_components.april_short\"),\n this.translateService.instant(\"platform.angular_components.may_short\"),\n this.translateService.instant(\"platform.angular_components.june_short\"),\n this.translateService.instant(\"platform.angular_components.july_short\"),\n this.translateService.instant(\"platform.angular_components.august_short\"),\n this.translateService.instant(\"platform.angular_components.september_short\"),\n this.translateService.instant(\"platform.angular_components.october_short\"),\n this.translateService.instant(\"platform.angular_components.november_short\"),\n this.translateService.instant(\"platform.angular_components.december_short\"),\n ],\n today: this.translateService.instant(\"platform.angular_components.today\"),\n clear: this.translateService.instant(\"platform.angular_components.clear\"),\n dateFormat: this.translateService.instant(\"platform.angular_components.date_format\"),\n hourFormat: this.translateService.instant(\"platform.angular_components.hour_format\"),\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Clipboard } from \"@angular/cdk/clipboard\";\n\nimport { ChipsField } from \"../../../configurations/fields/index\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./chips-field.component.html\",\n styleUrls: [\"./chips-field.component.scss\"],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: ChipsField;\n\n @Input()\n public formControl: FormControl;\n\n public feedbackMessageVisible = false;\n public copyButtonVisible = true;\n public inputRef: ElementRef;\n\n constructor(private readonly clipboard: Clipboard,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) { }\n\n public onCopyFieldContent(): void {\n if (this.formControl.value) {\n this.copyButtonVisible = false;\n this.feedbackMessageVisible = true;\n\n setTimeout(() => {\n this.feedbackMessageVisible = false;\n this.copyButtonVisible = true;\n }, 3000);\n\n const content = this.formControl.value.join(this.field.separator || \"\\n\");\n\n this.clipboard.copy(content);\n\n if (this.field.onCopy) {\n this.field.onCopy(content);\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { CountryPhonePickerField } from \"../../../configurations/fields/country-phone-picker-field\";\n\n@Component({\n templateUrl: \"./country-phone-picker-field.component.html\",\n})\nexport class CountryPhonePickerFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CountryPhonePickerField;\n\n @Input()\n public formControl: FormControl;\n\n public inputRef: ElementRef;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {}\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}","import { ChangeDetectorRef, Component, ElementRef, HostListener, Input, Renderer2 } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { BlobField } from \"../../../configurations/fields/blob-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { fromEvent } from \"rxjs\";\nimport { filter, take } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"file-upload.component.html\",\n})\nexport class FileUploadComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: BlobField;\n @Input()\n public formControl: FormControl;\n\n public inputRef: HTMLInputElement;\n \n constructor(private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef\n ) {\n super();\n }\n\n @HostListener('click')\n public onClick(): void {\n this.dispatchFocusInputRef();\n this.addEventOnBlur();\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private addEventOnBlur(): void {\n fromEvent(document, 'click')\n .pipe(\n filter((event: MouseEvent) => !this.elementRef.nativeElement.contains(event.target)),\n take(1)\n )\n .subscribe(() => this.inputRef.dispatchEvent(new Event('blur')));\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input') as HTMLInputElement;\n }\n\n private dispatchFocusInputRef(): void {\n this.inputRef.dispatchEvent(new Event('focus'));\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { LookupField } from \"../../../configurations/fields/lookup-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"lookup-field.component.html\",\n})\nexport class LookupFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: LookupField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { RadioButtonField } from \"../../../configurations/fields/radio-button-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"radion-button-field.component.html\",\n styles: [`\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: RadioButtonField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n constructor() { }\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onClick.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onClick) this.field.onClick(event);\n });\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl.reset();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { SelectField } from \"../../../configurations/fields/select-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"select-field.component.html\",\n})\nexport class SelectFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: SelectField;\n @Input()\n public formControl: FormControl;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { SliderField } from \"../../../configurations/fields/slider-field\";\n\n@Component({\n templateUrl: \"slider-field.component.html\",\n styleUrls: [\"./slider-field.component.scss\"]\n})\nexport class SliderFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: SliderField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject();\n\n public ngOnInit() {\n const defaultValue = this.field?.range ? [this.field.min, this.field.max] : this.field.min;\n if (!this.isValid(this.formControl.value)) {\n this.formControl.setValue(this.field.defaultValue ?? defaultValue);\n }\n this.subscribeToFormControlEvents();\n }\n\n private subscribeToFormControlEvents() {\n this.onChange.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onChange) {\n this.field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onSlideEnd) {\n this.field.onSlideEnd(event);\n }\n });\n }\n\n private isValid(value: any): boolean {\n if (this.field?.range) {\n return Array.isArray(value) && this.isValidRange(value);\n } else {\n return Number.isInteger(value) && this.isValidNoRange(value);\n }\n }\n\n private isValidRange(value: any[]): boolean {\n const [startValue, endValue] = value;\n return startValue >= this.field?.min && startValue <= this.field?.max &&\n endValue >= this.field?.min && endValue <= this.field?.max;\n }\n\n private isValidNoRange(value: number): boolean {\n return value >= this.field.min && value <= this.field.max;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private getRangeLabel(): string {\n let [value0, value1] = this.formControl.value ?? [0, 0];\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n const separator = this.field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < this.field.min) {\n value0 = this.field.min;\n }\n\n if (!value1 || value1 > this.field.max) {\n value1 = this.field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n let value = this.formControl?.value;\n const prefix = this.field.prefix ?? '';\n const suffix = this.field.suffix ?? '';\n\n if (!value || value < this.field.min) {\n value = this.field.min;\n }\n\n if (value > this.field.max) {\n value = this.field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field.range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n\n}\n","import { Component, ElementRef, Inject, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup } from \"@angular/forms\";\n\nimport { IAssistService } from \"../../../services/IAssist/iassist.service\";\nimport { IAssistResponse } from \"../../../services/IAssist/models/iassist-response\";\nimport { TextAreaIAField } from \"../../../configurations/fields/text-area-ia-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FormField } from \"../../../configurations/form-field\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { catchError } from \"rxjs/operators\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { throwError } from \"rxjs\";\n\n@Component({\n templateUrl: \"./text-area-ia-field.component.html\",\n styleUrls: [\"./text-area-ia-field.component.scss\"],\n})\nexport class TextAreaIAFieldComponent implements BaseFieldComponentConfig, OnInit {\n @Input()\n public field: TextAreaIAField;\n\n @Input()\n public formControl: FormControl;\n\n @ViewChild('inputRef') inputRef: ElementRef;\n\n public fields: FormField[];\n public formGroup: FormGroup;\n public isVisible = false;\n public isLoading = false;\n\n constructor(\n private readonly _iassistService: IAssistService,\n private readonly _formBuilder: FormBuilder,\n private readonly _translateService: TranslateService\n ) {}\n\n public ngOnInit(): void {\n this._createDialogFields();\n this._createDialogFormGroup();\n }\n\n public showDialog(): void {\n this.isVisible = true;\n }\n\n public onHideDialog(): void {\n this.formGroup.get(\"context\").setValue(\"\");\n }\n\n public hideDialog(): void {\n this.isVisible = false;\n }\n\n public submitContext(): void {\n const context = this.formGroup.get(\"context\");\n this.isLoading = true;\n\n this._iassistService\n .askIA(\n context.value,\n {\n id: this.field.id,\n label: this.field.label,\n placeholder: this.field.placeholder,\n prompt: this.field.prompt,\n },\n )\n .pipe(\n catchError((err: HttpErrorResponse) => {\n this.isLoading = false;\n return throwError(err);\n })\n )\n .subscribe((res: IAssistResponse) => {\n this.formControl.setValue(res.text);\n this.isLoading = false;\n });\n\n this.hideDialog();\n }\n\n private _createDialogFields(): void {\n this.fields = [\n new FormField({\n name: \"context\",\n type: FieldType.Text,\n label: this._translateService.instant(\"platform.angular_components.context\"),\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n }),\n ];\n }\n\n private _createDialogFormGroup(): void {\n this.formGroup = this._formBuilder.group({\n context: [\"\"],\n });\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { TextAreaField } from \"../../../configurations/fields/text-area-field\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-area-field.component.html\",\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: TextAreaField;\n @Input()\n public formControl: FormControl;\n\n @ViewChild('inputRef') inputRef: ElementRef;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { Fieldset } from \"../../../configurations/structure/fieldset\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n selector: \"s-fieldset\",\n template: `\n <p-fieldset [toggleable]=\"true\" (onBeforeToggle)=\"config.beforeToggle ? config.beforeToggle($event) : 'null'\"\n (onAfterToggle)=\"config.afterToggle ? config.afterToggle($event) : 'null'\">\n <p-header>{{config.header}}</p-header>\n <ng-container *ngFor=\"let conf of config.configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n </p-fieldset>\n `,\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Fieldset;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"../../../configurations/form-field\";\nimport { Grid } from \"../../../configurations/grid/grid\";\nimport { Section } from \"../../../configurations/structure/section\";\nimport { BaseStructureComponentConfig } from \"../base-structure-component\";\n\n@Component({\n selector: 's-section',\n template: `\n <h3 *ngIf=\"config?.header\" class=\"sds-section-title\">{{config.header}}</h3>\n <section [class.flex-container]=\"flexContainer\" [style.justify-content]=\"config.justifyContent\" [style.align-items]=\"config.alignItems\">\n <ng-container *ngFor=\"let conf of configs\">\n <ng-container *sDynamicForm=\"{ id: id, config: conf, group: group, errorMessages: errorMessages }\"></ng-container>\n </ng-container>\n </section>\n `,\n styles: [`\n .flex-container {\n display: flex\n }\n\n :host {\n height: 100%\n }\n\n section {\n height: 100%;\n }\n `],\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n @Input()\n public id: string;\n @Input()\n public config: Section;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n\n get flexContainer() {\n return this.config.isFlex;\n }\n\n get configs() {\n const _configs: any[] = this.config?.configs || [];\n return _configs.filter((x: any) => x.visible === undefined || x.visible());\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { Row } from \"../../../configurations/grid/row\";\n\n@Component({\n selector: 's-row',\n template: `\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <ng-container *ngIf=\"field.type === FieldType.Custom && field.label\" >\n <label *sInfoSign=\"field.infoSign; displayTime: field.displayTimeInfoSign; useFocusedInputRef: field.useInfoSignFocusedInputRef\" [for]=\"field.name\" [ngClass]=\"{ required: field.required() }\" >\n {{ field.label }}\n </label>\n </ng-container>\n\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span *ngIf=\"field.footer.help.visible({ abstractControl: group.controls[field.name], formField: field })\" style=\"color: #888B99\">{{ field.footer.help.text }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"field.footer.link.visible({ abstractControl: group.controls[field.name], formField: field })\"\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"field.footer.link.onClick({ abstractControl: group.controls[field.name], formField: field })\"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n `,\n})\nexport class RowComponent {\n @Input()\n public id: string;\n @Input()\n public config: Row;\n @Input()\n public group: FormGroup;\n @Input()\n public errorMessages: any;\n\n FieldType = FieldType;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FormField } from \"../../configurations/form-field\";\nimport { FieldType } from \"../../configurations/field-type\";\n\n@Component({\n selector: \"s-dynamic-field\",\n templateUrl: \"./dynamic-field.component.html\",\n})\nexport class DynamicFieldComponent {\n @Input()\n public id: string;\n\n @Input()\n public fields: FormField[];\n\n @Input()\n public form: FormGroup;\n\n @Input()\n public errorMessages?: any;\n\n FieldType = FieldType;\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages)\n return this.isFunction(errorMessages)\n ? { ...this.errorMessages, ...errorMessages() }\n : { ...this.errorMessages, ...errorMessages };\n return this.errorMessages;\n }\n\n public isFunction(value: any): boolean {\n return value instanceof Function;\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { first, takeUntil } from \"rxjs/operators\";\n\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { BignumberField } from \"../../../configurations/fields/bignumber-field\";\nimport { LocaleService } from \"../../../../locale/locale.service\";\nimport { isNullOrUndefined } from \"../../../../utils/utils\";\n\n@Component({\n templateUrl: \"bignumber-field.component.html\",\n styleUrls: [\"./bignumber-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: BignumberField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(\"inputRef\") inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n\n this.onScale();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: this.field.type === FieldType.Integer || this.field.type === FieldType.Double ? \"\" : \"R$\",\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: this.field.type === FieldType.Integer || this.field.type === FieldType.Double ? \"\" : \"R$\",\n }),\n });\n }\n\n private onScale(): void {\n // Currently, this component is used for the following types\n // FieldType.Number, FieldType.Integer and FieldType.Double\n if (isNullOrUndefined(this.field.scale)) {\n this.field.scale = this.field.type === FieldType.Integer ? 0 : 2;\n }\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { first } from \"rxjs/operators\";\nimport { LocaleService } from \"../../../../locale/locale.service\";\nimport { CurrencyField } from \"../../../configurations/fields/currency-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { CurrencyService } from \"../../../../../utils/currency/currency.service\";\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: \"currency-field.component.html\",\n})\nexport class CurrencyFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig, OnInit {\n @Input()\n public field: CurrencyField;\n @Input()\n public formControl: FormControl;\n\n @ViewChild(\"inputRef\") inputRef: ElementRef;\n\n constructor(\n readonly currencyService: CurrencyService,\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.onLocaleService();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: \"R$\",\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: \"R$\",\n }),\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\"\n\nimport { PasswordField } from \"../../../configurations/fields/password-field\";\n\n@Component({\n templateUrl: \"./password-field.component.html\",\n styleUrls: [\"./password-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input()\n public field: PasswordField;\n\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n public passwordVisible = false;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n this.onFocus\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: FocusEvent) => {\n if (this.field.onFocus) {\n this.field.onFocus(event);\n }\n });\n this.onInput\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: InputEvent) => {\n if (this.field.onInput) {\n this.field.onInput(event);\n }\n });\n this.onComplete\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: any) => {\n if (this.field.onComplete) {\n this.field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onChangeVisible(): void {\n this.passwordVisible = !this.passwordVisible;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TextField } from \"../../../configurations/fields/text-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"text-field.component.html\",\n styleUrls: [\"./text-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent extends BaseFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: TextField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {\n super();\n }\n\n public ngOnInit() {\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n getCharacterPattern(): string {\n return typeof this.field.characterPattern === \"function\"\n ? this.field.characterPattern()\n : this.field.characterPattern;\n }\n\n getUnmask(): boolean {\n return typeof this.field.unmask === \"function\"\n ? this.field.unmask()\n : this.field.unmask;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { CheckboxField } from \"../../../configurations/fields\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"checkbox-field.component.html\",\n})\nexport class CheckboxFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: CheckboxField;\n\n @Input()\n public formControl: FormControl;\n}\n","import { Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { EditorField } from \"../../../configurations/fields/editor-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\n\n@Component({\n templateUrl: \"./editor-field.component.html\",\n})\nexport class EditorFieldComponent extends BaseFieldComponent implements BaseFieldComponentConfig {\n @Input()\n public field: EditorField;\n\n @Input()\n public formControl: FormControl;\n}\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { Subject } from \"rxjs\";\nimport { first, takeUntil } from \"rxjs/operators\";\n\nimport { LocaleService } from \"../../../../locale/locale.service\";\nimport { NumberAlignmentOption } from \"../../../../number-input/index\";\nimport { DecimalField } from \"../../../configurations/fields/decimal-field\";\nimport { BaseFieldComponent, BaseFieldComponentConfig } from \"../base-field-component\";\nimport { FieldType } from \"./../../../configurations/field-type\";\n\n@Component({\n templateUrl: \"number-field.component.html\",\n styleUrls: [\"./number-field.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent extends BaseFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n @Input()\n public field: DecimalField;\n @Input()\n public formControl: FormControl;\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n public inputRef: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private readonly localeService: LocaleService,\n private readonly elementRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n }\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field.onFocus) this.field.onFocus(event);\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onInput) this.field.onInput(event);\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field.onComplete) this.field.onComplete(event);\n });\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n public get fieldType() {\n return FieldType;\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.currencySymbol) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n currencySymbol: \"R$\",\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = this.field.numberLocaleOptions ?? {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: \"R$\",\n }),\n });\n }\n\n private setInputRef(): void {\n const input = this.elementRef.nativeElement.querySelector(\"input\");\n this.inputRef = input;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { ProfilePictureField } from \"../../../configurations/fields/profile-picture\";\n\n@Component({\n templateUrl: \"./profile-picture-field.component.html\",\n})\nexport class ProfilePictureFieldComponent {\n @Input()\n public field: ProfilePictureField;\n\n @Input()\n public formControl: FormControl;\n}\n","import { Component, Input } from '@angular/core';\nimport { ButtonField } from '../../../configurations/fields/button-field';\n\n@Component({\n selector: 's-button-field',\n templateUrl: './button-field.component.html',\n styleUrls: ['./button-field.component.scss']\n})\nexport class ButtonFieldComponent {\n\n @Input() field: ButtonField;\n\n clickedButton($event: Event) {\n if (this.field.onClick) {\n this.field.onClick($event);\n }\n }\n\n handleMouseEnter() {\n if (this.field.mouseEnter) {\n this.field.mouseEnter(this.field);\n }\n }\n\n handleMouseLeave() {\n if (this.field.mouseLeave) {\n this.field.mouseLeave(this.field);\n }\n }\n\n}\n","import { ComponentFactoryResolver, ComponentRef, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { RowComponent } from \"./components/grid/row/row.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\n\n// fields\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BignumberFieldComponent } from \"./components/fields/bignumber/bignumber-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CountryPhonePickerFieldComponent } from \"./components/fields/country-phone-picker/country-phone-picker-field.component\";\nimport { CurrencyFieldComponent } from \"./components/fields/currency/currency-field.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { PasswordFieldComponent } from \"./components/fields/password/password-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\nimport { TextAreaIAFieldComponent } from \"./components/fields/text-area-ia/text-area-ia-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { TextFieldComponent } from \"./components/fields/text/text-field.component\";\n\nimport { CheckboxFieldComponent } from \"./components/fields\";\nimport { ButtonFieldComponent } from \"./components/fields/button-field/button-field.component\";\nimport { EditorFieldComponent } from \"./components/fields/editor/editor-field.component\";\nimport { ProfilePictureFieldComponent } from \"./components/fields/profile-picture/profile-picture-field.component\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Row } from \"./configurations/grid/row\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\n\nexport abstract class DynamicForm {\n group: FormGroup;\n errorMessages: any;\n abstract createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages }: { group: FormGroup; errorMessages: any }) {\n this.group = group;\n this.errorMessages = errorMessages;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: FormField;\n errorMessages: any;\n\n constructor({ group, field, errorMessages }: { group: FormGroup; field: FormField; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n\n this.field = field;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.field = this.field;\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n\n this._switchEmptyStringToNull(component);\n\n component.instance.errorMessages = this.errorMessages;\n\n this.setVariablesByType(component);\n return component;\n }\n\n private _switchEmptyStringToNull(component: ComponentRef<any>) {\n switch (component.instance.field.type) {\n case FieldType.Password:\n case FieldType.String:\n case FieldType.Text:\n case FieldType.TextIA:\n const valueChanges$: Subscription = component.instance.formControl.valueChanges\n .subscribe((value: unknown) => {\n if (value === \"\") {\n component.instance.formControl.setValue(null, { emitEvent: false });\n }\n });\n\n component.onDestroy(() => {\n valueChanges$.unsubscribe();\n });\n\n return;\n }\n }\n\n public setVariablesByType(component: ComponentRef<any>) {\n if (this.field.type == FieldType.Time) {\n component.instance.timeOnly = true;\n }\n if ([FieldType.LocalDateTime, FieldType.DateTime, FieldType.Time].includes(this.field.type)) {\n component.instance.showTime = true;\n }\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.field = this.field;\n component.instance.formControl = this.group[\"controls\"][this.field.name];\n this.setVariablesByType(component);\n }\n\n public getComponent(): any {\n switch (this.field.type) {\n case FieldType.Autocomplete:\n return AutocompleteFieldComponent;\n case FieldType.Binary:\n case FieldType.String:\n return TextFieldComponent;\n case FieldType.Boolean:\n return this.field.representedBy === \"switch\" ? BooleanSwitchFieldComponent : BooleanFieldComponent;\n case FieldType.Checkbox:\n return CheckboxFieldComponent;\n case FieldType.Chips:\n return ChipsFieldComponent;\n case FieldType.CountryPhonePicker:\n return CountryPhonePickerFieldComponent;\n case FieldType.Date:\n case FieldType.DateTime:\n case FieldType.LocalDateTime:\n case FieldType.Time:\n return CalendarFieldComponent;\n case FieldType.Number:\n case FieldType.Integer:\n case FieldType.Double:\n return BignumberFieldComponent;\n case FieldType.Enum:\n return SelectFieldComponent;\n case FieldType.Lookup:\n return LookupFieldComponent;\n case FieldType.Money:\n return CurrencyFieldComponent;\n case FieldType.Radio:\n return RadioButtonComponent;\n case FieldType.Text:\n return TextAreaFieldComponent;\n case FieldType.TextIA:\n return TextAreaIAFieldComponent;\n case FieldType.Password:\n return PasswordFieldComponent;\n case FieldType.Blob:\n return FileUploadComponent;\n case FieldType.Slider:\n return SliderFieldComponent;\n case FieldType.ProfilePicture:\n return ProfilePictureFieldComponent;\n case FieldType.Editor:\n return EditorFieldComponent;\n case FieldType.Button:\n return ButtonFieldComponent;\n case FieldType.Custom:\n return this.field.CustomFieldComponentClass;\n default:\n throw new Error(`Trying to use an unsupported type (${this.field.type}).`);\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n group: FormGroup;\n config: Structure;\n errorMessages: any;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Structure; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory) as ComponentRef<any>;\n component.instance.config = this.config;\n component.instance.group = this.group;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.structure = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent(): any {\n switch (this.config.type) {\n case StructureType.Fieldset:\n return FieldsetComponent;\n case StructureType.Section:\n return SectionComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n\nexport class DynamicGrid extends DynamicForm {\n group: FormGroup;\n config: Row;\n\n constructor({ group, config, errorMessages }: { group: FormGroup; config: Row; errorMessages: any }) {\n super({ group, errorMessages });\n this.config = config;\n }\n\n public createComponent(resolver: ComponentFactoryResolver, container: ViewContainerRef) {\n const componentFactory = resolver.resolveComponentFactory(this.getComponent());\n const component = container.createComponent(componentFactory)\n component.instance.config = this.config;\n component.instance.group = this.group;\n component.instance.errorMessages = this.errorMessages;\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.instance.config = this.config;\n component.instance.group = this.group;\n }\n\n public getComponent() {\n switch (this.config.type) {\n case GridType.Row:\n return RowComponent;\n default:\n throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n }\n }\n}\n","import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnChanges, OnDestroy, OnInit, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\nimport { FieldType } from \"./configurations/field-type\";\nimport { FormField } from \"./configurations/form-field\";\nimport { GridType } from \"./configurations/grid-type\";\nimport { Grid } from \"./configurations/grid/grid\";\nimport { StructureType } from \"./configurations/structure-type\";\nimport { Structure } from \"./configurations/structure/structure\";\nimport { DynamicField, DynamicForm, DynamicGrid, DynamicStructure } from \"./dynamic-form\";\nimport { Row } from \"./configurations/grid/row\";\n\n@Directive({ selector: \"[sDynamicForm]\" })\nexport class DynamicFormDirective implements OnInit, OnChanges, OnDestroy {\n private id: string;\n private config: Structure | FormField | Grid | Row;\n private group: FormGroup;\n private errorMessages: FormGroup;\n private directiveConfig: DynamicForm;\n\n @Input()\n set sDynamicForm(context: { id: string; config: FormField; structure: Structure; group: FormGroup; errorMessages: any }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n public component: ComponentRef<any>;\n\n constructor(private resolver: ComponentFactoryResolver, private container: ViewContainerRef) { }\n\n public ngOnInit() {\n if (this.isField()) {\n if (!((this.config as FormField).id) && this.id) {\n (this.config as FormField).id = this.id + \"-\" + (this.config as FormField).name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config as FormField,\n errorMessages: this.errorMessages,\n });\n } else if (this.isStructure()) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config as Structure,\n errorMessages: this.errorMessages,\n });\n } else if (this.isGrid()) {\n this.directiveConfig = new DynamicGrid({\n group: this.group,\n config: this.config as Row,\n errorMessages: this.errorMessages,\n });\n } else throw new Error(`Trying to use an unsupported type (${this.config.type}).`);\n\n this.component = this.directiveConfig.createComponent(this.resolver, this.container);\n this.component.instance.id = this.id;\n this.component.instance.errorMessages = this.errorMessages;\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnDestroy(): void {\n this.component.destroy();\n }\n\n public isField() {\n return FieldType[this.config.type];\n }\n\n public isStructure() {\n return StructureType[this.config.type];\n }\n\n public isGrid() {\n return GridType[this.config.type];\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { Field } from \"../../configurations/fields/field\";\n\n@Component({\n selector: 's-field-label',\n templateUrl: './field-label.component.html',\n})\nexport class FieldLabelComponent {\n @Input()\n public field: Field;\n\n @Input()\n public fieldContainerRef: HTMLElement;\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FieldLabelComponent } from \"./field-label.component\";\nimport { InfoSignModule } from \"../../../info-sign/info-sign.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n InfoSignModule\n ],\n declarations: [FieldLabelComponent],\n exports: [FieldLabelComponent],\n})\nexport class FieldLabelModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { BignumberInputModule } from \"../../../../bignumber-input/number-input.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { BignumberFieldComponent } from \"./bignumber-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n BignumberInputModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [BignumberFieldComponent],\n exports: [BignumberFieldComponent],\n})\nexport class BignumberFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { CheckboxModule } from \"../../../../checkbox/checkbox.module\";\nimport { CheckboxFieldComponent } from \"./checkbox-field.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, CheckboxModule],\n declarations: [CheckboxFieldComponent],\n exports: [CheckboxFieldComponent],\n})\nexport class CheckboxFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { NumberInputModule } from \"../../../../number-input/number-input.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { CurrencyFieldComponent } from \"./currency-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NumberInputModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [CurrencyFieldComponent],\n exports: [CurrencyFieldComponent],\n})\nexport class CurrencyFieldModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { EditorModule } from \"primeng/editor\";\n\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\nimport { EditorFieldComponent } from \"./editor-field.component\";\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, EditorModule, FieldLabelModule],\n declarations: [EditorFieldComponent],\n exports: [EditorFieldComponent],\n})\nexport class EditorFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { LocalizedNumberInputModule } from \"../../../../localized-number-input/localized-number-input.module\";\nimport { NumberInputModule } from \"../../../../number-input/number-input.module\";\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { NumberFieldComponent } from \"./number-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n LocalizedNumberInputModule,\n NumberInputModule,\n ButtonModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [NumberFieldComponent],\n exports: [NumberFieldComponent],\n})\nexport class NumberFieldModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputTextModule } from \"primeng/inputtext\";\n\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { PasswordStrengthModule } from \"../../../../password-strength/password-strength.module\";\nimport { PasswordFieldComponent } from \"./password-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n TooltipModule,\n PasswordStrengthModule,\n InputTextModule,\n FieldLabelModule\n ],\n declarations: [PasswordFieldComponent],\n exports: [PasswordFieldComponent],\n})\nexport class PasswordFieldModule {}","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-footer\",\n template: `<ng-content></ng-content>`,\n})\nexport class FooterComponent {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { HeaderComponent } from \"./header.component\";\nimport { FooterComponent } from \"./footer.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport Cropper from \"cropperjs\";\nimport { FooterComponent } from \"../structure/footer.component\";\nimport { HeaderComponent } from \"../structure/header.component\";\n\n@Component({\n selector: \"s-image-cropper\",\n templateUrl: \"./image-cropper.component.html\",\n styleUrls: [\"../../../../node_modules/cropperjs/dist/cropper.min.css\", \"./image-cropper.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ImageCropperComponent implements OnInit, OnChanges {\n public static nextId = 0;\n\n @Input()\n public id = `s-image-cropper-${ImageCropperComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header = \"Recortar imagem\";\n\n @Input()\n public cropLabel = \"Recortar\";\n\n @Input()\n public selectAnotherLabel = \"Trocar\";\n\n @Input()\n public removeLabel = \"Remover\";\n\n @Input()\n public cancelLabel = \"Cancelar\";\n\n @Input()\n public emptyStateTitle = \"Selecione uma foto, em seguida você poderá ajustá-la\";\n\n @Input()\n public emptyStateActionLabel = \"Escolher imagem\";\n\n @Input()\n public emptyStateIconClass = \"fa fa-picture-o\";\n\n @Input()\n public aspectRatio = NaN;\n\n @Input()\n public rounded = false;\n\n @Input()\n public allowSelectAnother = true;\n\n @Input()\n public allowRemove = true;\n\n @Input()\n public allowCancel = true;\n\n @Input()\n public imageSource?: string;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @Output()\n public changeImage = new EventEmitter();\n\n @Output()\n public croppedImage = new EventEmitter<string>();\n\n @Output()\n public croppedCanvas = new EventEmitter<HTMLCanvasElement>();\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public cancel = new EventEmitter();\n\n @ViewChild(\"image\", { static: true })\n public image: ElementRef;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n public cropper: Cropper;\n\n public ngOnInit() {\n if (this.imageSource) this.initCropper();\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.imageSource && changes.imageSource.currentValue) {\n this.initCropper();\n }\n }\n\n private initCropper() {\n if (this.cropper) {\n this.cropper.destroy();\n }\n\n this.image.nativeElement.src = this.imageSource;\n this.cropper = new Cropper(this.image.nativeElement, {\n aspectRatio: this.rounded ? 1 : this.aspectRatio,\n guides: false,\n dragMode: \"move\" as Cropper.DragMode,\n minCropBoxHeight: 2,\n minCropBoxWidth: 2,\n toggleDragModeOnDblclick: false,\n });\n }\n\n public getRoundedCanvas(sourceCanvas: HTMLCanvasElement) {\n const canvas = document.createElement(\"canvas\");\n const context = canvas.getContext(\"2d\");\n const width = sourceCanvas.width;\n const height = sourceCanvas.height;\n canvas.width = width;\n canvas.height = height;\n context.imageSmoothingEnabled = true;\n context.drawImage(sourceCanvas, 0, 0, width, height);\n context.globalCompositeOperation = \"destination-in\";\n context.beginPath();\n context.arc(width / 2, height / 2, Math.min(width, height) / 2, 0, 2 * Math.PI, true);\n context.fill();\n return canvas;\n }\n\n public onCropImage() {\n if (!this.imageSource) {\n this.croppedImage.emit();\n this.croppedCanvas.emit();\n } else {\n const _croppedCanvas = this.rounded ? this.getRoundedCanvas(this.cropper.getCroppedCanvas()) : this.cropper.getCroppedCanvas();\n\n this.croppedCanvas.emit(_croppedCanvas);\n this.croppedImage.emit(_croppedCanvas.toDataURL());\n }\n\n this.visibleChange.emit(false);\n }\n\n public onChangeImage() {\n this.changeImage.emit();\n }\n\n public onRemoveImage() {\n this.imageSource = undefined;\n this.removedImage.emit();\n }\n\n public onCancel() {\n this.visibleChange.emit(false);\n this.cancel.emit();\n }\n\n public onModalVisibleChange(visible: boolean) {\n if (!visible) this.onCancel();\n this.visibleChange.emit(visible);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { DialogModule } from \"primeng/dialog\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\n\n@NgModule({\n imports: [CommonModule, DialogModule, ButtonModule, EmptyStateModule, StructureModule],\n declarations: [ImageCropperComponent],\n exports: [ImageCropperComponent, StructureModule],\n entryComponents: [ImageCropperComponent],\n})\nexport class ImageCropperModule {}\n","import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef } from \"@angular/core\";\nimport { ImageCropperComponent } from \"./image-cropper.component\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil, delay } from \"rxjs/operators\";\n\n@Injectable()\nexport class ImageCropperService {\n public activeCropper: ActiveCropper;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver, private appRef: ApplicationRef, private injector: Injector) {}\n\n public show(config?: ImageCropperConfig) {\n if (this.activeCropper) this.destroy(this.activeCropper);\n\n const activeCropper = {\n componentRef: this.componentFactoryResolver.resolveComponentFactory(ImageCropperComponent).create(this.injector),\n ngUnsubscribe: new Subject(),\n };\n\n this.activeCropper = activeCropper;\n\n this.appRef.attachView(activeCropper.componentRef.hostView);\n const domElem = (activeCropper.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n\n this.configureInstance(activeCropper, config);\n activeCropper.componentRef.instance.visible = true;\n\n activeCropper.componentRef.instance.visibleChange\n .pipe(\n takeUntil(this.activeCropper.ngUnsubscribe),\n delay(1000)\n )\n .subscribe(visible => {\n if (!visible) this.destroy(activeCropper);\n });\n }\n\n private configureInstance(activeCropper: ActiveCropper, config?: ImageCropperConfig) {\n const instance = activeCropper.componentRef.instance;\n\n if (config) {\n Object.keys(config).forEach(key => {\n const value = config[key];\n if (typeof value !== \"function\") instance[key] = value;\n else if (typeof value === \"function\") {\n instance[key].pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe((...param: any[]) => config[key](...param));\n }\n });\n }\n\n instance.visibleChange.pipe(takeUntil(activeCropper.ngUnsubscribe)).subscribe(visible => (instance.visible = visible));\n }\n\n private destroy(activeCropper: ActiveCropper) {\n activeCropper.ngUnsubscribe.next();\n activeCropper.ngUnsubscribe.complete();\n\n this.appRef.detachView(activeCropper.componentRef.hostView);\n activeCropper.componentRef.destroy();\n }\n}\n\nexport interface ActiveCropper {\n componentRef?: ComponentRef<ImageCropperComponent>;\n ngUnsubscribe?: Subject<any>;\n}\n\nexport interface ImageCropperConfig {\n id?: any;\n header?: string;\n cropLabel?: string;\n selectAnotherLabel?: string;\n removeLabel?: string;\n cancelLabel?: string;\n emptyStateTitle?: string;\n emptyStateActionLabel?: string;\n emptyStateIconClass?: string;\n aspectRatio?: number;\n rounded?: boolean;\n allowSelectAnother?: boolean;\n allowRemove?: boolean;\n allowCancel?: boolean;\n imageSource?: string;\n\n cancel?: () => any;\n changeImage?: () => any;\n removedImage?: () => any;\n croppedImage?: (imageSource: string) => any;\n croppedCanvas?: (imageSource: HTMLCanvasElement) => any;\n}\n","export interface FileValidationErrors {\n file: File;\n validation: FileValidation,\n}\n\nexport enum FileValidation {\n MaxFileSize = \"maxFileSize\",\n MaxFileLimit = \"maxFileLimit\",\n TypeInvalid = \"typeInvalid\",\n UnsupportedExtension = \"unsupportedExtension\",\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class ThumbnailService {\n public getBinaryFile(img: HTMLImageElement) {\n return new Promise(resolve => {\n const getOrientation = this.getOrientation.bind(this);\n\n let http = new XMLHttpRequest();\n http.addEventListener(\"load\", () => {\n if (http.readyState === 4 && (http.status == 200 || http.status === 0)) {\n const orientation = getOrientation(http.response);\n http = null;\n resolve(orientation);\n }\n });\n\n http.addEventListener(\"error\", () => {\n http = null;\n throw new Error(\"Não foi possível carregar a imagem\");\n });\n\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n });\n }\n\n /**\n * Retorna a tag da orientação EXIF {-1} Não definido, {-2} Não é formato JPEG, {1, 2, 3, 4, 5, 6, 7, 8} valores da orientação.\n */\n private getOrientation(file: ArrayBuffer): number {\n const view = new DataView(file);\n\n if (view.getUint16(0, false) != 0xffd8) return -2; // not jpeg\n\n const length = view.byteLength;\n let offset = 2;\n\n while (offset < length) {\n const marker = view.getUint16(offset, false);\n offset += 2;\n\n if (marker == 0xffe1) {\n if (view.getUint32((offset += 2), false) != 0x45786966) {\n return -1; // not defined\n }\n const little = view.getUint16((offset += 6), false) == 0x4949;\n offset += view.getUint32(offset + 4, little);\n const tags = view.getUint16(offset, little);\n offset += 2;\n\n for (let i = 0; i < tags; i++)\n if (view.getUint16(offset + i * 12, little) == 0x0112) return view.getUint16(offset + i * 12 + 8, little);\n // tslint:disable-next-line: no-bitwise\n } else if ((marker & 0xff00) != 0xff00) break;\n else offset += view.getUint16(offset, false);\n }\n return -1; // not defined\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n} from \"@angular/core\";\n\nimport { from, Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { ThumbnailSize } from \"./thumbnail-size\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@Component({\n selector: \"s-thumbnail\",\n templateUrl: \"./thumbnail.component.html\",\n styleUrls: [\"./thumbnail.component.scss\"],\n})\nexport class ThumbnailComponent implements AfterViewInit, OnDestroy {\n public static nextId = 0;\n public fallback = false;\n public orientation: number;\n\n @ViewChild(\"img\", { static: false })\n public imgEl: ElementRef;\n\n @Input()\n public id = `s-thumbnail-${ThumbnailComponent.nextId++}`;\n\n @Input()\n public size: ThumbnailSize = ThumbnailSize.Medium;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public iconClass = \"far fa-image\";\n\n @Input()\n public hasAction = false;\n\n @Input()\n public actionIconClass = \"fas fa-camera\";\n\n @Input()\n public isTile = false;\n\n @Input()\n public isBrand = false;\n\n private ngUnsubscribe = new Subject();\n\n constructor(private thumbnailService: ThumbnailService) { }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public ngAfterViewInit(): void {\n if (this.imgEl) {\n this.imgEl.nativeElement.addEventListener(\"load\", () => {\n from(this.thumbnailService.getBinaryFile(this.imgEl.nativeElement))\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((orientation: number) => (this.orientation = orientation));\n });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"./thumbnail.component\";\nimport { ThumbnailService } from \"./thumbnail.service\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ThumbnailComponent],\n exports: [ThumbnailComponent],\n providers: [ThumbnailService],\n})\nexport class ThumbnailModule {}\n","export enum CustomFieldType {\n String = \"String\",\n Boolean = \"Boolean\",\n Integer = \"Integer\",\n Double = \"Double\",\n Date = \"Date\",\n DateTime = \"DateTime\",\n LocalDateTime = \"LocalDateTime\",\n Time = \"Time\",\n Money = \"Money\",\n Blob = \"Blob\",\n Binary = \"Binary\",\n Any = \"Any\",\n Enum = \"Enum\",\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ConfirmationService } from \"primeng/api\";\n\nimport { ImageCropperService } from \"../image-cropper/image-cropper.service\";\nimport { ConfirmationTexts, CropperLabelsConfig, FileValidation, FileValidationErrors, ProfilePicturePickerData } from \"./models/index\";\n\n@Component({\n selector: \"s-profile-picture-picker\",\n templateUrl: \"profile-picture-picker.component.html\",\n styleUrls: [\"profile-picture-picker.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProfilePicturePickerComponent),\n multi: true,\n }],\n})\nexport class ProfilePicturePickerComponent implements OnInit, ControlValueAccessor {\n @Input()\n public simpleTitle: string;\n\n @Input()\n public actionTitle: string;\n\n @Input()\n public subtitle: string;\n\n @Input()\n public aspectRatio = 1;\n\n @Input()\n public cropperLabelsConfig: CropperLabelsConfig;\n\n @Input()\n public removeButtonLabel: string;\n\n @Input()\n public changeButtonLabel: string;\n\n @Input()\n public confirmationTexts: ConfirmationTexts;\n\n @Input()\n public maxFileSize: number;\n\n @Input()\n public accept: string;\n\n @Input()\n public supportedExtensions: string[] = [];\n\n @Input()\n public image: string | ProfilePicturePickerData;\n\n @ViewChild(\"uploadPicture\")\n public uploadPicture: ElementRef;\n\n @ViewChild(\"info\")\n public info: ElementRef;\n\n @ViewChild(\"thumbnail\", { read: ElementRef })\n public thumbnail: ElementRef;\n\n @ViewChild(\"fileInput\", { read: ElementRef })\n public fileInput: ElementRef;\n\n /**\n * @deprecated Use imageChange instead.\n */\n @Output()\n public changedImage: EventEmitter<string> = new EventEmitter();\n\n @Output()\n public imageChange = new EventEmitter<string | ProfilePicturePickerData>()\n\n @Output()\n public removedImage = new EventEmitter();\n\n @Output()\n public invalidFile: EventEmitter<FileValidationErrors> = new EventEmitter();\n\n public get imageBase64(): string {\n return typeof this.image === \"string\" ? this.image : this.image?.base64;\n }\n\n private _onChange: (value: string | ProfilePicturePickerData) => void;\n private _onTouched: () => void;\n\n constructor(\n private readonly imageCropperService: ImageCropperService,\n private readonly confirmationService: ConfirmationService,\n private readonly translateService: TranslateService,\n ) { }\n\n public writeValue(value: string | ProfilePicturePickerData): void {\n this.image = value;\n }\n\n public registerOnChange(onChange: (value: ProfilePicturePickerData) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public ngOnInit(): void {\n this._normalizeSuportedExtensions();\n }\n\n @HostListener(\"dragover\", [\"$event\"])\n public onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"dragleave\", [\"$event\"])\n public onDragLeave(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n @HostListener(\"drop\", [\"$event\"])\n public onDrop(event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n\n this._onTouched?.();\n\n const files: File[] = [];\n const dataTransferFiles = event.dataTransfer.files;\n\n for (let i = 0; i < dataTransferFiles.length; i++) {\n files.push(dataTransferFiles.item(i));\n }\n\n this._showImageCropper(files);\n }\n\n // Verificando o redimensionamento para ajustar o design para ficar responsivo.\n @HostListener(\"window:resize\")\n public onResize(): void {\n if (this.uploadPicture && this.info && this.thumbnail) {\n const uploadPictureWidth = this._getWidthElement(this.uploadPicture);\n const infoWidth = this._getWidthElement(this.info);\n const thumbnailWidth = this._getWidthElement(this.thumbnail);\n\n if (thumbnailWidth + infoWidth > uploadPictureWidth) {\n this.uploadPicture.nativeElement.classList.add(\"upload-picture--small\");\n } else {\n this.uploadPicture.nativeElement.classList.remove(\"upload-picture--small\");\n }\n }\n }\n\n public selectPhoto(): void {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n fileInputElement.click();\n\n this._onTouched?.();\n }\n\n public removePhoto(): void {\n this.confirmationService.confirm({\n message: this.confirmationTexts?.removalMessage ?? this.translateService.instant(\"platform.angular_components.confirmation_remove_image\"),\n acceptLabel: this.confirmationTexts?.removalAcceptLabel ?? this.translateService.instant(\"platform.angular_components.remove\"),\n rejectLabel: this.confirmationTexts?.removalRejectLabel ?? this.translateService.instant(\"platform.angular_components.cancel\"),\n header: this.confirmationTexts?.removalHeader ?? this.translateService.instant(\"platform.angular_components.remove_image\"),\n rejectButtonStyleClass: \"ui-button-secondary\",\n accept: () => {\n const fileInputElement = this.fileInput.nativeElement;\n fileInputElement.value = \"\";\n this.image = null;\n this.removedImage.emit();\n },\n });\n }\n\n public photoSelected(event: any): void {\n this._showImageCropper(event.srcElement.files);\n }\n\n private _showImageCropper(files: File[]): void {\n if (!this._validateData(files)) {\n return;\n }\n\n const file = files[0];\n\n const fileReader = new FileReader();\n fileReader.readAsDataURL(file);\n fileReader.onloadend = (fileEvent: any) => {\n this.imageCropperService.show({\n imageSource: fileEvent.target.result,\n croppedImage: image => {\n this.changedImage.emit(image);\n\n const data: ProfilePicturePickerData = { source: file, base64: image};\n \n // Se o tipo do image for string eu preciso atualizar e mandar para o imageChange uma string.\n // Se for ProfilePicturePickerData eu preciso mandar o data completo.\n if (typeof this.image === \"string\") {\n this.image = image;\n this.imageChange.emit(image);\n } else {\n this.image = data;\n this.imageChange.emit(data);\n }\n \n this._onChange?.(this.image);\n },\n changeImage: () => this.selectPhoto(),\n allowSelectAnother: false,\n aspectRatio: this.aspectRatio,\n ...this.cropperLabelsConfig,\n });\n };\n }\n\n private _normalizeSuportedExtensions(): void {\n this.supportedExtensions = this.supportedExtensions\n ?.map(extension => extension.replace(\".\", \"\").toLocaleLowerCase());\n }\n\n private _validateData(files: File[]): boolean {\n if (!files.length) {\n return false;\n }\n\n if (files.length > 1) {\n this.invalidFile.emit({ file: null, validation: FileValidation.MaxFileLimit });\n return false;\n }\n\n const file = files[0];\n\n if (!file.type.includes(\"image\")) {\n this.invalidFile.emit({ file, validation: FileValidation.TypeInvalid });\n return false;\n }\n\n if (!this._validateFileExtension(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.UnsupportedExtension });\n return false;\n }\n\n if (!this._validateFileSize(file)) {\n this.invalidFile.emit({ file, validation: FileValidation.MaxFileSize });\n return false;\n }\n\n return true;\n }\n\n private _validateFileExtension(file: File): boolean {\n if (this.supportedExtensions?.length) {\n const extension = file.name.split(\".\").pop().toLowerCase();\n return this.supportedExtensions.includes(extension);\n }\n return true;\n }\n\n private _validateFileSize(file: File): boolean {\n if (this.maxFileSize) {\n return file.size <= this.maxFileSize;\n }\n return true;\n }\n\n private _getWidthElement(element: ElementRef): number {\n const { left, right } = element.nativeElement.getBoundingClientRect();\n return right - left;\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { ConfirmationService } from \"primeng/api\";\nimport { ConfirmDialogModule } from \"primeng/confirmdialog\";\n\nimport { ButtonModule } from '../button/button.module';\nimport { ImageCropperModule } from '../image-cropper/image-cropper.module';\nimport { ImageCropperService } from '../image-cropper/image-cropper.service';\nimport { ThumbnailModule } from '../thumbnail/thumbnail.module';\nimport { ProfilePicturePickerComponent } from \"./profile-picture-picker.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n ButtonModule,\n ThumbnailModule,\n ImageCropperModule,\n ConfirmDialogModule,\n ],\n declarations: [ProfilePicturePickerComponent],\n exports: [ProfilePicturePickerComponent],\n providers: [\n ImageCropperService,\n ConfirmationService,\n ],\n})\nexport class ProfilePicturePickerModule { }","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { ProfilePicturePickerModule } from \"../../../../profile-picture-picker/profile-picture-picker.module\";\nimport { ProfilePictureFieldComponent } from \"./profile-picture-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ProfilePicturePickerModule,\n FieldLabelModule\n ],\n declarations: [ProfilePictureFieldComponent],\n exports: [ProfilePictureFieldComponent],\n})\nexport class ProfilePictureModule {}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\n\nimport { ButtonModule } from \"../../../../button/button.module\";\nimport { TooltipModule } from \"../../../../tooltip/tooltip.module\";\nimport { TextFieldComponent } from \"./text-field.component\";\nimport { FieldLabelModule } from \"../../field-label/field-label.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ButtonModule,\n TooltipModule,\n InputMaskModule,\n InputTextModule,\n KeyFilterModule,\n FieldLabelModule\n ],\n declarations: [TextFieldComponent],\n exports: [TextFieldComponent],\n})\nexport class TextFieldModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { HotkeyModule, HotkeysService } from \"angular2-hotkeys\";\nimport { AutoCompleteModule } from \"primeng/autocomplete\";\nimport { ButtonModule as PrimeButtonModule } from \"primeng/button\";\nimport { CalendarModule } from \"primeng/calendar\";\nimport { CheckboxModule } from \"primeng/checkbox\";\nimport { ChipsModule } from \"primeng/chips\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { DropdownModule } from \"primeng/dropdown\";\nimport { FieldsetModule } from \"primeng/fieldset\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\nimport { MultiSelectModule } from \"primeng/multiselect\";\nimport { PanelModule } from \"primeng/panel\";\nimport { RadioButtonModule } from \"primeng/radiobutton\";\nimport { SliderModule } from 'primeng/slider';\nimport { TableModule as PrimeNGTableModule } from \"primeng/table\";\n\nimport { MouseEventsModule } from \"../mouse-events/mouse-events.module\";\nimport { IAssistService } from \"./services/IAssist/iassist.service\";\n\n// Modules\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { BignumberInputModule } from \"../bignumber-input/number-input.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { CalendarMaskModule } from \"../calendar-mask/calendar-mask.module\";\nimport { ControlErrorsModule } from \"../control-errors/control-errors.module\";\nimport { CountryPhonePickerModule } from \"../country-phone-picker/country-phone-picker.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\nimport { FileUploadModule } from \"../file-upload/file-upload.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { LocaleModule } from \"../locale/locale.module\";\nimport { LocalizedNumberInputModule } from \"../localized-number-input/localized-number-input.module\";\nimport { MaskFormatterModule } from \"../mask/mask-formatter.module\";\nimport { NumberInputModule } from \"../number-input/number-input.module\";\nimport { PasswordStrengthModule } from \"../password-strength/password-strength.module\";\nimport { SwitchModule } from \"../switch/switch.module\";\nimport { TableHeaderCheckboxModule } from \"../table-header/table-header-checkox.module\";\nimport { TableModule } from \"../table/table.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n// Components\nimport { AutocompleteFieldComponent } from \"./components/fields/autocomplete/autocomplete-field.component\";\nimport { BooleanFieldComponent } from \"./components/fields/boolean/boolean-field.component\";\nimport { BooleanSwitchFieldComponent } from \"./components/fields/boolean/boolean-switch-field.component\";\nimport { CalendarFieldComponent } from \"./components/fields/calendar/calendar-field.component\";\nimport { ChipsFieldComponent } from \"./components/fields/chips/chips-field.component\";\nimport { CountryPhonePickerFieldComponent } from \"./components/fields/country-phone-picker/country-phone-picker-field.component\";\nimport { FileUploadComponent } from \"./components/fields/file-upload/file-upload.component\";\nimport { LookupFieldComponent } from \"./components/fields/lookup/lookup-field.component\";\nimport { RadioButtonComponent } from \"./components/fields/radio-button/radio-button-field.component\";\nimport { SelectFieldComponent } from \"./components/fields/select/select-field.component\";\nimport { SliderFieldComponent } from \"./components/fields/slider/slider-field.component\";\nimport { TextAreaIAFieldComponent } from \"./components/fields/text-area-ia/text-area-ia-field.component\";\nimport { TextAreaFieldComponent } from \"./components/fields/text-area/text-area-field.component\";\nimport { FieldsetComponent } from \"./components/structure/fieldset/fieldset.component\";\nimport { SectionComponent } from \"./components/structure/section/section.component\";\n\n// Grid\nimport { RowComponent } from \"./components/grid/row/row.component\";\n// Lookup\nimport { LookupComponent } from \"./components/lookup/lookup.component\";\n\n// Dynamic-form\nimport { DynamicFieldComponent } from \"./components/dynamic-field/dynamic-field.component\";\nimport { DynamicFormComponent } from \"./dynamic-form.component\";\nimport { DynamicFormDirective } from \"./dynamic-form.directive\";\n\nimport { FieldLabelModule } from \"./components/field-label/field-label.module\";\nimport { BignumberFieldModule } from \"./components/fields/bignumber/bignumber-field.module\";\nimport { CheckboxFieldModule } from \"./components/fields/checkbox/checkbox-field.module\";\nimport { CurrencyFieldModule } from \"./components/fields/currency/currency-field.module\";\nimport { EditorFieldModule } from \"./components/fields/editor/editor-field.module\";\nimport { NumberFieldModule } from \"./components/fields/number/number-field.module\";\nimport { PasswordFieldModule } from \"./components/fields/password/password-field.module\";\nimport { ProfilePictureModule } from \"./components/fields/profile-picture/profile-picture-field.module\";\nimport { TextFieldModule } from \"./components/fields/text/text-field.module\";\nimport { ButtonFieldComponent } from \"./components/fields/button-field/button-field.component\";\n\n@NgModule({\n imports: [\n AutoCompleteModule,\n BadgeModule,\n BignumberInputModule,\n ButtonModule,\n CalendarMaskModule,\n CalendarModule,\n CheckboxModule,\n ChipsModule,\n CommonModule,\n ControlErrorsModule,\n CountryPhonePickerModule,\n DialogModule,\n DropdownModule,\n EmptyStateModule,\n FormsModule,\n HotkeyModule,\n InputMaskModule,\n InputTextareaModule,\n InputTextModule,\n KeyFilterModule,\n LoadingStateModule,\n LocaleModule,\n LocalizedNumberInputModule,\n PanelModule,\n PrimeButtonModule,\n PrimeNGTableModule,\n MultiSelectModule,\n NumberInputModule,\n RadioButtonModule,\n ReactiveFormsModule,\n TooltipModule,\n\n FieldsetModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n TableModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n TranslateModule.forChild(),\n\n PasswordFieldModule,\n TextFieldModule,\n NumberFieldModule,\n CurrencyFieldModule,\n BignumberFieldModule,\n CheckboxFieldModule,\n ProfilePictureModule,\n EditorFieldModule,\n FieldLabelModule,\n ],\n declarations: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n DynamicFieldComponent,\n DynamicFormComponent,\n DynamicFormDirective,\n FieldsetComponent,\n FileUploadComponent,\n LookupComponent,\n LookupFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ButtonFieldComponent\n ],\n exports: [DynamicFormComponent, LookupComponent],\n entryComponents: [\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n FieldsetComponent,\n FileUploadComponent,\n LookupFieldComponent,\n RadioButtonComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ],\n providers: [\n HotkeysService,\n IAssistService,\n ]\n})\nexport class DynamicFormModule { }\n","import { HttpClient } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\n\n@Injectable()\nexport class CustomFieldsService {\n constructor(private http: HttpClient) {\n }\n\n public getCustomFields(domain: string, service: string, entity: string, endpoint: string): Observable<any> {\n const entityDto = { entityId: { domain_: domain, service_: service, id: entity } };\n return this.http.post(endpoint, entityDto);\n }\n\n public getFileLocationUrl(dto: {\n domain: string;\n service: string;\n entityName: string;\n field: string;\n fileName: string;\n }, endpoint: string): Observable<any> {\n return this.http.post(endpoint, dto);\n }\n\n public uploadTempFile(location: string, file: File) {\n return this.http.put(location, file, {\n reportProgress: true,\n observe: \"events\",\n headers: { \"Content-Type\": file.type }\n });\n }\n\n public requestAccess(objectId: string, endpoint: string) {\n return this.http.post(endpoint, { objectId });\n }\n\n public getFile(permanentUrl: string) {\n return this.http.get(permanentUrl, { responseType: \"blob\" });\n }\n}\n","import { HttpErrorResponse, HttpEventType } from \"@angular/common/http\";\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n SimpleChanges\n} from \"@angular/core\";\nimport {\n ControlContainer,\n ControlValueAccessor,\n FormArray,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n ValidatorFn,\n Validators,\n} from \"@angular/forms\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport BigNumber from \"bignumber.js\";\nimport * as moment_ from \"moment\";\nimport { BehaviorSubject, Observable, Subject, forkJoin, of, throwError } from \"rxjs\";\nimport { catchError, finalize, takeUntil } from \"rxjs/operators\";\n\nimport { NumberFieldComponent } from \"../dynamic-form/components/fields\";\nimport { FieldType, FormField, NumberField } from \"../dynamic-form/index\";\nimport { FileDto } from \"../file-upload/index\";\nimport { LocaleOptions } from \"../locale\";\nimport { LocaleService } from \"../locale/locale.service\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\nimport { CustomFieldType } from \"./models/custom-field-type\";\n\nconst moment = moment_; // @HACK Necessary because of https://github.com/rollup/rollup/issues/670\n\n@Component({\n selector: \"s-custom-fields\",\n templateUrl: \"./custom-fields.component.html\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: CustomFieldsComponent,\n multi: true,\n },\n ],\n})\nexport class CustomFieldsComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator, OnChanges, AfterViewInit {\n @Input()\n public domain: string;\n\n @Input()\n public service: string;\n\n @Input()\n public entity: string;\n\n @Input()\n public invalidErrorLabel = this.translateService.instant(\"platform.angular_components.invalid_value\");\n\n @Input()\n public entityObject: any;\n\n @Input()\n public customFieldsEndpoint = \"platform/field_customization/queries/getEntity\";\n\n @Input()\n public fileLocationEndpoint = \"platform/field_customization/actions/requestUpload\";\n\n @Input()\n public requestAccessEndpoint = \"platform/field_customization/actions/requestAccess\";\n\n @Input()\n public requiredErrorMessage: string;\n\n @Input()\n public displayTimeInfoSign: number;\n\n @Input()\n public showFileUploadDate: boolean = false;\n\n @Input()\n public ready$: BehaviorSubject<boolean>;\n\n @Input()\n public disableFields: boolean;\n\n public fields: FormField[] = [];\n public formGroup: FormGroup;\n private ready = false;\n private onChange: any;\n private onTouched: any;\n private value: any;\n private ngUsubscribe: Subject<void> = new Subject();\n private uploadCanceled: boolean;\n private hasBlob: boolean;\n private hasUploaded: boolean;\n\n constructor(\n private readonly customFieldsService: CustomFieldsService,\n private readonly localeService: LocaleService,\n private readonly sanitizer: DomSanitizer,\n private readonly translateService: TranslateService,\n @Optional() private controlContainer: ControlContainer\n ) { }\n\n public get hasCustomFields(): boolean {\n return !!this.fields?.length;\n }\n\n public get parentForm(): FormGroup {\n return this.controlContainer.control as FormGroup;\n }\n\n public get parentControl(): FormControl {\n return this.parentForm.get(\"custom\") as FormControl;\n }\n\n public ngOnInit(): void {\n this._validateInputs();\n this._createForm();\n this.addDisplayTimeInfoSignToFields();\n }\n\n public ngAfterViewInit(): void {\n this.enableOrDisableFields(this.disableFields);\n\n this.formGroup.valueChanges.subscribe(() => this.onChange?.(this.parseFieldsValues()));\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.disableFields) {\n this.enableOrDisableFields(changes.disableFields.currentValue);\n }\n }\n\n public ngOnDestroy() {\n this.ngUsubscribe.next();\n this.ngUsubscribe.complete();\n }\n\n public registerOnChange(fn: Function) {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: Function) {\n this.onTouched = fn;\n }\n\n public writeValue(value: any) {\n if (this.ready) {\n const newValue = this.parseValuesForFields(value);\n this.formGroup.patchValue(newValue);\n this.value = newValue;\n this.createFilesIfSetFormValuesAfterInit();\n } else {\n this.formGroup.patchValue(value || {});\n this.value = value;\n }\n }\n\n public setDisabledState(isDisabled: boolean) {\n if (isDisabled) this.formGroup.disable({ emitEvent: false });\n else this.formGroup.enable({ emitEvent: false });\n }\n\n public getCustomFields(): Observable<any> {\n if (this.entityObject && this.entityObject.entity_) {\n return of(this.entityObject);\n }\n return this.customFieldsService.getCustomFields(this.domain, this.service, this.entity, this.customFieldsEndpoint);\n }\n\n public validate() {\n const errors: any = {};\n Object.keys(this.formGroup.controls).forEach((field) => {\n const { errors: controlErrors } = this.formGroup.get(field);\n if (controlErrors) errors[field] = controlErrors;\n });\n return errors;\n }\n\n public cleanFields() {\n this.formGroup.reset();\n }\n\n private enableOrDisableFields(disabled: boolean): void {\n if (!this.formGroup) {\n return;\n }\n\n for (const controlName of Object.keys(this.formGroup.value)) {\n disabled ? this.formGroup.get(controlName).disable() : this.formGroup.get(controlName).enable();\n }\n }\n\n private _validateInputs(): void {\n if (!this.domain) throw new Error(\"You need to specify the custom-fields domain!\");\n if (!this.service) throw new Error(\"You need to specify the custom-fields service!\");\n if (!this.entity) throw new Error(\"You need to specify the custom-fields entity!\");\n }\n\n private _createForm(): void {\n this.formGroup = new FormGroup({});\n const observables = [this.getCustomFields(), this.localeService.get()];\n forkJoin(observables)\n .pipe(\n takeUntil(this.ngUsubscribe),\n finalize(() => {\n this.formGroup.markAsPristine();\n this.parentControl?.markAsPristine();\n\n if (this.ready$) this.ready$.next(true);\n })\n )\n .subscribe((response: any[]) => {\n const [customFieldsResponse, localeOptions] = response;\n const defaults: any = {};\n defaults[CustomFieldType.String] = {};\n defaults[CustomFieldType.Boolean] = { defaultValue: false };\n defaults[CustomFieldType.Integer] = {};\n defaults[CustomFieldType.Double] = { defaultMask: \"\" };\n defaults[CustomFieldType.Money] = {};\n defaults[CustomFieldType.Date] = {};\n defaults[CustomFieldType.DateTime] = {};\n defaults[CustomFieldType.LocalDateTime] = {};\n defaults[CustomFieldType.Time] = {};\n defaults[CustomFieldType.Blob] = {};\n defaults[CustomFieldType.Enum] = {};\n defaults[CustomFieldType.Binary] = {};\n defaults[CustomFieldType.Any] = {};\n\n if (!customFieldsResponse || !customFieldsResponse.entity_) return;\n const { active, fields } = customFieldsResponse.entity_;\n if (!active) return;\n\n fields\n .filter((field: any) => field.customizable && field.customization && field.customization.active)\n .forEach((field: any) => {\n const formField = this.getFormField(field, localeOptions);\n\n const fieldType = field.type;\n\n if (field.type === CustomFieldType.Blob && this.value && this.value[formField.name])\n this.createBlobToFileUpload(formField);\n\n const { validationRegex } = field.customization;\n\n const asIsTypes = [\n CustomFieldType.Boolean,\n CustomFieldType.Money,\n CustomFieldType.Date,\n CustomFieldType.DateTime,\n CustomFieldType.LocalDateTime,\n CustomFieldType.Time,\n ];\n\n const validators = [];\n if (validationRegex && !asIsTypes.includes(fieldType)) validators.push(Validators.pattern(validationRegex));\n if (fieldType === CustomFieldType.Integer && !formField.mask) validators.push(Validators.pattern(/^\\-?\\d*$/));\n\n if (formField.required?.()) {\n validators.push(Validators.required);\n }\n\n const control = new FormControl(\n { value: defaults[fieldType].defaultValue, disabled: this.formGroup.disabled },\n validators\n );\n\n this.formGroup.addControl(formField.name, control);\n\n this.fields.push(formField);\n });\n\n this.createFieldCustomization(fields);\n this.formGroup.patchValue(this.parseValuesForFields(this.value));\n this.ready = true;\n });\n }\n\n private parseValuesForFields(values: any) {\n const parsedValues = { ...values };\n\n this.fields.forEach((field) => {\n const { type, name } = field;\n const value = values && values[name];\n\n /**\n * Tratamento exclusivo para campos boolean que tem o status Empty\n * Essa condicional necessita estar antes do if (!value) return;\n * Pois ela tem um status que usa null no valor do campo radio boolean\n */\n if (type === FieldType.Boolean) {\n const isString = typeof value === \"string\";\n const notValid = !isString && typeof value !== \"boolean\";\n if (notValid) {\n parsedValues[name] = null;\n } else {\n // Condicional para campos que retornam string de boolen do backand\n if (isString) {\n parsedValues[name] = value === \"true\" ? true : false;\n } else {\n parsedValues[name] = value;\n }\n }\n }\n\n if (!value) return;\n\n switch (type) {\n case FieldType.Date:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.DateTime:\n parsedValues[name] = moment(value).toDate();\n break;\n case FieldType.LocalDateTime:\n parsedValues[name] = moment(value, \"YYYY-MM-DD[T]HH:mm:ss.SSS\").toDate();\n break;\n case FieldType.Time:\n parsedValues[name] = moment(value, \"HH:mm:ss\").toDate();\n break;\n }\n });\n\n return parsedValues;\n }\n\n /**\n * Algumas equipes só setam valor no formulário, após o carregamento da tela\n * Como é bem padrão isso, foi necessário criar esse método para gerar o file\n * após setar o valor no formulário\n */\n private createFilesIfSetFormValuesAfterInit() {\n if (!this.hasUploaded) {\n this.fields\n .filter((field: FormField) => field.type === FieldType.Blob)\n .forEach((field) => {\n if (this.formGroup.get(field.name).value) this.createBlobToFileUpload(field);\n });\n }\n }\n\n private parseFieldsValues() {\n const parsedValues: any = {};\n\n this.fields.forEach((field) => {\n const { type, name, mask, scale } = field;\n let value = this.formGroup.get(name).value;\n\n if (value) {\n switch (type) {\n case FieldType.Number:\n if (mask) value = new BigNumber(value).toFixed(scale as number).toString();\n break;\n case FieldType.Date:\n value = moment(value).format(\"YYYY-MM-DD\");\n break;\n case FieldType.DateTime:\n value = moment(value).format();\n break;\n case FieldType.LocalDateTime:\n value = moment(value).format(\"YYYY-MM-DD[T]HH:mm:ss.SSS\");\n break;\n case FieldType.Time:\n value = moment(value).format(\"HH:mm:ss\");\n break;\n }\n }\n\n if ((value === null || value === undefined) && this.isTypeNumberOrEnum(type)) {\n parsedValues[name] = field.multiple ? [] : null;\n } else {\n parsedValues[name] = value;\n }\n });\n\n if (this.hasBlob) parsedValues[\"fieldCustomization\"] = this.formGroup.get(\"fieldCustomization\").value;\n return parsedValues;\n }\n\n private isTypeNumberOrEnum(type: FieldType): boolean {\n const numberOrEnum = [FieldType.Number, FieldType.Enum];\n return numberOrEnum.includes(type);\n }\n\n private getFormField(field: any, localeOptions: LocaleOptions): FormField {\n let parameters: Partial<FormField>;\n\n switch (field.type) {\n case CustomFieldType.Blob:\n parameters = this.getBlobParameters();\n break;\n case CustomFieldType.Boolean:\n parameters = this.getBooleanParameters();\n break;\n case \"Enumeration\":\n case CustomFieldType.Enum:\n field.type = FieldType.Enum;\n parameters = this.getEnumParameters(field);\n break;\n case CustomFieldType.Money:\n parameters = {\n type: FieldType.Custom,\n CustomFieldComponentClass: NumberFieldComponent,\n CustomFieldClass: NumberField,\n precision: 15,\n scale: 2,\n leftAddon: {\n label: localeOptions?.number?.currencySymbol ?? \"R$\",\n },\n ignoreLabel: true,\n };\n break;\n case CustomFieldType.Double:\n parameters = {\n type: FieldType.Custom,\n CustomFieldComponentClass: NumberFieldComponent,\n CustomFieldClass: NumberField,\n precision: 15,\n scale: 2,\n ignoreLabel: true,\n };\n break;\n case CustomFieldType.Integer:\n parameters = {\n type: FieldType.Custom,\n CustomFieldComponentClass: NumberFieldComponent,\n CustomFieldClass: NumberField,\n precision: 15,\n scale: 0,\n ignoreLabel: true,\n };\n break;\n case CustomFieldType.Any:\n field.type = FieldType.String;\n break;\n }\n\n return new FormField({\n name: field.id,\n label: field.customization.label,\n tooltip: field.customization.tooltip,\n infoSign: field.customization.infoSign,\n type: field.type,\n mask: field.customization.mask,\n required: () => field.customization.mandatory,\n calendarOptions: localeOptions.calendar,\n currencyOptions: localeOptions.number,\n ...parameters,\n });\n }\n\n private getEnumParameters(field: any): object {\n return {\n showClear: true,\n multiple: field.customization.customEnumeration.multiple,\n options: field.customization.customEnumeration.values.map((e: any) => ({ label: e.value, value: e.key })),\n };\n }\n\n private getBooleanParameters(): object {\n return {\n optionsLabel: {\n true: this.getTranslateLabel(`true_label`),\n false: this.getTranslateLabel(`false_label`),\n empty: this.getTranslateLabel(`empty_label`),\n },\n };\n }\n\n private getBlobParameters(): object {\n return {\n size: {\n sm: 12,\n md: 12,\n lg: 12,\n xl: 12,\n },\n accept: \"image/*, application/*, text/*\",\n chooseLabel: this.getTranslateLabel(`choose_label`),\n removeLabel: this.getTranslateLabel(`remove_label`),\n cancelLabel: this.getTranslateLabel(`cancel_label`),\n successTooltip: this.getTranslateLabel(`success_tooltip`),\n multiple: false,\n onUploadFile: (event: { files: FileDto[] }, formfield: FormField) => {\n this.hasUploaded = true;\n this.uploadFile(event, formfield);\n },\n onRemoveFile: (event: { file: FileDto }, formfield: FormField) => {\n this.removeFile(event, formfield);\n },\n onCancelUpload: (event: number, formfield: FormField) => {\n this.cancelUpload(event, formfield);\n },\n onDownloadFile: (event: { index: number; anchor: ElementRef }, formfield: FormField) => {\n this.downloadFile(event, formfield);\n },\n showFileUploadDate: this.showFileUploadDate,\n };\n }\n\n /**\n * É necessário criar o fieldCustomization quando há um Blob na entidade para gerar o\n * com os fields inseridos e deletados.\n */\n private createFieldCustomization(fields: any[]): void {\n this.hasBlob = !!fields.filter((field: any) => field.type === CustomFieldType.Blob).length;\n if (this.hasBlob) {\n this.formGroup.addControl(\n \"fieldCustomization\",\n new FormArray([\n new FormGroup({\n domain: new FormControl(this.domain),\n service: new FormControl(this.service),\n entity: new FormControl(this.entity),\n toDelete: new FormControl({ value: {}, disabled: false }),\n toInsert: new FormControl({ value: {}, disabled: false }),\n }),\n ])\n );\n }\n }\n\n private createBlobToFileUpload(field: FormField) {\n const objectId = this.value[field.name] ? this.value[field.name] : this.formGroup.get(field.name).value;\n const fileName = objectId.substring(objectId.lastIndexOf(\"/\") + 1);\n const file: Partial<FileDto> = { name: fileName, objectId, savedFile: true };\n field.files = [file as FileDto];\n }\n\n private downloadFile(event: { index: number; anchor: ElementRef }, field: FormField) {\n const { index, anchor } = event;\n const currentFile = field.files[index];\n if (currentFile.objectURL) {\n anchor.nativeElement.click();\n } else {\n this.customFieldsService\n .requestAccess(currentFile.objectId, this.requestAccessEndpoint)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((data: { fileName: string; uri: string }) => {\n const { fileName, uri } = data;\n this.customFieldsService\n .getFile(uri)\n .pipe(takeUntil(this.ngUsubscribe))\n .subscribe((blob: any) => {\n const newFile = <FileDto>new File([blob], fileName);\n newFile.objectURL = this.sanitizer.bypassSecurityTrustUrl(uri);\n anchor.nativeElement.setAttribute(\"href\", uri);\n newFile.objectId = currentFile.objectId;\n newFile.savedFile = true;\n field.files[index] = newFile;\n field.files = [...field.files];\n anchor.nativeElement.click();\n });\n });\n }\n }\n\n private uploadFile(event: { files: FileDto[] }, formField: any): void {\n const { files } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n\n // Se ocorrer um upload, já existindo um arquivo com upload feito. É necessário excluir o mesmo.\n if (field.files && field.files.length) {\n this.removeFile({ file: field.files[0] }, field);\n }\n field.files = files;\n\n for (let i = 0; i < files.length; i++) {\n const file = files[i];\n if (!file.savedFile && !file.progress) {\n file.isUploading = true;\n this.formGroup.get(field.name).setValidators(isUploading(file));\n this.formGroup.get(field.name).updateValueAndValidity();\n this.customFieldsService\n .getFileLocationUrl(\n {\n domain: this.domain,\n service: this.service,\n entityName: this.entity,\n field: field.name,\n fileName: file.name,\n },\n this.fileLocationEndpoint\n )\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i)))\n )\n .subscribe((data: any) => {\n const { location, version, objectId } = data;\n file.version = version;\n file.objectId = objectId;\n file[\"uploadSubscribe\"] = this.customFieldsService\n .uploadTempFile(location, file)\n .pipe(\n takeUntil(this.ngUsubscribe),\n catchError((err: HttpErrorResponse) => of(this.defaltCatchError(field, err, i))),\n finalize(() => {\n file.isUploading = false;\n })\n )\n .subscribe((response: any) => {\n const { type } = response;\n if (!this.uploadCanceled) {\n if (type === HttpEventType.UploadProgress)\n file.progress = Math.round(response.loaded / response.total) * 100;\n else if (type === HttpEventType.Response) {\n file.objectURL = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(file));\n\n const value = { objectId, name: file.name, version: file.version };\n const toInsert = this.formGroup.get(\"fieldCustomization\").value[0].toInsert;\n this.formGroup.get(\"fieldCustomization\").value[0].toInsert = {\n ...toInsert,\n [field.name]: value,\n };\n this.formGroup.get(field.name).setValue(`${file.objectId}/${file.name}`);\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).updateValueAndValidity();\n field.files = [file];\n }\n } else if (this.uploadCanceled && type === HttpEventType.Response) this.uploadCanceled = false;\n });\n field.files = [file];\n });\n }\n }\n }\n\n private removeFile(event: { file: FileDto }, formField: any): void {\n const { file } = event;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files = [];\n if (file.objectId) {\n // Quando é um arquivo já salvo o objectId já é no formato \"objectId/name\"\n const value = file.savedFile ? `${file.objectId}` : `${file.objectId}/${file.name}`;\n const toDelete = this.formGroup.get(\"fieldCustomization\").value[0].toDelete;\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(\"fieldCustomization\").value[0].toDelete = {\n ...toDelete,\n [field.name]: [...(toDelete[field.name] || []), value],\n };\n }\n\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private cancelUpload(index: number, formField: any): void {\n this.uploadCanceled = true;\n const field = this.fields.find((record: FormField) => record.name === formField.name);\n field.files[index][\"uploadSubscribe\"].unsubscribe();\n field.files = [];\n delete this.formGroup.get(\"fieldCustomization\").value[0].toInsert[field.name];\n this.formGroup.get(field.name).clearValidators();\n this.formGroup.get(field.name).setValue(\"\");\n this.formGroup.get(field.name).updateValueAndValidity();\n }\n\n private defaltCatchError(field: FormField, err: HttpErrorResponse, index: number): Observable<never> {\n const { files } = field;\n files[index].error = err;\n files[index].isUploading = false;\n field.files = [...files];\n this.formGroup.get(field.name).setValidators([errorOnUpload(files[index])]);\n this.formGroup.get(field.name).updateValueAndValidity();\n return throwError(new Error(\"error in upload file. Details: \" + err.message));\n }\n\n private getTranslateLabel(label: string): string {\n return this.translateService.instant(`${this.domain}.${this.service}.${label}`);\n }\n\n private addDisplayTimeInfoSignToFields(): void {\n this.fields.forEach((field) => {\n field.displayTimeInfoSign = this.displayTimeInfoSign;\n });\n }\n}\n\nfunction isUploading(file: FileDto): ValidatorFn {\n return () => (file.isUploading ? { isUploading: true } : null);\n}\n\nfunction errorOnUpload(file: FileDto): ValidatorFn {\n return () => (file.error ? { uploadError: true } : null);\n}\n","export enum ViewMode {\n QuarterHour = \"quarterHour\",\n Hour = \"hour\",\n QuarterDay = \"quarterDay\",\n HalfDay = \"halfDay\",\n Day = \"day\",\n Week = \"week\",\n Month = \"month\",\n Year = \"year\",\n}\n","import { CommonModule } from \"@angular/common\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { DynamicFormModule } from \"../dynamic-form/index\";\nimport { LocaleModule } from \"../locale/index\";\nimport { CustomFieldsComponent } from \"./custom-fields.component\";\nimport { CustomFieldsService } from \"./custom-fields.service\";\nimport { TranslateModule, TranslateService } from \"@ngx-translate/core\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n LocaleModule,\n DynamicFormModule,\n TranslateModule\n ],\n declarations: [CustomFieldsComponent],\n exports: [CustomFieldsComponent],\n providers: [CustomFieldsService, TranslateService]\n})\nexport class CustomFieldsModule {\n}\n","import { AfterViewInit, Directive, Input } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Directive({\n selector: \"p-table[sEditableOverlay]\",\n})\nexport class EditableOverlayDirective implements AfterViewInit {\n @Input()\n public table: any;\n\n constructor() {}\n\n ngAfterViewInit() {\n this.table.bindDocumentEditListener = this.bindDocument.bind(this);\n }\n\n public isFromOverlayTrigger(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"ng-trigger-overlayAnimation\"));\n }\n\n public isFromModal(event: any) {\n return event.path.some((path: any) => path.className && path.className.includes(\"s-lookup\"));\n }\n\n private bindDocument() {\n if (!this.table.documentEditListener) {\n this.table.documentEditListener = (event: any) => {\n if (\n !this.isFromOverlayTrigger(event) &&\n !this.isFromModal(event) &&\n this.table.editingCell &&\n !this.table.editingCellClick &&\n this.table.isEditingCellValid()\n ) {\n DomHandler.removeClass(this.table.editingCell, \"ui-editing-cell\");\n this.table.editingCell = null;\n this.table.unbindDocumentEditListener();\n }\n\n this.table.editingCellClick = false;\n };\n\n document.addEventListener(\"click\", this.table.documentEditListener);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { EditableOverlayDirective } from \"./editable-overlay.directive\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EditableOverlayDirective],\n exports: [EditableOverlayDirective],\n})\nexport class EditableOverlayModule {}\n","import * as moment_ from \"moment\";\n\nconst moment = moment_;\n\nconst YEAR = \"year\";\nconst MONTH = \"month\";\nconst DAY = \"day\";\nconst HOUR = \"hour\";\nconst MINUTE = \"minute\";\nconst SECOND = \"second\";\nconst MILLISECOND = \"millisecond\";\n\nexport abstract class DateUtils {\n public static parse(date: Date | string): Date {\n return moment(date).toDate();\n }\n\n public static toString(date: Date, with_time = false) {\n let result = with_time ? moment(date, \"YYYY-MM-DD hh:mm:ss.SSS\") : moment(date, \"YYYY-MM-DD\");\n\n return result.toString();\n }\n\n public static format(date: any, formatString: string = \"YYYY-MM-DD HH:mm:ss.SSS\", lang: string = \"en\"): string {\n const monthName = moment(date)\n .locale(lang)\n .startOf(\"month\")\n .format(\"MMMM\");\n \n const monthNameCapitalized = monthName.charAt(0).toUpperCase() + monthName.slice(1);\n const dateToFormat = moment(date).locale(lang);\n const format_map = {\n YYYY: dateToFormat.format(\"YYYY\"),\n MM: dateToFormat.format(\"MM\"),\n DD: dateToFormat.format(\"DD\"),\n ddd: dateToFormat.format(\"ddd\").toUpperCase().replace(\".\", \"\"), // Removendo alterações nas traduções que acontecem nos diferentes idiomas\n HH: dateToFormat.format(\"HH\"),\n mm: dateToFormat.format(\"mm\"),\n ss: dateToFormat.format(\"ss\"),\n SSS: dateToFormat.format(\"SSS\"),\n D: dateToFormat.format(\"D\"),\n MMMM: monthNameCapitalized,\n MMM: monthNameCapitalized,\n };\n\n let str = formatString;\n const formattedValues: any[] = [];\n\n Object.keys(format_map)\n .sort((a, b) => b.length - a.length)\n .forEach(key => {\n if (str.includes(key)) {\n str = str.replace(key, `$${formattedValues.length}`);\n formattedValues.push(format_map[key]);\n }\n });\n\n formattedValues.forEach((value, i) => {\n str = str.replace(`$${i}`, value);\n });\n\n return str;\n }\n\n public static diff(fistDate: Date, secondDate: Date, scale: string) {\n const milliseconds = moment(fistDate).diff(secondDate, MILLISECOND);\n const seconds = moment(fistDate).diff(secondDate, SECOND);\n const minutes = moment(fistDate).diff(secondDate, MINUTE);\n const hours = moment(fistDate).diff(secondDate, HOUR);\n const days = moment(fistDate).diff(secondDate, DAY);\n const months = moment(fistDate).diff(secondDate, MONTH);\n const years = moment(fistDate).diff(secondDate, YEAR);\n \n if (!scale.endsWith(\"s\")) {\n scale += \"s\";\n }\n \n return Math.floor(\n {\n milliseconds,\n seconds,\n minutes,\n hours,\n days,\n months,\n years,\n }[scale]\n );\n }\n\n public static today(): Date {\n const dateStr = moment().format(\"YYY-MM-DD\");\n return new Date(dateStr);\n }\n\n public static now(): Date {\n return moment().toDate();\n }\n\n public static add(date: Date, quantity: any, scale: any): Date {\n return moment(date).add(quantity, scale).toDate();\n }\n\n public static startOf(date: Date, scale: string): Date {\n const scores = {\n [YEAR]: 6,\n [MONTH]: 5,\n [DAY]: 4,\n [HOUR]: 3,\n [MINUTE]: 2,\n [SECOND]: 1,\n [MILLISECOND]: 0,\n };\n\n function shouldReset(_scale: any) {\n const max_score = scores[scale];\n return scores[_scale] <= max_score;\n }\n\n const vals: any = [\n date.getFullYear(),\n shouldReset(YEAR) ? 0 : date.getMonth(),\n shouldReset(MONTH) ? 1 : date.getDate(),\n shouldReset(DAY) ? 0 : date.getHours(),\n shouldReset(HOUR) ? 0 : date.getMinutes(),\n shouldReset(MINUTE) ? 0 : date.getSeconds(),\n shouldReset(SECOND) ? 0 : date.getMilliseconds(),\n ];\n\n return new Date(vals[0], vals[1], vals[2], vals[3], vals[4], vals[5], vals[6]);\n }\n\n public static clone(date: Date): Date {\n return moment(date).toDate();\n }\n\n public static getDateValues(date: Date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n }\n\n public static getDaysInMonth(date: Date) {\n return moment(date, \"YYYY-MM\").daysInMonth();\n }\n}\n","\n\nexport const $ = (expr: any, con: any) => {\n return typeof expr === 'string'\n ? (con || document).querySelector(expr)\n : expr || null;\n}\n\nexport const createSVG = (tag: any, attrs: any) => {\n const elem = document.createElementNS(\"http://www.w3.org/2000/svg\", tag);\n for (let attr in attrs) {\n if (attr === \"append_to\") {\n const parent = attrs.append_to;\n parent.appendChild(elem);\n } else if (attr === \"innerHTML\") {\n elem.innerHTML = attrs.innerHTML;\n } else {\n elem.setAttribute(attr, attrs[attr]);\n }\n }\n return elem;\n}\n\nexport const animateSVG = (svgElement: any, attr: any, from: any, to: any) => {\n const animatedSvgElement = getAnimationElement(svgElement, attr, from, to);\n\n if (animatedSvgElement === svgElement) {\n // triggered 2nd time programmatically\n // trigger artificial click event\n const event = document.createEvent(\"HTMLEvents\");\n event.initEvent(\"click\", true, true);\n // event.eventName = 'click'; TODO: Ver porque esta propriedade não existe\n animatedSvgElement.dispatchEvent(event);\n }\n}\n\nconst getAnimationElement = (svgElement: any, attr: any, from: any, to: any, dur = \"0.4s\", begin = \"0.1s\") => {\n const animEl = svgElement.querySelector(\"animate\");\n if (animEl) {\n $.attr(animEl, {\n attributeName: attr,\n from,\n to,\n dur,\n begin: \"click + \" + begin, // artificial click\n }, null);\n return svgElement;\n }\n\n const animateElement = createSVG(\"animate\", {\n attributeName: attr,\n from,\n to,\n dur,\n begin,\n calcMode: \"spline\",\n values: from + \";\" + to,\n keyTimes: \"0; 1\",\n keySplines: cubic_bezier(\"ease-out\"),\n });\n svgElement.appendChild(animateElement);\n\n return svgElement;\n}\n\nconst cubic_bezier = (name: any) => {\n return {\n ease: \".25 .1 .25 1\",\n linear: \"0 0 1 1\",\n \"ease-in\": \".42 0 1 1\",\n \"ease-out\": \"0 0 .58 1\",\n \"ease-in-out\": \".42 0 .58 1\",\n }[name];\n}\n\n$.on = (element: any, event: any, selector: any, callback: any) => {\n if (!callback) {\n callback = selector;\n $.bind(element, event, callback);\n } else {\n $.delegate(element, event, selector, callback);\n }\n};\n\n$.off = (element: any, event: any, handler: any) => {\n element.removeEventListener(event, handler);\n};\n\n$.bind = (element: any, event: any, callback: any) => {\n event.split(/\\s+/).forEach(function (event: any) {\n element.addEventListener(event, callback);\n });\n};\n\n$.delegate = (element: any, event: any, selector: any, callback: any) => {\n element.addEventListener(event, function (e: any) {\n const delegatedTarget = e.target.closest(selector);\n if (delegatedTarget) {\n e.delegatedTarget = delegatedTarget;\n callback.call(this, e, delegatedTarget);\n }\n });\n};\n\n$.closest = (selector: any, element: any) => {\n if (!element) { \n return null;\n }\n\n if (element.matches(selector)) {\n return element;\n }\n\n // TODO: Corrigir este problema\n // return $.closest(selector, element.parentNode);\n};\n\n$.attr = (element: any, attr: any, value: any) => {\n if (!value && typeof attr === \"string\") {\n return element.getAttribute(attr);\n }\n\n if (typeof attr === \"object\") {\n for (let key in attr) {\n $.attr(element, key, attr[key]);\n }\n return;\n }\n\n element.setAttribute(attr, value);\n};\n","import { DateUtils } from './utils/date-utils';\nimport { $, createSVG, animateSVG } from './utils/svg-utils';\nimport { ViewMode } from \"../../models/view-mode\";\n\nimport { Gantt } from \"./gantt\";\nimport { EnrichedTask } from \"../../models/task\";\nimport { Arrow } from \"./arrow\";\n\nexport class Bar {\n private _actionCompleted: boolean;\n private _gantt: Gantt;\n private _invalid: boolean;\n private _height: number;\n private _x: number;\n private _y: number;\n private _cornerRadius: number;\n private _duration: number;\n private _width: number;\n private _barGroup: any;\n\n private _arrows: Arrow[];\n private _group: any;\n private _task: EnrichedTask;\n private _element: any;\n\n private _isPopUpOpen = false;\n\n public get arrows(): Arrow[] {\n return this._arrows;\n }\n\n public set arrows(arrows: Arrow[]) {\n this._arrows = arrows;\n }\n\n public get task(): EnrichedTask {\n return this._task;\n }\n\n public get element() {\n return this._element;\n }\n\n public get group() {\n return this._group;\n }\n\n constructor(gantt: any, task: any) {\n this._setDefaults(gantt, task);\n this._prepare();\n this._draw();\n this._bind();\n }\n\n public updateBarPosition({ x, width }: any): void {\n const bar = this.element;\n if (x) {\n // get all x values of parent task\n const xs = this.task.dependencies.map((dep: any) => {\n return this._gantt.get_bar(dep).element.getX();\n });\n // child task must not go before parent\n const valid_x = xs.reduce((prev: any, curr: any) => {\n return x >= curr;\n }, x);\n if (!valid_x) {\n width = null;\n return;\n }\n this._updateAttr(bar, \"x\", x);\n }\n if (width && width >= this._gantt.options.columnWidth) {\n this._updateAttr(bar, \"width\", width);\n }\n this._updateLabelPosition();\n this._updateArrowPosition();\n }\n\n public dateChanged(): void {\n let changed = false;\n const { newStartDate, newEndDate } = this._computeStartEndDate();\n\n if (this.task.start !== newStartDate) {\n changed = true;\n this.task.start = newStartDate;\n }\n\n if (this.task.end !== newEndDate) {\n changed = true;\n this.task.end = newEndDate;\n }\n\n if (changed) {\n this._gantt.trigger_event(\"onDateChange\", [\n this.task,\n newStartDate,\n DateUtils.add(newEndDate, -1, \"second\"),\n ]);\n };\n }\n\n public setActionCompleted(): void {\n this._actionCompleted = true;\n setTimeout(() => {\n this._actionCompleted = false;\n }, 1000);\n }\n\n private _setDefaults(gantt: any, task: any) {\n this._actionCompleted = false;\n this._gantt = gantt;\n this._task = task;\n }\n\n private _prepare() {\n this._prepareValues();\n this._prepareHelpers();\n }\n\n private _prepareValues(): void {\n this._invalid = this.task.invalid;\n this._height = this._gantt.options.barHeight;\n this._x = this._computeX();\n this._y = this._computeY();\n this._cornerRadius = this._gantt.options.barCornerRadius;\n this._duration = DateUtils.diff(this.task.end, this.task.start, \"minute\") / this._gantt.options.step / 60.0;\n this._width = this._gantt.options.columnWidth * this._duration;\n this._group = createSVG(\"g\", {\n class: \"bar-wrapper \" + (this.task.custom_class || \"\"),\n \"data-id\": this.task.id,\n });\n this._barGroup = createSVG(\"g\", {\n class: \"bar-group\",\n append_to: this.group,\n });\n }\n\n private _prepareHelpers(): void {\n (SVGElement.prototype as any).getX = function () {\n return +this.getAttribute(\"x\");\n };\n (SVGElement.prototype as any).getY = function () {\n return +this.getAttribute(\"y\");\n };\n (SVGElement.prototype as any).getWidth = function () {\n return +this.getAttribute(\"width\");\n };\n (SVGElement.prototype as any).getHeight = function () {\n return +this.getAttribute(\"height\");\n };\n (SVGElement.prototype as any).getEndX = function () {\n return this.getX() + this.getWidth();\n };\n }\n\n private _draw(): void {\n this._drawBar();\n this._drawLabel();\n }\n\n private _drawBar(): void {\n this._element = createSVG(\"rect\", {\n x: this._x,\n y: this._y,\n width: this._width,\n height: this._height,\n rx: this._cornerRadius,\n ry: this._cornerRadius,\n class: \"bar\",\n append_to: this._barGroup,\n fill: this.task.color,\n });\n\n animateSVG(this.element, \"width\", 0, this._width);\n\n if (this._invalid) {\n this.element.classList.add(\"bar-invalid\");\n }\n }\n\n private _drawLabel(): void {\n createSVG(\"text\", {\n x: this._x + this._width / 2,\n y: this._y + this._height / 2,\n innerHTML: this.task.showTaskName ? this.task.name : \"\",\n class: \"bar-label\",\n append_to: this._barGroup,\n });\n // labels get BBox in the next tick\n requestAnimationFrame(() => this._updateLabelPosition());\n }\n\n private _bind(): void {\n if (!this._invalid) {\n this._setupClickEvent();\n }\n }\n\n private _setupClickEvent(): void {\n //TODO\n\n if(this._gantt.options.hasPopup) {\n $.on(this.group, \"focus \" + this._gantt.options.popupTrigger, (e: any) => {\n // just finished a move action, wait for a few seconds\n if (!this._actionCompleted) {\n this._showPopup();\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n }\n }, null);\n\n $.on(this.group, \"dblclick\", (e: any) => {\n // just finished a move action, wait for a few seconds\n\n if (!this._actionCompleted) {\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n } else {\n $.on(this.group, \"mouseenter\", (e: any) => {\n if(!this._isPopUpOpen) {\n this._showPopup({\n x: e.clientX,\n y: this.group.getBoundingClientRect().top + 30,\n position: 'middle'\n });\n this._isPopUpOpen = true;\n }\n }, null);\n\n $.on(this.group, \"mouseleave\", (e: any) => {\n this._gantt.hide_popup();\n this._isPopUpOpen = false;\n }, null);\n\n\n $.on(this.group, \"focus click\", (e: any) => {\n if (!this._actionCompleted) {\n this._gantt.unselect_all();\n this.group.classList.add(\"active\");\n this._gantt.trigger_event(\"onClick\", [this.task]);\n }\n }, null);\n }\n }\n\n private _showPopup(args?: any) {\n if (this._gantt.bar_being_dragged) {\n return;\n }\n\n const subtitle: any = {};\n\n if (!this._gantt.options.showOnlyHours) {\n subtitle.startDate = DateUtils.format(\n this.task.start,\n 'DD/MM/YYYY',\n this._gantt.options.language\n );\n subtitle.endDate = DateUtils.format(\n this.task.end,\n 'DD/MM/YYYY',\n this._gantt.options.language\n );\n }\n\n if (!this._gantt.options.showOnlyDays) {\n subtitle.startHour = DateUtils.format(\n this.task.start,\n 'HH:mm:ss',\n this._gantt.options.language\n );\n subtitle.endHour = DateUtils.format(\n this.task.end,\n 'HH:mm:ss',\n this._gantt.options.language\n );\n }\n\n this._gantt.show_popup({\n target_element: this.element,\n title: this.task.name,\n subtitle: subtitle,\n task: this.task,\n ...args\n });\n }\n\n private _computeStartEndDate(): { newStartDate: Date, newEndDate: Date } {\n const bar = this.element;\n const xInUnits = bar.getX() / this._gantt.options.columnWidth;\n const newStartDate = DateUtils.add(\n this._gantt.minDate,\n xInUnits * this._gantt.options.step,\n \"hour\"\n );\n const width_in_units = bar.getWidth() / this._gantt.options.columnWidth;\n const newEndDate = DateUtils.add(\n newStartDate,\n width_in_units * this._gantt.options.step,\n \"hour\"\n );\n\n return { newStartDate, newEndDate };\n }\n\n private _computeX() {\n const { step, columnWidth } = this._gantt.options;\n\n let x;\n if (this._gantt.view_is([ViewMode.QuarterHour, ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"minutes\");\n x = (diff / step) * (columnWidth / 60);\n } else {\n const diff = DateUtils.diff(this.task.start, this._gantt.minDate, \"hour\");\n x = (diff / step) * (columnWidth);\n }\n\n return x;\n }\n\n private _computeY() {\n return (\n this._gantt.options.headerHeight +\n this._gantt.options.padding +\n this.task._index * (this._height + this._gantt.options.padding)\n );\n }\n\n private _updateAttr(element: any, attr: any, value: any) {\n value = +value;\n if (!isNaN(value)) {\n element.setAttribute(attr, value);\n }\n return element;\n }\n\n private _updateLabelPosition(): void {\n const bar = this.element,\n label = this.group.querySelector(\".bar-label\");\n\n if (label.getBBox().width > bar.getWidth()) {\n label.classList.add(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() + 5);\n } else {\n label.classList.remove(\"big\");\n label.setAttribute(\"x\", bar.getX() + bar.getWidth() / 2);\n }\n }\n\n private _updateArrowPosition(): void {\n this._arrows = this._arrows || [];\n for (let arrow of this._arrows) {\n arrow.update();\n }\n }\n}\n","export class Popup {\n private parent: any;\n private customHtml: any;\n private title: any;\n private startDate: any;\n private startHour: any;\n private endDate: any;\n private endHour: any;\n\n private pointer: any;\n\n constructor(parent: any, customHtml: any) {\n this.parent = parent;\n this.customHtml = customHtml;\n this.make();\n }\n\n public show(options: any) {\n if (!options.target_element) {\n throw new Error(\"target_element is required to show popup\");\n }\n if (!options.position) {\n options.position = \"left\";\n }\n const target_element = options.target_element;\n this.parent.style.display = 'block';\n\n if (this.customHtml) {\n let html = this.customHtml(options.task);\n html += '<div class=\"pointer\"></div>';\n this.parent.innerHTML = html;\n this.pointer = this.parent.querySelector(\".pointer\");\n } else {\n // set data\n this.title.innerHTML = options.title;\n this.startDate.innerHTML = options.subtitle.startDate ?? '';\n this.startHour.innerHTML = options.subtitle.startHour ?? '';\n this.endDate.innerHTML = options.subtitle.endDate ?? '';\n this.endHour.innerHTML = options.subtitle.endHour ?? '';\n\n this.parent.style.width = this.parent.clientWidth + \"px\";\n }\n\n // set position\n let positionMeta;\n if (target_element instanceof HTMLElement) {\n positionMeta = target_element.getBoundingClientRect();\n } else if (target_element instanceof SVGElement) {\n positionMeta = options.target_element.getBBox();\n }\n\n if (options.position === 'middle') {\n this.parent.style.position = 'fixed';\n this.parent.style.top = options.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(180deg)\";\n this.pointer.style.top = \"-10px\";\n\n if ((options.x - 17) + this.parent.offsetWidth > window.innerWidth) {\n this.parent.style.left = (options.x - this.parent.offsetWidth + 17) + \"px\";\n this.pointer.style.right = \"16px\";\n this.pointer.style.left = \"auto\";\n\n } else {\n this.parent.style.left = (options.x - 17) + \"px\";\n this.pointer.style.left = \"16px\";\n this.pointer.style.right = \"auto\";\n }\n\n } else if (options.position === 'left') {\n this.parent.style.left = positionMeta.x + (positionMeta.width + 10) + \"px\";\n this.parent.style.top = positionMeta.y + \"px\";\n\n this.pointer.style.transform = \"rotateZ(90deg)\";\n this.pointer.style.left = \"-7px\";\n this.pointer.style.top = \"2px\";\n }\n\n // show\n this.parent.style.opacity = 1;\n }\n\n private make() {\n this.parent.innerHTML = `\n <div class=\"popup\">\n <div class=\"wrp-title\">\n <span class=\"title\"></span>\n </div>\n <div class=\"wrp-subtitle\">\n <span class=\"icon fas fa-calendar-alt\"></span>\n <div style=\"margin-right: 15px\">\n <p class=\"startDate\"></p>\n <p class=\"startHour\"></p>\n </div>\n <div>\n <p class=\"endDate\"></p>\n <p class=\"endHour\"></p>\n </div>\n </div>\n <div class=\"pointer\"></div>\n </div>\n `;\n\n this.hide();\n\n this.title = this.parent.querySelector(\".title\");\n this.startDate = this.parent.querySelector(\".startDate\");\n this.startHour = this.parent.querySelector(\".startHour\");\n this.endDate = this.parent.querySelector(\".endDate\");\n this.endHour = this.parent.querySelector(\".endHour\");\n\n this.pointer = this.parent.querySelector(\".pointer\");\n }\n\n private hide() {\n this.parent.style.opacity = 0;\n this.parent.style.display = 'none';\n this.parent.style.left = 0;\n }\n}\n","import { createSVG } from './utils/svg-utils';\nimport { Gantt } from \"./gantt\";\nimport { Bar } from \"./bar\";\n\nexport class Arrow {\n private _gantt: Gantt;\n private _fromTask: Bar;\n private _toTask: Bar;\n private _path: any;\n private _element: any;\n\n constructor(gantt: Gantt, fromTask: Bar, toTask: Bar) {\n this._gantt = gantt;\n this._fromTask = fromTask;\n this._toTask = toTask;\n\n this.calculatePath();\n this.draw();\n }\n\n public get fromTask(): Bar {\n return this._fromTask;\n }\n\n public get toTask(): Bar {\n return this._toTask;\n }\n\n public get element() {\n return this._element;\n }\n\n public update() {\n this.calculatePath();\n this._element.setAttribute(\"d\", this._path);\n }\n\n private calculatePath() {\n let startX = this.fromTask.element.getX() + this.fromTask.element.getWidth() / 2;\n\n const condition = () =>\n this.toTask.element.getX() < startX + this._gantt.options.padding &&\n startX > this.fromTask.element.getX() + this._gantt.options.padding;\n\n while (condition()) {\n startX -= 10;\n }\n\n const startY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.fromTask.task._index +\n this._gantt.options.padding;\n const endX = this.toTask.element.getX() - this._gantt.options.padding / 2;\n const endY = this._gantt.options.headerHeight +\n this._gantt.options.barHeight / 2 +\n (this._gantt.options.padding + this._gantt.options.barHeight) *\n this.toTask.task._index +\n this._gantt.options.padding;\n const fromIsBelowTo = this.fromTask.task._index > this.toTask.task._index;\n const curve = this._gantt.options.arrowCurve;\n const clockwise = fromIsBelowTo ? 1 : 0;\n const curveY = fromIsBelowTo ? -curve : curve;\n const offset = fromIsBelowTo\n ? endY + this._gantt.options.arrowCurve\n : endY - this._gantt.options.arrowCurve;\n\n this._path = `\n M ${startX} ${startY}\n V ${offset}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n\n if (this.toTask.element.getX() < this.fromTask.element.getX() + this._gantt.options.padding) {\n const down1 = this._gantt.options.padding / 2 - curve;\n const down2 = this.toTask.element.getY() + this.toTask.element.getHeight() / 2 - curveY;\n const left = this.toTask.element.getX() - this._gantt.options.padding;\n\n this._path = `\n M ${startX} ${startY}\n v ${down1}\n a ${curve} ${curve} 0 0 1 -${curve} ${curve}\n H ${left}\n a ${curve} ${curve} 0 0 ${clockwise} -${curve} ${curveY}\n V ${down2}\n a ${curve} ${curve} 0 0 ${clockwise} ${curve} ${curveY}\n L ${endX} ${endY}\n m -5 -5\n l 5 5\n l -5 5`;\n }\n }\n\n private draw() {\n this._element = createSVG(\"path\", {\n d: this._path,\n \"data-from\": this.fromTask.task.id,\n \"data-to\": this.toTask.task.id,\n });\n }\n}\n","import { Options } from \"../../models/options\";\nimport { ViewMode } from \"../../models/view-mode\";\n\nexport const defaultOptions: Options = {\n headerHeight: 94,\n columnWidth: 30,\n step: 24,\n barHeight: 20,\n barCornerRadius: 0,\n arrowCurve: 4,\n padding: 24,\n viewMode: ViewMode.Day,\n dateFormat: \"YYYY-MM-DD\",\n popupTrigger: \"click\",\n customPopupHtml: null,\n language: \"en\",\n allowMovement: true,\n hasPopup: true,\n showOnlyHours: false,\n showOnlyDays: false,\n};\n","import { DateUtils } from \"./utils/date-utils\";\nimport { $, createSVG } from \"./utils/svg-utils\";\nimport { Bar } from \"./bar\";\nimport { Popup } from \"./popup\";\nimport { Arrow } from \"./arrow\";\nimport { Options } from \"../../models/options\";\nimport { defaultOptions } from \"./gantt-options\";\nimport { ViewMode } from \"../../models/view-mode\";\nimport { Task, EnrichedTask } from \"../../models\";\n\nexport class Gantt {\n public options: Options;\n public tasks: EnrichedTask[];\n public dependency_map: any;\n\n private _minDate: Date;\n private _maxDate: Date;\n\n public dates: Date[];\n public layers: any;\n public bars: Bar[];\n public arrows: Arrow[];\n public bar_being_dragged: any;\n public $svg: any;\n public $container: HTMLDivElement;\n public popup_wrapper: HTMLDivElement;\n public popup: any;\n\n public get minDate(): Date {\n return this._minDate;\n }\n\n public get maxDate(): Date {\n return this._maxDate;\n }\n\n constructor(wrapper: any, tasks: Task[], options?: Options) {\n this.setup_options(options);\n this.setup_wrapper(wrapper);\n this.setup_tasks(tasks);\n // initialize with default view mode\n this.change_view_mode();\n this.bind_events();\n }\n\n private setup_wrapper(element: any) {\n let svg_element, wrapper_element;\n\n // CSS Selector is passed\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n // get the SVGElement\n if (element instanceof HTMLElement) {\n wrapper_element = element;\n svg_element = element.querySelector(\"svg\");\n } else if (element instanceof SVGElement) {\n svg_element = element;\n } else {\n throw new TypeError(\n \"Frappé Gantt only supports usage of a string CSS selector, HTML DOM element or SVG DOM element for the \\'element\\' parameter\"\n );\n }\n\n // svg element\n if (!svg_element) {\n // create it\n this.$svg = createSVG(\"svg\", {\n append_to: wrapper_element,\n class: \"gantt\",\n });\n } else {\n this.$svg = svg_element;\n this.$svg.classList.add(\"gantt\");\n }\n\n // wrapper element\n this.$container = document.createElement(\"div\");\n this.$container.classList.add(\"gantt-container\");\n if (this.options.containerWidth) {\n this.$container.style.width = this.options.containerWidth + 'px';\n }\n\n const parent_element = this.$svg.parentElement;\n parent_element.appendChild(this.$container);\n this.$container.appendChild(this.$svg);\n\n // popup wrapper\n this.popup_wrapper = document.createElement(\"div\");\n this.popup_wrapper.classList.add(\"popup-wrapper\");\n this.$container.appendChild(this.popup_wrapper);\n }\n\n private setup_options(options: any) {\n this.options = Object.assign({}, defaultOptions, options);\n }\n\n public setup_tasks(tasks: any) {\n // prepare tasks\n this.tasks = tasks.map((task: any, i: any) => {\n //standard colors if needed\n task.color = task.color || '#7892A1';\n\n // convert to Date objects\n task._start = DateUtils.parse(task.start);\n task._end = DateUtils.parse(task.end);\n\n // make task invalid if duration too large\n if (DateUtils.diff(task._end, task._start, \"year\") > 10) {\n task.end = null;\n }\n\n // cache index\n task._index = i;\n\n if (typeof task._row_id === \"number\") {\n task._index = task._row_id;\n }\n\n // invalid dates\n if (!task.start && !task.end) {\n const today = DateUtils.today();\n task._start = today;\n task._end = DateUtils.add(today, 2, \"day\");\n }\n\n if (!task.start && task.end) {\n task._start = DateUtils.add(task._end, -2, 'day');\n }\n\n if (task.start && !task.end) {\n task._end = DateUtils.add(task._start, 2, \"day\");\n }\n\n // if hours is not set, assume the last day is full day\n // e.g: 2018-09-09 becomes 2018-09-09 23:59:59\n const task_end_values = DateUtils.getDateValues(task._end);\n if (task_end_values.slice(3).every((d) => d === 0)) {\n task._end = DateUtils.add(task._end, 24, \"hour\");\n }\n\n // invalid flag\n if (!task.start || !task.end) {\n task.invalid = true;\n }\n\n // dependencies\n if (typeof task.dependencies === \"string\" || !task.dependencies) {\n let deps = [];\n if (task.dependencies) {\n deps = task.dependencies\n .split(',')\n .map((d: any) => d.trim())\n .filter((d: any) => d);\n }\n task.dependencies = deps;\n }\n\n // uids\n if (!task.id) {\n task.id = generate_id(task);\n }\n\n return task;\n });\n\n this.setup_dependencies();\n }\n\n private setup_dependencies() {\n this.dependency_map = {};\n for (let t of this.tasks) {\n for (let d of t.dependencies) {\n this.dependency_map[d] = this.dependency_map[d] || [];\n this.dependency_map[d].push(t.id);\n }\n }\n }\n\n public refresh(tasks: Task[]) {\n this.setup_tasks(tasks);\n this.change_view_mode();\n }\n\n public change_view_mode(mode = this.options.viewMode) {\n this.setup_gantt_dates();\n this.update_view_scale(mode);\n this.setup_dates();\n this.render();\n // fire viewmode_change event\n this.trigger_event(\"onViewChange\", [mode]);\n }\n\n private update_view_scale(view_mode: any) {\n this.options.viewMode = view_mode;\n // this.isHourView = false;\n if (view_mode === ViewMode.QuarterHour) {\n this.options.step = 24 / 24 / 4;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Hour) {\n this.options.step = 24 / 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Day) {\n this.options.step = 24;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.HalfDay) {\n this.options.step = 24 / 2;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.QuarterDay) {\n this.options.step = 24 / 4;\n this.options.columnWidth = 50;\n } else if (view_mode === ViewMode.Week) {\n this.options.step = 24 * 7;\n this.options.columnWidth = 140;\n } else if (view_mode === ViewMode.Month) {\n this.options.step = 24 * 30;\n this.options.columnWidth = 120;\n } else if (view_mode === ViewMode.Year) {\n this.options.step = 24 * 365;\n this.options.columnWidth = 120;\n }\n }\n\n private setup_dates() {\n this.setup_date_values();\n }\n\n private setup_gantt_dates() {\n this._minDate = null;\n this._maxDate = null;\n\n for (let task of this.tasks) {\n // set global start and end date\n if (!this.minDate || task.start < this.minDate) {\n this._minDate = DateUtils.startOf(task.start, 'day');\n }\n if (!this.maxDate || task.end > this.maxDate) {\n this._maxDate = task.end;\n }\n }\n\n switch (this.options.viewMode) {\n case ViewMode.QuarterHour:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 15), \"minutes\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 15, \"minutes\");\n case ViewMode.Hour:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"hour\");\n break;\n case ViewMode.QuarterDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 6), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 6, \"hour\");\n break;\n case ViewMode.HalfDay:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 12), \"hour\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 12, \"hour\");\n break;\n case ViewMode.Day:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"day\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"day\");\n break;\n case ViewMode.Week:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"week\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"week\");\n break;\n case ViewMode.Month:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"month\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"month\");\n break;\n case ViewMode.Year:\n this._minDate = DateUtils.add(this.minDate, -(this.options.marginBeforeStart ?? 1), \"year\");\n this._maxDate = DateUtils.add(this.maxDate, this.options.marginAfterEnd ?? 1, \"year\");\n break;\n }\n }\n\n private setup_date_values() {\n this.dates = [];\n let cur_date = null;\n\n while (cur_date === null || cur_date < this.maxDate) {\n if (!cur_date) {\n cur_date = DateUtils.clone(this.minDate);\n } else {\n if (this.view_is(ViewMode.Year)) {\n cur_date = DateUtils.add(cur_date, 1, \"year\");\n } else if (this.view_is(ViewMode.Month)) {\n cur_date = DateUtils.add(cur_date, 1, \"month\");\n } else {\n cur_date = DateUtils.add(\n cur_date,\n this.options.step,\n 'hour'\n );\n }\n }\n this.dates.push(cur_date);\n }\n\n if (this.options.containerWidth) {\n const columnWidth = (this.options.containerWidth - 1) / this.dates.length\n this.options.columnWidth = columnWidth < 45 ? 45 : columnWidth;\n }\n }\n\n private bind_events() {\n this.bind_grid_click();\n this.bind_bar_events();\n }\n\n private render() {\n this.clear();\n this.setup_layers();\n this.make_grid();\n this.make_dates();\n this.make_bars();\n this.make_arrows();\n this.map_arrows_on_bars();\n this.set_width();\n this.set_scroll_position();\n }\n\n private setup_layers() {\n this.layers = {};\n const layers = [\"grid\", \"date\", \"arrow\", \"progress\", \"bar\", \"details\"];\n // make group layers\n for (let layer of layers) {\n this.layers[layer] = createSVG('g', {\n class: layer,\n append_to: this.$svg,\n });\n }\n }\n\n private make_grid() {\n this.make_grid_background();\n this.make_grid_rows();\n this.make_grid_header();\n this.make_grid_highlights();\n this.make_grid_ticks();\n }\n\n private make_grid_background() {\n let grid_width = this.dates.length * this.options.columnWidth;\n\n if (this.options.containerWidth) {\n grid_width = this.options.containerWidth;\n }\n\n const distinct_rows = [...new Set(this.tasks.map((x: any) => x._row_id))];\n const grid_height = this.options.headerHeight +\n this.options.padding / 2 +\n (this.options.barHeight + this.options.padding) *\n distinct_rows.length;\n\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: grid_width,\n height: grid_height,\n class: \"grid-background\",\n append_to: this.layers.grid,\n });\n\n $.attr(this.$svg, {\n height: grid_height,\n width: \"100%\",\n }, null);\n }\n\n private make_grid_rows() {\n const rows_layer = createSVG(\"g\", { append_to: this.layers.grid });\n const lines_layer = createSVG(\"g\", { append_to: this.layers.grid });\n\n const row_width = this.dates.length * this.options.columnWidth;\n const row_height = this.options.barHeight + this.options.padding;\n //TODO: ajustar o posicionamento das linhas\n let row_y = this.options.headerHeight + this.options.padding / 2;\n\n this.tasks.forEach(_ => {\n createSVG(\"rect\", {\n x: 0,\n y: row_y,\n width: row_width,\n height: row_height,\n class: \"grid-row\",\n append_to: rows_layer,\n });\n\n createSVG(\"line\", {\n x1: 0,\n y1: row_y + row_height,\n x2: row_width,\n y2: row_y + row_height,\n class: \"row-line\",\n append_to: lines_layer,\n });\n\n row_y += this.options.barHeight + this.options.padding;\n });\n }\n\n private make_grid_header() {\n // const addIsHourView = this.isHourView ? 25 : 10\n const header_width = this.dates.length * this.options.columnWidth;\n const header_height = this.options.headerHeight + 10;\n createSVG(\"rect\", {\n x: 0,\n y: 0,\n width: header_width,\n height: header_height,\n class: \"grid-header\",\n append_to: this.layers.grid,\n });\n }\n\n private make_grid_ticks() {\n let tick_x = 0;\n let tick_y = this.options.headerHeight + this.options.padding / 2;\n let tick_height =\n (this.options.barHeight + this.options.padding) *\n this.tasks.length;\n\n for (let date of this.dates) {\n let tick_class = \"tick\";\n\n if (this.view_is(ViewMode.QuarterHour) && date.getHours() === 0 && date.getMinutes() === 0) {\n // thick tick for first hour of day.\n tick_class += \" thick\";\n } else if (this.view_is([ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay]) && date.getHours() === 0) {\n // thick tick for first hour of day.\n tick_class += \" thick\";\n } else if (this.view_is(ViewMode.Day) && date.getDate() === 1) {\n // thick tick for monday\n tick_class += \" thick\";\n } else if (this.view_is(ViewMode.Week) && date.getDate() >= 1 && date.getDate() < 8) {\n // thick tick for first week\n tick_class += \" thick\";\n } else if (this.view_is(ViewMode.Month) && date.getMonth() % 3 === 0) {\n // thick ticks for quarters\n tick_class += \" thick\";\n }\n\n createSVG(\"path\", {\n d: `M ${tick_x} ${tick_y} v ${tick_height}`,\n class: tick_class,\n append_to: this.layers.grid,\n });\n\n if (this.view_is(ViewMode.Month)) {\n tick_x +=\n (DateUtils.getDaysInMonth(date) *\n this.options.columnWidth) /\n 30;\n } else {\n tick_x += this.options.columnWidth;\n }\n }\n }\n\n make_grid_highlights() {\n if (this.view_is(ViewMode.Day)) {\n const width = this.options.columnWidth;\n const height = (this.options.barHeight + this.options.padding) *\n this.tasks.length +\n this.options.headerHeight +\n this.options.padding / 2;\n\n let x = 0;\n\n for (let date of this.dates) {\n\n let y = (this.options.headerHeight + this.options.padding) / 2;\n\n let isToday = date == DateUtils.today();\n let isWeekend = (date.getDay() == 0 || date.getDay() == 6);\n let className;\n\n if (isToday) {\n className = \"today-highlight\";\n y = (this.options.headerHeight + this.options.padding) / 2;\n } else if (isWeekend) {\n className = \"weekend-highlight\";\n }\n\n const rx = 3;\n const ry = 3;\n\n if (isToday || isWeekend) {\n createSVG(\"rect\", {\n x,\n y,\n rx,\n ry,\n width,\n height,\n class: className,\n append_to: this.layers.grid\n });\n }\n\n x += this.options.columnWidth;\n }\n }\n }\n\n private make_dates() {\n const dates = this.get_dates_to_draw();\n\n for (let i = 0; i < dates.length; i++) {\n const date = dates[i];\n\n createSVG(\"text\", {\n x: date.lower_x,\n y: date.lower_y + 20,\n innerHTML: date.lower_text,\n class: \"title-2\",\n append_to: this.layers.date,\n });\n\n if (date.middle_text) {\n createSVG(\"text\", {\n x: date.middle_x,\n y: date.middle_y,\n innerHTML: date.middle_text,\n class: \"middle-text\",\n append_to: this.layers.date,\n });\n }\n\n if (date.upper_text) {\n const $upper_text = createSVG(\"text\", {\n x: date.upper_x,\n y: date.upper_y,\n innerHTML: date.upper_text,\n class: \"upper-text\",\n append_to: this.layers.date,\n });\n\n // remove out-of-bound dates\n if (\n $upper_text.getBBox().x2 > this.layers.grid.getBBox().width\n ) {\n $upper_text.remove();\n }\n }\n }\n }\n\n private get_dates_to_draw() {\n let last_date: any = null;\n const dates = this.dates.map((date: any, i: any) => {\n const d = this.get_date_info(date, last_date, i);\n last_date = date;\n return d;\n });\n return dates;\n }\n\n private get_date_info(date: Date, last_date: Date, i: any) {\n if (!last_date) {\n last_date = DateUtils.add(date, 1, \"year\");\n }\n\n const date_text = {\n // quarter hour\n quarterHourUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n quarterHourLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // hour\n hourUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n hourLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // quarter day\n quarterDayUpper: date.getDate() !== last_date.getDate()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : \"\",\n\n quarterDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // half day\n halfDayUpper: (date.getDate() !== last_date.getDate())\n ? (((date.getMonth() !== last_date.getMonth()) || i < 2)\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language))\n : \"\",\n\n halfDayLower: DateUtils.format(date, \"HH:mm\", this.options.language),\n\n // day\n dayUpper: ((date.getMonth() !== last_date.getMonth()) || i === 0)\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n dayMiddle: DateUtils.format(date, \"ddd\", this.options.language),\n\n dayLower: DateUtils.format(date, \"D\", this.options.language),\n\n // week\n weekUpper: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"MMMM\", this.options.language)\n : \"\",\n\n weekLower: date.getMonth() !== last_date.getMonth()\n ? DateUtils.format(date, \"D MMM\", this.options.language)\n : DateUtils.format(date, \"D\", this.options.language),\n\n // month\n monthUpper: date.getFullYear() !== last_date.getFullYear()\n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n monthLower: DateUtils.format(date, \"MMMM\", this.options.language),\n\n // year\n yearUpper: date.getFullYear() !== last_date.getFullYear() \n ? DateUtils.format(date, \"YYYY\", this.options.language)\n : \"\",\n\n yearLower: DateUtils.format(date, \"YYYY\", this.options.language),\n };\n\n // Descontando 20 para adcionar uma segunda linha de informação no cabeçalho\n const base_pos = {\n x: i * this.options.columnWidth,\n upper_y: this.options.headerHeight - 20 - 25,\n middle_y: this.options.headerHeight - 20,\n lower_y: this.options.headerHeight - 20,\n };\n const x_pos = {\n quarterHourUpper: (this.dates.length < 14) ? (this.options.columnWidth) : (this.options.columnWidth * 24 / 2),\n quarterHourMiddle: this.options.columnWidth / 2,\n quarterHourLower: this.options.columnWidth / 2,\n\n hourUpper: (this.dates.length < 14) ? (this.options.columnWidth) : (this.options.columnWidth * 24 / 2),\n hourMiddle: this.options.columnWidth / 2,\n hourLower: this.options.columnWidth / 2,\n\n quarterDayUpper: this.options.columnWidth * 4 / 2,\n quarterDayMiddle: this.options.columnWidth / 2,\n quarterDayLower: this.options.columnWidth / 2,\n \n halfDayUpper: this.options.columnWidth * 2 / 2,\n halfDayMiddle: this.options.columnWidth / 2,\n halfDayLower: this.options.columnWidth / 2,\n \n dayUpper: (this.dates.length < 15) ? (this.options.columnWidth) : ((this.options.columnWidth * 30) / 2),\n dayMiddle: this.options.columnWidth / 2 - 12,\n dayLower: this.options.columnWidth / 2,\n \n weekUpper: (this.options.columnWidth * 4) / 2,\n weekMiddle: 0,\n weekLower: 0,\n \n monthUpper: (this.dates.length < 15) ? (this.options.columnWidth) : ((this.options.columnWidth * 12) / 2),\n monthMiddle: 0,\n monthLower: this.options.columnWidth / 2,\n \n yearUpper: (this.options.columnWidth * 30) / 2,\n yearMiddle: this.options.columnWidth / 2,\n yearLower: this.options.columnWidth / 2,\n };\n\n return {\n upper_text: date_text[`${this.options.viewMode}Upper`],\n middle_text: date_text[`${this.options.viewMode}Middle`],\n lower_text: date_text[`${this.options.viewMode}Lower`],\n upper_x: base_pos.x + x_pos[`${this.options.viewMode}Upper`],\n upper_y: base_pos.upper_y,\n middle_x: base_pos.x + x_pos[`${this.options.viewMode}Middle`],\n middle_y: base_pos.middle_y,\n lower_x: base_pos.x + x_pos[`${this.options.viewMode}Lower`],\n lower_y: base_pos.lower_y,\n date,\n };\n }\n\n private make_bars() {\n this.bars = this.tasks.map((task: any) => {\n const bar = new Bar(this, task);\n this.layers.bar.appendChild(bar.group);\n return bar;\n });\n }\n\n private make_arrows() {\n this.arrows = [];\n for (let task of this.tasks) {\n let arrows = [];\n arrows = task.dependencies\n .map((task_id: any) => {\n const dependency = this.get_task(task_id);\n if (!dependency) return;\n const arrow = new Arrow(\n this,\n this.bars[dependency._index], // from_task\n this.bars[task._index] // to_task\n );\n this.layers.arrow.appendChild(arrow.element);\n return arrow;\n })\n .filter(Boolean); // filter falsy values\n this.arrows = this.arrows.concat(arrows);\n }\n }\n\n private map_arrows_on_bars() {\n for (let bar of this.bars) {\n bar.arrows = this.arrows.filter((arrow: Arrow) => {\n return (\n arrow.fromTask.task.id === bar.task.id ||\n arrow.toTask.task.id === bar.task.id\n );\n });\n }\n }\n\n private set_width() {\n const cur_width = this.$svg.getBoundingClientRect().width;\n const actual_width = this.$svg\n .querySelector(\".grid .grid-row\")\n .getAttribute(\"width\");\n if (cur_width < actual_width) {\n this.$svg.setAttribute(\"width\", actual_width);\n }\n }\n\n private set_scroll_position() {\n const parent_element = this.$svg.parentElement;\n if (!parent_element) return;\n\n const hours_before_first_task = DateUtils.diff(\n this.get_oldest_starting_date(),\n this.minDate,\n \"hour\"\n );\n\n const scroll_pos =\n (hours_before_first_task / this.options.step) *\n this.options.columnWidth -\n this.options.columnWidth;\n\n parent_element.scrollLeft = scroll_pos;\n }\n\n private bind_grid_click() {\n $.on(\n this.$svg,\n this.options.popupTrigger,\n \".grid-row, .grid-header\",\n () => {\n this.unselect_all();\n this.hide_popup();\n }\n );\n }\n\n private bind_bar_events() {\n let is_dragging = false;\n let x_on_start = 0;\n let is_resizing_left = false;\n let is_resizing_right = false;\n let parent_bar_id: any = null;\n let bars: Bar[] = [];\n this.bar_being_dragged = null;\n\n function action_in_progress() {\n return is_dragging || is_resizing_left || is_resizing_right;\n }\n\n $.on(this.$svg, \"mousedown\", \".bar-wrapper, .handle\", (e: any, element: any) => {\n const bar_wrapper = $.closest(\".bar-wrapper\", element);\n\n if (element.classList.contains(\"left\")) {\n is_resizing_left = true;\n } else if (element.classList.contains(\"right\")) {\n is_resizing_right = true;\n } else if (element.classList.contains(\"bar-wrapper\") && this.options.allowMovement) {\n is_dragging = true;\n }\n\n bar_wrapper.classList.add(\"active\");\n\n x_on_start = e.offsetX;\n\n parent_bar_id = bar_wrapper.getAttribute(\"data-id\");\n const ids = [\n parent_bar_id,\n ...this.get_all_dependent_tasks(parent_bar_id),\n ];\n bars = ids.map((id) => this.get_bar(id));\n\n this.bar_being_dragged = parent_bar_id;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.ox = $bar.getX();\n $bar.oy = $bar.getY();\n $bar.owidth = $bar.getWidth();\n $bar.finaldx = 0;\n });\n });\n\n\n $.on(this.$svg, \"mousemove\", (e: any) => {\n if (!action_in_progress()) {\n return;\n }\n\n const dx = e.offsetX - x_on_start;\n\n bars.forEach((bar) => {\n const $bar = bar.element;\n $bar.finaldx = this.get_snap_position(dx);\n this.hide_popup();\n if (is_resizing_left) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n width: $bar.owidth - $bar.finaldx,\n });\n } else {\n bar.updateBarPosition({\n x: $bar.ox + $bar.finaldx,\n });\n }\n } else if (is_resizing_right) {\n if (parent_bar_id === bar.task.id) {\n bar.updateBarPosition({\n width: $bar.owidth + $bar.finaldx,\n });\n }\n } else if (is_dragging) {\n bar.updateBarPosition({ x: $bar.ox + $bar.finaldx });\n }\n });\n }, null);\n\n\n document.addEventListener(\"mouseup\", (e: any) => {\n if (is_dragging || is_resizing_left || is_resizing_right || !this.options.allowMovement) {\n bars.forEach((bar) => bar.group.classList.remove(\"active\"));\n }\n\n is_dragging = false;\n is_resizing_left = false;\n is_resizing_right = false;\n });\n\n $.on(this.$svg, \"mouseup\", (e: any) => {\n this.bar_being_dragged = null;\n bars.forEach((bar) => {\n const $bar = bar.element;\n if (!$bar.finaldx) return;\n bar.dateChanged();\n bar.setActionCompleted();\n });\n }, null);\n }\n\n private get_all_dependent_tasks(task_id: any) {\n let out: any[] = [];\n let to_process = [task_id];\n while (to_process.length) {\n const deps = to_process.reduce((acc, curr) => {\n acc = acc.concat(this.dependency_map[curr]);\n return acc;\n }, []);\n\n out = out.concat(deps);\n to_process = deps.filter((d: any) => !to_process.includes(d));\n }\n\n return out.filter(Boolean);\n }\n\n private get_snap_position(dx: any) {\n let odx = dx,\n rem,\n position;\n\n if (this.view_is(ViewMode.Hour)) {\n rem = dx % (this.options.columnWidth / 6);\n position = odx - rem + (rem < this.options.columnWidth / 12 ? 0 : this.options.columnWidth / 6);\n } else if (this.view_is(ViewMode.Week)) {\n rem = dx % (this.options.columnWidth / 7);\n position = odx - rem + (rem < this.options.columnWidth / 14 ? 0 : this.options.columnWidth / 7);\n } else if (this.view_is(ViewMode.Month)) {\n rem = dx % (this.options.columnWidth / 30);\n position = odx - rem + (rem < this.options.columnWidth / 60 ? 0 : this.options.columnWidth / 30);\n } else {\n rem = dx % this.options.columnWidth;\n position = odx - rem + (rem < this.options.columnWidth / 2 ? 0 : this.options.columnWidth);\n }\n return position;\n }\n\n public unselect_all() {\n [...this.$svg.querySelectorAll(\".bar-wrapper\")].forEach((el) => {\n el.classList.remove(\"active\");\n });\n }\n\n public view_is(modes: ViewMode | ViewMode[]) {\n if (Array.isArray(modes)) {\n return modes.some((mode) => this.options.viewMode === mode);\n }\n\n return this.options.viewMode === modes;\n }\n\n private get_task(id: any) {\n return this.tasks.find((task: any) => {\n return task.id === id;\n });\n }\n\n public get_bar(id: any): Bar {\n return this.bars.find((bar: any) => {\n return bar.task.id === id;\n });\n }\n\n public show_popup(options: any) {\n if (!this.popup) {\n this.popup = new Popup(\n this.popup_wrapper,\n this.options.customPopupHtml\n );\n }\n this.popup.show(options);\n }\n\n public hide_popup() {\n this.popup && this.popup.hide();\n }\n\n public trigger_event(event: string, args: any) {\n if (this.options[event]) {\n this.options[event].apply(null, args);\n }\n }\n\n private get_oldest_starting_date() {\n return this.tasks\n .map((task: any) => task._start)\n .reduce((prev_date: any, cur_date: any) =>\n cur_date <= prev_date ? cur_date : prev_date\n );\n }\n\n private clear() {\n this.$svg.innerHTML = '';\n }\n}\n\nfunction generate_id(task: any) {\n return task.name + \"_\" + Math.random().toString(36).slice(2, 12);\n}\n","export enum GlobalSearchSizeEnum {\n STANDARD = \"STANDARD\",\n MEDIUM = \"MEDIUM\",\n SMALL = \"SMALL\"\n}\n","import { AfterViewInit, Component, Input, OnChanges, OnInit, Output, ViewEncapsulation, EventEmitter, SimpleChanges, ElementRef, ViewChild } from \"@angular/core\";\n\nimport { Gantt } from \"./components/gantt/gantt\";\nimport { TaskGroup, Task, EnrichedTask } from \"./models/task\"\nimport { ViewMode } from \"./models/view-mode\";\n\n@Component({\n selector: \"s-gantt\",\n templateUrl: \"./gantt.component.html\",\n styleUrls: [\n \"./gantt.component.scss\",\n \"./components/gantt/gantt.scss\",\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class GanttComponent implements AfterViewInit, OnChanges, OnInit {\n @Input()\n public columnTitle: string;\n\n @Input()\n public multipleTaskPerLine = false;\n\n @Input()\n public showSideTable = true;\n\n @Input()\n public viewMode = ViewMode.Day;\n\n @Input()\n public tasks: TaskGroup[];\n\n @Input()\n public marginBeforeStart?: number;\n\n @Input()\n public marginAfterEnd?: number;\n\n @Input()\n public allowMovement = true;\n\n @Input()\n public hasPopup = true;\n\n @Input()\n public containerWidth: number;\n\n @Input()\n public fullWidth = false;\n\n @Input()\n public showOnlyHours = false;\n\n @Input()\n public showOnlyDays = false;\n\n @Output()\n public taskClicked: EventEmitter<Task> = new EventEmitter();\n\n @Output()\n public taskDateChanged: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public viewChanged: EventEmitter<ViewMode> = new EventEmitter();\n\n private _gantt: Gantt;\n\n public ngOnInit(): void {\n this._validateViewMode();\n this._validateTasks();\n }\n\n @ViewChild('outer')\n outer: ElementRef;\n\n @ViewChild('side')\n side: ElementRef;\n\n public ngAfterViewInit(): void {\n if (this.fullWidth) {\n this.containerWidth = this.outer.nativeElement.offsetWidth - this.side.nativeElement.offsetWidth;\n }\n\n this._gantt = new Gantt(\"#gantt\", this._filterTask(this.tasks), {\n viewMode: this.viewMode,\n marginBeforeStart: this.marginBeforeStart,\n marginAfterEnd: this.marginAfterEnd,\n language: \"pt-br\",\n allowMovement: this.allowMovement,\n hasPopup: this.hasPopup,\n containerWidth: this.containerWidth,\n showOnlyHours: this.showOnlyHours,\n showOnlyDays: this.showOnlyDays,\n onClick: (task: Task) => this.taskClicked.emit(task),\n onDateChange: (task: Task, start: any, end: any) => this.taskDateChanged.emit({ task, start, end }),\n onViewChange: (viewMode: ViewMode) => this.viewChanged.emit(viewMode),\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (!this._gantt) {\n return;\n }\n\n if (changes.viewMode) {\n this._gantt.options.viewMode = changes.viewMode.currentValue;\n this._gantt.change_view_mode();\n }\n\n if (changes.tasks) {\n this._gantt.refresh(this._filterTask(changes.tasks.currentValue));\n }\n }\n\n private _filterTask(tasksGroups: TaskGroup[]): Task[] {\n const tasks: Task[] = [];\n\n if (this.multipleTaskPerLine) {\n tasksGroups.forEach((group: any, index: number) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: index };\n }));\n }, []);\n } else {\n let i = 0;\n tasksGroups.forEach((group: any) => {\n tasks.push(...group.tasks.map((task: EnrichedTask) => {\n return { ...task, _row_id: i++ };\n }));\n }, []);\n }\n\n return tasks;\n }\n\n private _validateViewMode(): void {\n if (![\n ViewMode.QuarterHour,\n ViewMode.Hour,\n ViewMode.QuarterDay,\n ViewMode.HalfDay,\n ViewMode.Day,\n ViewMode.Week,\n ViewMode.Month,\n ViewMode.Year,\n ].includes(this.viewMode)) {\n throw new Error(\"Invalid gantt view mode\");\n }\n }\n\n private _validateTasks(): void {\n this.tasks.forEach(group => {\n group.tasks.forEach(task => {\n if (task.start > task.end) {\n throw new Error(\"invalid task. The start date must be less than the end date.\");\n }\n });\n });\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { TaskGroup } from '../../models/task';\n\n@Component({\n selector: 'gantt-side-table',\n templateUrl: './side-table.component.html',\n styleUrls: ['./side-table.component.scss']\n})\nexport class SideTableComponent implements OnInit {\n public ROW_HEIGHT = 44;\n\n @Input()\n public columnTitle: string;\n\n @Input()\n public tasks: TaskGroup[];\n\n @Input()\n public multipleTaskPerLine = false;\n\n public ngOnInit(): void {\n this._removeEmptyTasks();\n }\n\n private _removeEmptyTasks(): void {\n this.tasks = this.tasks.filter(task => task.tasks.length);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { GanttComponent } from \"./gantt.component\";\nimport { SideTableComponent } from \"./components/side-table/side-table.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [\n GanttComponent,\n SideTableComponent,\n ],\n exports: [GanttComponent],\n})\nexport class GanttModule { }\n","export enum IAInsightTemplateTypes {\n Empty = \"empty\",\n Intro = \"intro\",\n NoPermission = \"noPermission\",\n}\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ElementRef\n} from \"@angular/core\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { GlobalSearchSizeEnum } from \"../../global-search-size.enum\";\n\n@Component({\n selector: \"s-global-search-dropdown-item\",\n templateUrl: \"./global-search-dropdown-item.component.html\",\n styleUrls: [\"./global-search-dropdown-item.component.scss\"]\n})\nexport class GlobalSearchDropdownItemComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-global-search-dropdown-item-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public primaryLabel: string;\n\n @Input()\n public secondaryEmptyLabel: string;\n\n @Input()\n public tertiaryEmptyLabel: string;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public secondaryLabel?: string;\n\n @Input()\n public tertiaryLabel?: string;\n\n @Input()\n public size = GlobalSearchSizeEnum.STANDARD;\n\n @Input()\n public template: ElementRef;\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n\n private isStandardSize() {\n return this.size === GlobalSearchSizeEnum.STANDARD;\n }\n\n public isMediumSize() {\n return this.size === GlobalSearchSizeEnum.MEDIUM;\n }\n\n public isSmallSize() {\n return this.size === GlobalSearchSizeEnum.SMALL;\n }\n\n public getImageSize() {\n return this.isStandardSize() ? \"medium\" : \"small\";\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n ChangeDetectorRef\n} from \"@angular/core\";\nimport { trigger, state, style, transition, animate } from \"@angular/animations\";\n\nimport { ExportUtils } from \"../utils\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\n\n@Component({\n selector: \"s-global-search\",\n templateUrl: \"./global-search.component.html\",\n styleUrls: [\"./global-search.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n ]\n})\nexport class GlobalSearchComponent {\n\n public static nextId = 0;\n\n @ViewChild(\"globalSearch\", { static: false }) globalSearch: ElementRef;\n\n @Input()\n public id = `s-global-search-${GlobalSearchDropdownItemComponent.nextId++}`;\n\n @Input()\n public delay = 500;\n\n @Input()\n public totalItensLabel: string;\n\n @Input()\n public showMoreLabel: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public isLoading = false;\n\n @Input()\n public totalElements: number;\n\n @Input()\n public emptyTitle: string;\n\n @Input()\n public emptyDescription: string;\n\n @Input()\n public emptyIcon: string;\n\n @Input() showFooter = true;\n\n @ContentChildren(GlobalSearchDropdownItemComponent)\n public dropdownItens: QueryList<GlobalSearchDropdownItemComponent>;\n\n @Output() onSearch = new EventEmitter<string>();\n @Output() onFocus = new EventEmitter<boolean>();\n @Output() onShowMore = new EventEmitter();\n\n public search: string;\n public wasSearched = false;\n public isModalLoading = false;\n public expanded = true;\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n public onChange() {\n const search = this.search;\n setTimeout(() => {\n if (this.search === search) {\n this.canShowGlobalSearchActive();\n this.onSearch.emit(this.search);\n }\n }, this.delay);\n }\n\n public focusIn() {\n this.onFocus.emit(true);\n }\n\n public focusOut() {\n this.onFocus.emit(false);\n }\n\n public showMore() {\n this.onShowMore.emit();\n }\n\n private removeActiveClassByGlobalSearch() {\n ExportUtils.removeClass(this.globalSearch, \"global-search__input-active\");\n }\n\n public close() {\n this.search = null;\n this.wasSearched = false;\n this.dropdownItens = null;\n this.isModalLoading = false;\n this.removeActiveClassByGlobalSearch();\n }\n\n private canShowGlobalSearchActive() {\n this.wasSearched = !!this.search;\n if (this.search) {\n ExportUtils.addClass(this.globalSearch, \"global-search__input-active\");\n } else {\n this.removeActiveClassByGlobalSearch();\n this.close();\n }\n this.cdr.detectChanges();\n }\n\n}\n","import {\n ElementRef,\n EventEmitter,\n Directive,\n HostListener\n} from \"@angular/core\";\nimport { Output } from \"@angular/core\";\n\n@Directive({\n selector: \"[sInfiniteScroll]\"\n})\nexport class InfiniteScrollDirective {\n\n @Output() onScroll = new EventEmitter<number>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener(\"scroll\")\n scroll() {\n if (this.el.nativeElement.scrollTop > (this.el.nativeElement.scrollHeight - this.el.nativeElement.offsetHeight - 2)) {\n this.onScroll.emit();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { InfiniteScrollDirective } from \"./infinite-scroll.directive\";\n\n@NgModule({\n declarations: [\n InfiniteScrollDirective\n ],\n imports: [\n CommonModule\n ],\n exports: [\n InfiniteScrollDirective\n ]\n})\nexport class InfiniteScrollModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { TooltipModule } from \"primeng/tooltip\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { GlobalSearchComponent } from \"./global-search.component\";\nimport { GlobalSearchDropdownItemComponent } from \"./elements/dropdown/global-search-dropdown-item.component\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { InfiniteScrollModule } from \"../infinite-scroll/infinite-scroll.module\";\nimport { EmptyStateModule } from \"../empty-state/empty-state.module\";\n\n@NgModule({\n declarations: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ],\n imports: [\n CommonModule,\n InputTextModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n InfiniteScrollModule,\n EmptyStateModule\n ],\n exports: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent,\n TooltipModule,\n ThumbnailModule,\n ButtonModule,\n LoadingStateModule,\n EmptyStateModule\n ],\n entryComponents: [\n GlobalSearchComponent,\n GlobalSearchDropdownItemComponent\n ]\n})\nexport class GlobalSearchModule { }\n","import { Clipboard } from \"@angular/cdk/clipboard\";\nimport { Component, Input } from \"@angular/core\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { finalize, first } from \"rxjs/operators\";\n\nimport { ToastService } from \"../../../toast/toast.service\";\nimport { IAInsightItem } from \"../../models/ia-insight-item\";\n\nconst marked = require(\"marked\");\n\n@Component({\n selector: \"s-ia-insight-card\",\n templateUrl: \"./ia-insight-card.component.html\",\n styleUrls: [\"./ia-insight-card.component.scss\"],\n})\nexport class IAInsightCardComponent {\n @Input()\n public insight: IAInsightItem;\n\n public open = false;\n public isLoading = false;\n public content: string;\n\n public likeSelected = false;\n public dislikeSelected = false;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly toastService: ToastService,\n private readonly translateService: TranslateService,\n ) {}\n\n public toggle(): void {\n this.open = !this.open;\n\n this._requestInsight();\n }\n\n public onLikeSelected(): void {\n if (this.likeSelected) {\n this.likeSelected = false;\n } else {\n this.likeSelected = true;\n this.dislikeSelected = false;\n this.insight.onLikeSelected?.();\n }\n }\n\n public onDislikeSelected(): void {\n if (this.dislikeSelected) {\n this.dislikeSelected = false;\n } else {\n this.dislikeSelected = true;\n this.likeSelected = false;\n this.insight.onDislikeSelected?.();\n }\n }\n\n public copyContent(): void {\n this.insight.onCopy?.(this.content);\n\n if (this.clipboard.copy(this.content)) {\n this.toastService.show({\n severity: \"info\",\n title: this.translateService.instant(\"platform.angular_components.copied_to_clipboard\"),\n });\n }\n }\n\n public reloadContent(): void {\n this._requestInsight();\n }\n\n private _requestInsight(): void {\n this.isLoading = true;\n\n this.insight.request$\n .pipe(\n first(),\n finalize(() => (this.isLoading = false))\n )\n .subscribe((content: string) => {\n this.content = marked.marked(content);\n });\n }\n}\n","import { Component, Input, TemplateRef } from \"@angular/core\";\n\nimport { IAInsightItem } from \"../../models/index\";\n\n@Component({\n selector: \"s-ia-insight-sidebar\",\n templateUrl: \"./ia-insight-sidebar.component.html\",\n styleUrls: [\"./ia-insight-sidebar.component.scss\"],\n})\nexport class IAInsightSidebarComponent {\n @Input()\n public insights: IAInsightItem[] = [];\n\n @Input()\n public hasPermission: boolean;\n \n @Input()\n public introText: string;\n\n @Input()\n public introTemplate: TemplateRef<any>;\n\n @Input()\n public emptyText: string;\n\n @Input()\n public emptyTemplate: TemplateRef<any>;\n\n @Input()\n public noPermissionText: string;\n\n @Input()\n public noPermissionTemplate: TemplateRef<any>;\n\n public opened = false;\n\n public toggle(): void {\n this.opened = !this.opened;\n }\n\n public open(): void {\n this.opened = true;\n }\n\n public close(): void {\n this.opened = false;\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-ia-insight-card-loader\",\n templateUrl: \"./ia-insight-card-loader.component.html\",\n styleUrls: [\"./ia-insight-card-loader.component.scss\"],\n})\nexport class IAInsightCardLoaderComponent {}\n","export enum KanbanTemplateTypes {\n ColumnHeader = \"column-header\",\n ColumnEmptyMessage = \"column-empty-message\",\n ItemHeader = \"item-header\",\n ItemBody = \"item-body\",\n ItemFooter = \"item-footer\",\n}\n","import { AfterContentInit, Component, ContentChildren, Input, QueryList, TemplateRef, ViewChild } from \"@angular/core\";\n\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { IAInsightSidebarComponent } from \"./components/ia-insight-sidebar/ia-insight-sidebar.component\";\nimport { IAInsightItem } from \"./models/ia-insight-item\";\nimport { IAInsightTemplateTypes } from \"./models/ia-insight-template-types\";\n\n@Component({\n selector: \"s-ia-insight\",\n templateUrl: \"./ia-insight.component.html\",\n styleUrls: [\"./ia-insight.component.scss\"],\n})\nexport class IAInsightComponent implements AfterContentInit {\n @Input()\n public insights: IAInsightItem[] = [];\n\n @Input()\n public hasPermission = true;\n\n @Input()\n public introText: string;\n\n @Input()\n public emptyText: string;\n\n @Input()\n public noPermissionText: string;\n\n @ViewChild(IAInsightSidebarComponent)\n public sidebar: IAInsightSidebarComponent;\n\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective>;\n\n public introTemplate: TemplateRef<any>;\n public emptyTemplate: TemplateRef<any>;\n public noPermissionTemplate: TemplateRef<any>;\n\n public ngAfterContentInit(): void {\n this._getTemplates();\n }\n\n public open(): void {\n this.sidebar.open();\n }\n\n public close(): void {\n this.sidebar.close();\n }\n\n public getIntroTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(IAInsightTemplateTypes.Intro);\n }\n\n public getNoPermissionTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(IAInsightTemplateTypes.NoPermission);\n }\n\n public getEmptyTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(IAInsightTemplateTypes.Empty);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private _getTemplates(): void {\n this.introTemplate = this.getIntroTemplate();\n this.emptyTemplate = this.getEmptyTemplate();\n this.noPermissionTemplate = this.getNoPermissionTemplate();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { SVGFactoryModule } from \"../../utils/svg-factory/svg-factory.module\";\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TemplateModule } from \"../template/template.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { IAInsightCardComponent } from \"./components/ia-insight-card/ia-insight-card.component\";\nimport { IAInsightSidebarComponent } from \"./components/ia-insight-sidebar/ia-insight-sidebar.component\";\nimport { IAInsightCardLoaderComponent } from \"./components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component\";\nimport { IAInsightComponent } from \"./ia-insight.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n BadgeModule,\n ButtonModule,\n TooltipModule,\n TemplateModule,\n SVGFactoryModule,\n ],\n declarations: [\n IAInsightComponent,\n IAInsightCardComponent,\n IAInsightSidebarComponent,\n IAInsightCardLoaderComponent,\n ],\n exports: [\n IAInsightComponent,\n TemplateModule,\n ],\n})\nexport class IAInsightModule {}\n","import { Component, Input } from \"@angular/core\";\n\nimport { GridMenuItem } from \"./types/grid-menu-item\";\n\n@Component({\n selector: \"s-grid-menu\",\n templateUrl: \"./grid-menu.component.html\",\n styleUrls: [\"./grid-menu.component.scss\"],\n})\nexport class GridMenuComponent {\n @Input()\n public set items(items: GridMenuItem[] | GridMenuItem) {\n this.itemsArray = Array.isArray(items) ? items as GridMenuItem[] : [items];\n }\n\n public itemsArray: GridMenuItem[] = [];\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { GridMenuItem } from \"../../types/grid-menu-item\";\n\n@Component({\n selector: \"s-grid-menu-item\",\n templateUrl: \"./grid-menu-item.component.html\",\n styleUrls: [\"./grid-menu-item.component.scss\"],\n})\nexport class GridMenuItemComponent {\n @Input()\n public item: GridMenuItem;\n\n public onClick(): void {\n if (this.disabled) return;\n this.item.action?.();\n }\n\n public get initialLetter(): string {\n let initialLetter = \"\";\n if (this.item.label) {\n const words = this.item.label.split(\" \", 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n public get disabled(): boolean {\n return typeof this.item.disabled === \"function\" ? !!this.item.disabled() : !!this.item.disabled;\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { GridMenuItemComponent } from \"./components/grid-menu-item/grid-menu-item.component\";\nimport { GridMenuComponent } from \"./grid-menu.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GridMenuItemComponent, GridMenuComponent],\n exports: [GridMenuItemComponent, GridMenuComponent],\n})\nexport class GridMenuModule {}\n","export interface InlineEditFieldOptions {\n label: string;\n name: string;\n tooltip?: string;\n errorMessages?: () => ({}) | {};\n}\n\nexport abstract class InlineEditField {\n public label: string;\n public name: string;\n public tooltip?: string;\n public errorMessages: () => ({}) | {};\n\n constructor(options: InlineEditFieldOptions) {\n this.label = options.label;\n this.name = options.name;\n this.tooltip = options.tooltip;\n this.errorMessages = options.errorMessages;\n }\n}","import { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditCalendarFieldOptions extends InlineEditFieldOptions {\n view?: string;\n minDate?: Date;\n maxDate?: Date;\n defaultDate?: Date;\n appendTo?: string;\n showOnFocus?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onSelect?: (event: any) => void;\n onInput?: (event: any) => void;\n onClose?: (event: any) => void;\n onTodayClick?: (event: any) => void;\n onClearClick?: (event: any) => void;\n onMonthChange?: (event: any) => void;\n onYearChange?: (event: any) => void;\n selectionMode?: string;\n rangeSeparator?: string;\n showSeconds?: boolean;\n placeholder?: string;\n}\n\nexport class InlineEditCalendarField extends InlineEditField {\n public view?: string;\n public appendTo: string;\n public minDate?: Date;\n public maxDate?: Date;\n public defaultDate?: Date;\n public showOnFocus?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onSelect?: (event: any) => void;\n public onInput?: (event: any) => void;\n public onClose?: (event: any) => void;\n public onTodayClick?: (event: any) => void;\n public onClearClick?: (event: any) => void;\n public onMonthChange?: (event: any) => void;\n public onYearChange?: (event: any) => void;\n public selectionMode?: string;\n public rangeSeparator?: string;\n public showSeconds: boolean;\n public placeholder?: string;\n\n constructor(options: InlineEditCalendarFieldOptions) {\n super(options);\n\n this.view = options.view || \"date\";\n this.minDate = options.minDate;\n this.maxDate = options.maxDate;\n this.defaultDate = options.defaultDate;\n this.appendTo = options.appendTo;\n this.showOnFocus = typeof options.showOnFocus === \"boolean\" ? options.showOnFocus : true;\n this.onBlur = options.onBlur;\n this.onFocus = options.onFocus;\n this.onSelect = options.onSelect;\n this.onInput = options.onInput;\n this.onClose = options.onClose;\n this.onTodayClick = options.onTodayClick;\n this.onClearClick = options.onClearClick;\n this.onMonthChange = options.onMonthChange;\n this.onYearChange = options.onYearChange;\n this.selectionMode = options.selectionMode || \"single\";\n this.rangeSeparator = options.rangeSeparator || \"-\";\n this.showSeconds = options.showSeconds;\n this.placeholder = options.placeholder;\n }\n}\n","import { Observable } from \"rxjs\";\nimport { delay } from \"rxjs/operators\";\n\nimport { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\nimport { DefaultFilter } from \"../../dynamic-form/index\";\n\nexport interface InlineEditLookupFieldOptions extends InlineEditFieldOptions {\n multiple?: boolean;\n showSearch?: boolean;\n searchFields: any[];\n searchGridFields: any[];\n lookupSuggestions?: any[];\n suggestionsObservable: Observable<any[]>;\n searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n dataKey: string;\n lookupDisplayField: string;\n searchTitle?: string;\n searchEmptyTitle?: string;\n filterTitle?: string;\n emptyMessage?: string;\n appendTo?: string;\n autocompleteForceSelection?: boolean;\n showAddOption?: boolean;\n showEditOption?: boolean;\n showRemoveOption?: boolean;\n placeholder?: string;\n onLookupRequest: (query: string) => void;\n onSearchRequest: (event: any) => void;\n onSelect?: (event: any) => void;\n onUnselect?: (event: any) => void;\n onClear?: (event: any) => void;\n onBlur?: (event: FocusEvent) => void;\n onAdd?: () => void;\n onEdit?: (selectedItem: unknown) => void;\n onRemove?: (selectedItems: unknown[]) => void;\n}\n\nexport class InlineEditLookupField extends InlineEditField {\n public multiple = false;\n public showSearch = true;\n public searchFields: any[];\n public searchGridFields: any[];\n public lookupSuggestions: any[];\n public suggestionsObservable: Observable<any[]>;\n public searchObservable: Observable<{ gridData: any[]; totalRecords: number; searchTotalRecordsLabel?: string }>;\n public dataKey: string;\n public lookupDisplayField: string;\n public searchTitle: string;\n public searchEmptyTitle: string;\n public filterTitle: string;\n public emptyMessage: string;\n public appendTo?: string;\n public autocompleteForceSelection = true;\n public showAddOption = false;\n public showEditOption = false;\n public showRemoveOption = false;\n public defaultFilter: DefaultFilter[];\n public onLookupRequest: (query: string) => void;\n public onSearchRequest: (event: any) => void;\n public onClear?: (event: any) => void;\n public onBlur?: (event: FocusEvent) => void;\n public onAdd?: () => void;\n public onEdit?: (selectedItem: unknown) => void;\n public onRemove?: (selectedItems: unknown[]) => void;\n\n public placeholder?: string;\n\n private _gridData: any[];\n private _searchTotalRecords: number;\n private _searchTotalRecordsLabel: string;\n\n public onSelect = (event: any) => {};\n public onUnselect = (event: any) => {};\n\n public get gridData() {\n return this._gridData;\n }\n\n public get searchTotalRecords() {\n return this._searchTotalRecords;\n }\n\n public get searchTotalRecordsLabel() {\n return this._searchTotalRecordsLabel;\n }\n \n constructor(options: InlineEditLookupFieldOptions) {\n super(options);\n Object.assign(this, options);\n\n this.suggestionsObservable.subscribe(suggestions => (this.lookupSuggestions = suggestions));\n this.searchObservable.pipe(delay(0)).subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this._gridData = gridData;\n this._searchTotalRecords = totalRecords;\n this._searchTotalRecordsLabel = searchTotalRecordsLabel;\n });\n }\n}","import { AlignmentOptions } from \"@seniorsistemas/ng2-currency-mask\";\n\nimport { AddonConfig } from \"../../dynamic-form/index\";\nimport { NumberLocaleOptions } from \"../../locale/options/number\";\nimport { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditNumberFieldOptions extends InlineEditFieldOptions {\n allowNegative?: boolean;\n numberLocaleOptions?: NumberLocaleOptions;\n browserAutocomplete?: boolean;\n precision?: Function | number;\n scale?: Function | number;\n mask?: () => string | string;\n leftAddon?: AddonConfig;\n rightAddon?: AddonConfig;\n placeholder?: string;\n autoClear?: boolean;\n onBlur?: (event: FocusEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onComplete?: (event: FocusEvent) => void;\n onInput?: (event: FocusEvent) => void;\n}\n\nexport class InlineEditNumberField extends InlineEditField {\n public allowNegative?: boolean;\n public numberLocaleOptions?: NumberLocaleOptions;\n public browserAutocomplete?: boolean;\n public precision?: Function | number;\n public scale?: Function | number;\n public alignTo: AlignmentOptions;\n public mask?: () => string | string;\n public leftAddon?: AddonConfig;\n public rightAddon?: AddonConfig;\n public placeholder?: string;\n public autoClear?: boolean;\n public onBlur?: (event: FocusEvent) => void;\n public onFocus?: (event: FocusEvent) => void;\n public onComplete?: (event: FocusEvent) => void;\n public onInput?: (event: FocusEvent) => void;\n\n constructor(options: InlineEditNumberFieldOptions) {\n super(options);\n\n this.allowNegative = options.allowNegative ?? true;\n this.numberLocaleOptions = options.numberLocaleOptions;\n this.browserAutocomplete = options.browserAutocomplete;\n this.precision = options.precision;\n this.scale = options.scale ?? 2;\n this.alignTo = this.scale ? AlignmentOptions.RIGHT : AlignmentOptions.LEFT;\n this.mask = options.mask;\n this.leftAddon = options.leftAddon;\n this.rightAddon = options.rightAddon;\n this.onBlur = options.onBlur;\n this.onFocus = options.onFocus;\n this.onComplete = options.onComplete;\n this.onInput = options.onInput;\n this.autoClear = options.autoClear ?? true;\n this.placeholder = options.placeholder ?? \"\";\n }\n}\n","import { InlineEditFieldOptions, InlineEditField } from \"./inline-edit-field\";\n\nexport interface InlineEditTextAreaFieldOptions extends InlineEditFieldOptions {\n cols?: number;\n rows?: number;\n keyFilter?: any;\n readonly?: () => boolean;\n}\n\nexport class InlineEditTextAreaField extends InlineEditField {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public readonly?: () => boolean;\n\n constructor(options: InlineEditTextAreaFieldOptions) {\n super(options);\n\n this.cols = options.cols;\n this.rows = options.rows;\n this.keyFilter = options.keyFilter;\n this.readonly = options.readonly;\n }\n}\n","import { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditTextFieldOptions extends InlineEditFieldOptions {}\n\nexport class InlineEditTextField extends InlineEditField {\n constructor(options: InlineEditTextFieldOptions) {\n super(options);\n }\n}\n","import { InlineEditField, InlineEditFieldOptions } from \"./inline-edit-field\";\n\nexport interface InlineEditTextAreaIAFieldOptions extends InlineEditFieldOptions {}\n\nexport class InlineEditTextAreaIAField extends InlineEditField {\n constructor(options: InlineEditTextAreaIAFieldOptions) {\n super(options);\n }\n}\n","import { Component, ComponentRef, Input, OnInit, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { first } from \"rxjs/operators\";\n\nimport { LocaleOptions, LocaleService } from \"../../../locale/index\";\nimport { InlineEditCalendarField, InlineEditLookupField } from \"../../fields/index\";\nimport { InlineEditField } from \"../../fields/inline-edit-field\";\nimport { InlineEditCalendarComponent } from \"../fields/inline-edit-calendar/inline-edit-calendar.component\";\n\n@Component({\n selector: \"s-inline-edit-item\",\n templateUrl: \"./inline-edit-item.component.html\",\n styleUrls: [\"./inline-edit-item.component.scss\"],\n})\nexport class InlineEditItemComponent implements OnInit {\n @ViewChild(\"formContainer\", { read: ViewContainerRef, static: true })\n public viewContainerRef: ViewContainerRef;\n\n @Input()\n public label: string;\n\n @Input()\n public formGroup: FormGroup;\n\n @Input()\n public field: InlineEditField;\n\n @Input()\n public errorMessages?: any;\n\n public isEditing = false;\n private _locale: string;\n private dynamicComponentRef: ComponentRef<any>;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n this._getCalendarLocaleOptions();\n }\n\n public get showEmptyValueButton() {\n return !this.isEditing && !this.formGroup.get(this.field.name)?.value;\n }\n\n public get showEditButton() {\n return !this.isEditing && this.formGroup.get(this.field.name)?.value;\n }\n\n public get showValue() {\n return !this.isEditing && this.formGroup.get(this.field.name)?.value;\n }\n\n public onEdit(): void {\n this.isEditing = !this.isEditing;\n }\n\n public onCancel(): void {\n this.isEditing = !this.isEditing;\n }\n\n public onSave(): void {\n if (this.dynamicComponentRef && this.dynamicComponentRef.instance.saveValue) {\n const control = this.formGroup.get(this.field.name);\n control.markAsDirty({ onlySelf: true });\n\n this.dynamicComponentRef.instance.saveValue();\n }\n if (this.formGroup.get(this.field.name).valid) {\n this.isEditing = !this.isEditing;\n }\n }\n\n public setDynamicComponentRef(ref: ComponentRef<any>): void {\n this.dynamicComponentRef = ref;\n }\n\n public getErrorMessages(errorMessages: any) {\n if (errorMessages)\n return errorMessages instanceof Function\n ? { ...this.errorMessages, ...errorMessages() }\n : { ...this.errorMessages, ...errorMessages };\n return this.errorMessages;\n }\n\n public getFormattedValue(value: any): string {\n if (this.field instanceof InlineEditCalendarField) {\n return (this.dynamicComponentRef.instance as InlineEditCalendarComponent).getValueAsText();\n }\n if (this.field instanceof InlineEditLookupField) {\n const lookupField = this.field as InlineEditLookupField;\n return this.field.multiple\n ? value.map((val: any) => val[lookupField.lookupDisplayField]).join(\" - \")\n : value[lookupField.lookupDisplayField];\n }\n\n return value;\n }\n\n private _getCalendarLocaleOptions(): void {\n this.localeService\n .get()\n .pipe(first())\n .subscribe((localeOptions: LocaleOptions) => {\n this._locale = localeOptions.locale;\n });\n }\n}\n","import { Component, Input, ViewChild } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { Calendar } from \"primeng/calendar\";\n\nimport { InlineEditCalendarField } from \"../../../fields/inline-edit-calendar-field\";\nimport { CalendarLocaleOptions, LocaleOptions, LocaleService } from \"../../../../locale/index\";\nimport { first } from \"rxjs/operators\";\n\n@Component({\n templateUrl: \"./inline-edit-calendar.component.html\",\n styleUrls: [\"./inline-edit-calendar.component.scss\"],\n})\nexport class InlineEditCalendarComponent {\n @Input()\n public field: InlineEditCalendarField;\n\n @Input()\n public formGroup: FormGroup;\n\n @ViewChild(Calendar)\n calendar: Calendar;\n\n public tempValue: string;\n public calendarLocaleOptions: CalendarLocaleOptions;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n this._getLocaleOptions();\n\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n\n public getValueAsText(): string {\n return this.calendar.el.nativeElement.querySelector('input').value;\n }\n\n private _getLocaleOptions(): void {\n this.localeService.get().pipe(first()).subscribe((locale: LocaleOptions) => {\n this.calendarLocaleOptions = locale.calendar;\n });\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditLookupField } from \"../../../fields/inline-edit-lookup-field\";\n\n@Component({\n templateUrl: \"./inline-edit-lookup.component.html\",\n styleUrls: [\"./inline-edit-lookup.component.scss\"],\n})\nexport class InlineEditLookupComponent implements OnInit {\n @Input()\n public field: InlineEditLookupField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || \"\";\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { first } from \"rxjs/operators\";\n\nimport { InlineEditNumberField } from \"../../../fields/inline-edit-number-field\";\nimport { LocaleService } from \"../../../../locale/index\";\n\n@Component({\n templateUrl: \"./inline-edit-number.component.html\",\n styleUrls: [\"./inline-edit-number.component.scss\"],\n})\nexport class InlineEditNumberComponent {\n @Input()\n public field: InlineEditNumberField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit(): void {\n this._onLocaleService();\n\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n\n public get mask(): string {\n return typeof this.field.mask === 'function' ? this.field.mask() : this.field.mask;\n }\n\n public get leftAddonDisabled(): boolean {\n return typeof this.field.leftAddon.disabled === 'function' ? this.field.leftAddon.disabled() : this.field.leftAddon.disabled;\n }\n\n public get rightAddonDisabled(): boolean {\n return typeof this.field.rightAddon.disabled === 'function' ? this.field.rightAddon.disabled() : this.field.rightAddon.disabled;\n }\n\n public get precision(): number {\n return typeof this.field.precision === 'function' ? this.field.precision() : this.field.precision;\n }\n\n public get scale(): number {\n return typeof this.field.scale === 'function' ? this.field.scale() : this.field.scale;\n }\n\n private _onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field.numberLocaleOptions?.decimalSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field.numberLocaleOptions?.thousandsSeparator) {\n this.field.numberLocaleOptions = {\n ...this.field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n },\n error: () =>\n (this.field.numberLocaleOptions = {\n thousandsSeparator: \".\",\n decimalSeparator: \",\",\n currencySymbol: \"\",\n }),\n });\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditTextAreaField } from \"../../../fields/inline-edit-text-area-field\";\n\n@Component({\n templateUrl: \"./inline-edit-text-area.component.html\",\n styleUrls: [\"./inline-edit-text-area.component.scss\"],\n})\nexport class InlineEditTextAreaComponent implements OnInit {\n @Input()\n public field: InlineEditTextAreaField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditTextField } from \"../../../fields/inline-edit-text-field\";\n\n@Component({\n templateUrl: \"./inline-edit-text.component.html\",\n styleUrls: [\"./inline-edit-text.component.scss\"],\n})\nexport class InlineEditTextComponent {\n @Input()\n public field: InlineEditTextField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport { InlineEditTextAreaIAField } from \"../../../fields/inline-edit-text-area-ia-field\";\n\n@Component({\n templateUrl: \"./inline-edit-text-area-ia.component.html\",\n styleUrls: [\"./inline-edit-text-area-ia.component.scss\"],\n})\nexport class InlineEditTextAreaIAComponent {\n @Input()\n public field: InlineEditTextAreaIAField;\n\n @Input()\n public formGroup: FormGroup;\n\n public tempValue: string;\n\n public ngOnInit(): void {\n if (this.formGroup && this.field) {\n this.tempValue = this.formGroup.get(this.field.name)?.value || '';\n }\n }\n\n public saveValue(): void {\n if (this.formGroup && this.field) {\n this.formGroup.get(this.field.name)?.setValue(this.tempValue);\n }\n }\n}\n","import { Component, ComponentFactoryResolver, Input, OnInit, ViewChild, ViewContainerRef, ComponentRef } from \"@angular/core\";\nimport { FormGroup } from \"@angular/forms\";\n\nimport {\n InlineEditCalendarComponent,\n InlineEditItemComponent,\n InlineEditLookupComponent,\n InlineEditNumberComponent,\n InlineEditTextAreaComponent,\n InlineEditTextComponent,\n InlineEditTextAreaIAComponent,\n} from \"./components/index\";\nimport {\n InlineEditField,\n InlineEditCalendarField,\n InlineEditLookupField,\n InlineEditNumberField,\n InlineEditTextAreaField,\n InlineEditTextField,\n InlineEditTextAreaIAField,\n} from \"./fields/index\";\n\n@Component({\n selector: \"s-inline-edit\",\n templateUrl: \"./inline-edit.component.html\",\n styleUrls: [\"./inline-edit.component.scss\"],\n})\nexport class InlineEditComponent implements OnInit {\n @Input()\n public formGroup: FormGroup;\n\n @Input()\n public fields: InlineEditField[] = [];\n\n @Input()\n public errorMessages?: any;\n\n @ViewChild(\"formContainer\", { read: ViewContainerRef, static: true })\n public container: ViewContainerRef;\n\n constructor(private resolver: ComponentFactoryResolver) {}\n\n public ngOnInit(): void {\n this._createFields();\n }\n\n private _componentMap = {\n [InlineEditCalendarField.name]: InlineEditCalendarComponent,\n [InlineEditLookupField.name]: InlineEditLookupComponent,\n [InlineEditTextField.name]: InlineEditTextComponent,\n [InlineEditNumberField.name]: InlineEditNumberComponent,\n [InlineEditTextAreaField.name]: InlineEditTextAreaComponent,\n [InlineEditTextAreaIAField.name]: InlineEditTextAreaIAComponent,\n };\n\n private _createFields(): void {\n this.container.clear();\n\n const createComponent = (componentClass: any, field: InlineEditField): ComponentRef<any> => {\n const componentFactory = this.resolver.resolveComponentFactory(componentClass);\n const componentRef = this.container.createComponent(componentFactory);\n (componentRef.instance as any).field = field;\n (componentRef.instance as any).formGroup = this.formGroup;\n return componentRef;\n };\n\n for (let field of this.fields) {\n let componentClass = this._componentMap[field.constructor.name];\n\n if (componentClass) {\n const inlineEditItemFactory = this.resolver.resolveComponentFactory(InlineEditItemComponent);\n const inlineEditItemRef = this.container.createComponent(inlineEditItemFactory);\n inlineEditItemRef.instance.label = field.label;\n inlineEditItemRef.instance.formGroup = this.formGroup;\n inlineEditItemRef.instance.field = field;\n inlineEditItemRef.instance.errorMessages = this.errorMessages;\n const dynamicComponentRef = createComponent(componentClass, field);\n\n const inlineEditItemInstance = inlineEditItemRef.instance as InlineEditItemComponent;\n inlineEditItemInstance.viewContainerRef.insert(dynamicComponentRef.hostView);\n inlineEditItemInstance.setDynamicComponentRef(dynamicComponentRef);\n }\n }\n }\n}\n","import { HttpErrorResponse } from \"@angular/common/http\";\nimport { Component, forwardRef, Input, OnInit } from \"@angular/core\";\nimport { ControlValueAccessor, FormBuilder, FormGroup, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\nimport { FieldType, FormField } from \"../dynamic-form\";\nimport { IAssistService } from \"../dynamic-form/services/IAssist/iassist.service\";\nimport { IAssistResponse } from \"../dynamic-form/services/IAssist/models\";\n\n@Component({\n selector: \"s-text-area-ia\",\n templateUrl: \"./text-area-ia.component.html\",\n styleUrls: [\"./text-area-ia.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaIAComponent),\n multi: true,\n },\n ],\n})\nexport class TextAreaIAComponent implements OnInit, ControlValueAccessor {\n @Input()\n public id: string;\n\n @Input()\n public label: string;\n\n @Input()\n public placeholder: string;\n\n @Input()\n public prompt: string;\n\n @Input()\n public readonly: boolean;\n\n @Input()\n public rows: number;\n\n @Input()\n public cols: number;\n\n public fields: FormField[];\n public formGroup: FormGroup;\n public isVisible = false;\n public isLoading = false;\n public value: string;\n \n private _isDisabled: boolean;\n private _onChange: (value: string) => void;\n private _onTouched: () => void;\n\n constructor(\n private readonly _iassistService: IAssistService, // Mover pra uma pasta global\n private readonly _formBuilder: FormBuilder,\n private readonly _translateService: TranslateService,\n ) {}\n\n public ngOnInit(): void {\n this._createDialogFields();\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 setDisabledState?(isDisabled: boolean): void {\n this._isDisabled = isDisabled;\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 this._onTouched();\n }\n\n public hideDialog(): void {\n this.isVisible = false;\n }\n\n public onHideDialog(): void {\n this.formGroup.get(\"context\").setValue(\"\");\n }\n\n public submitContext(): void {\n const context = this.formGroup.get(\"context\");\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(err);\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 _createDialogFields(): void {\n this.fields = [\n new FormField({\n name: \"context\",\n type: FieldType.Text,\n label: this._translateService.instant(\"platform.angular_components.context\"),\n size: { sm: 12, md: 12, lg: 12, xl: 12 },\n }),\n ];\n }\n\n private _createDialogFormGroup(): void {\n this.formGroup = this._formBuilder.group({\n context: [\"\"],\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DialogModule } from \"primeng/dialog\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { DynamicFormModule } from \"../dynamic-form/dynamic-form.module\";\nimport { LoadingStateModule } from \"../loading-state/loading-state.module\";\nimport { TextAreaIAComponent } from \"./text-area-ia.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DialogModule,\n InputTextareaModule,\n ButtonModule,\n DynamicFormModule,\n LoadingStateModule,\n ],\n declarations: [TextAreaIAComponent],\n exports: [TextAreaIAComponent],\n})\nexport class TextAreaIAModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { CalendarModule } from \"primeng/calendar\";\nimport { InputMaskModule } from \"primeng/inputmask\";\nimport { InputTextModule } from \"primeng/inputtext\";\nimport { InputTextareaModule } from \"primeng/inputtextarea\";\nimport { KeyFilterModule } from \"primeng/keyfilter\";\n\nimport { BignumberInputModule } from \"../bignumber-input/number-input.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { ControlErrorsModule } from \"../control-errors/control-errors.module\";\nimport { DynamicFormModule } from \"../dynamic-form/dynamic-form.module\";\nimport { InfoSignModule } from \"../info-sign/info-sign.module\";\nimport { TextAreaIAModule } from \"../text-area-ia/text-area-ia.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\nimport { InlineEditCalendarComponent } from \"./components/fields/inline-edit-calendar/inline-edit-calendar.component\";\nimport { InlineEditLookupComponent } from \"./components/fields/inline-edit-lookup/inline-edit-lookup.component\";\nimport { InlineEditNumberComponent } from \"./components/fields/inline-edit-number/inline-edit-number.component\";\nimport { InlineEditTextComponent } from \"./components/fields/inline-edit-text/inline-edit-text.component\";\nimport { InlineEditTextAreaComponent } from \"./components/fields/inline-edit-text-area/inline-edit-text-area.component\";\nimport { InlineEditTextAreaIAComponent } from \"./components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component\";\nimport { InlineEditItemComponent } from \"./components/inline-edit-item/inline-edit-item.component\";\n\nimport { InlineEditComponent } from \"./inline-edit.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n BignumberInputModule,\n ButtonModule,\n ControlErrorsModule,\n InfoSignModule,\n DynamicFormModule, // Só por causa do Lookup\n TextAreaIAModule,\n TooltipModule,\n CalendarModule,\n InputMaskModule,\n InputTextModule,\n InputTextareaModule,\n KeyFilterModule,\n ],\n declarations: [\n InlineEditComponent,\n InlineEditItemComponent,\n InlineEditCalendarComponent,\n InlineEditLookupComponent,\n InlineEditNumberComponent,\n InlineEditTextComponent,\n InlineEditTextAreaComponent,\n InlineEditTextAreaIAComponent,\n ],\n exports: [InlineEditComponent],\n})\nexport class InlineEditModule {}\n","import { EventEmitter, Injectable } from \"@angular/core\";\n\nimport { KanbanColumn, KanbanItem } from \"./models\";\n\n@Injectable()\nexport class KanbanEventService {\n public selectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public unselectAllColumnItemsEvent = new EventEmitter<KanbanColumn>();\n public selectItemEvent = new EventEmitter<KanbanItem>();\n public unselectItemEvent = new EventEmitter<KanbanItem>();\n\n public emitSelectAllColumnItemsEvent(column: KanbanColumn): void {\n this.selectAllColumnItemsEvent.emit(column);\n }\n\n public emitUnselectAllColumnItemsEvent(column: KanbanColumn): void {\n this.unselectAllColumnItemsEvent.emit(column);\n }\n\n public emitSelectItemEvent(item: KanbanItem): void {\n this.selectItemEvent.emit(item);\n }\n\n public emitUnselectItemEvent(item: KanbanItem): void {\n this.unselectItemEvent.emit(item);\n }\n}\n","export enum EnumSeverity {\n Default = \"Default\",\n Info = \"Info\",\n Warn = \"Warn\",\n Error = \"Error\",\n Success = \"Success\",\n}\n","import { CdkDragDrop, moveItemInArray, transferArrayItem } from \"@angular/cdk/drag-drop\";\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n TemplateRef,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { KanbanEventService } from \"./kanban-event.service\";\nimport { KanbanColumn, KanbanData, KanbanItem, KanbanItemMovedData, KanbanTemplateTypes } from \"./models/index\";\n\n@Component({\n selector: \"s-kanban\",\n templateUrl: \"./kanban.component.html\",\n styleUrls: [\"./kanban.component.scss\"],\n})\nexport class KanbanComponent implements OnInit, AfterContentInit, OnDestroy {\n @Input()\n public data: KanbanData;\n\n @Input()\n public showItemCheckboxes = true;\n\n @Input()\n public showColumnCheckboxes = true;\n\n @Output()\n public itemsMoved = new EventEmitter<KanbanItemMovedData>();\n\n @Output()\n public dataUpdated = new EventEmitter<KanbanData>();\n\n @Output()\n public itemsSelected = new EventEmitter<KanbanItem[]>();\n\n public selectedColumn: KanbanColumn;\n public selectedItems = new Set<KanbanItem>();\n public draggingItems = new Set<KanbanItem>();\n\n public columnHeaderTemplate: TemplateRef<any>;\n public columnEmptyMessageTemplate: TemplateRef<any>;\n public itemHeaderTemplate: TemplateRef<any>;\n public itemBodyTemplate: TemplateRef<any>;\n public itemFooterTemplate: TemplateRef<any>;\n\n private _unsubscribe$ = new Subject<void>();\n\n @ContentChildren(TemplateDirective) templates: QueryList<TemplateDirective>;\n\n constructor(private readonly kanbanEventService: KanbanEventService) {}\n\n public ngOnInit(): void {\n this._subscribeEvents();\n this._normalizeData();\n this._validateInputs();\n }\n\n ngAfterContentInit() {\n this._getTemplates();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n public drop(event: CdkDragDrop<KanbanItem[]>): void {\n const previousColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.previousContainer.id);\n const targetColumn = this.data.columns.find((column: KanbanColumn) => column.id === event.container.id);\n\n if (!previousColumn || !targetColumn) {\n throw new Error(\"Unable to obtain information about columns when performing drag and drop\");\n }\n\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);\n }\n\n this.selectedItems.forEach((item: KanbanItem) => {\n const previousIndex = event.previousContainer.data.indexOf(item);\n if (previousIndex !== -1 && item !== event.item.data) {\n if (event.previousContainer === event.container) {\n moveItemInArray(event.container.data, previousIndex, event.currentIndex);\n } else {\n transferArrayItem(event.previousContainer.data, event.container.data, previousIndex, event.currentIndex);\n }\n }\n });\n\n this.selectedItems.add(event.item.data);\n\n this.itemsMoved.emit({\n items: [...this.selectedItems],\n previousColumn,\n targetColumn,\n });\n\n if (this.dataUpdated.observers?.length) {\n this.dataUpdated.emit({ ...this.data });\n }\n\n this.data.columns.forEach((column: KanbanColumn) => {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(column);\n });\n this.selectedItems.clear();\n }\n\n public selectItem(event: MouseEvent, item: KanbanItem, column: KanbanColumn): void {\n if (item.disabled || item.frozen) return;\n\n if (event.ctrlKey) {\n if (this.selectedItems.delete(item)) {\n this.kanbanEventService.emitUnselectItemEvent(item);\n } else {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n } else {\n if (this.selectedItems.delete(item)) return;\n\n this.selectedItems.clear();\n this.selectedItems.add(item);\n this.selectedColumn = column;\n this.kanbanEventService.emitSelectItemEvent(item);\n }\n }\n\n public dragStarted(): void {\n this.selectedItems.forEach((item: KanbanItem) => {\n this.draggingItems.add(item);\n });\n }\n\n public dragReleased(): void {\n this.draggingItems.clear();\n }\n\n public getLinkedColumns(currentColumn: KanbanColumn) {\n return this.data.columns.filter((column: KanbanColumn) => column != currentColumn).map((column: KanbanColumn) => column.id);\n }\n\n public getColumnHeaderTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ColumnHeader);\n }\n\n public getColumnEmptyMessageTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ColumnEmptyMessage);\n }\n\n public getItemHeaderTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ItemHeader);\n }\n\n public getItemBodyTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ItemBody);\n }\n\n public getItemFooterTemplate(): TemplateRef<any> {\n return this._getCustomTemplate(KanbanTemplateTypes.ItemFooter);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private _subscribeEvents(): void {\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n column.items\n .filter((item: KanbanItem) => !item.disabled && !item.frozen)\n .forEach((item: KanbanItem) => {\n this.selectedItems.add(item);\n });\n this.selectedColumn = column;\n this.itemsSelected.emit([...this.selectedItems]);\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectedItems.clear();\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (this.selectedColumn && !this.selectedColumn.items.includes(item)) {\n this.selectedItems.clear();\n }\n this.selectedItems.add(item);\n this.itemsSelected.emit([...this.selectedItems]);\n\n // Finding the item column and setting selectedColumn.\n this.data.columns.forEach((column: KanbanColumn) => {\n column.items.forEach((currentItem: KanbanItem) => {\n if (currentItem === item) {\n this.selectedColumn = column;\n return;\n }\n });\n });\n });\n\n this.kanbanEventService.unselectItemEvent.pipe(takeUntil(this._unsubscribe$)).subscribe((item: KanbanItem) => {\n this.selectedItems.delete(item);\n });\n }\n\n private _normalizeData(): void {\n this.data.columns.forEach((column: KanbanColumn) => {\n column.id = column.id || `id-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`;\n });\n }\n\n private _validateInputs(): void {\n const columns = this.data.columns;\n const columnIds = this.data.columns.map((column: KanbanColumn) => column.id);\n\n if (new Set(columnIds).size !== columns.length) {\n throw new Error(\"Repeated IDs are not accepted.\");\n }\n }\n\n private _getTemplates(): void {\n this.columnHeaderTemplate = this.getColumnHeaderTemplate();\n this.columnEmptyMessageTemplate = this.getColumnEmptyMessageTemplate();\n this.itemHeaderTemplate = this.getItemHeaderTemplate();\n this.itemBodyTemplate = this.getItemBodyTemplate();\n this.itemFooterTemplate = this.getItemFooterTemplate();\n }\n}\n","import { Component, Input, OnDestroy, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { KanbanColumn, KanbanItem } from \"../../models\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { FormControl } from \"@angular/forms\";\nimport { KanbanColumnOption } from \"../../models/kanban-data\";\n\n@Component({\n selector: \"s-kanban-column\",\n templateUrl: \"./kanban-column.component.html\",\n styleUrls: [\"./kanban-column.component.scss\"],\n})\nexport class KanbanColumnComponent implements OnInit, OnDestroy {\n @Input()\n public data: KanbanColumn;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any>;\n\n public selectionControl = new FormControl(false);\n\n private _unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly kanbanEventService: KanbanEventService,\n ) { }\n\n public ngOnInit(): void {\n this._validateInputs();\n this._subscriveEvents();\n\n this._createTieredOptions();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n private _createTieredOptions(): void {\n if (!this.data.options) return;\n\n const options: KanbanColumnOption[] = [];\n\n this.data.options.forEach((option: KanbanColumnOption) => {\n options.push({\n ...option,\n command: () => { option.command(this.data) },\n });\n });\n\n this.data.options = options;\n }\n\n private _subscriveEvents(): void {\n this.selectionControl.valueChanges\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((value: boolean) => {\n if (value) {\n this.kanbanEventService.emitSelectAllColumnItemsEvent(this.data);\n } else {\n this.kanbanEventService.emitUnselectAllColumnItemsEvent(this.data);\n }\n });\n\n this.kanbanEventService.unselectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((_) => {\n this.selectionControl.setValue(false, { emitEvent: false });\n });\n\n this.kanbanEventService.selectItemEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((item: KanbanItem) => {\n if (!this.data.items.includes(item)) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.selectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n });\n\n this.kanbanEventService.unselectAllColumnItemsEvent\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe((column: KanbanColumn) => {\n if (this.data !== column) {\n this.selectionControl.setValue(false, { emitEvent: false });\n }\n })\n }\n\n private _validateInputs(): void {\n if (!this.data) {\n throw new Error(\"data parameter is required\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-kanban-item-dragging\",\n templateUrl: \"./kanban-item-dragging.component.html\",\n styleUrls: [\"./kanban-item-dragging.component.scss\"],\n})\nexport class KanbanItemDraggingComponent {\n @Input()\n public quantityItems = 0;\n}\n","import { Component, Input, OnInit, TemplateRef } from \"@angular/core\";\n\nimport { KanbanItem } from \"../../models\";\nimport { KanbanEventService } from \"../../kanban-event.service\";\nimport { KanbanItemOption } from \"../../models/kanban-data\";\n\n@Component({\n selector: \"s-kanban-item\",\n templateUrl: \"./kanban-item.component.html\",\n styleUrls: [\"./kanban-item.component.scss\"],\n})\nexport class KanbanItemComponent implements OnInit {\n @Input()\n public item: KanbanItem;\n\n @Input()\n public selected = false;\n\n @Input()\n public showCheckbox = true;\n\n @Input()\n public headerTemplate: TemplateRef<any>;\n\n @Input()\n public bodyTemplate: TemplateRef<any>;\n\n @Input()\n public footerTemplate: TemplateRef<any>;\n\n constructor(private readonly _kanbanEventService: KanbanEventService) {}\n\n public ngOnInit(): void {\n this._createTieredOptions();\n }\n\n public onSelectedChange(value: any): void {\n if (value) {\n this._kanbanEventService.emitSelectItemEvent(this.item);\n } else {\n this._kanbanEventService.emitUnselectItemEvent(this.item);\n }\n }\n\n private _createTieredOptions(): void {\n if (!this.item.options) return;\n\n const options: KanbanItemOption[] = [];\n\n this.item.options.forEach((option: KanbanItemOption) => {\n options.push({\n ...option,\n command: () => { option.command(this.item) },\n });\n });\n\n this.item.options = options;\n }\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { TieredMenuModule } from \"primeng/tieredmenu\";\n\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { ButtonModule } from \"../button/button.module\";\nimport { TemplateModule } from \"../template/template.module\";\nimport { KanbanColumnComponent } from \"./components/kanban-column/kanban-column.component\";\nimport { KanbanItemDraggingComponent } from \"./components/kanban-item-dragging/kanban-item-dragging.component\";\nimport { KanbanItemComponent } from \"./components/kanban-item/kanban-item.component\";\nimport { KanbanEventService } from \"./kanban-event.service\";\nimport { KanbanComponent } from \"./kanban.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DragDropModule,\n BadgeModule,\n ButtonModule,\n TieredMenuModule,\n TemplateModule,\n ],\n declarations: [\n KanbanComponent,\n KanbanItemComponent,\n KanbanColumnComponent,\n KanbanItemDraggingComponent,\n ],\n exports: [\n KanbanComponent,\n TemplateModule,\n ],\n providers: [KanbanEventService],\n})\nexport class KanbanModule { }\n","import { Component, Input, Output, EventEmitter, forwardRef, OnInit, AfterViewInit, ChangeDetectorRef } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { NavigationButtonItem } from \"./models/navigation-button-item\";\nimport { TieredMenuItemData } from \"../tiered-menu\";\nimport { NavigationButtonStepChangedInfo } from \"./models\";\n\n@Component({\n selector: \"s-navigation-button\",\n templateUrl: \"./navigation-button.component.html\",\n styleUrls: [\"./navigation-button.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NavigationButtonComponent),\n multi: true,\n },\n ],\n})\nexport class NavigationButtonComponent implements ControlValueAccessor, OnInit, AfterViewInit {\n @Input()\n public steps: NavigationButtonItem[];\n\n @Input()\n public defaultValue: unknown;\n\n @Input()\n public tooltip: string;\n\n @Input()\n public changeOnInit = false;\n\n @Output()\n public stepChanged: EventEmitter<NavigationButtonStepChangedInfo> = new EventEmitter();\n\n public currentIndex = 0;\n public isDisabled = false;\n public tieredMenuItems: TieredMenuItemData[] = [];\n\n private _onChange: (value: unknown) => void;\n private _onTouched: () => void;\n private _value: unknown;\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) { }\n\n public ngOnInit(): void {\n this._createTieredMenuItems();\n\n if (this.changeOnInit) {\n this.stepChanged.emit({\n previous: undefined,\n current: this.steps[this.currentIndex],\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this._setDefaultValue();\n }\n\n private _setDefaultValue(): void {\n if (this.defaultValue) {\n this._value = this.defaultValue;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n this.stepChanged.emit({\n previous: undefined,\n current: this.steps[this.currentIndex],\n });\n\n this.changeDetectorRef.detectChanges();\n }\n }\n\n public writeValue(value: unknown): void {\n this._value = value;\n\n const index = this.steps.findIndex((step) => step.value === this._value);\n this.currentIndex = index !== -1 ? index : 0;\n }\n\n public registerOnChange(onChange: (value: unknown) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n public setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onNext(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex < this.steps.length - 1) {\n this.currentIndex++;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n public onPrevious(): void {\n if (this.isDisabled) return;\n\n const previous = this.steps[this.currentIndex];\n\n if (this.currentIndex > 0) {\n this.currentIndex--;\n\n const current = this.steps[this.currentIndex];\n\n this._onChange && this._onChange(current.value);\n this.stepChanged.emit({ previous, current });\n }\n\n this._onTouched && this._onTouched();\n }\n\n private _createTieredMenuItems() {\n this.steps.forEach((step: NavigationButtonItem) => {\n this.tieredMenuItems.push({\n label: step.label,\n command: () => {\n const index = this.steps.findIndex((s) => s === step);\n if (this.currentIndex !== index) {\n this._onChange && this._onChange(step.value);\n this.stepChanged.emit({ previous: this.steps[this.currentIndex], current: step });\n this.currentIndex = index;\n }\n\n this._onTouched && this._onTouched();\n },\n });\n });\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TieredMenuModule } from \"../tiered-menu/tiered-menu.module\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { NavigationButtonComponent } from \"./navigation-button.component\";\n\n@NgModule({\n imports: [CommonModule, TieredMenuModule, TooltipModule],\n declarations: [NavigationButtonComponent],\n exports: [NavigationButtonComponent],\n})\nexport class NavigationButtonModule {}\n","export enum ProgressBarColors {\n Blue = \"blue\",\n Green = \"green\",\n Red = \"red\",\n Yellow = \"yellow\",\n}","export enum ProgressBarMode {\n Determinate = \"determinate\",\n Indeterminate = \"indeterminate\",\n}\n","import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef, ViewChild } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\n\n@Component({\n selector: \"s-object-card-field\",\n templateUrl: \"./object-card-field.component.html\",\n styleUrls: [\"./object-card-field.component.scss\"],\n})\nexport class ObjectCardFieldComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-field-${ObjectCardFieldComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n @ViewChild(TemplateRef, { static: true })\n public content: TemplateRef<any>;\n}\n","import { AfterContentInit, Component, ContentChild, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { MenuItem } from \"primeng/api\";\n\nimport { ThumbnailSize } from \"../../../thumbnail/thumbnail-size\";\nimport { ThumbnailComponent } from \"../../../thumbnail/thumbnail.component\";\nimport { Breakpoints } from \"../../../utils\";\n\n@Component({\n selector: \"s-object-card-main\",\n templateUrl: \"./object-card-main.component.html\",\n styleUrls: [\"./object-card-main.component.scss\"],\n})\nexport class ObjectCardMainComponent implements AfterContentInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-main-${ObjectCardMainComponent.nextId++}`;\n\n @Input()\n public imageSource?: string;\n\n @Input()\n public imageFallback?: string;\n\n @Input()\n public imageAlt?: string;\n\n @Input()\n public iconClass = \"fa fa-picture-o\";\n\n @Input()\n public hasThumbnail = true;\n\n @Input()\n public hasDescription = true;\n\n @Input()\n public isBrand = false;\n\n @Input()\n public label?: string;\n\n @Input()\n public description?: string;\n\n @Input()\n public buttonLabel?: string;\n\n @Input()\n public buttonModel?: MenuItem[];\n\n @Output()\n public buttonClick: EventEmitter<any> = new EventEmitter();\n\n @ContentChild(ThumbnailComponent, { static: true })\n public thumbnailComponent: ThumbnailComponent;\n\n private _thumbnailSize = ThumbnailSize.Medium;\n\n public set thumbnailSize(value: ThumbnailSize) {\n this._thumbnailSize = value;\n if (this.thumbnailComponent) this.thumbnailComponent.size = value;\n }\n\n public get thumbnailSize() {\n return this._thumbnailSize;\n }\n\n @HostListener(\"window:resize\")\n public onResize() {\n this.update();\n }\n\n public ngAfterContentInit() {\n this.update();\n }\n\n public update() {\n const windowWidth = window.innerWidth;\n\n if (windowWidth <= Breakpoints.SM_MAX) this.thumbnailSize = ThumbnailSize.Small;\n else this.thumbnailSize = ThumbnailSize.Medium;\n }\n}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n AfterContentChecked,\n AfterViewInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList\n} from \"@angular/core\";\n\nimport { BorderButtonOptions } from \"../shared/models/border-button-options\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\nimport { Breakpoints } from \"../utils/breakpoints\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\n\n@Component({\n selector: \"s-object-card\",\n templateUrl: \"./object-card.component.html\",\n styleUrls: [\"./object-card.component.scss\"],\n animations: [\n trigger(\"expandableContent\", [\n state(\n \"*\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"false\",\n style({\n height: \"0\",\n })\n ),\n state(\n \"true\",\n style({\n height: \"*\",\n })\n ),\n transition(\"* => true\", animate(\"200ms ease-out\")),\n transition(\"false <=> true\", animate(\"200ms ease-out\")),\n ]),\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class ObjectCardComponent implements AfterViewInit, AfterContentChecked {\n public static nextId = 0;\n\n @Input()\n public id = `s-object-card-${ObjectCardComponent.nextId++}`;\n\n @Input()\n public expanded = false;\n\n @Input()\n public expandTooltip = \"Abrir painel\";\n\n @Input()\n public collapseTooltip = \"Fechar painel\";\n\n @Input()\n public fieldsMinWidth = 200;\n\n @Output()\n public expandedChange = new EventEmitter<boolean>();\n\n @ContentChild(ObjectCardMainComponent, { static: true })\n public main: ObjectCardMainComponent;\n\n @ContentChildren(ObjectCardFieldComponent, { descendants: true })\n public fields?: QueryList<ObjectCardFieldComponent>;\n\n public maxVisibleFields = 0;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n\n constructor(private elementRef: ElementRef) { }\n\n public ngAfterViewInit() {\n }\n\n public ngAfterContentChecked(): void {\n this.update();\n }\n\n private update() {\n const windowWidth = window.innerWidth;\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n const mainFieldWidth = containerWidth * 0.3 > 260 ? containerWidth * 0.3 : 260;\n const fieldsMinWidth = this.fieldsMinWidth;\n const expandIconWidth = 50;\n const fieldElementList = this.elementRef.nativeElement.getElementsByClassName(\"s-object-card-field\");\n for (const element of fieldElementList) {\n element.style.minWidth = `${this.fieldsMinWidth}px`;\n }\n\n let maxFieldQtd;\n\n if (windowWidth <= Breakpoints.SM_MAX) maxFieldQtd = 0;\n else maxFieldQtd = Math.floor((containerWidth - mainFieldWidth) / fieldsMinWidth);\n\n if (maxFieldQtd && maxFieldQtd < this.fields.length) {\n maxFieldQtd = Math.floor((containerWidth - mainFieldWidth - expandIconWidth) / fieldsMinWidth);\n }\n\n this.maxVisibleFields = maxFieldQtd;\n\n if (maxFieldQtd >= this.fields.length && this.expanded) this.collapse();\n }\n\n public toggle() {\n this.expanded ? this.collapse() : this.expand();\n }\n\n public expand() {\n this.expanded = true;\n this.expandedChange.emit(this.expanded);\n }\n\n public collapse() {\n this.expanded = false;\n this.expandedChange.emit(this.expanded);\n }\n\n public getExpandedFieldWidth() {\n const containerWidth = this.elementRef.nativeElement.offsetWidth;\n\n let fieldsPerRow;\n if (containerWidth <= Breakpoints.SM_MAX) fieldsPerRow = 1;\n else if (containerWidth <= Breakpoints.MD_MAX) fieldsPerRow = 2;\n else if (containerWidth <= Breakpoints.LG_MAX) fieldsPerRow = 4;\n else fieldsPerRow = 6;\n\n return 12 / fieldsPerRow;\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { BorderButtonOptions } from \"../models/border-button-options\";\nimport { EnumSeverity } from \"../models/enum-severity\";\nimport { TooltipPosition } from \"../../tooltip/models/tooltip-position\";\n\n@Component({\n selector: \"s-border-button\",\n templateUrl: \"./border-button.component.html\",\n styleUrls: [\"./border-button.component.scss\"],\n})\nexport class BorderButtonComponent {\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n options: BorderButtonOptions;\n\n readonly EnumSeverity = EnumSeverity;\n\n readonly TooltipPosition = TooltipPosition;\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../../tooltip/tooltip.module\";\nimport { BorderButtonComponent } from \"./border-button.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [BorderButtonComponent],\n exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ButtonModule } from \"../button/button.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ObjectCardComponent } from \"./object-card.component\";\nimport { ObjectCardMainComponent } from \"./elements/main/object-card-main.component\";\nimport { ObjectCardFieldComponent } from \"./elements/field/object-card-field.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule, ButtonModule, BorderButtonModule],\n declarations: [ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n exports: [ThumbnailModule, ObjectCardComponent, ObjectCardMainComponent, ObjectCardFieldComponent],\n})\nexport class ObjectCardModule {}\n","import { animate, style, transition, trigger } from \"@angular/animations\";\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, TemplateRef } from \"@angular/core\";\n\nimport { BorderButtonOptions } from \"../shared\";\nimport { TemplateDirective } from \"../template/template.directive\";\nimport { EnumSeverity } from \"../shared/models/enum-severity\";\n\n@Component({\n selector: \"s-panel\",\n templateUrl: \"./panel.component.html\",\n styleUrls: [\"./panel.component.scss\"],\n animations: [\n trigger(\"BorderButtonAnimation\", [\n transition(\":enter\", [\n style({ transform: \"scaleY(0)\", opacity: 0 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(1)\", opacity: 1 })),\n ]),\n transition(\":leave\", [\n style({ transform: \"scaleY(1)\", opacity: 1 }),\n animate(\"300ms ease\", style({ transform: \"scaleY(0)\", opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class PanelComponent implements AfterContentInit {\n @Input()\n header: string;\n\n @Input()\n toggleable = false;\n\n @Input()\n collapsed = false;\n\n @Input()\n severity = EnumSeverity.Default;\n\n @Input()\n borderButtonOptions: BorderButtonOptions;\n\n @Input()\n class: string;\n\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n\n @ContentChildren(TemplateDirective)\n templates: QueryList<TemplateDirective>;\n\n readonly EnumSeverity = EnumSeverity;\n\n headerTemplate: TemplateRef<unknown>;\n\n bodyTemplate: TemplateRef<unknown>;\n\n footerTemplate: TemplateRef<unknown>;\n\n ngAfterContentInit(): void {\n this._getTemplates();\n }\n\n toggleCollapsed(): void {\n this.collapsed = !this.collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n private _getCustomTemplate(type: string) {\n return this.templates.find((template: TemplateDirective) => template.type === type)?.template;\n }\n\n private getHeaderTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(\"header\");\n }\n\n private getBodyTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(\"body\");\n }\n\n private getFooterTemplate(): TemplateRef<unknown> {\n return this._getCustomTemplate(\"footer\");\n }\n\n private _getTemplates(): void {\n this.headerTemplate = this.getHeaderTemplate();\n this.bodyTemplate = this.getBodyTemplate();\n this.footerTemplate = this.getFooterTemplate();\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { PanelComponent } from \"./panel.component\";\nimport { BorderButtonModule } from \"../shared/border-button/border-button.module\";\nimport { TemplateModule } from \"../template/template.module\";\n\n@NgModule({\n imports: [CommonModule, BorderButtonModule],\n declarations: [PanelComponent],\n exports: [PanelComponent, TemplateModule],\n})\nexport class PanelModule {}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-product-header\",\n templateUrl: \"./product-header.component.html\",\n styleUrls: [\"./product-header.component.scss\"],\n})\nexport class ProductHeaderComponent implements AfterViewInit {\n public static nextId = 0;\n\n @Input()\n public id = `s-product-header-${ProductHeaderComponent.nextId++}`;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public isHeaderFrame = true;\n\n @ViewChild(\"headerContainer\", { static: false })\n public container: ElementRef;\n\n public ngAfterViewInit() {\n this.container.nativeElement.style.zIndex = String(this.baseZIndex + ++DomHandler.zindex);\n if (this.isHeaderFrame) {\n this.container.nativeElement.style.borderBottom = \"1px solid $default-secondary-color\";\n } else {\n this.container.nativeElement.style.borderTop = \"1px solid $default-secondary-color\";\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { ProductHeaderComponent } from \"./product-header.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule, ThumbnailModule],\n declarations: [ProductHeaderComponent],\n exports: [ProductHeaderComponent, ThumbnailModule],\n})\nexport class ProductHeaderModule {}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { ProgressBarColors, ProgressBarMode } from \"./models\";\n\n@Component({\n selector: \"s-progressbar\",\n templateUrl: \"./progressbar.component.html\",\n styleUrls: [\"./progressbar.component.scss\"],\n})\nexport class ProgressBarComponent implements OnInit {\n @Input()\n public value: number;\n\n @Input()\n public numberFormatOptions: Intl.NumberFormatOptions = {\n style: \"decimal\",\n minimumFractionDigits: 0,\n maximumFractionDigits: 2,\n roundingMode: \"trunc\",\n } as unknown as Intl.NumberFormatOptions;\n\n @Input()\n public targetValue: number;\n\n @Input()\n public label: string;\n\n @Input()\n public targetLabel: string;\n\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public showValue = true;\n\n @Input()\n public mode = ProgressBarMode.Determinate;\n\n constructor() {}\n\n public ngOnInit() {\n this.validateInputs();\n }\n\n private validateInputs(): void {\n if (this.value < 0 || this.value > 100) {\n throw new Error(\"Invalid value for value\");\n }\n\n if (this.targetValue < 0 || this.targetValue > 100) {\n throw new Error(\"Invalid value for targetValue\");\n }\n\n if (this.mode === ProgressBarMode.Indeterminate && (this.value || this.targetValue || this.targetLabel)) {\n throw new Error(\"When the mode is indeterminate, the value, targetValue and targetLabel parameters are not expected.\");\n }\n }\n}\n","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport { ProgressBarColors } from \"../../models\";\nimport { LocaleService } from \"../../../locale/locale.service\";\n\n@Component({\n selector: \"s-progressbar-determinate\",\n templateUrl: \"./progressbar-determinate.component.html\",\n styleUrls: [\"./progressbar-determinate.component.scss\"],\n})\nexport class ProgressBarDeterminateComponent implements OnInit {\n @Input()\n public value: number;\n\n @Input()\n public numberFormatOptions: Intl.NumberFormatOptions;\n\n @Input()\n public targetValue: number;\n\n @Input()\n public targetLabel: string;\n\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public showValue = true;\n\n numberFormat: Intl.NumberFormat;\n\n constructor(private readonly localeService: LocaleService) {}\n\n public ngOnInit() {\n this.validateValues();\n\n this.onGetLocale();\n }\n\n private onGetLocale(): void {\n this.localeService.getLocale().subscribe({\n next: (locale) => {\n this.numberFormat = new Intl.NumberFormat(locale ?? \"pt-BR\", this.numberFormatOptions);\n },\n error: () => {\n this.numberFormat = new Intl.NumberFormat(\"pt-BR\", this.numberFormatOptions);\n },\n });\n }\n\n private validateValues(): void {\n if (this.value < 0 || this.value > 100) {\n throw new Error(\"Invalid value for value\");\n }\n if (this.targetValue < 0 || this.targetValue > 100) {\n throw new Error(\"Invalid value for targetValue\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { ProgressBarColors } from \"../../models\";\n\n@Component({\n selector: \"s-progressbar-indeterminate\",\n templateUrl: \"./progressbar-indeterminate.component.html\",\n styleUrls: [\"./progressbar-indeterminate.component.scss\"],\n})\nexport class ProgressBarIndeterminateComponent {\n @Input()\n public activeColor: ProgressBarColors;\n\n @Input()\n public label: string;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ProgressBarComponent } from \"./progressbar.component\";\nimport { ProgressBarDeterminateComponent } from \"./components/progressbar-determinate/progressbar-determinate.component\";\nimport { ProgressBarIndeterminateComponent } from \"./components/progressbar-indeterminate/progressbar-indeterminate.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n ProgressBarComponent,\n ProgressBarDeterminateComponent,\n ProgressBarIndeterminateComponent,\n ],\n exports: [ProgressBarComponent],\n})\nexport class ProgressBarModule { }","import { Component, Input, forwardRef } from \"@angular/core\";\n\nimport { RatingScaleNode } from \"./models/rating-scale-node\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: \"s-rating-scale\",\n templateUrl: \"./rating-scale.component.html\",\n styleUrls: [\"./rating-scale.component.scss\"],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingScaleComponent),\n multi: true,\n }],\n})\nexport class RatingScaleComponent implements ControlValueAccessor {\n @Input()\n public nodes: RatingScaleNode[];\n\n @Input()\n public startLabel: string;\n\n @Input()\n public endLabel: string;\n\n @Input()\n public disabled = false;\n\n public value: RatingScaleNode;\n private _onChange: (value: RatingScaleNode) => void;\n private _onTouched: (value: RatingScaleNode) => void;\n\n public writeValue(value: RatingScaleNode): void {\n if (!this.disabled) {\n this.value = value;\n }\n }\n public registerOnChange(onChange: (value: RatingScaleNode) => void): void {\n this._onChange = onChange;\n }\n public registerOnTouched(onTouched: (value: RatingScaleNode) => void): void {\n this._onTouched = onTouched;\n }\n\n public onSelect(rating: RatingScaleNode) {\n this.value = rating;\n if (this._onChange) {\n this._onChange(this.value);\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { RatingScaleComponent } from \"./rating-scale.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ],\n declarations: [RatingScaleComponent],\n exports: [RatingScaleComponent],\n})\nexport class RatingScaleModule { }\n","import { Component, EventEmitter, Input, Output, forwardRef } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { SelectButtonItem } from \"./models\";\n\n@Component({\n selector: \"s-select-button\",\n templateUrl: \"./select-button.component.html\",\n styleUrls: [\"./select-button.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectButtonComponent),\n multi: true,\n },\n ],\n})\nexport class SelectButtonComponent implements ControlValueAccessor {\n @Input()\n public items: SelectButtonItem[];\n\n @Input()\n public multiple = false;\n\n @Output()\n public itemSelected = new EventEmitter<SelectButtonItem[]>();\n\n @Output()\n public itemClicked = new EventEmitter<SelectButtonItem>();\n\n public disabled = false;\n public activeItems = new Set<SelectButtonItem>();\n public onChange: (value: SelectButtonItem[]) => void;\n public onTouched: (value: SelectButtonItem[]) => void;\n\n public writeValue(value?: SelectButtonItem | SelectButtonItem[]): void {\n if (!value) return;\n\n this.activeItems.clear();\n\n if (Array.isArray(value)) {\n value.forEach((item: SelectButtonItem) => {\n this.items.forEach((iItem: SelectButtonItem) => {\n if (this._compareItems(item, iItem)) {\n this.activeItems.add(iItem);\n }\n });\n });\n } else {\n this.items.forEach((iItem: SelectButtonItem) => {\n if (this._compareItems(value, iItem)) {\n this.activeItems.add(iItem);\n }\n });\n }\n }\n\n public registerOnChange(onChange: (value: SelectButtonItem[]) => void): void {\n this.onChange = onChange;\n }\n\n public registerOnTouched(onTouched: (value: SelectButtonItem[]) => void): void {\n this.onTouched = onTouched;\n }\n\n public setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n\n public onItemSelect(item: SelectButtonItem): void {\n if (this.disabled || item.disabled) return;\n\n this.itemClicked.emit(item);\n\n if (!this.multiple) {\n this.activeItems.clear();\n }\n this.activeItems.add(item);\n this.itemSelected.emit([...this.activeItems]);\n\n this.onChange?.([...this.activeItems]);\n this.onTouched?.([...this.activeItems]);\n }\n\n private _compareItems(item1: SelectButtonItem, item2: SelectButtonItem): boolean {\n const _compare = (a: any, b: any): boolean => {\n if (a === b) {\n return true;\n }\n\n if (a === undefined || b === undefined || typeof a !== \"object\" || a === null || typeof b !== \"object\" || b === null) {\n return false;\n }\n\n if (Array.isArray(a) !== Array.isArray(b)) {\n return false;\n }\n\n let keysA = Object.keys(a);\n let keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n for (let key of keysA) {\n if (!keysB.includes(key) || !_compare(a[key], b[key])) {\n return false;\n }\n }\n\n for (let key in a) {\n if (a.hasOwnProperty(key) !== b.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return true;\n };\n\n return _compare(item1, item2);\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-select-button-item\",\n templateUrl: \"./select-button-item.component.html\",\n styleUrls: [\"./select-button-item.component.scss\"],\n})\nexport class SelectButtonItemComponent {\n @Input()\n public label: string;\n\n @Input()\n public active = false;\n\n @Input()\n public first = false;\n\n @Input()\n public last = false;\n\n @Input()\n public disabled = false;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SelectButtonComponent } from \"./select-button.component\";\nimport { SelectButtonItemComponent } from \"./components/select-button-item/select-button-item.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n SelectButtonComponent,\n SelectButtonItemComponent,\n ],\n exports: [SelectButtonComponent],\n})\nexport class SelectButtonModule { }","/**\n * A decorator that can be used to disable functions based on a boolean property on the component.\n *\n * @param disabledField The name of the boolean property that will be used to determine if the decorated\n * function should be disabled. Defaults to 'disabled'.\n * @returns A decorator function that can be used to decorate a function.\n *\n * @example\n * class MyComponent {\n * disabled = true;\n *\n * @CheckDisabled()\n * onClick() {\n * console.log('Button was clicked');\n * }\n * }\n */\nexport function CheckDisabled(disabledField = 'disabled') {\n return function (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]) {\n if (this[disabledField]) {\n return;\n }\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n","export enum SplitButtonType {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Default = \"default\",\n}","import { FocusTrapFactory } from \"@angular/cdk/a11y\";\nimport { Component, ContentChild, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { Sidebar } from \"primeng/sidebar\";\nimport { FooterComponent } from \"../structure/footer.component\";\nimport { HeaderComponent } from \"../structure/header.component\";\nimport { DomHandler } from \"primeng/dom\";\n\n@Component({\n selector: \"s-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SidebarComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-sidebar-${SidebarComponent.nextId++}`;\n\n @Input()\n public visible = false;\n\n @Input()\n public header: string;\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public largeSized = false;\n\n @Output()\n public visibleChange = new EventEmitter<boolean>();\n\n @ViewChild(Sidebar, { static: true })\n public innerSidebar: Sidebar;\n\n @ContentChild(HeaderComponent, { static: true })\n public headerSection: HeaderComponent;\n\n @ContentChild(FooterComponent, { static: true })\n public footerSection: FooterComponent;\n\n constructor(private focusTrapFactory: FocusTrapFactory) {}\n\n public onShow() {\n DomHandler.addClass(document.body, \"ui-overflow-hidden-sidebar\");\n const focusTrap = this.focusTrapFactory.create(this.innerSidebar.containerViewChild.nativeElement, false);\n focusTrap.focusInitialElementWhenReady();\n }\n\n public onHide() {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n }\n\n public close(event: Event) {\n DomHandler.removeClass(document.body, \"ui-overflow-hidden-sidebar\");\n this.visibleChange.emit(false);\n event.preventDefault();\n }\n}\n","import { A11yModule } from \"@angular/cdk/a11y\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ScrollPanelModule } from \"primeng/scrollpanel\";\nimport { SidebarModule as PrimeSidebar } from \"primeng/sidebar\";\nimport { StructureModule } from \"../structure/structure.module\";\nimport { SidebarComponent } from \"./sidebar.component\";\n\n@NgModule({\n imports: [CommonModule, A11yModule, PrimeSidebar, ScrollPanelModule, StructureModule],\n declarations: [SidebarComponent],\n exports: [StructureModule, SidebarComponent],\n})\nexport class SidebarModule {}\n","import { Injectable } from \"@angular/core\";\n\nimport { Observable, Subject } from \"rxjs\";\n\n@Injectable()\nexport class SlidePanelService {\n private modalCloseMap = new Map<string, Subject<void>>();\n\n public createSlidePanel(id: string): Observable<void> {\n const panelSubject = new Subject<void>();\n\n this.modalCloseMap.set(id, panelSubject);\n return panelSubject.asObservable();\n }\n\n public getModalCloseObservable(id: string): Observable<void> {\n return this.modalCloseMap.get(id).asObservable();\n }\n\n public closeModal(id: string): void {\n const subject = this.modalCloseMap.get(id);\n if (subject) {\n subject.next();\n }\n }\n}","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n AfterViewChecked,\n Output,\n ViewChild,\n OnDestroy,\n AfterViewInit,\n} from \"@angular/core\";\n\nimport { SlidePanelService } from \"./slide-panel.service\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { Subject } from \"rxjs\";\n\nconst SMALL_DEVICE_BREAKPOINT = 420;\n\n@Component({\n selector: \"s-slide-panel\",\n templateUrl: \"./slide-panel.component.html\",\n styleUrls: [\"./slide-panel.component.scss\"],\n animations: [\n trigger(\"cachelessAnimation\", [\n transition(\":enter\", [\n style({ width: \"0\" }),\n animate(\"200ms linear\", style({ width: \"*\" })),\n ]),\n transition(\":leave\", [\n style({ width: \"*\" }),\n animate(\"200ms linear\", style({ width: \"0\" })),\n ]),\n ]),\n trigger(\"cacheAnimation\", [\n state(\"true\", style({ width: \"*\", padding: '0 16px' })),\n state(\"false\", style({ width: '0px', padding: '0' })),\n transition(\"* => *\", animate(\"200ms\")),\n ]),\n ],\n})\nexport class SlidePanelComponent implements OnInit, AfterViewChecked, AfterViewInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `slide-panel-${++SlidePanelComponent.nextId}`;\n\n @Input()\n public openIcon = \"fas fa-chevron-right\";\n\n @Input()\n public closeIcon = \"fas fa-chevron-left\";\n\n @Input()\n public cache = false;\n\n @Input()\n public createOpen = false;\n\n @Input()\n public noOverlap = false;\n\n @Output()\n public panelOpened = new EventEmitter<void>();\n\n @Output()\n public panelClosed = new EventEmitter<void>();\n\n @ViewChild(\"sideContent\")\n private _sideContentRef: ElementRef;\n\n public isOpen = false;\n public isSlideOver = false;\n public isAnimating = false;\n public isContentAnimationDisabled = true;\n public slideHeight = 0;\n\n private _unsubscribe$ = new Subject<void>();\n\n @HostListener(\"window:resize\")\n public onResize(): void {\n this._checkOverBehavior();\n }\n\n constructor(\n private readonly slidePanelService: SlidePanelService,\n ) { }\n\n public ngOnInit(): void {\n this._checkOverBehavior();\n this.slidePanelService.createSlidePanel(this.id)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => {\n this.isOpen = false;\n });\n }\n\n public ngAfterViewInit(): void {\n queueMicrotask(() => {\n if (this.createOpen) {\n this.isOpen = true;\n }\n });\n }\n\n public ngAfterViewChecked() {\n // to executed at a safe time prior to control returning to the browser's event loop\n queueMicrotask(() => {\n this._calculateSlideHeight();\n this.isContentAnimationDisabled = false;\n });\n }\n\n public ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n public onClickButton() {\n if (this.isAnimating) {\n return;\n }\n\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.panelOpened.emit();\n } else {\n this.panelClosed.emit();\n }\n }\n\n public onContentAnimationStart() {\n this.isAnimating = true;\n }\n\n public onContentAnimationDone() {\n this.isAnimating = false;\n }\n\n private _checkOverBehavior() {\n this.isSlideOver = window.innerWidth <= SMALL_DEVICE_BREAKPOINT;\n }\n\n private _calculateSlideHeight() {\n this.slideHeight = this._sideContentRef.nativeElement.clientHeight;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SlidePanelComponent } from \"./slide-panel.component\";\nimport { SlidePanelService } from \"./slide-panel.service\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SlidePanelComponent],\n exports: [SlidePanelComponent],\n providers: [SlidePanelService],\n})\nexport class SlidePanelModule { }","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n selector: \"s-slider\",\n templateUrl: \"./slider.component.html\",\n styleUrls: [\"./slider.component.scss\"],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true,\n },\n ],\n})\nexport class SliderComponent implements OnInit, AfterViewInit, ControlValueAccessor, OnChanges {\n private readonly MAX_RANGE_VALUE = 100;\n private readonly MIN_RANGE_VALUE = 0;\n @ViewChild(\"track\")\n public track!: ElementRef;\n\n @Input()\n public multiple = false;\n\n @Input()\n public value: number | [number, number] = 0;\n\n @Output()\n public valueChange = new EventEmitter<number | [number, number]>();\n\n @Input()\n public step = 1;\n\n @Input()\n public hiddenThumb = false;\n\n @Input()\n public disabled = false;\n\n @Input()\n public min = this.MIN_RANGE_VALUE;\n\n @Input()\n public max = this.MAX_RANGE_VALUE;\n\n @Input()\n public minValueLabel: string;\n\n @Input()\n public maxValueLabel: string;\n\n @Input()\n public tabindex = 0;\n\n public startValue = 0;\n public endValue = 0;\n public movingProgressBar = false;\n public progressLeft = 0;\n public progressWidth = \"\";\n\n public onChange: (value: number | [number, number]) => void = () => { };\n public onTouched: (value: number | [number, number]) => void = () => { };\n\n private draggingThumb: \"start\" | \"end\" | null = null;\n private progressBarEventPositionStart = -1;\n private startValueBeforeProgressBarEvent = -1;\n private rangeBetweenElementsBeforeProgressBarEvent = -1;\n private totalRangeBeforeProgressBarEvent = -1;\n /**\n * Map of valid values for values in range.\n * @example\n * with min = -10 and max = 10 will have this map.\n * {\n * -10: { 0 },\n * -9: { 10 },\n * ...\n * 10: { 10 }\n * }\n */\n private mapRangeValuesForSlider: Map<number, number> = new Map();\n private activeMouseDown = false;\n private focusActive = false;\n\n constructor() { }\n\n public ngOnInit(): void {\n this.setUserRangeMapValues();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const hasChangesOnMin = changes.min && !changes.min.firstChange;\n const hasChangesOnMax = changes.max && !changes.max.firstChange;\n const hasChanges = hasChangesOnMin || hasChangesOnMax;\n if (hasChanges) {\n this.setUserRangeMapValues();\n setTimeout(() => {\n this.setRangeValues();\n })\n }\n }\n public ngAfterViewInit(): void {\n setTimeout(() => {\n this.setRangeValues();\n })\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n public onKeydown($event: KeyboardEvent) {\n if (this.focusActive && !this.disabled) {\n const isArrowKeyLeft = $event.key === \"ArrowLeft\";\n const isArrowKeyRight = $event.key === \"ArrowRight\";\n if (isArrowKeyLeft) {\n this.handleArrowKeyLeft();\n } else if (isArrowKeyRight) {\n this.handleArrowKeyRight();\n }\n }\n }\n\n public get tooltipStartText() {\n return Array.isArray(this.value) ? this.value[0]?.toString() : this.value?.toString();\n }\n\n public get tooltipEndText() {\n return Array.isArray(this.value) ? this.value[1]?.toString() : this.value?.toString();\n }\n\n public writeValue(obj: number | [number, number]): void {\n this.value = obj;\n this.setRangeValues();\n }\n\n public registerOnChange(fn: (value: number | [number, number]) => void): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n public onFocusIn() {\n this.focusActive = true;\n }\n\n public onBlur() {\n this.focusActive = false;\n }\n\n public onTrackClick(evt: PointerEvent) {\n if (this.disabled || this.movingProgressBar || this.activeMouseDown) {\n return;\n }\n const trackClickPercentage = this.getPercentageByEvent(evt);\n const trackClickToUserRange = this.getValueFromMapByValue(trackClickPercentage);\n const _trackClickValid = this.needParseValues ? trackClickToUserRange : trackClickPercentage;\n const _setEndValue = () => {\n const _endValueUserValue = this.getValueFromMapByValue(this.endValue);\n const _endValue = this.needParseValues ? this.mapRangeValuesForSlider.get(trackClickToUserRange) : trackClickPercentage;\n if (this.needParseValues && _endValueUserValue !== trackClickToUserRange) {\n this.endValue = _endValue;\n } else if (!this.needParseValues) {\n this.endValue = trackClickPercentage;\n }\n };\n\n const _setStartValue = () => {\n const _startValueUserValue = this.getValueFromMapByValue(this.startValue);\n if (this.needParseValues && _startValueUserValue !== trackClickToUserRange) {\n const _startValue = this.needParseValues\n ? this.mapRangeValuesForSlider.get(trackClickToUserRange)\n : trackClickPercentage;\n this.startValue = _startValue;\n } else if (!this.needParseValues) {\n this.startValue = trackClickPercentage;\n }\n };\n if (this.multiple) {\n const [start, end] = this.value as [number, number];\n const validStart = this.needParseValues ? this.mapRangeValuesForSlider.get(start) : start;\n const validEnd = this.needParseValues ? this.mapRangeValuesForSlider.get(end) : end;\n const _updateStart = () => {\n _setStartValue();\n this.setValue([trackClickPercentage, validEnd]);\n };\n\n const _updateEnd = () => {\n _setEndValue();\n this.setValue([validStart, trackClickPercentage]);\n };\n const clickPercentageBetweenRange = isInRange(_trackClickValid, start, end);\n if (_trackClickValid < start) {\n _updateStart();\n } else if (_trackClickValid > end) {\n _updateEnd();\n } else if (clickPercentageBetweenRange) {\n const middle = (start + end) / 2;\n const trackClickPercentageIsExactiddle = _trackClickValid === middle;\n if (trackClickPercentageIsExactiddle) {\n _updateStart();\n } else {\n const setStart = _trackClickValid < middle;\n const setEnd = _trackClickValid > middle;\n if (setStart) {\n _updateStart();\n } else if (setEnd) {\n _updateEnd();\n }\n }\n }\n } else {\n this.setValue(trackClickPercentage);\n _setEndValue();\n }\n\n this.setProgress();\n }\n\n public onProgressMouseDown(evt: PointerEvent) {\n if (!this.multiple || this.disabled) {\n return;\n }\n this.progressBarEventPositionStart = this.getPercentageByEvent(evt);\n this.startValueBeforeProgressBarEvent = this.startValue;\n this.rangeBetweenElementsBeforeProgressBarEvent = this.endValue - this.startValue;\n if (this.multiple) {\n const [start, end] = this.value as [number, number];\n this.totalRangeBeforeProgressBarEvent = end - start;\n }\n document.addEventListener(\"mousemove\", this.handleProgressBarMove);\n document.addEventListener(\"mouseup\", this.handleProgressBarMoveEnd);\n }\n\n public onMouseDown(_: MouseEvent, thumb: \"start\" | \"end\"): void {\n if (this.disabled) return;\n\n this.draggingThumb = thumb;\n this.activeMouseDown = true;\n document.addEventListener(\"mousemove\", this.onThumbMove);\n document.addEventListener(\"mouseup\", this.onMouseUp);\n }\n\n private setRangeValues(): void {\n const _setStartAndEndValue = (startValue: number, endValue: number) => {\n this.startValue = this.getClosestValueFromMapSlider(startValue);\n this.endValue = this.getClosestValueFromMapSlider(endValue);\n }\n if (this.value === null || this.value === undefined) {\n return;\n }\n if (Array.isArray(this.value) && !this.multiple) {\n throw new Error('You must use \"multiple\" with value as array');\n }\n if (this.multiple && Array.isArray(this.value)) {\n this.startValue = this.value[0];\n this.endValue = this.value[1];\n } else if (!this.multiple) {\n this.startValue = this.value as number;\n this.endValue = this.value as number;\n }\n _setStartAndEndValue(this.startValue, this.endValue);\n if (this.multiple) {\n let [_startValue, _endValue] = this.value as [number, number];\n const difference = getDifference(_endValue, _startValue);\n const endValueIsGreatherThanMax = _endValue > this.max;\n const startValueIsLessThanMin = _startValue < this.min;\n const needUpdateValues = endValueIsGreatherThanMax || startValueIsLessThanMin;\n if (endValueIsGreatherThanMax) {\n _endValue = this.max;\n _startValue = _endValue - difference;\n } else if (startValueIsLessThanMin) {\n _startValue = this.min;\n _endValue = _startValue + difference;\n }\n if (needUpdateValues) {\n _setStartAndEndValue(_startValue, _endValue);\n this.setValue([this.startValue, this.endValue]);\n }\n } else {\n let _value = this.value as number;\n const valueGreatherThanMax = _value > this.max;\n const valueLessThanMin = _value < this.min;\n const needUpdateValue = valueGreatherThanMax || valueLessThanMin;\n if (valueGreatherThanMax) {\n _value = this.max;\n } else if (valueLessThanMin) {\n _value = this.min;\n }\n if (needUpdateValue) {\n this.setValue(_value, false);\n }\n }\n this.setProgress();\n }\n\n private onThumbMove = (event: MouseEvent) => {\n if (this.movingProgressBar || !this.draggingThumb) return;\n\n let newPosition = this.getPercentageByEvent(event);\n if (\n (this.multiple && this.draggingThumb === \"start\" && newPosition > this.endValue) ||\n (this.multiple && this.draggingThumb === \"end\" && newPosition < this.startValue)\n ) {\n return;\n }\n\n const positionInUserRange = this.getValueFromMapByValue(newPosition);\n\n if (this.multiple) {\n if (this.draggingThumb === \"start\") {\n this.startValue = this.needParseValues\n ? this.mapRangeValuesForSlider.get(positionInUserRange)\n : newPosition;\n } else if (this.draggingThumb === \"end\") {\n this.endValue = this.needParseValues\n ? this.mapRangeValuesForSlider.get(positionInUserRange)\n : newPosition;\n }\n\n this.setValue([this.startValue, this.endValue]);\n\n const [start, end] = this.value as [number, number];\n\n if (start === end && this.draggingThumb === \"start\") {\n this.startValue = this.endValue;\n } else if (start === end && this.draggingThumb === \"end\") {\n this.endValue = this.startValue;\n }\n } else {\n const currentValue = this.value as number;\n const _value = this.needParseValues ? positionInUserRange : newPosition;\n const isAtSameValue = this.needParseValues ? positionInUserRange === this.value : false;\n const hasStep = this.step !== 0;\n const newValueIsValidByStep = hasStep ? currentValue + this.step === _value || currentValue - this.step === _value : false;\n if (isAtSameValue && !newValueIsValidByStep) {\n return;\n }\n this.endValue = this.needParseValues ? this.mapRangeValuesForSlider.get(positionInUserRange) : newPosition;\n this.startValue = this.endValue;\n this.setValue(this.endValue);\n }\n this.setProgress();\n };\n\n private onMouseUp = () => {\n this.draggingThumb = null;\n document.removeEventListener(\"mousemove\", this.onThumbMove);\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n setTimeout(() => {\n this.activeMouseDown = false;\n }, 150);\n };\n\n private handleProgressBarMove = (event: MouseEvent) => {\n this.movingProgressBar = true;\n const newCenter = this.getPercentageByEvent(event);\n const startPositionBeforeEvent = this.progressBarEventPositionStart;\n const startValueBeforeEvent = this.startValueBeforeProgressBarEvent;\n const range = this.rangeBetweenElementsBeforeProgressBarEvent;\n let { newStart, newEnd } = calculateNewRange(\n startValueBeforeEvent,\n startValueBeforeEvent + range,\n startPositionBeforeEvent,\n newCenter\n );\n if (newStart < this.MIN_RANGE_VALUE || newEnd > this.MAX_RANGE_VALUE) {\n return;\n }\n if (this.needParseValues) {\n const startValueBeforeEventUserRange = this.getValueFromMapByValue(startValueBeforeEvent);\n const startPositionBeforeEventUserRange = this.getValueFromMapByValue(startPositionBeforeEvent);\n const centerUserRange = this.getValueFromMapByValue(newCenter);\n const valueRange = this.totalRangeBeforeProgressBarEvent;\n let { newStart, newEnd } = calculateNewRange(\n startValueBeforeEventUserRange,\n startValueBeforeEventUserRange + valueRange,\n startPositionBeforeEventUserRange,\n centerUserRange\n );\n if (newStart < this.min || newEnd > this.max) {\n return;\n }\n this.startValue = this.mapRangeValuesForSlider.get(newStart);\n this.endValue = this.mapRangeValuesForSlider.get(newEnd);\n } else {\n this.startValue = newStart;\n this.endValue = newEnd;\n }\n this.setValue([this.startValue, this.endValue]);\n this.setProgress();\n };\n\n private handleProgressBarMoveEnd = () => {\n this.progressBarEventPositionStart = -1;\n this.startValueBeforeProgressBarEvent = -1;\n this.rangeBetweenElementsBeforeProgressBarEvent = -1;\n this.totalRangeBeforeProgressBarEvent = -1;\n document.removeEventListener(\"mousemove\", this.handleProgressBarMove);\n document.removeEventListener(\"mouseup\", this.handleProgressBarMoveEnd);\n setTimeout(() => {\n this.movingProgressBar = false;\n }, 150);\n };\n\n private setProgress(): void {\n if (this.multiple) {\n this.progressLeft = this.startValue;\n this.progressWidth = `calc(${this.endValue - this.startValue}% + 10px)`;\n } else {\n this.progressLeft = 0;\n this.progressWidth = `calc(${this.endValue}% + 10px)`;\n }\n }\n\n /**\n * Get the percentage of a mouse event from the track's left edge\n * @param mouseEvent mouse event\n * @returns percentage from the left edge\n */\n private getPercentageByEvent(mouseEvent: MouseEvent | PointerEvent): number {\n const trackRect = this.track.nativeElement.getBoundingClientRect();\n let newLeft = Math.round(((mouseEvent.clientX - trackRect.left) / trackRect.width) * this.MAX_RANGE_VALUE);\n newLeft = Math.max(0, Math.min(newLeft, this.MAX_RANGE_VALUE));\n return newLeft;\n }\n\n private setValue(value: number | [number, number], parse = true) {\n if (this.disabled) {\n return;\n }\n\n if (this.needParseValues && parse) {\n if (Array.isArray(value)) {\n value = value.map((x) => this.getValueFromMapByValue(x)) as [number, number];\n } else {\n value = this.getValueFromMapByValue(value);\n }\n }\n this.value = value;\n this.valueChange.emit(value);\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouched(this.value);\n }\n\n private setUserRangeMapValues() {\n const start = this.min;\n const end = this.max;\n if (start > end) {\n throw new Error('Max value must be greater than min value');\n }\n this.mapRangeValuesForSlider.clear();\n const range = end - start;\n const decimalPlaces = 2;\n const stepCount = Math.floor(range / this.step);\n const values: number[] = [];\n for (let value = start; value <= end; value += this.step) {\n values.push(value);\n }\n if (values[values.length - 1] !== end) {\n values.push(end);\n }\n const mappedValues = values.map((value) => {\n let mapped = ((value - start) / range) * this.MAX_RANGE_VALUE;\n return parseFloat(mapped.toFixed(decimalPlaces));\n });\n mappedValues[0] = 0;\n mappedValues[mappedValues.length - 1] = this.MAX_RANGE_VALUE;\n const error = this.MAX_RANGE_VALUE - mappedValues[mappedValues.length - 1];\n const errorPerStep = error / stepCount;\n for (let i = 1; i < mappedValues.length - 1; i++) {\n mappedValues[i] += errorPerStep;\n mappedValues[i] = parseFloat(mappedValues[i].toFixed(decimalPlaces));\n }\n values.forEach((value, index) => {\n this.mapRangeValuesForSlider.set(value, mappedValues[index]);\n });\n }\n\n /**\n * Returns the user value from the given slider value by using the map of range values.\n * @example\n * If the map is 0: { 0 }, 1: { 10 }, 2: { 30 }, 3: { 40 }, 4: { 50 }\n * and the sliderValue is 37, the function returns 3\n * or the slider value is 40, the function returns 4\n * @param sliderValue the value of the slider (values only between range MIN and MAX)\n * @returns the user value from the given slider value\n */\n private getValueFromMapByValue(sliderValue: number) {\n const mapToArray = Array.from(this.mapRangeValuesForSlider).map(([value, mapped]) => ({ value, mapped }));\n const exactValue = mapToArray.find((x) => x.mapped == sliderValue);\n const closest = mapToArray.reduce((prev, curr) => Math.abs(curr.mapped - sliderValue) < Math.abs(prev.mapped - sliderValue) ? curr : prev);\n return exactValue ? exactValue.value : closest.value;\n }\n\n /**\n * Retrieves the key from the map that is closest to the given slider value.\n * @param userValue - The value to find the closest key for. (values only between 0 - 100)\n * @returns The key that corresponds to the closest mapped value.\n */\n private getClosestValueFromMapSlider(userValue: number): number {\n const mapToArray = Array.from(this.mapRangeValuesForSlider).map(([value, mapped]) => ({ value, mapped }));\n if (userValue >= this.max) {\n return mapToArray[mapToArray.length - 1].mapped\n } else if (userValue <= this.min) {\n return mapToArray[0].mapped\n }\n const exactValue = mapToArray.find((x) => x.value == userValue);\n const closestValue = mapToArray.reduce((prev, curr) => Math.abs(curr.value - userValue) < Math.abs(prev.value - userValue) ? curr : prev);\n const item = exactValue || closestValue;\n const isFirstItem = mapToArray[0] === item;\n const isLastItem = mapToArray[mapToArray.length - 1] === item;\n if (isFirstItem && userValue > this.min) {\n return getMidpoint(item.mapped, mapToArray[1].mapped);\n } else if (isLastItem && userValue < this.max) {\n return getMidpoint(item.mapped, mapToArray[mapToArray.length - 2].mapped);\n } else {\n return item.mapped;\n }\n }\n\n\n private handleArrowKeyLeft() {\n if (this.multiple) {\n this._incrementOrDecrementStartAndEndValue(false);\n } else {\n this._incrementOrDecrementEndValue(false);\n }\n this.setProgress();\n }\n\n private handleArrowKeyRight() {\n if (this.multiple) {\n this._incrementOrDecrementStartAndEndValue(true);\n } else {\n this._incrementOrDecrementEndValue(true);\n }\n this.setProgress();\n }\n\n private _incrementOrDecrementStartAndEndValue(increment: boolean) {\n let [start, end] = this.value as [number, number];\n const difference = getDifference(end, start);\n if (increment) {\n start += this.step;\n end += this.step;\n } else {\n start -= this.step;\n end -= this.step;\n }\n const startLessThanMin = start < this.min;\n const endGreaterThanMax = end > this.max;\n if (startLessThanMin || endGreaterThanMax) {\n if (startLessThanMin) {\n start = this.min;\n end = start + difference;\n } else if (endGreaterThanMax) {\n end = this.max;\n start = end - difference;\n }\n }\n if (start < this.min || end > this.max) {\n return;\n }\n this.setValue([start, end], false);\n if (this.needParseValues) {\n start = this.getClosestValueFromMapSlider(start);\n end = this.getClosestValueFromMapSlider(end);\n }\n this.startValue = start;\n this.endValue = end;\n }\n\n private _incrementOrDecrementEndValue(increment: boolean) {\n let value = this.value as number;\n if (increment) {\n value += this.step;\n } else {\n value -= this.step;\n }\n let _newEndValue = value;\n if (this.needParseValues) {\n _newEndValue = this.getClosestValueFromMapSlider(_newEndValue);\n }\n if (_newEndValue < this.MIN_RANGE_VALUE || _newEndValue > this.MAX_RANGE_VALUE) {\n return;\n }\n this.endValue = _newEndValue;\n this.startValue = this.endValue;\n this.setValue(_newEndValue);\n }\n\n private get needParseValues() {\n return this.max !== this.MAX_RANGE_VALUE || this.min !== this.MIN_RANGE_VALUE;\n }\n}\n\n/**\n * Calculates a new range based on the old range and the positions clicked and finalized.\n *\n * @param oldStart - The starting value of the old range.\n * @param oldEnd - The ending value of the old range.\n * @param clickedPosition - The position where the click occurred.\n * @param finalPosition - The position where the range should end.\n * @returns An object containing the new start and end values of the range.\n */\nconst calculateNewRange = (oldStart: number, oldEnd: number, clickedPosition: number, finalPosition: number) => {\n const range = oldEnd - oldStart;\n const newStart = finalPosition - (clickedPosition - oldStart);\n const newEnd = newStart + range;\n return { newStart, newEnd };\n};\n\nconst isInRange = (value: number, rangeStart: number, rangeEnd: number): boolean => {\n const [min, max] = rangeStart < rangeEnd ? [rangeStart, rangeEnd] : [rangeEnd, rangeStart];\n return value >= min && value <= max;\n};\n\nconst getMidpoint = (start: number, end: number) => {\n const midpoint = (start + end) / 2;\n return parseFloat(midpoint.toFixed(2));\n}\nconst getDifference = (end: number, start: number) => {\n return Math.abs(end - start);\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SliderComponent } from \"./slider.component\";\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [SliderComponent],\n exports: [SliderComponent],\n})\nexport class SliderModule {}\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nexport enum StepState {\n Default = \"default\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport interface Step {\n id: any;\n label: string;\n ariaLabel?: string;\n ariaControls?: string;\n /**\n * @deprecated\n * @todo remover propriedade deprecada\n */\n description?: string;\n state?: StepState;\n disabled?: boolean;\n hidden?: boolean;\n tooltip?: string;\n}\n\nexport interface StepSelectionEvent {\n step: Step;\n index: number;\n event: any;\n}\n\n@Component({\n selector: \"s-steps\",\n templateUrl: \"./steps.component.html\",\n styleUrls: [\"./steps.component.scss\"],\n host: {\n \"aria-orientation\": \"horizontal\",\n role: \"tablist\",\n \"tab-index\": \"0\",\n },\n animations: [\n trigger(\"beforeActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 100ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 250ms linear\")]),\n ]),\n trigger(\"activeDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"100ms 150ms linear\")]),\n transition(\"desactive => active\", [animate(\"100ms 150ms linear\")]),\n ]),\n trigger(\"afterActiveDesative\", [\n state(\n \"active\",\n style({\n \"background-position\": \"left bottom\",\n })\n ),\n state(\n \"desactive\",\n style({\n \"background-position\": \"right bottom\",\n })\n ),\n transition(\"active => desactive\", [animate(\"50ms 250ms linear\")]),\n transition(\"desactive => active\", [animate(\"50ms 100ms linear\")]),\n ]),\n ],\n})\nexport class StepsComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-steps-${StepsComponent.nextId++}`;\n @Input()\n public steps: Step[];\n @Input()\n public activeIndex = 0;\n\n @Output()\n public stepSelected: EventEmitter<StepSelectionEvent> = new EventEmitter();\n\n public stepClick(step: Step, index: number, event: any) {\n if (step.disabled || index == this.activeIndex) return;\n this.stepSelected.emit({ step, index, event });\n }\n\n public get stepState() {\n return StepState;\n }\n\n public barAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex;\n return visited || activated;\n }\n\n public afterBarAnimation(index: number, activeIndex: number): boolean {\n const visited = index < activeIndex;\n const activated = index === activeIndex - 1;\n return visited || activated;\n }\n\n get visibledStep() {\n return this.steps.filter((step: Step) => !step.hidden);\n }\n}\n","import { Component, Input, Output, EventEmitter, HostListener, ElementRef } from \"@angular/core\";\n\nimport { SplitButtonOption } from \"./models/split-button-option\";\nimport { SplitButtonType } from \"./models/split-button-type\";\n\n@Component({\n selector: \"s-split-button\",\n templateUrl: \"./split-button.component.html\",\n styleUrls: [\"./split-button.component.scss\"],\n})\nexport class SplitButtonComponent {\n @Input()\n public disabled = false;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public label: string;\n\n @Input()\n public type = SplitButtonType.Primary;\n\n @Input()\n public options: SplitButtonOption[];\n\n @Output()\n public buttonClicked = new EventEmitter();\n\n constructor(private readonly eRef: ElementRef) { }\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent) {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.closeDropdown();\n }\n }\n\n public open = false;\n\n public onButtonClick() {\n if (!this.disabled) {\n this.buttonClicked.emit();\n this.closeDropdown();\n }\n }\n\n public onDropdownClick() {\n if (!this.disabled) {\n this.open = !this.open;\n }\n }\n\n public onOptionClick(option: SplitButtonOption) {\n option.action && option.action();\n this.closeDropdown();\n }\n\n private closeDropdown() {\n this.open = false;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { SplitButtonComponent } from \"./split-button.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SplitButtonComponent],\n exports: [SplitButtonComponent],\n})\nexport class SplitButtonModule { }","import { Component, Input, ViewEncapsulation, Output, EventEmitter } from \"@angular/core\";\nimport { BigNumber } from \"bignumber.js\";\n\n@Component({\n selector: \"s-stats-card\",\n templateUrl: \"./stats-card.component.html\",\n styleUrls: [\"./stats-card.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StatsCardComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-stats-card-${StatsCardComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public alwaysWithBorder = false;\n\n @Input()\n public lightVersion = false;\n\n @Input()\n public lightMode = true;\n\n @Input()\n public iconClass = \"fa fa-bar-chart\";\n\n @Input()\n public color = \"#339966\";\n\n @Input()\n public animateNumbers = true;\n\n @Input()\n public clickable = false;\n\n @Input()\n public set value(value: string) {\n this.previousValue = this._value;\n this._value = String(value);\n if (this.animateNumbers) this.updateDisplayValue();\n else this.displayValue = this.value;\n }\n\n @Input()\n public tooltip = \"\";\n\n public get value() {\n return this._value;\n }\n\n @Output()\n public onClick: EventEmitter<MouseEvent> = new EventEmitter();\n\n public displayValue: string;\n\n private ANIMATION_DURATION_MS = 200;\n private STEP_DURATION_MS = 20;\n private previousValue = \"0\";\n private intervalId: any;\n private _value = \"0\";\n\n private updateDisplayValue() {\n const animationDuration = new BigNumber(this.ANIMATION_DURATION_MS);\n const stepDuration = new BigNumber(this.STEP_DURATION_MS);\n const animationCount = animationDuration.dividedBy(stepDuration);\n\n const previousRawValue = new BigNumber(this.previousValue.replace(/\\D/g, \"\"));\n const rawValue = new BigNumber(this.value.replace(/\\D/g, \"\"));\n\n const incrementValue = rawValue.minus(previousRawValue).absoluteValue().dividedBy(animationCount);\n const incremental = previousRawValue.isLessThan(rawValue);\n\n clearInterval(this.intervalId);\n\n this.displayValue = this.replaceNumericPositions(this.value);\n\n let counter = previousRawValue;\n\n this.intervalId = setInterval(() => {\n if (incremental && counter.isLessThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.plus(incrementValue);\n } else if (!incremental && counter.isGreaterThan(rawValue)) {\n this.displayValue = this.replaceNumericPositions(this.displayValue, counter);\n counter = counter.minus(incrementValue);\n } else {\n this.displayValue = this.value;\n\n clearInterval(this.intervalId);\n }\n }, this.STEP_DURATION_MS);\n }\n\n public replaceNumericPositions(value: string, newValue?: BigNumber) {\n const rawValue = value.replace(/[^\\d]/g, \"\");\n const newValueString = newValue ? newValue.toString() : \"\";\n const formattedNewValue = newValueString\n .toString()\n .replace(/\\D/g, \"\")\n .padStart(rawValue.length, \"0\");\n let newValueIndex = 0;\n\n return value\n .split(\"\")\n .map(char => {\n const number = Number(char);\n if (number || char === \"0\") return formattedNewValue[newValueIndex++];\n return char;\n })\n .join(\"\");\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StatsCardComponent } from \"./stats-card.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [\n StatsCardComponent,\n ],\n exports: [\n StatsCardComponent,\n ],\n})\nexport class StatsCardModule { }\n","export enum TimelineItemSeverity {\n Normal = \"normal\",\n Warning = \"warning\",\n Error = \"error\",\n}\n","export enum TimelineItemSize {\n Normal = \"normal\",\n Small = \"small\",\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { StepsComponent } from \"./steps.component\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [StepsComponent],\n exports: [StepsComponent],\n})\nexport class StepsModule {}\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { ThumbnailsItem } from \"./models/thumbnails-item\";\n\n@Component({\n selector: \"s-thumbnails\",\n templateUrl: \"./thumbnails.component.html\",\n styleUrls: [\"./thumbnails.component.scss\"],\n})\nexport class ThumbnailsComponent {\n @Input()\n public items: ThumbnailsItem[];\n\n @Input()\n public selectable = true;\n\n @Input() combineCheckboxEvent = true;\n\n @Input()\n public set selection(items: ThumbnailsItem[]) {\n this._selection = [...items];\n }\n\n @Output()\n public selectionChange = new EventEmitter<ThumbnailsItem[]>();\n\n @Output()\n public itemOpened = new EventEmitter<ThumbnailsItem>();\n\n private _selection: ThumbnailsItem[] = [];\n\n public onItemOpened(item: ThumbnailsItem): void {\n this.itemOpened.emit(item);\n }\n\n public onItemSelected(item: { item: ThumbnailsItem; selected: boolean }): void {\n if (item.selected) {\n this._selection.push(item.item);\n } else {\n this._selection.splice(\n this._selection.findIndex((_item) => _item === item.item),\n 1\n );\n }\n this.selectionChange.emit(this._selection);\n }\n\n public isSelected(item: ThumbnailsItem) {\n return this._selection.some((i: ThumbnailsItem) => i.id === item.id);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\n\nimport { CheckboxState } from \"../../../checkbox/models/checkbox-state\";\nimport { isNullOrUndefined } from \"../../../utils/utils\";\nimport { ThumbnailsItem } from \"../../models/thumbnails-item\";\n\n@Component({\n selector: \"s-thumbnail-item\",\n templateUrl: \"./thumbnail-item.component.html\",\n styleUrls: [\"./thumbnail-item.component.scss\"],\n})\nexport class ThumbnailItemComponent implements OnInit {\n @Input()\n public itemData: ThumbnailsItem;\n\n @Input()\n public isCheckable = true;\n\n @Input()\n public isChecked = false;\n\n @Input() combineCheckboxEvent = true;\n\n @Output()\n public checked = new EventEmitter<{ item: ThumbnailsItem, selected: boolean }>();\n\n @Output()\n public opened = new EventEmitter<ThumbnailsItem>();\n\n public checkboxFormGroup: FormGroup;\n\n public ngOnInit(): void {\n this._validateItemData();\n this._createFormGroup();\n }\n\n public onClick() {\n this.opened.emit(this.itemData);\n }\n\n public checkboxClick(event: Event): void {\n if (this.combineCheckboxEvent) {\n return;\n }\n\n event.stopPropagation();\n }\n\n private _createFormGroup(): void {\n this.checkboxFormGroup = new FormGroup({\n checkbox: new FormControl({ checked: this.isChecked }),\n });\n\n this.checkboxFormGroup.get(\"checkbox\").valueChanges.subscribe((value: CheckboxState) => {\n this.checked.emit({ item: this.itemData, selected: value.checked });\n });\n }\n\n private _validateItemData(): void {\n if (isNullOrUndefined(this.itemData)) {\n throw new Error(\"itemData is required\");\n }\n }\n}\n","import { Component, Input, ElementRef, ViewChild, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-video\",\n templateUrl: \"./thumbnail-item-video.component.html\",\n styleUrls: [\"./thumbnail-item-video.component.scss\"],\n})\nexport class ThumbnailItemVideoComponent {\n @Input()\n public imageUrl: string;\n \n @Input()\n public videoUrl: string;\n \n @ViewChild(\"videoPlayer\") videoPlayer!: ElementRef;\n\n @HostListener(\"mouseenter\") onMouseEnter(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.play();\n }\n }\n\n @HostListener(\"mouseleave\") onMouseLeave(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.pause();\n this.videoPlayer.nativeElement.currentTime = 0;\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-image\",\n templateUrl: \"./thumbnail-item-image.component.html\",\n styleUrls: [\"./thumbnail-item-image.component.scss\"],\n})\nexport class ThumbnailItemImageComponent {\n @Input()\n public imageUrl: string;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { CheckboxModule } from \"../checkbox/checkbox.module\";\nimport { ThumbnailItemComponent } from \"./components/thumbnail-item/thumbnail-item.component\";\nimport { ThumbnailItemVideoComponent } from \"./components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component\";\nimport { ThumbnailItemImageComponent } from \"./components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component\";\nimport { ThumbnailsComponent } from \"./thumbnails.component\";\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxModule],\n declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent],\n exports: [ThumbnailsComponent],\n})\nexport class ThumbnailsModule {}\n","import { Component, EventEmitter, Input, Output, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-tile\",\n templateUrl: \"./tile.component.html\",\n styleUrls: [\"./tile.component.scss\"],\n})\nexport class TileComponent {\n public static nextId = 0;\n\n @Input()\n public id = `s-tile-${TileComponent.nextId++}`;\n\n @Input()\n public label: string;\n\n @Input()\n public description: string;\n\n @Input()\n public iconClass: string;\n\n @Input()\n public imageSource: string;\n\n @Input()\n public imageAlt: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public tabIndex = 0;\n\n @Input()\n public useThumbnail = true;\n\n @Output()\n public onClick = new EventEmitter();\n\n public get initialLetter(): string {\n let initialLetter = \"\";\n if (this.label) {\n const words = this.label.split(\" \", 2);\n initialLetter = words[0].charAt(0).toUpperCase();\n if (words.length > 1) {\n initialLetter += words[1].charAt(0).toUpperCase();\n }\n }\n return initialLetter;\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeyDown(event: any) {\n if (!this.disabled && [13, 32].includes(event.keyCode)) {\n this.onClick.emit();\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\n\nimport { TooltipModule } from \"../tooltip/tooltip.module\";\nimport { ThumbnailModule } from \"../thumbnail/thumbnail.module\";\nimport { TileComponent } from \"./tile.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ThumbnailModule,\n ],\n declarations: [TileComponent],\n exports: [\n TileComponent,\n ThumbnailModule,\n ],\n})\nexport class TileModule { }\n","import { Component, HostListener, Input, OnInit } from \"@angular/core\";\n\nimport { TimelineItem } from \"./models/timeline-item\";\n\nconst HORIZONTAL = \"horizontal\";\nconst VERTICAL = \"vertical\";\nconst MIN_ITEM_SIZE = 200;\n\n@Component({\n selector: \"s-timeline\",\n templateUrl: \"./timeline.component.html\",\n})\nexport class TimelineComponent implements OnInit {\n private _innerWidth: number;\n private _items: TimelineItem[];\n\n public get items(): TimelineItem[] {\n return this._items;\n }\n\n @Input()\n public set items(items: TimelineItem[]) {\n this._items = items;\n this.checkDuplicateIds();\n }\n\n @Input()\n public activeIndex: number;\n\n @Input()\n public highlightActiveItem = true;\n\n @Input()\n public direction: typeof HORIZONTAL | typeof VERTICAL = HORIZONTAL;\n\n @Input()\n public collapsable = true;\n\n @Input()\n public counterLabel = \"items\";\n\n public ngOnInit(): void {\n this._innerWidth = window.innerWidth;\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n public onResize(_: any): void {\n this._innerWidth = window.innerWidth;\n }\n\n public changeToVertical(): boolean {\n return this.direction === VERTICAL || this._innerWidth / this.items.length < MIN_ITEM_SIZE;\n }\n\n public checkDuplicateIds(): void {\n const ids = this.items.map(item => {\n return item.id;\n });\n\n if ((new Set(ids)).size !== ids.length) {\n throw new Error(\"A duplicate id was found in the items list\");\n }\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models\";\n\n@Component({\n selector: \"s-timeline-icon-item\",\n templateUrl: \"./timeline-icon-item.component.html\",\n styleUrls: [\"./timeline-icon-item.component.scss\"],\n})\nexport class TimelineIconItemComponent {\n @Input()\n public item: TimelineItem;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public highlightActive: boolean;\n\n @Input()\n public isComplete: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineIconItemComponent } from \"./timeline-icon-item.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n ],\n declarations: [TimelineIconItemComponent],\n exports: [TimelineIconItemComponent],\n})\nexport class TimelineItemModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-horizontal-timeline\",\n templateUrl: \"./horizontal-timeline.component.html\",\n styleUrls: [\"./horizontal-timeline.component.scss\"],\n})\nexport class HorizontalTimelineComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public activeIndex = 0;\n\n @Input()\n public highlightActiveItem: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TooltipModule } from \"primeng/tooltip\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineComponent } from \"./horizontal-timeline.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule,\n TimelineItemModule,\n ],\n declarations: [HorizontalTimelineComponent],\n exports: [HorizontalTimelineComponent],\n})\nexport class HorizontalTimelineModule { }\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-timeline\",\n templateUrl: \"./vertical-timeline.component.html\",\n styleUrls: [\"./vertical-timeline.component.scss\"],\n})\nexport class VerticalTimelineComponent {\n public static nextId = 0;\n private _activeIndex: number;\n public isG1Collapsed = true;\n public isG2Collapsed = true;\n\n public firstItem: TimelineItem[];\n public g1Items: TimelineItem[];\n public activeItem: TimelineItem[];\n public g2Items: TimelineItem[];\n public lastItem: TimelineItem[];\n\n @Input()\n public set activeIndex(index: number) {\n this._activeIndex = index;\n this.groupItems();\n }\n\n public get activeIndex() {\n return this._activeIndex;\n }\n\n @Input()\n public highlightActiveItem: boolean;\n\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public counterLabel: string;\n\n @Input()\n public collapsable: boolean;\n\n public onChangeG1(event: boolean) {\n this.isG1Collapsed = event;\n }\n\n public onChangeG2(event: boolean) {\n this.isG2Collapsed = event;\n }\n\n public groupItems() {\n this.firstItem = this.activeIndex <= 0 ? [] : [this.items[0]];\n this.g1Items = this.items.slice(1, this.activeIndex < 0 ? 0 : this.activeIndex);\n this.activeItem = this.activeIndex >= 0 ? [this.items[this.activeIndex]] : [];\n this.g2Items = this.items.slice(this.activeIndex + 1, this.items.length - 1);\n this.lastItem = this.activeIndex === this.items.length - 1 ? [] : [this.items[this.items.length - 1]];\n }\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-range-line\",\n templateUrl: \"./range-line.component.html\",\n styleUrls: [\"./range-line.component.scss\"],\n})\nexport class RangeLineComponent { }\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"s-collapse-option\",\n templateUrl: \"./collapse-option.component.html\",\n styleUrls: [\"./collapse-option.component.scss\"],\n})\nexport class CollapseOptionComponent {\n @Input()\n public isCollapsed = false;\n\n @Output()\n public change = new EventEmitter<boolean>();\n\n public onClick(): void {\n this.change.emit(!this.isCollapsed);\n }\n}\n","import { Component, Input, Output, EventEmitter } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-collapsed-items\",\n templateUrl: \"./collapsed-items.component.html\",\n styleUrls: [\"./collapsed-items.component.scss\"],\n})\nexport class CollapsedItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isCollapsed: boolean;\n\n @Input()\n public isCompleted: boolean;\n\n @Input()\n public counterLabel: string;\n\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n public onChange(event: boolean) {\n this.isCollapsed = !this.isCollapsed;\n this.isCollapsedChange.emit(this.isCollapsed);\n }\n}\n","import { Component, Input } from \"@angular/core\";\n\nimport { TimelineItem } from \"../../../../models/timeline-item\";\n\n@Component({\n selector: \"s-vertical-items\",\n templateUrl: \"./vertical-items.component.html\",\n styleUrls: [\"./vertical-items.component.scss\"],\n})\nexport class VerticalItemsComponent {\n @Input()\n public items: TimelineItem[];\n\n @Input()\n public isLast: boolean;\n\n @Input()\n public isActive: boolean;\n\n @Input()\n public highlightActive: boolean;\n\n @Input()\n public isCompleted: boolean;\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineItemModule } from \"../timeline-icon-item/timeline-icon-item.module\";\nimport { VerticalTimelineComponent } from \"./vertical-timeline.component\";\nimport { RangeLineComponent } from \"./components/range-line/range-line.component\";\nimport { CollapseOptionComponent } from \"./components/collapse-option/collapse-option.component\";\nimport { CollapsedItemsComponent } from \"./components/collapsed-items/collapsed-items.component\";\nimport { VerticalItemsComponent } from \"./components/vertical-items/vertical-items.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n ],\n declarations: [\n VerticalTimelineComponent,\n RangeLineComponent,\n CollapseOptionComponent,\n CollapsedItemsComponent,\n VerticalItemsComponent,\n ],\n exports: [VerticalTimelineComponent],\n})\nexport class VerticalTimelineModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { TimelineComponent } from \"./timeline.component\";\nimport { TimelineItemModule } from \"./components/timeline-icon-item/timeline-icon-item.module\";\nimport { HorizontalTimelineModule } from \"./components/horizontal-timeline/horizontal-timeline.module\";\nimport { VerticalTimelineModule } from \"./components/vertical-timeline/vertical-timeline.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n TimelineItemModule,\n HorizontalTimelineModule,\n VerticalTimelineModule,\n ],\n declarations: [\n TimelineComponent,\n ],\n exports: [\n TimelineComponent,\n ],\n})\nexport class TimelineModule { }\n","import { TimelineItemSeverity } from \"./timeline-item-severity\";\nimport { TimelineItemSize } from \"./timeline-item-size\";\n\nconst LABEL_MAX_LENGTH = 2; \n\nexport class TimelineItem {\n public id: string;\n public title: string;\n public description: string;\n public icon?: string;\n public label?: string;\n public tooltip?: string;\n public size: TimelineItemSize;\n public severity: TimelineItemSeverity;\n public color?: string;\n\n constructor(params: {\n id: string,\n title: string,\n description: string,\n icon?: string,\n label?: string,\n size?: TimelineItemSize,\n severity?: TimelineItemSeverity,\n tooltip?: string,\n color?: string,\n }) {\n this.id = params.id;\n this.title = params.title;\n this.description = params.description;\n this.icon = params.icon;\n this.label = params.label;\n this.tooltip = params.tooltip;\n this.size = params.size || TimelineItemSize.Normal;\n this.severity = params.severity || TimelineItemSeverity.Normal;\n this.color = params.color;\n\n this.checkItemIconContent();\n }\n\n public checkItemIconContent() {\n if (!this.icon && !this.label) {\n throw new Error(\"No icon or label string was passed for the item. Enter an icon or label text\");\n }\n\n if (this.icon && this.label) {\n throw new Error(\"An icon and label string were passed to the item. Enter an icon or label text\");\n }\n\n if (this.label?.length > LABEL_MAX_LENGTH) {\n throw new Error(\"Label text is expected to be a maximum of two characters long\");\n }\n }\n\n public testSize(value: string) {\n return this.size.valueOf() === value;\n }\n\n public testSeverity(value: string) {\n return this.severity?.valueOf() === value;\n }\n}\n","export interface PickListItem<T> {\n disabled?: boolean;\n data: T;\n}\n\nexport enum PicklistTemplateTypes {\n ItemToSelect = 'item-to-select',\n SelectedItem = 'selected-item'\n}\n","import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n} from \"@angular/core\";\n\nimport { Workspace } from \"./models/workspace\";\n\n@Component({\n selector: \"s-workspace-switch\",\n templateUrl: \"./workspace-switch.component.html\",\n styleUrls: [\"./workspace-switch.component.scss\"],\n})\nexport class WorkspaceSwitchComponent implements OnInit {\n @Input()\n public workspaces: Workspace[];\n\n @Input()\n public footerButtonLabel = \"Adicionar\";\n\n @Input()\n public showFooterButton = true;\n\n @Input()\n public disabled = false;\n\n @Output()\n public footerButtonClicked = new EventEmitter();\n\n @Output()\n public selected: EventEmitter<Workspace> = new EventEmitter();\n\n @ViewChildren('listItem')\n public listItems: QueryList<ElementRef>;\n\n public get open() {\n return this._open;\n }\n\n public set open(open: boolean) {\n this._open = open;\n this.changeDetectorRef.detectChanges();\n\n if (open) {\n this._calculateListMaxHeight();\n }\n }\n\n public height = 0;\n public selectedItemIndex = 0;\n public currentItemIndex = 0;\n\n private _open = false;\n\n constructor(\n private readonly eRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef\n ) {}\n\n @HostBinding(\"attr.tabindex\")\n public tabindex = 0;\n\n @HostListener(\"document:click\", [\"$event\"])\n public onClickout(event: MouseEvent): void {\n if (!this.eRef.nativeElement.contains(event.target)) {\n this.open = false;\n }\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n public onKeydown(event: KeyboardEvent): void {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.open) {\n const workspace = this.workspaces[this.selectedItemIndex];\n\n if (workspace.disabled) {\n return;\n }\n\n this.selectedItemIndex = this.currentItemIndex;\n this.selected.emit(this.workspaces[this.selectedItemIndex]);\n }\n this.open = !this.open;\n } else if (event.key === \"Escape\") {\n this.open = false;\n } else if (event.key === \"ArrowDown\") {\n if (this.currentItemIndex < this.workspaces.length - 1) {\n this.currentItemIndex++;\n this._scrollToCurrentItem();\n }\n } else if (event.key === \"ArrowUp\") {\n if (this.currentItemIndex > 0) {\n this.currentItemIndex--;\n this._scrollToCurrentItem();\n }\n }\n }\n\n public ngOnInit(): void {\n if (this.disabled) {\n this.tabindex = -1;\n }\n }\n\n public validations(): void {\n if (!this.workspaces.length) {\n throw new Error(\"Workspaces list is empty.\");\n }\n }\n\n public buttonOnBlur(): void {\n this.open = false;\n this.currentItemIndex = this.selectedItemIndex;\n }\n\n public onSelectItem(workspace: Workspace): void {\n if (workspace.disabled) {\n return;\n }\n\n this.open = false;\n this.selectedItemIndex = this.workspaces.indexOf(workspace);\n this.currentItemIndex = this.selectedItemIndex;\n this.selected.emit(workspace);\n }\n\n public onFooterButtonClick(): void {\n this.open = false;\n this.footerButtonClicked.emit();\n }\n\n private _calculateListMaxHeight(): void {\n const workspaceListRef = this.eRef.nativeElement.querySelector(\"#workspace-list\");\n const { top } = workspaceListRef.getBoundingClientRect();\n\n this.height = window.innerHeight - top - 20 - (this.showFooterButton ? 64 : 0);\n this.changeDetectorRef.detectChanges();\n }\n\n private _scrollToCurrentItem(): void {\n const currentItem = this.listItems.toArray()[this.currentItemIndex];\n if (currentItem) {\n currentItem.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { WorkspaceSwitchComponent } from \"./workspace-switch.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [WorkspaceSwitchComponent],\n exports: [WorkspaceSwitchComponent],\n})\nexport class WorkspaceSwitchModule { }\n","import { Component, Input } from \"@angular/core\";\nimport {\n BadgeConfiguration,\n CurrencyConfiguration,\n DateConfiguration,\n LabelValueConfiguration,\n NumberConfiguration,\n TextConfiguration,\n} from \"./types/label-value-configuration\";\n\n@Component({\n selector: \"s-label-value\",\n templateUrl: \"./label-value.component.html\",\n styleUrls: [\"./label-value.component.scss\"],\n})\nexport class LabelValueComponent {\n @Input()\n configuration: LabelValueConfiguration;\n\n isBadgeConfiguration(config: LabelValueConfiguration): config is BadgeConfiguration {\n return config.type === \"Badge\";\n }\n\n isTextConfiguration(config: LabelValueConfiguration): config is TextConfiguration {\n return config.type === \"Text\";\n }\n\n isCurrencyConfiguration(config: LabelValueConfiguration): config is CurrencyConfiguration {\n return config.type === \"Currency\";\n }\n\n isNumberConfiguration(config: LabelValueConfiguration): config is NumberConfiguration {\n return config.type === \"Number\";\n }\n\n isDateConfiguration(config: LabelValueConfiguration): config is DateConfiguration {\n return config.type === \"Date\";\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { CookieService } from \"ngx-cookie-service\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { LabelValueComponent } from \"./label-value.component\";\n\nimport { BadgeModule } from \"../badge/badge.module\";\nimport { LocaleModule } from \"../locale/locale.module\";\n\n@NgModule({\n imports: [CommonModule, TranslateModule, BadgeModule, LocaleModule],\n providers: [CookieService],\n declarations: [LabelValueComponent],\n exports: [LabelValueComponent],\n})\nexport class LabelValueModule {}\n","import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, OnChanges, Output, QueryList, SimpleChanges, TemplateRef } from '@angular/core';\nimport { pipe } from 'rxjs';\nimport { TemplateDirective } from './../../template/template.directive';\nimport { PicklistTemplateTypes, PickListItem } from './models/picklist-models';\n\ninterface InternalPicklistItem<T = any> extends PickListItem<T> {\n invisible?: boolean\n selected?: boolean\n}\n\ntype CdkDragEvent = { source: CdkDrag<InternalPicklistItem<any>> };\n\n@Component({\n selector: 's-picklist',\n templateUrl: './picklist.component.html',\n styleUrls: ['./picklist.component.scss']\n})\nexport class PicklistComponent implements AfterViewInit, OnChanges {\n @Input() itensToSelect: PickListItem<any>[] = [];\n @Input() selectedItens: PickListItem<any>[] = [];\n @Input() availableItensLabel: string;\n @Input() availableItensPlaceholder: string;\n @Input() addSelectedItensLabel: string;\n @Input() addAllItensLabel: string;\n @Input() selectedItensLabel: string;\n @Input() selectedItensPlaceholder: string;\n @Input() removeSelectedItemsLabel: string;\n @Input() removeAllItemsLabel: string;\n @Input() showCheckbox = false;\n @Input() filterBy = '';\n @Output() selectedItensChange = new EventEmitter<any[]>();\n @Output() itensToSelectChange = new EventEmitter<any[]>();\n availableItensFilter = '';\n selectedItensFilter = '';\n itemToSelectTemplate: TemplateRef<any>;\n itemSelectedTemplate: TemplateRef<any>;\n itensToSelectFilterUtil: {\n rawItensToSelect: InternalPicklistItem[],\n filteredItensToSelect: InternalPicklistItem[],\n } = {\n rawItensToSelect: [],\n filteredItensToSelect: [],\n }\n\n selectedItensFilterUtil: {\n rawSelectedItens: InternalPicklistItem[]\n filteredSelectedItens: InternalPicklistItem[],\n } = {\n rawSelectedItens: [],\n filteredSelectedItens: [],\n }\n selectedItensMap: Set<InternalPicklistItem> = new Set();\n itensToSelectId = randomHash('itensToSelect');\n selectedItensId = randomHash('selectedItens');\n private lastSelected: 'toSelect' | 'selected';\n\n @ContentChildren(TemplateDirective) private templates: QueryList<TemplateDirective>;\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngAfterViewInit(): void {\n this.itemToSelectTemplate = this.templates.find(x => x.type === PicklistTemplateTypes.ItemToSelect)?.template;\n this.itemSelectedTemplate = this.templates.find(x => x.type === PicklistTemplateTypes.SelectedItem)?.template;\n if (!this.itemToSelectTemplate) {\n console.error(`Missing template for ${PicklistTemplateTypes.ItemToSelect} add this template using sTemplate directive.`);\n }\n if (!this.itemSelectedTemplate) {\n console.error(`Missing template for ${PicklistTemplateTypes.SelectedItem} add this template using sTemplate directive.`);\n }\n this.cdr.detectChanges();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.itensToSelect && changes.itensToSelect.firstChange) {\n this.itensToSelectFilterUtil = {\n rawItensToSelect: this.itensToSelect,\n filteredItensToSelect: this.itensToSelect,\n }\n }\n\n if (changes.selectedItens && changes.selectedItens.firstChange) {\n this.selectedItensFilterUtil = {\n filteredSelectedItens: this.selectedItens,\n rawSelectedItens: this.selectedItens\n }\n }\n }\n\n toggleSelected(internalPicklistItem: InternalPicklistItem, containerListId: string) {\n if (internalPicklistItem.disabled) {\n return;\n }\n this.unselectedItensByListId(this.getOppositiveId(containerListId));\n internalPicklistItem.selected = !internalPicklistItem.selected;\n if (internalPicklistItem.selected) {\n this.selectedItensMap.add(internalPicklistItem);\n } else {\n this.selectedItensMap.delete(internalPicklistItem);\n }\n this.cdr.detectChanges();\n }\n\n remove(all = false) {\n const itens = filterEnabled((all ? this.selectedItensFilterUtil.rawSelectedItens : this.selectedItensMap));\n if (!itens.length) {\n return;\n }\n itens.forEach((itemRemove) => {\n this.itensToSelect.push(itemRemove);\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n })\n this.selectedItens = this.selectedItens.filter(x => !itens.includes(x));\n this.selectedItensFilterUtil.rawSelectedItens = this.selectedItens;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n this.cdr.detectChanges();\n }\n\n add(all = false) {\n const itens = filterEnabled((all ? this.itensToSelectFilterUtil.rawItensToSelect : this.selectedItensMap));\n if (!itens.length) {\n return;\n }\n itens.forEach((itemRemove) => {\n this.selectedItens.push(itemRemove);\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n })\n this.itensToSelect = this.itensToSelect.filter(x => !itens.includes(x));\n this.itensToSelectFilterUtil.rawItensToSelect = this.itensToSelect;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n this.cdr.detectChanges();\n }\n\n filterItensToSelect() {\n let searchTerm = this.availableItensFilter;\n searchTerm = searchTerm.trim();\n if (searchTerm) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect\n .filter((item) => compareStrings(item.data[this.filterBy], searchTerm));\n } else {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n }\n this.cdr.detectChanges();\n }\n\n filterSelectedItens() {\n let searchTerm = this.selectedItensFilter;\n searchTerm = searchTerm.trim();\n if (searchTerm) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens\n .filter((item) => compareStrings(item.data[this.filterBy], searchTerm));\n } else {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n }\n }\n\n drop(event: CdkDragDrop<InternalPicklistItem[]>) {\n const isDifferentContainer = event.container !== event.previousContainer;\n if (!isDifferentContainer) {\n return;\n }\n\n const isRemovedItens = event.previousContainer.id === this.selectedItensId;\n if (isRemovedItens) {\n this.remove();\n } else {\n this.add();\n }\n this.cdr.detectChanges();\n }\n\n onDragStart(event: CdkDragEvent, dragListId: string) {\n this.unselectedItensByListId(this.getOppositiveId(dragListId));\n event.source.data.selected = true;\n this.selectedItensMap.add(event.source.data);\n this.selectedItensMap.forEach((x) => x.invisible = true);\n this.cdr.detectChanges();\n }\n\n onDragRelease() {\n this.selectedItensMap.forEach((item) => item.invisible = false);\n }\n\n checkAllAvailableItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(checked, this.itensToSelectFilterUtil.filteredItensToSelect, this.itensToSelectId);\n }\n\n checkAllSelectedItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(checked, this.selectedItensFilterUtil.filteredSelectedItens, this.selectedItensId);\n }\n\n get disableSelectedItensCheckbox() {\n return filterEnabled(this.selectedItensFilterUtil.filteredSelectedItens).length === 0;\n }\n\n get disableItensToSelectCheckbox() {\n return filterEnabled(this.itensToSelectFilterUtil.filteredItensToSelect).length === 0;\n }\n\n get itensToSelectAllSelected() {\n return this._checkAllSelectedByList(this.itensToSelectFilterUtil.filteredItensToSelect);\n }\n\n get selectedItensAllSelected() {\n return this._checkAllSelectedByList(this.selectedItensFilterUtil.filteredSelectedItens);\n }\n\n get canAddItens() {\n return (this.itensToSelect as InternalPicklistItem[]).filter((x) => x?.selected).length > 0;\n }\n\n get canRemoveItens() {\n return (this.selectedItens as InternalPicklistItem[]).filter((x) => x?.selected).length > 0;\n }\n\n private _checkAllSelectedByList(list: InternalPicklistItem[]) {\n const _listItens = filterEnabled(list);\n if (!_listItens.length) {\n return false;\n } else {\n return _listItens.every((x) => x.selected);\n }\n }\n\n private _checkAllSelectedItensChange(checked: boolean, list: InternalPicklistItem[], listId: string) {\n this.unselectedItensByListId(listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId);\n filterEnabled(list).forEach((item) => {\n item.selected = checked;\n this.selectedItensMap.add(item);\n })\n this.cdr.detectChanges();\n }\n\n private unselectedItensByListId(listId: string) {\n const clearList = this.getAllElementsByListId(listId);\n clearList.forEach((x) => {\n x.selected = false;\n this.selectedItensMap.delete(x);\n })\n this.cdr.detectChanges();\n }\n\n private getAllElementsByListId(listId: string) {\n return listId === this.selectedItensId ? this.selectedItensFilterUtil.rawSelectedItens : this.itensToSelectFilterUtil.rawItensToSelect;\n }\n\n private getOppositiveId(listId: string) {\n return listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId;\n }\n\n private emitData() {\n this.itensToSelectChange.emit(parseValueEmit(this.itensToSelect));\n this.selectedItensChange.emit(parseValueEmit(this.selectedItens));\n }\n}\n\nconst normalizeString = (str: string) => {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\").toLowerCase();\n}\n\n/**\n * Compares two strings by normalizing them to a case-insensitive and accent-free form,\n * and checks if the main string contains the substring.\n *\n * @param mainString - The string to be searched.\n * @param substring - The string to search for within the main string.\n * @returns A boolean indicating whether the normalized main string contains the normalized substring.\n */\n\nconst compareStrings = (mainString: string, substring: string) => {\n return normalizeString(mainString).includes(normalizeString(substring));\n}\n\nconst randomHash = (prefix = 'id') => {\n return `${prefix}-${Math.random().toString(36).substring(2, 9)}-${Date.now().toString(36)}`\n}\n\nconst filterEnabled = (list: PickListItem<any>[] | Set<InternalPicklistItem>): InternalPicklistItem[] => {\n const _list = list instanceof Set ? Array.from(list) : list;\n return _list.filter((x) => !x.disabled);\n}\n\nconst mapData = (list: PickListItem<any>[]) => {\n return list.map((x) => x.data);\n}\n\nconst parseValueEmit = pipe(filterEnabled, mapData)\n\nexport const parseItensPickList = <T>(array: T[], disabledFn?: (item: T) => boolean): PickListItem<T>[] => {\n return array.map((x) => {\n return {\n data: x,\n disabled: disabledFn ? disabledFn(x) : false\n }\n })\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from '../button/button.module';\nimport { PicklistComponent } from './picklist/picklist.component';\n\n\n@NgModule({\n declarations: [PicklistComponent],\n imports: [\n CommonModule,\n TranslateModule,\n DragDropModule,\n FormsModule,\n ButtonModule,\n ],\n exports: [PicklistComponent]\n})\nexport class PicklistModule { }\n","import { AfterViewInit, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, QueryList, TemplateRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CheckDisabled } from '../../shared/helpers';\nimport { ChipAddEvent, ChipClickEvent, ChipRemoveEvent } from '../models/chip-models';\nimport { TemplateDirective } from './../../template/template.directive';\n\n@Component({\n selector: 's-chips',\n templateUrl: './chips.component.html',\n styleUrls: ['./chips.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipsComponent),\n multi: true\n }\n ]\n})\nexport class ChipsComponent implements AfterViewInit, ControlValueAccessor {\n private static _id = 0;\n newItem = '';\n chipTemplate: TemplateRef<any>;\n\n @Input() disabled: boolean;\n @Input() field: string;\n @Input() value: any[] = [];\n @Input() placeholder = '';\n @Input() max: number;\n @Input() maxLength: number;\n @Input() inputId = `chips-${ChipsComponent._id++}`;\n @Input() allowDuplicated = true;\n @Input() caseSensitiveDuplication = false;\n @Input() addOnTab = true;\n @Input() addOnBlur = true;\n @Input() separator: string;\n @Input() autofocus = false;\n @Input() infoLabel = '';\n @Input() keyFilter: string | RegExp;\n @Input() showTooltip = true;\n @Input() maxLengthRenderWithoutTooltip = 20;\n\n @Output() onAdd = new EventEmitter<ChipAddEvent>();\n @Output() onRemove = new EventEmitter<ChipRemoveEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n @Output() onChipClick = new EventEmitter<ChipClickEvent>();\n @Output() valueChange = new EventEmitter<string[] | any[]>();\n\n @ContentChildren(TemplateDirective) private templates: QueryList<TemplateDirective>;\n\n @ViewChild('input', { read: ElementRef }) private input: ElementRef<HTMLElement>;\n private isTabEventActive = false;\n onChange: (value: string[] | any[]) => void = () => { };\n onTouched: (value: string[] | any[]) => void = () => { };\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngAfterViewInit(): void {\n if (this.autofocus && this.input) {\n this.input.nativeElement.focus();\n }\n this.chipTemplate = this.templates.find((x) => x.type === 'chip-container')?.template;\n this.cdr.detectChanges();\n }\n\n\n writeValue(obj: string[] | any[]): void {\n this.value = obj;\n }\n\n registerOnChange(fn: (value: string[] | any[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n @HostListener(\"document:keydown\", [\"$event\"])\n @CheckDisabled()\n onKeydown($event: KeyboardEvent) {\n const isEnter = $event.key === 'Enter';\n const isSeparator = this.separator && $event.key === this.separator;\n const eventKeyIsTab = $event.key === 'Tab';\n if (eventKeyIsTab) {\n this.isTabEventActive = true;\n setTimeout(() => {\n this.isTabEventActive = false;\n }, 50);\n }\n const isTab = this.addOnTab && eventKeyIsTab;\n if (isEnter || isSeparator || isTab) {\n $event.preventDefault();\n this.addItem();\n }\n }\n\n onInputFocus($event: FocusEvent) {\n this.onFocus.emit($event);\n }\n\n @CheckDisabled()\n onInputLostFocus($event: FocusEvent) {\n if (!this.addOnBlur || this.isTabEventActive) {\n return;\n }\n this.addItem();\n this.onBlur.emit($event);\n }\n\n removeItem({ itemIndex, event }: { itemIndex: number, event: Event }) {\n const _removedItem = this.value[itemIndex];\n this.value.splice(itemIndex, 1)\n this.onRemove.emit({ value: _removedItem, originalEvent: event });\n }\n\n chipClicked({ event, data }: { event: Event, data: string | Object }) {\n this.onChipClick.emit({ value: data, originalEvent: event });\n }\n\n private addItem() {\n const hasValue = !!this.newItem;\n if (!hasValue) {\n return;\n }\n if (this.max && this.value.length === this.max) {\n return;\n }\n\n const validItemLength = this.maxLength ? this.newItem.length <= this.maxLength : true;\n if (!validItemLength) {\n return;\n }\n const hasField = !!this.field;\n const _mappedValues: string[] = this.field ? this.value.map((x) => x[this.field]) : this.value;\n const valueToAdd = hasField ? { [this.field]: this.newItem } : this.newItem;\n const duplicatedItem = _mappedValues.find((x) => {\n if (this.caseSensitiveDuplication) {\n return x === this.newItem;\n } else {\n return x.toLowerCase() === this.newItem.toLowerCase();\n }\n })\n let hasDuplicatedItem = false\n if (!this.allowDuplicated) {\n hasDuplicatedItem = duplicatedItem ? Boolean(duplicatedItem) : false;\n }\n if (!hasDuplicatedItem) {\n this.storeValue(valueToAdd);\n }\n this.newItem = '';\n }\n\n private storeValue(value: any) {\n this.value = [...this.value, value];\n this.onAdd.emit({ value });\n this.valueChange.emit(this.value);\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouched(this.value);\n }\n}\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { CheckDisabled } from '../../shared/helpers';\n@Component({\n selector: 's-chip-item',\n templateUrl: './chip-item.component.html',\n styleUrls: ['./chip-item.component.scss']\n})\nexport class ChipItemComponent {\n @Input() dataRender: string | Object;\n @Input() objectField: string;\n @Input() disabled = false;\n @Input() templateRef: TemplateRef<any>\n @Input() itemIndex = -1;\n @Input() showTooltip = true;\n @Input() maxLengthRenderWithoutTooltip = 20;\n\n @Output() clickRemove = new EventEmitter<{ index: number, event: Event }>();\n @Output() chipClicked = new EventEmitter<{ event: Event, data: string | Object }>();\n\n @CheckDisabled()\n clickedRemove($event: Event) {\n this.clickRemove.emit({ index: this.itemIndex, event: $event });\n }\n @CheckDisabled()\n onChipClicked($event: Event) {\n this.chipClicked.emit({ event: $event, data: this.dataRender });\n }\n\n get _text() {\n const _text = this._rawText;\n return _text.substring(0, _text.length > this.maxLengthRenderWithoutTooltip ? this.maxLengthRenderWithoutTooltip : _text.length) + (_text.length > this.maxLengthRenderWithoutTooltip ? '...' : '');\n }\n\n get _rawText() {\n return this.objectField ? (this.dataRender as any)[this.objectField] || '' : this.dataRender || '';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChipsComponent } from './chips/chips.component';\nimport { ChipItemComponent } from './chip-item/chip-item.component';\nimport { FormsModule } from '@angular/forms';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { TooltipModule } from '../tooltip/tooltip.module';\n\n\n\n@NgModule({\n declarations: [ChipsComponent, ChipItemComponent],\n imports: [\n CommonModule,\n FormsModule,\n TooltipModule,\n KeyFilterModule\n ],\n exports: [ChipsComponent]\n})\nexport class ChipsModule { }\n","import { Component, ElementRef, EventEmitter, OnDestroy, TemplateRef, ViewChild } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from '../models/help-popover.models';\n\n@Component({\n selector: 's-help-popover',\n templateUrl: './help-popover.component.html',\n styleUrls: ['./help-popover.component.scss']\n})\nexport class HelpPopoverComponent implements OnDestroy {\n private readonly VALID_POSITIONS: HelpPopoverPosition[] = ['top', 'bottom', 'left', 'right'];\n private readonly VALID_ARROW_POSITIONS: HelpPopoverArrowPosition[] = ['beginning', 'end', 'middle'];\n private _position: HelpPopoverPosition = 'bottom';\n popoverContent: string | TemplateRef<any> | null = null;\n closeButton = true;\n icon = '';\n header = '';\n footer = '';\n button = '';\n visible = false;\n @ViewChild('arrowElement', { read: ElementRef, static: true }) arrowElement: ElementRef<HTMLElement> | null = null;\n public get position(): HelpPopoverPosition {\n return this._position;\n }\n public set position(value: HelpPopoverPosition) {\n if (!this.VALID_POSITIONS.includes(value)) {\n throw new Error(`Invalid position: ${value}. Valid positions: ${this.VALID_POSITIONS}`);\n }\n this._position = value;\n }\n\n private _arrowPosition: HelpPopoverArrowPosition = 'beginning';\n public get arrowPosition(): HelpPopoverArrowPosition {\n return this._arrowPosition;\n }\n public set arrowPosition(value: HelpPopoverArrowPosition) {\n if (!this.VALID_ARROW_POSITIONS.includes(value)) {\n throw new Error(`Invalid arrow position: ${value}. Valid arrow positions: ${this.VALID_ARROW_POSITIONS}`);\n }\n this._arrowPosition = value;\n }\n\n buttonClicked!: EventEmitter<void>;\n\n closed = new Subject<void>();\n get contentIsString() {\n return typeof this.popoverContent === 'string';\n }\n\n get hasHeaderContainer() {\n const _hasHeader = this.hasHeaderText;\n const hasIcon = this.hasIcon;\n const hasCloseButton = this.closeButton;\n return _hasHeader || hasIcon || hasCloseButton;\n }\n\n get hasFooter() {\n const _hasFooterText = this.hasFooterText;\n const hasButtonText = this.button && this.button.length > 0;\n return _hasFooterText || hasButtonText;\n }\n\n get hasHeaderText() {\n return this.header && this.header.length > 0;\n }\n\n get hasFooterText() {\n return this.footer && this.footer.length > 0;\n }\n\n get hasIcon() {\n return this.icon && this.icon.length > 0;\n }\n\n close() {\n this.closed.next();\n }\n\n clickButton() {\n this.buttonClicked!.emit();\n }\n\n\n ngOnDestroy(): void {\n this.closed.complete();\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Injector, Input, OnDestroy, OnInit, Output, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { ElementLeftoverPosition, ElementPosition, getElementLeftoverContentAvailable, getElementPositionInfo, isMousePositionOutsideOfElement } from '../utils';\nimport { HelpPopoverComponent } from './help-popover/help-popover.component';\nimport { HelpPopoverArrowPosition, HelpPopoverPosition } from './models/help-popover.models';\n\n@Directive({\n selector: '[sHelpPopover]',\n exportAs: 'sHelpPopover'\n})\nexport class HelpPopoverDirective implements OnDestroy, OnInit {\n private readonly MUTATION_OBSERVER_CONFIG: MutationObserverInit = { attributes: true, childList: true, subtree: true };\n private readonly OBSERVER_CALLBACK = () => {\n if (!this.componentRef) {\n return;\n }\n this.applyPositionIntoElement();\n }\n private readonly RESIZE_OBSERVER = () => {\n this.onResize$.next();\n }\n @Input() sHelpPopover: string | TemplateRef<any> | null = null;\n @Input() closeButton = true;\n @Input() popoverIcon = '';\n @Input() popoverHeader = '';\n @Input() popoverFooter = '';\n @Input() popoverButtonText = '';\n @Input() popoverArrowPosition: HelpPopoverArrowPosition = 'beginning';\n private _popoverPosition: HelpPopoverPosition = 'bottom';\n public get popoverPosition(): HelpPopoverPosition {\n return this._popoverPosition;\n }\n @Input()\n public set popoverPosition(value: HelpPopoverPosition) {\n this._popoverPosition = value;\n this.internalPosition = value;\n }\n @Output() buttonClicked = new EventEmitter<void>();\n\n private onDestroy$ = new Subject<void>();\n private componentRef: ComponentRef<HelpPopoverComponent> | null = null\n private mutationObserverPopoverElement: MutationObserver | null = null;\n private mutationObserverPopoverContent: MutationObserver | null = null;\n private internalPosition: HelpPopoverPosition = 'bottom';\n private onResize$ = new Subject<void>();\n private manualTrigger = false;\n private listener = (event: PointerEvent) => {\n const totalElementArea = this.componentRef.location.nativeElement.getBoundingClientRect();\n if (isMousePositionOutsideOfElement(event, totalElementArea)) {\n this.destroy();\n }\n }\n constructor(\n private readonly element: ElementRef<HTMLElement>,\n private readonly injector: Injector,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n private readonly appRef: ApplicationRef,\n ) { }\n\n ngOnInit(): void {\n const popoverElementObserver = new MutationObserver(this.OBSERVER_CALLBACK);\n this.mutationObserverPopoverElement = popoverElementObserver;\n popoverElementObserver.observe(this.element.nativeElement, this.MUTATION_OBSERVER_CONFIG);\n window.addEventListener('resize', this.RESIZE_OBSERVER);\n window.addEventListener('scrollend', this.OBSERVER_CALLBACK);\n this.onResize$.pipe(takeUntil(this.onDestroy$), debounceTime(100)).subscribe(this.OBSERVER_CALLBACK)\n }\n\n show() {\n this.manualTrigger = true;\n this._createComponent();\n }\n\n @HostListener('click')\n doClick() {\n if (this.manualTrigger) {\n return;\n }\n this._createComponent();\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n this.destroy();\n if (this.mutationObserverPopoverElement) {\n this.mutationObserverPopoverElement.disconnect();\n }\n window.removeEventListener('resize', this.RESIZE_OBSERVER);\n window.removeEventListener('scrollend', this.OBSERVER_CALLBACK);\n }\n\n private _createComponent() {\n if (!this.sHelpPopover) {\n return;\n }\n if (this.componentRef) {\n this.destroy();\n }\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(HelpPopoverComponent);\n const componentRef = componentFactory.create(this.injector);\n this.componentRef = componentRef;\n if (this.mutationObserverPopoverContent) {\n this.mutationObserverPopoverContent.disconnect();\n }\n this.mutationObserverPopoverContent = new MutationObserver(this.OBSERVER_CALLBACK);\n this.mutationObserverPopoverContent.observe((this.componentRef.location.nativeElement as HTMLElement).querySelector('.popover-content'), this.MUTATION_OBSERVER_CONFIG);\n document.body.appendChild(componentRef.location.nativeElement);\n this.appRef.attachView(componentRef.hostView);\n setTimeout(() => {\n document.addEventListener('click', this.listener);\n })\n const component = componentRef.instance;\n component.popoverContent = this.sHelpPopover;\n component.closeButton = this.closeButton;\n component.icon = this.popoverIcon;\n component.header = this.popoverHeader;\n component.footer = this.popoverFooter;\n component.button = this.popoverButtonText;\n component.position = this.internalPosition;\n component.arrowPosition = this.popoverArrowPosition;\n component.buttonClicked = this.buttonClicked;\n component.closed.pipe(takeUntil(this.onDestroy$)).subscribe(() => {\n this.destroy();\n })\n this.applyPositionIntoElement();\n }\n\n private destroy() {\n document.removeEventListener('click', this.listener);\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n\n this.internalPosition = this.popoverPosition;\n\n if (this.mutationObserverPopoverContent) {\n this.mutationObserverPopoverContent.disconnect();\n }\n }\n\n private applyPositionIntoElement() {\n const popoverElementPosition = getElementPositionInfo(this.element.nativeElement);\n const position = this.validPosition;\n this.internalPosition = position;\n this.popoverComponentInstance.position = this.internalPosition;\n setTimeout(() => {\n switch (this.internalPosition) {\n case 'bottom': {\n this.applyPopoverPositionBottom(popoverElementPosition);\n break;\n }\n case 'top': {\n this.applyPopoverPositionTop(popoverElementPosition);\n break;\n }\n case 'left': {\n this.applyPopoverPositionLeft(popoverElementPosition);\n break;\n }\n case 'right': {\n this.applyPopoverPositionRight(popoverElementPosition);\n break;\n }\n }\n this.popoverComponentInstance.visible = true;\n })\n\n }\n\n private applyPopoverPositionBottom(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const leftPopover = this.getHorizontalLeft(popoverElementPosition)\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `${leftPopover}px`;\n popoverElement.style.top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight}px)`\n }\n\n private applyPopoverPositionTop(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const leftPopover = this.getHorizontalLeft(popoverElementPosition)\n const popoverHeight = popoverElement.getBoundingClientRect().height;\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `${leftPopover}px`;\n popoverElement.style.top = `calc(${popoverElementPosition.top}px - ${popoverHeight}px)`;\n }\n\n private applyPopoverPositionLeft(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const popoverWidth = popoverElement.getBoundingClientRect().width;\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `calc(${popoverElementPosition.right}px - ${popoverWidth + popoverElementPosition.elementWidth}px)`;\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\n }\n\n private applyPopoverPositionRight(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n popoverElement.style.position = 'absolute';\n popoverElement.style.left = `calc(${popoverElementPosition.right}px)`;\n popoverElement.style.top = this.getVerticalTop(popoverElementPosition);\n }\n\n private getHorizontalLeft(popoverElementPosition: ElementPosition) {\n const popoverElement = this.getPopoverElement;\n const popoverWidth = popoverElement.getBoundingClientRect().width;\n let _horizontalLeft = popoverElementPosition.left;\n if (this.popoverArrowPosition === 'end') {\n _horizontalLeft = popoverElementPosition.right - popoverWidth;\n } else if (this.popoverArrowPosition === 'middle') {\n _horizontalLeft = (popoverElementPosition.left + popoverElementPosition.elementWidth / 2) - (popoverWidth / 2);\n }\n return _horizontalLeft;\n }\n\n private getVerticalTop(popoverElementPosition: ElementPosition) {\n const arrowElementPosition = getElementPositionInfo(this.componentRef.instance.arrowElement.nativeElement);\n const popoverContentPosition = getElementPositionInfo(this.componentRef.location.nativeElement);\n const popoverElement = this.getPopoverElement;\n const popoverHeight = popoverElement.getBoundingClientRect().height;\n let top = `calc(${popoverElementPosition.top}px - ${popoverHeight / 2}px + ${popoverElementPosition.elementHeight / 2}px)`;\n\n const arrowMiddle = arrowElementPosition.elementHeight / 2;\n if (this.popoverArrowPosition === 'beginning') {\n const distanceArrowFromStart = arrowElementPosition.top - popoverContentPosition.top;\n top = `calc(${popoverElementPosition.top}px + ${popoverElementPosition.elementHeight / 2}px - ${distanceArrowFromStart + arrowMiddle}px)`;\n } else if (this.popoverArrowPosition === 'end') {\n const distanceArrowFromEnd = (popoverContentPosition.top + popoverContentPosition.elementHeight) - (arrowElementPosition.top + arrowElementPosition.elementHeight);\n top = `calc(${popoverElementPosition.top}px - ${popoverContentPosition.elementHeight}px + ${popoverElementPosition.elementHeight / 2}px + ${distanceArrowFromEnd + arrowMiddle}px)`;\n }\n return top;\n }\n\n private getLeftoverContentAvailableForPopover(): ElementLeftoverPosition {\n return getElementLeftoverContentAvailable(this.element.nativeElement);\n }\n\n private get getPopoverElement(): HTMLElement {\n return this.componentRef.location.nativeElement;\n }\n\n private get popoverComponentInstance() {\n return this.componentRef.instance;\n }\n\n /**\n * Given the current position of the popover and the available space around\n * the trigger element, this function will return the position that the popover\n * will be set at.\n *\n * If the popover will fit at the given position, it will return the same\n * position.\n *\n * If the popover will not fit at the given position, it will return the position\n * that has the most available space (top or bottom).\n *\n * If there is no position with available space, it will return the given\n * position.\n *\n * @returns The position that the popover will be set at.\n */\n private get validPosition(): HelpPopoverPosition {\n const { freeDistanceToBottom, freeDistanceToTop, freeDistanceToLeft, freeDistanceToRight } = this.getLeftoverContentAvailableForPopover();\n\n const popoverElementPosition = getElementPositionInfo(this.componentRef.location.nativeElement);\n const popoverElementWidth = popoverElementPosition.elementWidth;\n const popoverElementHeight = popoverElementPosition.elementHeight;\n\n const remainingSpaceBottom = freeDistanceToBottom - popoverElementHeight;\n const remainingSpaceTop = freeDistanceToTop - popoverElementHeight;\n const remainingSpaceLeft = freeDistanceToLeft - popoverElementWidth;\n const remainingSpaceRight = freeDistanceToRight - popoverElementWidth;\n\n const canSetAtBottom = remainingSpaceBottom > 0;\n const canSetAtTop = remainingSpaceTop > 0;\n const canSetAtLeft = remainingSpaceLeft > 0;\n const canSetAtRight = remainingSpaceRight > 0;\n\n let validPosition: HelpPopoverPosition;\n if (canSetAtBottom && this.popoverPosition === 'bottom') {\n validPosition = 'bottom';\n } else if (canSetAtTop && this.popoverPosition === 'top') {\n validPosition = 'top';\n } else if (canSetAtLeft && this.popoverPosition === 'left') {\n validPosition = 'left';\n } else if (canSetAtRight && this.popoverPosition === 'right') {\n validPosition = 'right';\n }\n\n const needUseOtherPosition = !validPosition;\n if (needUseOtherPosition) {\n const freePositions: { position: HelpPopoverPosition, freeDistance: number }[] = [\n {\n position: 'bottom' as HelpPopoverPosition,\n freeDistance: remainingSpaceBottom,\n },\n {\n position: 'top' as HelpPopoverPosition,\n freeDistance: remainingSpaceTop,\n }\n ].filter((x) => x.freeDistance > 0);\n\n if (freePositions.length === 0) {\n return this.popoverPosition;\n }\n const itemWithMaxFreeDistance = freePositions.sort((a, b) => b.freeDistance - a.freeDistance)[0];\n return itemWithMaxFreeDistance.position;\n } else {\n return this.popoverPosition;\n }\n }\n}\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '../button/button.module';\nimport { HelpPopoverDirective } from './help-popover.directive';\nimport { HelpPopoverComponent } from './help-popover/help-popover.component';\n\n@NgModule({\n declarations: [HelpPopoverComponent, HelpPopoverDirective],\n imports: [\n CommonModule,\n ButtonModule,\n ],\n exports: [HelpPopoverDirective]\n})\nexport class HelpPopoverModule { }\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { ToastComponent } from \"./toast.component\";\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ToastComponent],\n})\nexport class ToastModule {}\n","export const fallback: any = {\n \"platform.angular_components.attachment\": \"anexo\",\n \"platform.angular_components.watch\": \"assistir\",\n \"platform.angular_components.view\": \"visualizar\",\n \"platform.angular_components.listen\": \"ouvir\",\n \"platform.angular_components.drag_your_photo_or\": \"Arraste sua foto ou\",\n \"platform.angular_components.select_a_file\": \"selecione um arquivo\",\n \"platform.angular_components.change_photo\": \"Alterar foto\",\n \"platform.angular_components.remove_image\": \"Remover imagem\",\n \"platform.angular_components.confirmation_remove_image\": \"Deseja remover a imagem? Não pode ser revertida.\",\n \"platform.angular_components.strong\": \"Forte\",\n \"platform.angular_components.medium\": \"Média\",\n \"platform.angular_components.weak\": \"Fraca\",\n \"platform.angular_components.invalid_value\": \"Valor inválido\",\n \"platform.angular_components.insight_intro\": \"Olá! Aqui você encontrará insights valiosos a partir dos seus dados\",\n \"platform.angular_components.insight_empty\": \"Ainda não há Insights na página\",\n \"platform.angular_components.error_loading_insight_alt\": \"Não foi possível carregar o insight no momento. Por favor, verifique sua conexão com a internet e tente novamente.\",\n \"platform.angular_components.loading_insight\": \"Carregando insight valioso...\",\n \"platform.angular_components.insight_no_permission\": \"Olá! Você não possui acesso à página de insights. Entre em contato com o administrador para saber mais\",\n \"platform.angular_components.count_items_in_target\": \"{{ count }} itens em {{ target }}\",\n \"platform.angular_components.count_items_selected\": \"{{ count }} itens selecionados\",\n \"platform.angular_components.january\": \"Janeiro\",\n \"platform.angular_components.february\": \"Fevereiro\",\n \"platform.angular_components.march\": \"Março\",\n \"platform.angular_components.april\": \"Abril\",\n \"platform.angular_components.may\": \"Maio\",\n \"platform.angular_components.june\": \"Junho\",\n \"platform.angular_components.july\": \"Julho\",\n \"platform.angular_components.august\": \"Agosto\",\n \"platform.angular_components.september\": \"Setembro\",\n \"platform.angular_components.october\": \"Outubro\",\n \"platform.angular_components.november\": \"Novembro\",\n \"platform.angular_components.december\": \"Dezembro\",\n \"platform.angular_components.january_short\": \"Jan\",\n \"platform.angular_components.february_short\": \"Fev\",\n \"platform.angular_components.march_short\": \"Mar\",\n \"platform.angular_components.april_short\": \"Abr\",\n \"platform.angular_components.may_short\": \"Mai\",\n \"platform.angular_components.june_short\": \"Jun\",\n \"platform.angular_components.july_short\": \"Jul\",\n \"platform.angular_components.august_short\": \"Ago\",\n \"platform.angular_components.september_short\": \"Set\",\n \"platform.angular_components.october_short\": \"Out\",\n \"platform.angular_components.november_short\": \"Nov\",\n \"platform.angular_components.december_short\": \"Dez\",\n \"platform.angular_components.sunday\": \"Domingo\",\n \"platform.angular_components.monday\": \"Segunda-feira\",\n \"platform.angular_components.tuesday\": \"Terça-feira\",\n \"platform.angular_components.wednesday\": \"Quarta-feira\",\n \"platform.angular_components.thursday\": \"Quinta-feira\",\n \"platform.angular_components.friday\": \"Sexta-feira\",\n \"platform.angular_components.saturday\": \"Sábado\",\n \"platform.angular_components.sunday_short\": \"Dom\",\n \"platform.angular_components.monday_short\": \"Seg\",\n \"platform.angular_components.tuesday_short\": \"Ter\",\n \"platform.angular_components.wednesday_short\": \"Qua\",\n \"platform.angular_components.thursday_short\": \"Qui\",\n \"platform.angular_components.friday_short\": \"Sex\",\n \"platform.angular_components.saturday_short\": \"Sáb\",\n \"platform.angular_components.sunday_min\": \"D\",\n \"platform.angular_components.monday_min\": \"S\",\n \"platform.angular_components.tuesday_min\": \"T\",\n \"platform.angular_components.wednesday_min\": \"Q\",\n \"platform.angular_components.thursday_min\": \"Q\",\n \"platform.angular_components.friday_min\": \"S\",\n \"platform.angular_components.saturday_min\": \"S\",\n \"platform.angular_components.today\": \"Hoje\",\n \"platform.angular_components.hour_format\": \"24\",\n \"platform.angular_components.date_format\": \"dd/mm/yy\",\n \"platform.angular_components.ia_text_generator\": \"Gerador de texto por IA\",\n \"platform.angular_components.attach_files\": \"Anexar arquivos\",\n \"platform.angular_components.add_information\": \"Adicionar informação\",\n \"platform.angular_components.add\": \"Adicionar\",\n \"platform.angular_components.edit\": \"Editar\",\n \"platform.angular_components.remove\": \"Remover\",\n \"platform.angular_components.save\": \"Salvar\",\n \"platform.angular_components.file_attached_successfully\": \"Arquivo anexado com sucesso\",\n \"platform.angular_components.loading_file\": \"Carregando arquivo\",\n \"platform.angular_components.iassist_text_generator\": \"IAssist Gerador de texto\",\n \"platform.angular_components.copied_to_clipboard\": \"Copiado para área de transferência\",\n \"platform.angular_components.copy_field_content\": \"Copiar conteúdo preenchido\",\n \"platform.angular_components.generate_text\": \"Gerar texto\",\n \"platform.angular_components.context\": \"Contexto\",\n \"platform.angular_components.filters\": \"Filtros\",\n \"platform.angular_components.filter\": \"Filtrar\",\n \"platform.angular_components.clear\": \"Limpar\",\n \"platform.angular_components.cancel\": \"Cancelar\",\n \"platform.angular_components.select\": \"Selecionar\",\n \"platform.angular_components.not_informed\": \"Não informado\",\n \"platform.angular_components.advanced_search\": \"Pesquisa avançada\",\n \"platform.angular_components.no_records_found\": \"Nenhum registro encontrado\",\n \"platform.angular_components.total_record\": \"{{ count }} registro encontrado\",\n \"platform.angular_components.total_records\": \"{{ count }} registros encontrados\",\n \"platform.angular_components.total_records_selected\": \"{0} registros selecionados\",\n \"platform.angular_components.country_name_br\": \"Brasil\",\n \"platform.angular_components.country_name_us\": \"Estados Unidos\",\n \"platform.angular_components.country_name_co\": \"Colômbia\",\n \"platform.angular_components.country_name_ar\": \"Argentina\",\n \"platform.angular_components.country_name_cl\": \"Chile\",\n \"platform.angular_components.country_name_py\": \"Paraguai\",\n \"platform.angular_components.country_name_uy\": \"Uruguai\",\n \"platform.angular_components.country_name_cn\": \"China\",\n \"platform.angular_components.country_name_ca\": \"Canadá\",\n \"platform.angular_components.country_name_as\": \"Samoa Americana\",\n \"platform.angular_components.country_name_ai\": \"Anguilla\",\n \"platform.angular_components.country_name_ag\": \"Antígua e Barbuda\",\n \"platform.angular_components.country_name_bs\": \"Bahamas\",\n \"platform.angular_components.country_name_bb\": \"Barbados\",\n \"platform.angular_components.country_name_bm\": \"Bermuda\",\n \"platform.angular_components.country_name_vg\": \"Ilhas Virgens Britânicas\",\n \"platform.angular_components.country_name_ky\": \"Ilhas Cayman\",\n \"platform.angular_components.country_name_dm\": \"Dominica\",\n \"platform.angular_components.country_name_do\": \"República Dominicana\",\n \"platform.angular_components.country_name_gd\": \"Granada\",\n \"platform.angular_components.country_name_gu\": \"Guam\",\n \"platform.angular_components.country_name_jm\": \"Jamaica\",\n \"platform.angular_components.country_name_ms\": \"Montserrat\",\n \"platform.angular_components.country_name_mp\": \"Ilhas Mariana do Norte\",\n \"platform.angular_components.country_name_pr\": \"Porto Rico\",\n \"platform.angular_components.country_name_kn\": \"Saint Kitts and Nevis\",\n \"platform.angular_components.country_name_lc\": \"Saint Lucia\",\n \"platform.angular_components.country_name_vc\": \"Saint Vincent and the Grenadines\",\n \"platform.angular_components.country_name_tt\": \"Trinidad e Tobago\",\n \"platform.angular_components.country_name_tc\": \"Ilhas Turcas e Caicos\",\n \"platform.angular_components.country_name_fi\": \"Finlândia\",\n \"platform.angular_components.country_name_rs\": \"Sérvia\",\n \"platform.angular_components.country_name_zm\": \"Zâmbia\",\n \"platform.angular_components.country_name_af\": \"Afghanistão\",\n \"platform.angular_components.country_name_al\": \"Albânia\",\n \"platform.angular_components.country_name_hr\": \"Croácia\",\n \"platform.angular_components.country_name_ec\": \"Equador\",\n \"platform.angular_components.country_name_et\": \"Etiópia\",\n \"platform.angular_components.country_name_gh\": \"Gana\",\n \"platform.angular_components.country_name_gr\": \"Grécia\",\n \"platform.angular_components.country_name_ie\": \"Irlanda\",\n \"platform.angular_components.country_name_it\": \"Itália\",\n \"platform.angular_components.country_name_lr\": \"Libéria\",\n \"platform.angular_components.country_name_na\": \"Namíbia\",\n \"platform.angular_components.country_name_nz\": \"Nova Zelândia\",\n \"platform.angular_components.country_name_sa\": \"Arábia Saudita\",\n \"platform.angular_components.country_name_za\": \"África do Sul\",\n \"platform.angular_components.country_name_lk\": \"Sri Lanka\",\n \"platform.angular_components.country_name_sd\": \"Sudão\",\n \"platform.angular_components.country_name_th\": \"Tailândia\",\n \"platform.angular_components.country_name_ua\": \"Ucrânia\",\n \"platform.angular_components.country_name_ae\": \"Emirados Árabes Unidos\",\n \"platform.angular_components.country_name_va\": \"Vaticano\",\n \"platform.angular_components.country_name_zw\": \"Zimbábue\",\n \"platform.angular_components.country_name_dz\": \"Argélia\",\n \"platform.angular_components.country_name_be\": \"Bélgica\",\n \"platform.angular_components.country_name_yt\": \"Mayotte\",\n \"platform.angular_components.country_name_bl\": \"Saint Barthelemy\",\n \"platform.angular_components.country_name_mf\": \"Saint Martin\",\n \"platform.angular_components.country_name_ad\": \"Andora\",\n \"platform.angular_components.country_name_ao\": \"Angola\",\n \"platform.angular_components.country_name_ba\": \"Bósnia e Herzegovina\",\n \"platform.angular_components.country_name_bg\": \"Bulgária\",\n \"platform.angular_components.country_name_kh\": \"Camboja\",\n \"platform.angular_components.country_name_cz\": \"República Checa\",\n \"platform.angular_components.country_name_gq\": \"Guiné Equatorial\",\n \"platform.angular_components.country_name_gw\": \"Guiné-Bissau\",\n \"platform.angular_components.country_name_li\": \"Liechtenstein\",\n \"platform.angular_components.country_name_lu\": \"Luxemburgo\",\n \"platform.angular_components.country_name_mk\": \"Macedónia\",\n \"platform.angular_components.country_name_me\": \"Montenegro\",\n \"platform.angular_components.country_name_pe\": \"Peru\",\n \"platform.angular_components.country_name_pl\": \"Polónia\",\n \"platform.angular_components.country_name_pt\": \"Portugal\",\n \"platform.angular_components.country_name_si\": \"Slovenia\",\n \"platform.angular_components.country_name_am\": \"Arménia\",\n \"platform.angular_components.country_name_aw\": \"Aruba\",\n \"platform.angular_components.country_name_bn\": \"Brunei\",\n \"platform.angular_components.country_name_fj\": \"Fiji\",\n \"platform.angular_components.country_name_gm\": \"Gâmbia\",\n \"platform.angular_components.country_name_gy\": \"Guiana\",\n \"platform.angular_components.country_name_is\": \"Islândia\",\n \"platform.angular_components.country_name_fm\": \"Micronésia\",\n \"platform.angular_components.country_name_nr\": \"Nauru\",\n \"platform.angular_components.country_name_nu\": \"Niue\",\n \"platform.angular_components.country_name_pw\": \"Palau\",\n \"platform.angular_components.country_name_st\": \"Sao Tome e Principe\",\n \"platform.angular_components.country_name_to\": \"Tonga\",\n \"platform.angular_components.country_name_vu\": \"Vanuatu\",\n \"platform.angular_components.country_name_fk\": \"Ilhas Falkland (Malvinas)\",\n \"platform.angular_components.country_name_fo\": \"Ilhas Feroé\",\n \"platform.angular_components.country_name_sh\": \"Saint Helena\",\n \"platform.angular_components.country_name_au\": \"Austrália\",\n \"platform.angular_components.country_name_cx\": \"Christmas Island\",\n \"platform.angular_components.country_name_cc\": \"Ilhas Cocos (Keeling)\",\n \"platform.angular_components.country_name_cd\": \"República Democrática do Congo\",\n \"platform.angular_components.country_name_kg\": \"Quirguistão\",\n \"platform.angular_components.country_name_ro\": \"Roménia\",\n \"platform.angular_components.country_name_rw\": \"Ruanda\",\n \"platform.angular_components.country_name_sk\": \"Slovakia\",\n \"platform.angular_components.country_name_sy\": \"Syria\",\n \"platform.angular_components.country_name_tw\": \"Taiwan\",\n \"platform.angular_components.country_name_tz\": \"Tanzânia\",\n \"platform.angular_components.country_name_ye\": \"Iémen (Iémen, Yemen)\",\n \"platform.angular_components.country_name_at\": \"Áustria\",\n \"platform.angular_components.country_name_ke\": \"Quénia (Kenya)\",\n \"platform.angular_components.country_name_ug\": \"Uganda\",\n \"platform.angular_components.country_name_az\": \"Azerbaijão\",\n \"platform.angular_components.country_name_ch\": \"Suiça\",\n \"platform.angular_components.country_name_vn\": \"Vietnã (Vietname)\",\n \"platform.angular_components.country_name_bh\": \"Bahrein\",\n \"platform.angular_components.country_name_cr\": \"Costa Rica\",\n \"platform.angular_components.country_name_sv\": \"El Salvador\",\n \"platform.angular_components.country_name_ee\": \"Estónia\",\n \"platform.angular_components.country_name_sz\": \"Suazilândia\",\n \"platform.angular_components.country_name_gt\": \"Guatemala\",\n \"platform.angular_components.country_name_hk\": \"Hong Kong\",\n \"platform.angular_components.country_name_ls\": \"Lesoto\",\n \"platform.angular_components.country_name_mo\": \"Macau\",\n \"platform.angular_components.country_name_mt\": \"Malta\",\n \"platform.angular_components.country_name_mu\": \"Maurícia\",\n \"platform.angular_components.country_name_mn\": \"Mongólia\",\n \"platform.angular_components.country_name_ni\": \"Nicaragua\",\n \"platform.angular_components.country_name_om\": \"Omã\",\n \"platform.angular_components.country_name_pg\": \"Papua-Nova Guiné\",\n \"platform.angular_components.country_name_qa\": \"Catar\",\n \"platform.angular_components.country_name_sg\": \"Cingapura\",\n \"platform.angular_components.country_name_tl\": \"Timor-Leste\",\n \"platform.angular_components.country_name_bd\": \"Bangladesh\",\n \"platform.angular_components.country_name_im\": \"Ilha de Man\",\n \"platform.angular_components.country_name_by\": \"Bielorrússia\",\n \"platform.angular_components.country_name_bz\": \"Belize\",\n \"platform.angular_components.country_name_mv\": \"Maldivas\",\n \"platform.angular_components.country_name_mh\": \"Ilhas Marshall\",\n \"platform.angular_components.country_name_sr\": \"Suriname\",\n \"platform.angular_components.country_name_bj\": \"Benim\",\n \"platform.angular_components.country_name_bt\": \"Butão\",\n \"platform.angular_components.country_name_bf\": \"Burkina Faso\",\n \"platform.angular_components.country_name_bi\": \"Burundi\",\n \"platform.angular_components.country_name_cf\": \"República Centro-Africana\",\n \"platform.angular_components.country_name_td\": \"Chad\",\n \"platform.angular_components.country_name_ci\": \"Costa do Marfim\",\n \"platform.angular_components.country_name_dk\": \"Dinamarca\",\n \"platform.angular_components.country_name_dj\": \"Djibouti\",\n \"platform.angular_components.country_name_fr\": \"França\",\n \"platform.angular_components.country_name_pf\": \"Polinésia Francesa\",\n \"platform.angular_components.country_name_ga\": \"Gabão\",\n \"platform.angular_components.country_name_ml\": \"Mali\",\n \"platform.angular_components.country_name_mr\": \"Mauritânia\",\n \"platform.angular_components.country_name_ne\": \"Níger\",\n \"platform.angular_components.country_name_sm\": \"San Marino\",\n \"platform.angular_components.country_name_tg\": \"Togo\",\n \"platform.angular_components.country_name_bo\": \"Bolívia\",\n \"platform.angular_components.country_name_gi\": \"Gibraltar\",\n \"platform.angular_components.country_name_ki\": \"Kiribati\",\n \"platform.angular_components.country_name_tv\": \"Tuvalu\",\n \"platform.angular_components.country_name_bw\": \"Botswana\",\n \"platform.angular_components.country_name_er\": \"Eritreia\",\n \"platform.angular_components.country_name_lv\": \"Letônia\",\n \"platform.angular_components.country_name_lb\": \"Líbano\",\n \"platform.angular_components.country_name_tn\": \"Tunísia\",\n \"platform.angular_components.country_name_cm\": \"Camarões\",\n \"platform.angular_components.country_name_cv\": \"Cabo Verde\",\n \"platform.angular_components.country_name_km\": \"Comores\",\n \"platform.angular_components.country_name_pm\": \"Saint Pierre and Miquelon\",\n \"platform.angular_components.country_name_cg\": \"República do Congo\",\n \"platform.angular_components.country_name_mz\": \"Moçambique\",\n \"platform.angular_components.country_name_mm\": \"Myanmar (Burma)\",\n \"platform.angular_components.country_name_ck\": \"Ilhas Cook\",\n \"platform.angular_components.country_name_cu\": \"Cuba\",\n \"platform.angular_components.country_name_cy\": \"Chipre\",\n \"platform.angular_components.country_name_eg\": \"Egito\",\n \"platform.angular_components.country_name_ir\": \"Irã\",\n \"platform.angular_components.country_name_iq\": \"Iraque\",\n \"platform.angular_components.country_name_ng\": \"Nigéria\",\n \"platform.angular_components.country_name_kp\": \"Coreia do Norte\",\n \"platform.angular_components.country_name_ph\": \"Filipinas\",\n \"platform.angular_components.country_name_ge\": \"Geórgia\",\n \"platform.angular_components.country_name_gn\": \"Guiné\",\n \"platform.angular_components.country_name_es\": \"Espanha\",\n \"platform.angular_components.country_name_de\": \"Alemanha\",\n \"platform.angular_components.country_name_gl\": \"Groelândia\",\n \"platform.angular_components.country_name_wf\": \"Wallis e Futuna\",\n \"platform.angular_components.country_name_ht\": \"Haiti\",\n \"platform.angular_components.country_name_hn\": \"Honduras\",\n \"platform.angular_components.country_name_pa\": \"Panamá\",\n \"platform.angular_components.country_name_hu\": \"Hungria\",\n \"platform.angular_components.country_name_in\": \"India\",\n \"platform.angular_components.country_name_id\": \"Indonésia\",\n \"platform.angular_components.country_name_il\": \"Israel\",\n \"platform.angular_components.country_name_jp\": \"Japão\",\n \"platform.angular_components.country_name_jo\": \"Jordânia\",\n \"platform.angular_components.country_name_kz\": \"Cazaquistão\",\n \"platform.angular_components.country_name_kw\": \"Kuwait\",\n \"platform.angular_components.country_name_la\": \"Laos\",\n \"platform.angular_components.country_name_ly\": \"Líbia\",\n \"platform.angular_components.country_name_lt\": \"Lituânia\",\n \"platform.angular_components.country_name_np\": \"Nepal\",\n \"platform.angular_components.country_name_mg\": \"Madagáscar\",\n \"platform.angular_components.country_name_mw\": \"Malawi\",\n \"platform.angular_components.country_name_my\": \"Malásia\",\n \"platform.angular_components.country_name_mx\": \"México\",\n \"platform.angular_components.country_name_md\": \"Moldávia\",\n \"platform.angular_components.country_name_mc\": \"Monaco\",\n \"platform.angular_components.country_name_ma\": \"Marrocos\",\n \"platform.angular_components.country_name_nl\": \"Países Baixos\",\n \"platform.angular_components.country_name_nc\": \"Nova Caledônia\",\n \"platform.angular_components.country_name_no\": \"Noruega\",\n \"platform.angular_components.country_name_pk\": \"Paquistão\",\n \"platform.angular_components.country_name_ru\": \"Rússia\",\n \"platform.angular_components.country_name_ws\": \"Samoa\",\n \"platform.angular_components.country_name_sb\": \"Ilhas Salomão\",\n \"platform.angular_components.country_name_sn\": \"Senegal\",\n \"platform.angular_components.country_name_sc\": \"Seychelles\",\n \"platform.angular_components.country_name_sl\": \"Serra Leoa\",\n \"platform.angular_components.country_name_so\": \"Somalia\",\n \"platform.angular_components.country_name_kr\": \"Coreia do Sul\",\n \"platform.angular_components.country_name_se\": \"Suécia\",\n \"platform.angular_components.country_name_tj\": \"Tajiquistão\",\n \"platform.angular_components.country_name_tk\": \"Tokelau\",\n \"platform.angular_components.country_name_tr\": \"Turquia\",\n \"platform.angular_components.country_name_tm\": \"Turquemenistão\",\n \"platform.angular_components.country_name_uz\": \"Uzbequistão\",\n \"platform.angular_components.country_name_ve\": \"Venezuela\",\n \"platform.angular_components.date_modified_custom_blob\": \"Enviado às {{hour}}:{{minutes}} de {{day}}/{{month}}/{{fullYear}}\",\n \"platform.angular_components.available-items\": \"Itens disponíveis\",\n \"platform.angular_components.selected-items\": \"Itens selecionados\",\n \"platform.angular_components.picklist-placeholder\": \"Busque pelo nome ou termo\",\n \"platform.angular_components.add_all\": \"Adicionar todos\",\n \"platform.angular_components.remove_all\": \"Remover todos\",\n \"platform.angular_components.country_name_gb\": \"Reino Unido\",\n \"platform.angular_components.insight_footer\": \"Conteúdo gerado por inteligência artificial. Sujeito a imprecisões.\"\n};\n"]}