@seniorsistemas/angular-components 17.26.6 → 17.26.7-feature-sds-110-87b741ef

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 (2549) hide show
  1. package/README.md +25 -0
  2. package/accordion/index.d.ts +5 -0
  3. package/accordion/lib/accordion/accordion.component.d.ts +21 -0
  4. package/accordion/lib/accordion/accordion.module.d.ts +12 -0
  5. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +30 -0
  6. package/accordion/lib/accordion/models/accordion-button-settings.d.ts +5 -0
  7. package/accordion/package.json +3 -0
  8. package/accordion/public-api.d.ts +3 -0
  9. package/alert/index.d.ts +5 -0
  10. package/alert/lib/alert/alert.component.d.ts +16 -0
  11. package/alert/lib/alert/alert.module.d.ts +8 -0
  12. package/alert/package.json +3 -0
  13. package/alert/public-api.d.ts +2 -0
  14. package/badge/index.d.ts +5 -0
  15. package/badge/lib/badge/badge.component.d.ts +21 -0
  16. package/badge/lib/badge/badge.module.d.ts +10 -0
  17. package/badge/lib/badge/types/badge-colors.d.ts +1 -0
  18. package/badge/lib/badge/types/badge-types.d.ts +1 -0
  19. package/badge/package.json +3 -0
  20. package/badge/public-api.d.ts +4 -0
  21. package/bignumber-input/index.d.ts +5 -0
  22. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +42 -0
  23. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +8 -0
  24. package/bignumber-input/package.json +3 -0
  25. package/bignumber-input/public-api.d.ts +2 -0
  26. package/breadcrumb/index.d.ts +5 -0
  27. package/breadcrumb/lib/breadcrumb/breadcrumb.component.d.ts +25 -0
  28. package/breadcrumb/lib/breadcrumb/breadcrumb.module.d.ts +10 -0
  29. package/breadcrumb/package.json +3 -0
  30. package/breadcrumb/public-api.d.ts +2 -0
  31. package/button/index.d.ts +5 -0
  32. package/button/lib/button/button.component.d.ts +35 -0
  33. package/button/lib/button/button.module.d.ts +12 -0
  34. package/button/lib/button/models/button-animations.d.ts +1 -0
  35. package/button/lib/button/models/button-badge-config.d.ts +6 -0
  36. package/button/lib/button/models/button-priority.d.ts +1 -0
  37. package/button/lib/button/models/button-size.d.ts +1 -0
  38. package/button/lib/button/models/index.d.ts +4 -0
  39. package/button/package.json +3 -0
  40. package/button/public-api.d.ts +3 -0
  41. package/calendar-mask/index.d.ts +5 -0
  42. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +69 -0
  43. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +8 -0
  44. package/calendar-mask/package.json +3 -0
  45. package/calendar-mask/public-api.d.ts +2 -0
  46. package/card/index.d.ts +5 -0
  47. package/card/lib/card/card.component.d.ts +26 -0
  48. package/card/lib/card/card.module.d.ts +9 -0
  49. package/card/package.json +3 -0
  50. package/card/public-api.d.ts +2 -0
  51. package/chat/index.d.ts +5 -0
  52. package/chat/lib/chat/chat.component.d.ts +11 -0
  53. package/chat/lib/chat/chat.module.d.ts +11 -0
  54. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +11 -0
  55. package/chat/lib/chat/types/chat-message.d.ts +8 -0
  56. package/chat/package.json +3 -0
  57. package/chat/public-api.d.ts +3 -0
  58. package/checkbox/index.d.ts +5 -0
  59. package/checkbox/lib/checkbox/checkbox.component.d.ts +21 -0
  60. package/checkbox/lib/checkbox/checkbox.module.d.ts +9 -0
  61. package/checkbox/lib/checkbox/models/checkbox-state.d.ts +7 -0
  62. package/checkbox/package.json +3 -0
  63. package/checkbox/public-api.d.ts +4 -0
  64. package/chips/index.d.ts +5 -0
  65. package/chips/lib/chips/chip-item/chip-item.component.d.ts +25 -0
  66. package/chips/lib/chips/chips/chips.component.d.ts +66 -0
  67. package/chips/lib/chips/chips.module.d.ts +12 -0
  68. package/chips/lib/chips/models/chip-models.d.ts +7 -0
  69. package/chips/package.json +3 -0
  70. package/chips/public-api.d.ts +3 -0
  71. package/code-editor/index.d.ts +5 -0
  72. package/code-editor/lib/code-editor/code-editor.component.d.ts +30 -0
  73. package/code-editor/lib/code-editor/code-editor.module.d.ts +9 -0
  74. package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +32 -0
  75. package/code-editor/lib/code-editor/core/use-cases/core-linters.d.ts +6 -0
  76. package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +26 -0
  77. 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 +15 -0
  78. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.d.ts +6 -0
  79. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.d.ts +12 -0
  80. package/code-editor/lib/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.d.ts +8 -0
  81. package/code-editor/lib/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.d.ts +1 -0
  82. package/code-editor/lib/code-editor/infra/cores/codemirror-6/models/types/editor-theme.d.ts +3 -0
  83. package/code-editor/lib/code-editor/infra/utils/custom-http-client/custom-http-client.d.ts +34 -0
  84. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations-service.d.ts +25 -0
  85. package/code-editor/lib/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +16 -0
  86. package/code-editor/package.json +3 -0
  87. package/code-editor/public-api.d.ts +4 -0
  88. package/collapse-link/index.d.ts +5 -0
  89. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +20 -0
  90. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +8 -0
  91. package/collapse-link/package.json +3 -0
  92. package/collapse-link/public-api.d.ts +2 -0
  93. package/common/index.d.ts +5 -0
  94. package/common/lib/angular-components.module.d.ts +13 -0
  95. package/common/lib/custom-http-client/custom-http-client.d.ts +34 -0
  96. package/common/lib/custom-http-client/json-response-formatters/format-blob-response.d.ts +6 -0
  97. package/common/lib/custom-http-client/json-response-formatters/format-json-response.d.ts +6 -0
  98. package/common/lib/debouce.d.ts +7 -0
  99. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +5 -0
  100. package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +5 -0
  101. package/common/lib/svg-factory/components/svg-factory-icons.d.ts +1 -0
  102. package/common/lib/svg-factory/index.d.ts +2 -0
  103. package/common/lib/svg-factory/svg-factory.directive.d.ts +15 -0
  104. package/common/lib/svg-factory/svg-factory.module.d.ts +10 -0
  105. package/common/package.json +3 -0
  106. package/common/public-api.d.ts +5 -0
  107. package/control-errors/index.d.ts +5 -0
  108. package/control-errors/lib/control-errors/control-errors.component.d.ts +26 -0
  109. package/control-errors/lib/control-errors/control-errors.module.d.ts +9 -0
  110. package/control-errors/package.json +3 -0
  111. package/control-errors/public-api.d.ts +2 -0
  112. package/country-phone-picker/index.d.ts +5 -0
  113. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +67 -0
  114. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +11 -0
  115. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.service.d.ts +13 -0
  116. package/country-phone-picker/lib/country-phone-picker/resources/countries.d.ts +2 -0
  117. package/country-phone-picker/package.json +3 -0
  118. package/country-phone-picker/public-api.d.ts +6 -0
  119. package/currency/index.d.ts +5 -0
  120. package/currency/lib/currency.service.d.ts +12 -0
  121. package/currency/lib/models/currencies.d.ts +634 -0
  122. package/currency/lib/types/currency.d.ts +2 -0
  123. package/currency/package.json +3 -0
  124. package/currency/public-api.d.ts +3 -0
  125. package/custom-fields/index.d.ts +5 -0
  126. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +86 -0
  127. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +13 -0
  128. package/custom-fields/lib/custom-fields/custom-fields.service.d.ts +20 -0
  129. package/custom-fields/package.json +3 -0
  130. package/custom-fields/public-api.d.ts +3 -0
  131. package/dynamic-form/index.d.ts +5 -0
  132. package/dynamic-form/lib/dynamic-form/components/field-label/field-label.component.d.ts +8 -0
  133. package/dynamic-form/lib/dynamic-form/components/grid/row/row.component.d.ts +15 -0
  134. package/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.d.ts +164 -0
  135. package/dynamic-form/lib/dynamic-form/components/lookup/types/default-filter.d.ts +4 -0
  136. package/dynamic-form/lib/dynamic-form/components/lookup/types/label-options.d.ts +13 -0
  137. package/dynamic-form/lib/dynamic-form/components/structure/base-structure-component.d.ts +8 -0
  138. package/dynamic-form/lib/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +12 -0
  139. package/dynamic-form/lib/dynamic-form/components/structure/section/section.component.d.ts +14 -0
  140. package/dynamic-form/lib/dynamic-form/configurations/grid/grid.d.ts +14 -0
  141. package/dynamic-form/lib/dynamic-form/configurations/grid/row.d.ts +8 -0
  142. package/dynamic-form/lib/dynamic-form/configurations/structure/fieldset.d.ts +10 -0
  143. package/dynamic-form/lib/dynamic-form/configurations/structure/section.d.ts +20 -0
  144. package/dynamic-form/lib/dynamic-form/configurations/structure/structure.d.ts +14 -0
  145. package/dynamic-form/lib/dynamic-form/dynamic-form.component.d.ts +19 -0
  146. package/dynamic-form/lib/dynamic-form/dynamic-form.d.ts +57 -0
  147. package/dynamic-form/lib/dynamic-form/dynamic-form.directive.d.ts +34 -0
  148. package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +81 -0
  149. package/dynamic-form/lib/dynamic-form/form-field/addon-config.d.ts +7 -0
  150. package/dynamic-form/lib/dynamic-form/form-field/configurations/field-type.d.ts +31 -0
  151. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/autocomplete-field.d.ts +30 -0
  152. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +38 -0
  153. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/blob-field.d.ts +43 -0
  154. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/boolean-field.d.ts +29 -0
  155. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/boolean-switch-field.d.ts +11 -0
  156. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/button-field.d.ts +34 -0
  157. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/calendar-field.d.ts +45 -0
  158. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +9 -0
  159. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/chips-field.d.ts +24 -0
  160. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/country-phone-picker-field.d.ts +15 -0
  161. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/currency-field.d.ts +9 -0
  162. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/decimal-field.d.ts +14 -0
  163. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/field.d.ts +95 -0
  164. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/lookup-field.d.ts +95 -0
  165. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/number-field.d.ts +47 -0
  166. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/password-field.d.ts +45 -0
  167. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/profile-picture.d.ts +35 -0
  168. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/radio-button-field.d.ts +23 -0
  169. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/select-field.d.ts +39 -0
  170. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/slider-field.d.ts +32 -0
  171. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-area-field.d.ts +22 -0
  172. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-area-ia-field.d.ts +20 -0
  173. package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/text-field.d.ts +41 -0
  174. package/dynamic-form/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +17 -0
  175. package/dynamic-form/lib/dynamic-form/form-field/fields/base-field-component.d.ts +32 -0
  176. package/dynamic-form/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +27 -0
  177. package/dynamic-form/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.d.ts +11 -0
  178. package/dynamic-form/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.d.ts +10 -0
  179. package/dynamic-form/lib/dynamic-form/form-field/fields/button-field/button-field.component.d.ts +10 -0
  180. package/dynamic-form/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +35 -0
  181. package/dynamic-form/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.d.ts +10 -0
  182. package/dynamic-form/lib/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +22 -0
  183. package/dynamic-form/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +17 -0
  184. package/dynamic-form/lib/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +659 -0
  185. package/dynamic-form/lib/dynamic-form/form-field/fields/editor/editor-field.component.d.ts +10 -0
  186. package/dynamic-form/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.d.ts +19 -0
  187. package/dynamic-form/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.d.ts +9 -0
  188. package/dynamic-form/lib/dynamic-form/form-field/fields/number/number-field.component.d.ts +31 -0
  189. package/dynamic-form/lib/dynamic-form/form-field/fields/password/password-field.component.d.ts +22 -0
  190. package/dynamic-form/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.d.ts +9 -0
  191. package/dynamic-form/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.d.ts +17 -0
  192. package/dynamic-form/lib/dynamic-form/form-field/fields/select/select-field.component.d.ts +10 -0
  193. package/dynamic-form/lib/dynamic-form/form-field/fields/slider/slider-field.component.d.ts +25 -0
  194. package/dynamic-form/lib/dynamic-form/form-field/fields/text/text-field.component.d.ts +23 -0
  195. package/dynamic-form/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +14 -0
  196. package/dynamic-form/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.d.ts +11 -0
  197. package/dynamic-form/lib/dynamic-form/form-field/form-field.d.ts +192 -0
  198. package/dynamic-form/lib/dynamic-form/services/dynamic-form-cache.d.ts +12 -0
  199. package/dynamic-form/package.json +3 -0
  200. package/dynamic-form/public-api.d.ts +20 -0
  201. package/editable-overlay/index.d.ts +5 -0
  202. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +11 -0
  203. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +8 -0
  204. package/editable-overlay/package.json +3 -0
  205. package/editable-overlay/public-api.d.ts +2 -0
  206. package/empty-state/index.d.ts +5 -0
  207. package/empty-state/lib/empty-state/empty-state.component.d.ts +21 -0
  208. package/empty-state/lib/empty-state/empty-state.module.d.ts +10 -0
  209. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +13 -0
  210. package/empty-state/package.json +3 -0
  211. package/empty-state/public-api.d.ts +3 -0
  212. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +244 -0
  213. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -0
  214. package/fesm2022/seniorsistemas-angular-components-alert.mjs +66 -0
  215. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -0
  216. package/fesm2022/seniorsistemas-angular-components-badge.mjs +70 -0
  217. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -0
  218. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +172 -0
  219. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -0
  220. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +128 -0
  221. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -0
  222. package/fesm2022/seniorsistemas-angular-components-button.mjs +135 -0
  223. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -0
  224. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +633 -0
  225. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -0
  226. package/fesm2022/seniorsistemas-angular-components-card.mjs +107 -0
  227. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -0
  228. package/fesm2022/seniorsistemas-angular-components-chat.mjs +78 -0
  229. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -0
  230. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +151 -0
  231. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -0
  232. package/fesm2022/seniorsistemas-angular-components-chips.mjs +327 -0
  233. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -0
  234. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +1442 -0
  235. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -0
  236. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +103 -0
  237. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -0
  238. package/fesm2022/seniorsistemas-angular-components-common.mjs +246 -0
  239. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -0
  240. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +75 -0
  241. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -0
  242. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +631 -0
  243. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -0
  244. package/fesm2022/seniorsistemas-angular-components-currency.mjs +193 -0
  245. package/fesm2022/seniorsistemas-angular-components-currency.mjs.map +1 -0
  246. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +783 -0
  247. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -0
  248. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +3749 -0
  249. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -0
  250. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +66 -0
  251. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -0
  252. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +107 -0
  253. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -0
  254. package/fesm2022/seniorsistemas-angular-components-file-upload.mjs +333 -0
  255. package/fesm2022/seniorsistemas-angular-components-file-upload.mjs.map +1 -0
  256. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +1748 -0
  257. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -0
  258. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +288 -0
  259. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -0
  260. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +72 -0
  261. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -0
  262. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +422 -0
  263. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -0
  264. package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs +243 -0
  265. package/fesm2022/seniorsistemas-angular-components-ia-insight.mjs.map +1 -0
  266. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +268 -0
  267. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -0
  268. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +50 -0
  269. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -0
  270. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +105 -0
  271. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -0
  272. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +679 -0
  273. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -0
  274. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +456 -0
  275. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -0
  276. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +61 -0
  277. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -0
  278. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +185 -0
  279. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -0
  280. package/fesm2022/seniorsistemas-angular-components-locale.mjs +409 -0
  281. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -0
  282. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +85 -0
  283. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -0
  284. package/fesm2022/seniorsistemas-angular-components-mask.mjs +85 -0
  285. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -0
  286. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +116 -0
  287. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -0
  288. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +158 -0
  289. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -0
  290. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +189 -0
  291. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -0
  292. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +139 -0
  293. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -0
  294. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +321 -0
  295. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -0
  296. package/fesm2022/seniorsistemas-angular-components-panel.mjs +113 -0
  297. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -0
  298. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +321 -0
  299. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -0
  300. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +339 -0
  301. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -0
  302. package/fesm2022/seniorsistemas-angular-components-product-header.mjs +68 -0
  303. package/fesm2022/seniorsistemas-angular-components-product-header.mjs.map +1 -0
  304. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +334 -0
  305. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -0
  306. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +152 -0
  307. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -0
  308. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +81 -0
  309. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -0
  310. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +172 -0
  311. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -0
  312. package/fesm2022/seniorsistemas-angular-components-shared.mjs +82 -0
  313. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -0
  314. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +118 -0
  315. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -0
  316. package/fesm2022/seniorsistemas-angular-components-slide-panel.mjs +182 -0
  317. package/fesm2022/seniorsistemas-angular-components-slide-panel.mjs.map +1 -0
  318. package/fesm2022/seniorsistemas-angular-components-slider.mjs +624 -0
  319. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -0
  320. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +390 -0
  321. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -0
  322. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +86 -0
  323. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -0
  324. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +142 -0
  325. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -0
  326. package/fesm2022/seniorsistemas-angular-components-steps.mjs +145 -0
  327. package/fesm2022/seniorsistemas-angular-components-steps.mjs.map +1 -0
  328. package/fesm2022/seniorsistemas-angular-components-structure.mjs +48 -0
  329. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -0
  330. package/fesm2022/seniorsistemas-angular-components-switch.mjs +115 -0
  331. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -0
  332. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +175 -0
  333. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -0
  334. package/fesm2022/seniorsistemas-angular-components-table.mjs +953 -0
  335. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -0
  336. package/fesm2022/seniorsistemas-angular-components-template.mjs +46 -0
  337. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -0
  338. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs +258 -0
  339. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs.map +1 -0
  340. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +156 -0
  341. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -0
  342. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +159 -0
  343. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -0
  344. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +182 -0
  345. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -0
  346. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +915 -0
  347. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -0
  348. package/fesm2022/seniorsistemas-angular-components-tile.mjs +89 -0
  349. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -0
  350. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +382 -0
  351. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -0
  352. package/fesm2022/seniorsistemas-angular-components-toast.mjs +132 -0
  353. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -0
  354. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +64 -0
  355. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -0
  356. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +387 -0
  357. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -0
  358. package/fesm2022/seniorsistemas-angular-components-utils.mjs +59 -0
  359. package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -0
  360. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +159 -0
  361. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -0
  362. package/fesm2022/seniorsistemas-angular-components.mjs +337 -0
  363. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -0
  364. package/file-upload/index.d.ts +5 -0
  365. package/file-upload/lib/file-upload/file-upload.component.d.ts +79 -0
  366. package/file-upload/lib/file-upload/file-upload.module.d.ts +12 -0
  367. package/file-upload/lib/file-upload/file-upload.service.d.ts +9 -0
  368. package/file-upload/lib/file-upload/models/file-dto.d.ts +13 -0
  369. package/file-upload/lib/file-upload/models/file-upload-permissions.d.ts +2 -0
  370. package/file-upload/lib/file-upload/models/uploadError.d.ts +6 -0
  371. package/file-upload/lib/file-upload/models/validate-errors.d.ts +1 -0
  372. package/file-upload/package.json +3 -0
  373. package/file-upload/public-api.d.ts +6 -0
  374. package/gantt/index.d.ts +5 -0
  375. package/gantt/lib/gantt/components/gantt/arrow.d.ts +16 -0
  376. package/gantt/lib/gantt/components/gantt/bar.d.ts +44 -0
  377. package/gantt/lib/gantt/components/gantt/gantt-options.d.ts +2 -0
  378. package/gantt/lib/gantt/components/gantt/gantt.d.ts +65 -0
  379. package/gantt/lib/gantt/components/gantt/popup.d.ts +15 -0
  380. package/gantt/lib/gantt/components/gantt/utils/svg-utils.d.ts +11 -0
  381. package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +13 -0
  382. package/gantt/lib/gantt/gantt.component.d.ts +33 -0
  383. package/gantt/lib/gantt/gantt.module.d.ts +10 -0
  384. package/gantt/lib/gantt/models/index.d.ts +2 -0
  385. package/gantt/lib/gantt/models/options.d.ts +26 -0
  386. package/gantt/package.json +3 -0
  387. package/gantt/public-api.d.ts +4 -0
  388. package/global-search/index.d.ts +5 -0
  389. package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +27 -0
  390. package/global-search/lib/global-search/global-search.component.d.ts +37 -0
  391. package/global-search/lib/global-search/global-search.module.d.ts +17 -0
  392. package/global-search/lib/global-search/types/global-search-size.enum.d.ts +1 -0
  393. package/global-search/package.json +3 -0
  394. package/global-search/public-api.d.ts +4 -0
  395. package/grid-menu/index.d.ts +5 -0
  396. package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +10 -0
  397. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +8 -0
  398. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +9 -0
  399. package/grid-menu/lib/grid-menu/types/grid-menu-item.d.ts +6 -0
  400. package/grid-menu/package.json +3 -0
  401. package/grid-menu/public-api.d.ts +4 -0
  402. package/help-popover/index.d.ts +5 -0
  403. package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +36 -0
  404. package/help-popover/lib/help-popover/help-popover.directive.d.ts +64 -0
  405. package/help-popover/lib/help-popover/help-popover.module.d.ts +10 -0
  406. package/help-popover/lib/help-popover/models/help-popover.models.d.ts +2 -0
  407. package/help-popover/package.json +3 -0
  408. package/help-popover/public-api.d.ts +5 -0
  409. package/ia-insight/index.d.ts +5 -0
  410. package/ia-insight/lib/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.d.ts +5 -0
  411. package/ia-insight/lib/ia-insight/components/ia-insight-card/ia-insight-card.component.d.ts +25 -0
  412. package/ia-insight/lib/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.d.ts +19 -0
  413. package/ia-insight/lib/ia-insight/ia-insight.component.d.ts +27 -0
  414. package/ia-insight/lib/ia-insight/ia-insight.module.d.ts +17 -0
  415. package/ia-insight/lib/ia-insight/models/ia-insight-item.d.ts +9 -0
  416. package/ia-insight/lib/ia-insight/models/ia-insight-template-types.d.ts +1 -0
  417. package/ia-insight/lib/ia-insight/models/index.d.ts +2 -0
  418. package/ia-insight/package.json +3 -0
  419. package/ia-insight/public-api.d.ts +3 -0
  420. package/image-cropper/index.d.ts +5 -0
  421. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +44 -0
  422. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +12 -0
  423. package/image-cropper/lib/image-cropper/image-cropper.service.d.ts +42 -0
  424. package/image-cropper/package.json +3 -0
  425. package/image-cropper/public-api.d.ts +3 -0
  426. package/infinite-scroll/index.d.ts +5 -0
  427. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +10 -0
  428. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +8 -0
  429. package/infinite-scroll/package.json +3 -0
  430. package/infinite-scroll/public-api.d.ts +2 -0
  431. package/info-sign/index.d.ts +5 -0
  432. package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +10 -0
  433. package/info-sign/lib/info-sign/info-sign.directive.d.ts +18 -0
  434. package/info-sign/lib/info-sign/info-sign.module.d.ts +10 -0
  435. package/info-sign/package.json +3 -0
  436. package/info-sign/public-api.d.ts +2 -0
  437. package/inline-edit/index.d.ts +5 -0
  438. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +21 -0
  439. package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +13 -0
  440. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +22 -0
  441. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +13 -0
  442. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +13 -0
  443. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.d.ts +13 -0
  444. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +30 -0
  445. package/inline-edit/lib/inline-edit/fields/index.d.ts +14 -0
  446. package/inline-edit/lib/inline-edit/fields/inline-edit-calendar-field.d.ts +44 -0
  447. package/inline-edit/lib/inline-edit/fields/inline-edit-field.d.ts +15 -0
  448. package/inline-edit/lib/inline-edit/fields/inline-edit-lookup-field.d.ts +79 -0
  449. package/inline-edit/lib/inline-edit/fields/inline-edit-number-field.d.ts +40 -0
  450. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +15 -0
  451. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +29 -0
  452. package/inline-edit/lib/inline-edit/types/addon-config.d.ts +7 -0
  453. package/inline-edit/package.json +3 -0
  454. package/inline-edit/public-api.d.ts +4 -0
  455. package/kanban/index.d.ts +5 -0
  456. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +23 -0
  457. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +21 -0
  458. package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +6 -0
  459. package/kanban/lib/kanban/kanban-event.service.d.ts +15 -0
  460. package/kanban/lib/kanban/kanban.component.d.ts +46 -0
  461. package/kanban/lib/kanban/kanban.module.d.ts +18 -0
  462. package/kanban/lib/kanban/types/index.d.ts +2 -0
  463. package/kanban/lib/kanban/types/kanban-data.d.ts +27 -0
  464. package/kanban/lib/kanban/types/kanban-template-types.d.ts +1 -0
  465. package/kanban/package.json +3 -0
  466. package/kanban/public-api.d.ts +3 -0
  467. package/label-value/index.d.ts +5 -0
  468. package/label-value/lib/label-value/label-value.component.d.ts +12 -0
  469. package/label-value/lib/label-value/label-value.module.d.ts +12 -0
  470. package/label-value/lib/label-value/types/label-value-configuration.d.ts +29 -0
  471. package/label-value/package.json +3 -0
  472. package/label-value/public-api.d.ts +3 -0
  473. package/loading-state/index.d.ts +5 -0
  474. package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +5 -0
  475. package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +5 -0
  476. package/loading-state/lib/loading-state/loading-state.component.d.ts +23 -0
  477. package/loading-state/lib/loading-state/loading-state.directive.d.ts +22 -0
  478. package/loading-state/lib/loading-state/loading-state.module.d.ts +12 -0
  479. package/loading-state/package.json +3 -0
  480. package/loading-state/public-api.d.ts +4 -0
  481. package/locale/index.d.ts +5 -0
  482. package/locale/lib/locale/locale.module.d.ts +19 -0
  483. package/locale/lib/locale/locale.service.d.ts +27 -0
  484. package/locale/lib/locale/options/calendar.d.ts +25 -0
  485. package/locale/lib/locale/options/index.d.ts +14 -0
  486. package/locale/lib/locale/options/number.d.ts +11 -0
  487. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +9 -0
  488. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +12 -0
  489. package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +11 -0
  490. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +22 -0
  491. package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +7 -0
  492. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +10 -0
  493. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +17 -0
  494. package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +7 -0
  495. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +10 -0
  496. package/locale/package.json +3 -0
  497. package/locale/public-api.d.ts +12 -0
  498. package/localized-number-input/index.d.ts +5 -0
  499. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +16 -0
  500. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +8 -0
  501. package/localized-number-input/package.json +3 -0
  502. package/localized-number-input/public-api.d.ts +2 -0
  503. package/mask/index.d.ts +5 -0
  504. package/mask/lib/mask/mask-formatter.module.d.ts +7 -0
  505. package/mask/lib/mask/mask-formatter.pipe.d.ts +8 -0
  506. package/mask/package.json +3 -0
  507. package/mask/public-api.d.ts +2 -0
  508. package/mouse-events/index.d.ts +5 -0
  509. package/mouse-events/lib/mouse-events/double-click.directive.d.ts +12 -0
  510. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +16 -0
  511. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +9 -0
  512. package/mouse-events/package.json +3 -0
  513. package/mouse-events/public-api.d.ts +3 -0
  514. package/navigation-button/index.d.ts +5 -0
  515. package/navigation-button/lib/navigation-button/models/index.d.ts +2 -0
  516. package/navigation-button/lib/navigation-button/models/navigation-button-step-changed-info.d.ts +5 -0
  517. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +33 -0
  518. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +10 -0
  519. package/navigation-button/package.json +3 -0
  520. package/navigation-button/public-api.d.ts +3 -0
  521. package/number-input/index.d.ts +5 -0
  522. package/number-input/lib/number-input/number-input.directive.d.ts +47 -0
  523. package/number-input/lib/number-input/number-input.module.d.ts +11 -0
  524. package/number-input/package.json +3 -0
  525. package/number-input/public-api.d.ts +2 -0
  526. package/numeric/index.d.ts +5 -0
  527. package/numeric/lib/numeric.module.d.ts +8 -0
  528. package/numeric/lib/numeric.pipe.d.ts +16 -0
  529. package/numeric/lib/numeric.service.d.ts +24 -0
  530. package/numeric/package.json +3 -0
  531. package/numeric/public-api.d.ts +3 -0
  532. package/object-card/index.d.ts +5 -0
  533. package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +20 -0
  534. package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +31 -0
  535. package/object-card/lib/object-card/object-card.component.d.ts +33 -0
  536. package/object-card/lib/object-card/object-card.module.d.ts +14 -0
  537. package/object-card/package.json +3 -0
  538. package/object-card/public-api.d.ts +4 -0
  539. package/package.json +563 -42
  540. package/panel/index.d.ts +5 -0
  541. package/panel/lib/panel/panel.component.d.ts +27 -0
  542. package/panel/lib/panel/panel.module.d.ts +10 -0
  543. package/panel/package.json +3 -0
  544. package/panel/public-api.d.ts +2 -0
  545. package/password-strength/index.d.ts +5 -0
  546. package/password-strength/lib/password-strength/password-strength.component.d.ts +23 -0
  547. package/password-strength/lib/password-strength/password-strength.directive.d.ts +30 -0
  548. package/password-strength/lib/password-strength/password-strength.module.d.ts +9 -0
  549. package/password-strength/lib/password-strength/types/password-positions.d.ts +1 -0
  550. package/password-strength/lib/password-strength/types/password-strengths.d.ts +1 -0
  551. package/password-strength/package.json +3 -0
  552. package/password-strength/public-api.d.ts +5 -0
  553. package/picklist/index.d.ts +5 -0
  554. package/picklist/lib/picklist/picklist.component.d.ts +74 -0
  555. package/picklist/lib/picklist/picklist.module.d.ts +12 -0
  556. package/picklist/lib/picklist/types/index.d.ts +2 -0
  557. package/picklist/lib/picklist/types/picklist-item.d.ts +4 -0
  558. package/picklist/lib/picklist/types/picklist-template-types.d.ts +1 -0
  559. package/picklist/package.json +3 -0
  560. package/picklist/public-api.d.ts +4 -0
  561. package/product-header/index.d.ts +5 -0
  562. package/product-header/lib/product-header/product-header.component.d.ts +15 -0
  563. package/product-header/lib/product-header/product-header.module.d.ts +10 -0
  564. package/product-header/package.json +3 -0
  565. package/product-header/public-api.d.ts +2 -0
  566. package/profile-picture-picker/index.d.ts +5 -0
  567. package/profile-picture-picker/lib/profile-picture-picker/models/file-validation-errors.d.ts +5 -0
  568. package/profile-picture-picker/lib/profile-picture-picker/models/index.d.ts +4 -0
  569. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +58 -0
  570. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +13 -0
  571. package/profile-picture-picker/lib/profile-picture-picker/validators/index.d.ts +1 -0
  572. package/profile-picture-picker/lib/profile-picture-picker/validators/validators.d.ts +7 -0
  573. package/profile-picture-picker/package.json +3 -0
  574. package/profile-picture-picker/public-api.d.ts +4 -0
  575. package/progressbar/index.d.ts +5 -0
  576. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +20 -0
  577. package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +8 -0
  578. package/progressbar/lib/progressbar/progressbar.component.d.ts +17 -0
  579. package/progressbar/lib/progressbar/progressbar.module.d.ts +10 -0
  580. package/progressbar/lib/progressbar/types/index.d.ts +2 -0
  581. package/progressbar/lib/progressbar/types/progressbar-colors.d.ts +1 -0
  582. package/progressbar/lib/progressbar/types/progressbar-mode.d.ts +1 -0
  583. package/progressbar/package.json +3 -0
  584. package/progressbar/public-api.d.ts +3 -0
  585. package/rating-scale/index.d.ts +5 -0
  586. package/rating-scale/lib/rating-scale/models/index.d.ts +1 -0
  587. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +18 -0
  588. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +9 -0
  589. package/rating-scale/package.json +3 -0
  590. package/rating-scale/public-api.d.ts +3 -0
  591. package/select-button/index.d.ts +5 -0
  592. package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +10 -0
  593. package/select-button/lib/select-button/select-button.component.d.ts +22 -0
  594. package/select-button/lib/select-button/select-button.module.d.ts +9 -0
  595. package/select-button/package.json +3 -0
  596. package/select-button/public-api.d.ts +3 -0
  597. package/shared/index.d.ts +5 -0
  598. package/shared/lib/shared/border-button/border-button.component.d.ts +9 -0
  599. package/shared/lib/shared/border-button/border-button.module.d.ts +9 -0
  600. package/shared/lib/shared/models/border-button-options.d.ts +9 -0
  601. package/shared/lib/shared/models/severities.d.ts +8 -0
  602. package/shared/package.json +3 -0
  603. package/shared/public-api.d.ts +6 -0
  604. package/sidebar/index.d.ts +5 -0
  605. package/sidebar/lib/sidebar/sidebar.component.d.ts +29 -0
  606. package/sidebar/lib/sidebar/sidebar.module.d.ts +10 -0
  607. package/sidebar/package.json +3 -0
  608. package/sidebar/public-api.d.ts +2 -0
  609. package/slide-panel/index.d.ts +5 -0
  610. package/slide-panel/lib/slide-panel/slide-panel.component.d.ts +32 -0
  611. package/slide-panel/lib/slide-panel/slide-panel.module.d.ts +8 -0
  612. package/slide-panel/lib/slide-panel/slide-panel.service.d.ts +10 -0
  613. package/slide-panel/package.json +3 -0
  614. package/slide-panel/public-api.d.ts +3 -0
  615. package/slider/index.d.ts +5 -0
  616. package/slider/lib/slider/slider.component.d.ts +97 -0
  617. package/slider/lib/slider/slider.module.d.ts +9 -0
  618. package/slider/package.json +3 -0
  619. package/slider/public-api.d.ts +2 -0
  620. package/speech-recognition/index.d.ts +5 -0
  621. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +48 -0
  622. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +9 -0
  623. package/speech-recognition/lib/speech-recognition/speech-recognition.service.d.ts +22 -0
  624. package/speech-recognition/lib/speech-recognition/text-to-speech.service.d.ts +26 -0
  625. package/speech-recognition/package.json +3 -0
  626. package/speech-recognition/public-api.d.ts +4 -0
  627. package/split-button/index.d.ts +5 -0
  628. package/split-button/lib/split-button/models/index.d.ts +2 -0
  629. package/split-button/lib/split-button/models/split-button-type.d.ts +1 -0
  630. package/split-button/lib/split-button/split-button.component.d.ts +22 -0
  631. package/split-button/lib/split-button/split-button.module.d.ts +8 -0
  632. package/split-button/package.json +3 -0
  633. package/split-button/public-api.d.ts +3 -0
  634. package/stats-card/index.d.ts +5 -0
  635. package/stats-card/lib/stats-card/stats-card.component.d.ts +28 -0
  636. package/stats-card/lib/stats-card/stats-card.module.d.ts +9 -0
  637. package/stats-card/package.json +3 -0
  638. package/stats-card/public-api.d.ts +2 -0
  639. package/steps/index.d.ts +5 -0
  640. package/steps/lib/steps/steps.component.d.ts +36 -0
  641. package/steps/lib/steps/steps.module.d.ts +9 -0
  642. package/steps/package.json +3 -0
  643. package/steps/public-api.d.ts +2 -0
  644. package/structure/index.d.ts +5 -0
  645. package/structure/lib/structure/footer.component.d.ts +5 -0
  646. package/structure/lib/structure/header.component.d.ts +5 -0
  647. package/structure/lib/structure/structure.module.d.ts +9 -0
  648. package/structure/package.json +3 -0
  649. package/structure/public-api.d.ts +4 -0
  650. package/switch/index.d.ts +5 -0
  651. package/switch/lib/switch/switch.component.d.ts +25 -0
  652. package/switch/lib/switch/switch.module.d.ts +8 -0
  653. package/switch/package.json +3 -0
  654. package/switch/public-api.d.ts +2 -0
  655. package/table/index.d.ts +5 -0
  656. package/table/lib/table/export-utils.d.ts +16 -0
  657. package/table/lib/table/navigation/navigation.directive.d.ts +18 -0
  658. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +10 -0
  659. package/table/lib/table/table-column/index.d.ts +2 -0
  660. package/table/lib/table/table-column/models/badge-column.interface.d.ts +9 -0
  661. package/table/lib/table/table-column/models/badge-configs.interface.d.ts +5 -0
  662. package/table/lib/table/table-column/models/column-colors.d.ts +1 -0
  663. package/table/lib/table/table-column/models/column-values.interface.d.ts +18 -0
  664. package/table/lib/table/table-column/models/column.interface.d.ts +28 -0
  665. package/table/lib/table/table-column/models/dynamic-editable-grid.interface.d.ts +13 -0
  666. package/table/lib/table/table-column/models/index.d.ts +10 -0
  667. package/table/lib/table/table-column/models/locale-options.interface.d.ts +6 -0
  668. package/table/lib/table/table-column/models/number-locale-options.interface.d.ts +6 -0
  669. package/table/lib/table/table-column/table-columns.component.d.ts +53 -0
  670. package/table/lib/table/table-paging/index.d.ts +2 -0
  671. package/table/lib/table/table-paging/models/index.d.ts +1 -0
  672. package/table/lib/table/table-paging/table-paging.component.d.ts +65 -0
  673. package/table/lib/table/table.module.d.ts +17 -0
  674. package/table/package.json +3 -0
  675. package/table/public-api.d.ts +5 -0
  676. package/table-header/index.d.ts +5 -0
  677. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +31 -0
  678. package/table-header/lib/table-header/table-header-checkox.module.d.ts +10 -0
  679. package/table-header/package.json +3 -0
  680. package/table-header/public-api.d.ts +2 -0
  681. package/tailwind.css +711 -0
  682. package/template/index.d.ts +5 -0
  683. package/template/lib/template/template.directive.d.ts +9 -0
  684. package/template/lib/template/template.module.d.ts +8 -0
  685. package/template/package.json +3 -0
  686. package/template/public-api.d.ts +2 -0
  687. package/text-area/index.d.ts +5 -0
  688. package/text-area/lib/text-area/text-area.component.d.ts +35 -0
  689. package/text-area/lib/text-area.module.d.ts +11 -0
  690. package/text-area/package.json +3 -0
  691. package/text-area/public-api.d.ts +2 -0
  692. package/text-area-ia/index.d.ts +5 -0
  693. package/text-area-ia/lib/services/IAssist/iassist.service.d.ts +16 -0
  694. package/text-area-ia/lib/services/IAssist/models/iassist-input-data.d.ts +6 -0
  695. package/text-area-ia/lib/services/IAssist/models/iassist-response.d.ts +5 -0
  696. package/text-area-ia/lib/text-area-ia/text-area-ia.component.d.ts +42 -0
  697. package/text-area-ia/lib/text-area-ia/text-area-ia.module.d.ts +14 -0
  698. package/text-area-ia/package.json +3 -0
  699. package/text-area-ia/public-api.d.ts +2 -0
  700. package/thumbnail/index.d.ts +5 -0
  701. package/thumbnail/lib/thumbnail/thumbnail-size.d.ts +1 -0
  702. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +27 -0
  703. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +8 -0
  704. package/thumbnail/lib/thumbnail/thumbnail.service.d.ts +10 -0
  705. package/thumbnail/package.json +3 -0
  706. package/thumbnail/public-api.d.ts +3 -0
  707. package/thumbnails/index.d.ts +5 -0
  708. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +6 -0
  709. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +11 -0
  710. package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +23 -0
  711. package/thumbnails/lib/thumbnails/models/thumbnails-item.d.ts +20 -0
  712. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +20 -0
  713. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +14 -0
  714. package/thumbnails/package.json +3 -0
  715. package/thumbnails/public-api.d.ts +3 -0
  716. package/tiered-menu/index.d.ts +5 -0
  717. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +35 -0
  718. package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +5 -0
  719. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +18 -0
  720. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +27 -0
  721. package/tiered-menu/lib/tiered-menu/models/index.d.ts +2 -0
  722. package/tiered-menu/lib/tiered-menu/models/tiered-menu-item-data.d.ts +10 -0
  723. package/tiered-menu/lib/tiered-menu/models/tiered-menu-item-internal-data.d.ts +6 -0
  724. package/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.d.ts +14 -0
  725. package/tiered-menu/lib/tiered-menu/services/tiered-menu.global.service.d.ts +7 -0
  726. package/tiered-menu/lib/tiered-menu/services/tiered-menu.service.d.ts +15 -0
  727. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +46 -0
  728. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +12 -0
  729. package/tiered-menu/package.json +3 -0
  730. package/tiered-menu/public-api.d.ts +5 -0
  731. package/tile/index.d.ts +5 -0
  732. package/tile/lib/tile/tile.component.d.ts +19 -0
  733. package/tile/lib/tile/tile.module.d.ts +10 -0
  734. package/tile/package.json +3 -0
  735. package/tile/public-api.d.ts +2 -0
  736. package/timeline/index.d.ts +5 -0
  737. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +9 -0
  738. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +10 -0
  739. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +10 -0
  740. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +9 -0
  741. package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +9 -0
  742. package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +13 -0
  743. package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +5 -0
  744. package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +11 -0
  745. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +24 -0
  746. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +13 -0
  747. package/timeline/lib/timeline/models/timeline-item.d.ts +27 -0
  748. package/timeline/lib/timeline/timeline.component.d.ts +23 -0
  749. package/timeline/lib/timeline/timeline.module.d.ts +11 -0
  750. package/timeline/package.json +3 -0
  751. package/timeline/public-api.d.ts +5 -0
  752. package/toast/index.d.ts +5 -0
  753. package/toast/lib/toast/toast.component.d.ts +15 -0
  754. package/toast/lib/toast/toast.module.d.ts +8 -0
  755. package/toast/lib/toast/toast.service.d.ts +15 -0
  756. package/toast/lib/toast/types/toast.d.ts +16 -0
  757. package/toast/package.json +3 -0
  758. package/toast/public-api.d.ts +3 -0
  759. package/token-list/index.d.ts +5 -0
  760. package/token-list/lib/token-list/models/index.d.ts +1 -0
  761. package/token-list/lib/token-list/token-list.component.d.ts +16 -0
  762. package/token-list/lib/token-list/token-list.module.d.ts +8 -0
  763. package/token-list/package.json +3 -0
  764. package/token-list/public-api.d.ts +3 -0
  765. package/tooltip/index.d.ts +5 -0
  766. package/tooltip/lib/tooltip/models/mobile-behavior.d.ts +1 -0
  767. package/tooltip/lib/tooltip/models/tooltip-event.d.ts +1 -0
  768. package/tooltip/lib/tooltip/models/tooltip-position.d.ts +1 -0
  769. package/tooltip/lib/tooltip/tooltip.component.d.ts +12 -0
  770. package/tooltip/lib/tooltip/tooltip.directive.d.ts +63 -0
  771. package/tooltip/lib/tooltip/tooltip.module.d.ts +9 -0
  772. package/tooltip/package.json +3 -0
  773. package/tooltip/public-api.d.ts +5 -0
  774. package/utils/index.d.ts +5 -2
  775. package/utils/lib/utils/utils.d.ts +25 -0
  776. package/utils/package.json +3 -0
  777. package/utils/public-api.d.ts +2 -0
  778. package/workspace-switch/index.d.ts +5 -0
  779. package/workspace-switch/lib/workspace-switch/models/index.d.ts +1 -0
  780. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +33 -0
  781. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +8 -0
  782. package/workspace-switch/package.json +3 -0
  783. package/workspace-switch/public-api.d.ts +3 -0
  784. package/angular-components.module.d.ts +0 -9
  785. package/bundles/seniorsistemas-angular-components.umd.js +0 -23571
  786. package/bundles/seniorsistemas-angular-components.umd.js.map +0 -1
  787. package/bundles/seniorsistemas-angular-components.umd.min.js +0 -17
  788. package/bundles/seniorsistemas-angular-components.umd.min.js.map +0 -1
  789. package/components/accordion/accordion.component.d.ts +0 -18
  790. package/components/accordion/accordion.module.d.ts +0 -2
  791. package/components/accordion/components/accordion-panel/accordion-panel.component.d.ts +0 -31
  792. package/components/accordion/index.d.ts +0 -3
  793. package/components/accordion/models/accordion-button-settings.d.ts +0 -4
  794. package/components/accordion/models/accordion-switch-settings.d.ts +0 -4
  795. package/components/alert/alert.component.d.ts +0 -13
  796. package/components/alert/alert.module.d.ts +0 -2
  797. package/components/alert/index.d.ts +0 -2
  798. package/components/badge/badge.component.d.ts +0 -20
  799. package/components/badge/badge.module.d.ts +0 -2
  800. package/components/badge/index.d.ts +0 -3
  801. package/components/badge/models/badge-colors.d.ts +0 -8
  802. package/components/badge/models/badge-types.d.ts +0 -4
  803. package/components/badge/models/index.d.ts +0 -2
  804. package/components/bignumber-input/bignumber-input.directive.d.ts +0 -30
  805. package/components/bignumber-input/bignumber-input.module.d.ts +0 -2
  806. package/components/bignumber-input/index.d.ts +0 -2
  807. package/components/breadcrumb/breadcrumb.component.d.ts +0 -22
  808. package/components/breadcrumb/breadcrumb.module.d.ts +0 -2
  809. package/components/breadcrumb/index.d.ts +0 -2
  810. package/components/button/button.component.d.ts +0 -43
  811. package/components/button/button.module.d.ts +0 -2
  812. package/components/button/index.d.ts +0 -6
  813. package/components/button/models/button-animation.d.ts +0 -3
  814. package/components/button/models/button-badge-config.d.ts +0 -7
  815. package/components/button/models/button-priority.d.ts +0 -7
  816. package/components/button/models/button-size.d.ts +0 -4
  817. package/components/calendar-mask/calendar-mask.directive.d.ts +0 -66
  818. package/components/calendar-mask/calendar-mask.module.d.ts +0 -2
  819. package/components/calendar-mask/index.d.ts +0 -2
  820. package/components/card/card.component.d.ts +0 -22
  821. package/components/card/card.module.d.ts +0 -2
  822. package/components/card/index.d.ts +0 -3
  823. package/components/card/models/card-template-types.d.ts +0 -5
  824. package/components/chat/chat.component.d.ts +0 -7
  825. package/components/chat/chat.module.d.ts +0 -2
  826. package/components/chat/components/chat-message/chat-message.component.d.ts +0 -8
  827. package/components/chat/index.d.ts +0 -3
  828. package/components/chat/types/chat-message.d.ts +0 -8
  829. package/components/checkbox/checkbox.component.d.ts +0 -17
  830. package/components/checkbox/checkbox.module.d.ts +0 -2
  831. package/components/checkbox/index.d.ts +0 -3
  832. package/components/checkbox/models/checkbox-state.d.ts +0 -6
  833. package/components/checkbox/models/index.d.ts +0 -2
  834. package/components/chips/chip-item/chip-item.component.d.ts +0 -22
  835. package/components/chips/chips/chips.component.d.ts +0 -55
  836. package/components/chips/chips.module.d.ts +0 -2
  837. package/components/chips/index.d.ts +0 -3
  838. package/components/chips/models/chip-models.d.ts +0 -7
  839. package/components/code-editor/code-editor.component.d.ts +0 -26
  840. package/components/code-editor/code-editor.module.d.ts +0 -2
  841. package/components/code-editor/core/facades/core-facade.d.ts +0 -32
  842. package/components/code-editor/core/use-cases/core-linters.d.ts +0 -6
  843. package/components/code-editor/index.d.ts +0 -3
  844. package/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +0 -26
  845. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.d.ts +0 -15
  846. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.d.ts +0 -6
  847. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.d.ts +0 -12
  848. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.d.ts +0 -8
  849. package/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.d.ts +0 -1
  850. package/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.d.ts +0 -3
  851. package/components/code-editor/infra/utils/custom-http-client/custom-http-client.d.ts +0 -34
  852. package/components/code-editor/infra/utils/custom-translations/custom-translations-service.d.ts +0 -25
  853. package/components/code-editor/infra/utils/custom-translations/custom-translations.module.d.ts +0 -12
  854. package/components/collapse-link/collapse-link.component.d.ts +0 -17
  855. package/components/collapse-link/collapse-link.module.d.ts +0 -2
  856. package/components/collapse-link/index.d.ts +0 -2
  857. package/components/control-errors/control-errors.component.d.ts +0 -9
  858. package/components/control-errors/control-errors.module.d.ts +0 -2
  859. package/components/control-errors/index.d.ts +0 -2
  860. package/components/country-phone-picker/country-phone-picker.component.d.ts +0 -64
  861. package/components/country-phone-picker/country-phone-picker.module.d.ts +0 -2
  862. package/components/country-phone-picker/country-phone-picker.service.d.ts +0 -10
  863. package/components/country-phone-picker/index.d.ts +0 -4
  864. package/components/country-phone-picker/models/index.d.ts +0 -3
  865. package/components/country-phone-picker/resources/countries.d.ts +0 -2
  866. package/components/country-phone-picker/resources/index.d.ts +0 -1
  867. package/components/custom-fields/custom-fields.component.d.ts +0 -82
  868. package/components/custom-fields/custom-fields.module.d.ts +0 -2
  869. package/components/custom-fields/custom-fields.service.d.ts +0 -17
  870. package/components/custom-fields/index.d.ts +0 -3
  871. package/components/dynamic-form/components/dynamic-field/dynamic-field.component.d.ts +0 -12
  872. package/components/dynamic-form/components/field-label/field-label.component.d.ts +0 -5
  873. package/components/dynamic-form/components/field-label/field-label.module.d.ts +0 -2
  874. package/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.d.ts +0 -14
  875. package/components/dynamic-form/components/fields/base-field-component.d.ts +0 -27
  876. package/components/dynamic-form/components/fields/bignumber/bignumber-field.component.d.ts +0 -24
  877. package/components/dynamic-form/components/fields/bignumber/bignumber-field.module.d.ts +0 -2
  878. package/components/dynamic-form/components/fields/boolean/boolean-field.component.d.ts +0 -8
  879. package/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.d.ts +0 -7
  880. package/components/dynamic-form/components/fields/button-field/button-field.component.d.ts +0 -7
  881. package/components/dynamic-form/components/fields/calendar/calendar-field.component.d.ts +0 -31
  882. package/components/dynamic-form/components/fields/checkbox/checkbox-field.component.d.ts +0 -7
  883. package/components/dynamic-form/components/fields/checkbox/checkbox-field.module.d.ts +0 -2
  884. package/components/dynamic-form/components/fields/chips/chips-field.component.d.ts +0 -19
  885. package/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.d.ts +0 -14
  886. package/components/dynamic-form/components/fields/currency/currency-field.component.d.ts +0 -21
  887. package/components/dynamic-form/components/fields/currency/currency-field.module.d.ts +0 -2
  888. package/components/dynamic-form/components/fields/editor/editor-field.component.d.ts +0 -7
  889. package/components/dynamic-form/components/fields/editor/editor-field.module.d.ts +0 -2
  890. package/components/dynamic-form/components/fields/file-upload/file-upload.component.d.ts +0 -17
  891. package/components/dynamic-form/components/fields/index.d.ts +0 -21
  892. package/components/dynamic-form/components/fields/lookup/lookup-field.component.d.ts +0 -7
  893. package/components/dynamic-form/components/fields/number/number-field.component.d.ts +0 -27
  894. package/components/dynamic-form/components/fields/number/number-field.module.d.ts +0 -2
  895. package/components/dynamic-form/components/fields/password/password-field.component.d.ts +0 -19
  896. package/components/dynamic-form/components/fields/password/password-field.module.d.ts +0 -2
  897. package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.d.ts +0 -6
  898. package/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.d.ts +0 -2
  899. package/components/dynamic-form/components/fields/radio-button/radio-button-field.component.d.ts +0 -15
  900. package/components/dynamic-form/components/fields/select/select-field.component.d.ts +0 -7
  901. package/components/dynamic-form/components/fields/slider/slider-field.component.d.ts +0 -22
  902. package/components/dynamic-form/components/fields/text/text-field.component.d.ts +0 -20
  903. package/components/dynamic-form/components/fields/text/text-field.module.d.ts +0 -2
  904. package/components/dynamic-form/components/fields/text-area/text-area-field.component.d.ts +0 -12
  905. package/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.d.ts +0 -26
  906. package/components/dynamic-form/components/grid/row/row.component.d.ts +0 -12
  907. package/components/dynamic-form/components/lookup/lookup.component.d.ts +0 -184
  908. package/components/dynamic-form/components/lookup/models/default-filter.d.ts +0 -4
  909. package/components/dynamic-form/components/lookup/models/index.d.ts +0 -1
  910. package/components/dynamic-form/components/structure/base-structure-component.d.ts +0 -8
  911. package/components/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +0 -9
  912. package/components/dynamic-form/components/structure/section/section.component.d.ts +0 -11
  913. package/components/dynamic-form/configurations/addon-config.d.ts +0 -8
  914. package/components/dynamic-form/configurations/field-type.d.ts +0 -30
  915. package/components/dynamic-form/configurations/fields/autocomplete-field.d.ts +0 -30
  916. package/components/dynamic-form/configurations/fields/bignumber-field.d.ts +0 -36
  917. package/components/dynamic-form/configurations/fields/blob-field.d.ts +0 -43
  918. package/components/dynamic-form/configurations/fields/boolean-field.d.ts +0 -29
  919. package/components/dynamic-form/configurations/fields/boolean-switch-field.d.ts +0 -11
  920. package/components/dynamic-form/configurations/fields/button-field.d.ts +0 -37
  921. package/components/dynamic-form/configurations/fields/calendar-field.d.ts +0 -45
  922. package/components/dynamic-form/configurations/fields/checkbox-field.d.ts +0 -9
  923. package/components/dynamic-form/configurations/fields/chips-field.d.ts +0 -24
  924. package/components/dynamic-form/configurations/fields/country-phone-picker-field.d.ts +0 -15
  925. package/components/dynamic-form/configurations/fields/currency-field.d.ts +0 -8
  926. package/components/dynamic-form/configurations/fields/decimal-field.d.ts +0 -14
  927. package/components/dynamic-form/configurations/fields/field.d.ts +0 -96
  928. package/components/dynamic-form/configurations/fields/index.d.ts +0 -21
  929. package/components/dynamic-form/configurations/fields/lookup-field.d.ts +0 -92
  930. package/components/dynamic-form/configurations/fields/number-field.d.ts +0 -42
  931. package/components/dynamic-form/configurations/fields/password-field.d.ts +0 -45
  932. package/components/dynamic-form/configurations/fields/profile-picture.d.ts +0 -36
  933. package/components/dynamic-form/configurations/fields/radio-button-field.d.ts +0 -23
  934. package/components/dynamic-form/configurations/fields/select-field.d.ts +0 -37
  935. package/components/dynamic-form/configurations/fields/slider-field.d.ts +0 -31
  936. package/components/dynamic-form/configurations/fields/text-area-field.d.ts +0 -22
  937. package/components/dynamic-form/configurations/fields/text-area-ia-field.d.ts +0 -20
  938. package/components/dynamic-form/configurations/fields/text-field.d.ts +0 -41
  939. package/components/dynamic-form/configurations/form-field.d.ts +0 -188
  940. package/components/dynamic-form/configurations/grid/grid.d.ts +0 -14
  941. package/components/dynamic-form/configurations/grid/row.d.ts +0 -8
  942. package/components/dynamic-form/configurations/structure/fieldset.d.ts +0 -10
  943. package/components/dynamic-form/configurations/structure/section.d.ts +0 -20
  944. package/components/dynamic-form/configurations/structure/structure.d.ts +0 -15
  945. package/components/dynamic-form/dynamic-form.component.d.ts +0 -10
  946. package/components/dynamic-form/dynamic-form.d.ts +0 -56
  947. package/components/dynamic-form/dynamic-form.directive.d.ts +0 -28
  948. package/components/dynamic-form/dynamic-form.module.d.ts +0 -2
  949. package/components/dynamic-form/index.d.ts +0 -32
  950. package/components/dynamic-form/services/IAssist/iassist.service.d.ts +0 -13
  951. package/components/dynamic-form/services/IAssist/models/iassist-input-data.d.ts +0 -6
  952. package/components/dynamic-form/services/IAssist/models/iassist-response.d.ts +0 -5
  953. package/components/dynamic-form/services/IAssist/models/index.d.ts +0 -2
  954. package/components/editable-overlay/editable-overlay.directive.d.ts +0 -9
  955. package/components/editable-overlay/editable-overlay.module.d.ts +0 -2
  956. package/components/editable-overlay/index.d.ts +0 -2
  957. package/components/empty-state/empty-state.component.d.ts +0 -16
  958. package/components/empty-state/empty-state.module.d.ts +0 -2
  959. package/components/empty-state/go-back/go-back.component.d.ts +0 -11
  960. package/components/empty-state/index.d.ts +0 -2
  961. package/components/file-upload/file-upload.component.d.ts +0 -76
  962. package/components/file-upload/file-upload.module.d.ts +0 -2
  963. package/components/file-upload/file-upload.service.d.ts +0 -6
  964. package/components/file-upload/index.d.ts +0 -3
  965. package/components/file-upload/models/file-dto.d.ts +0 -11
  966. package/components/file-upload/models/file-upload-permissions.d.ts +0 -6
  967. package/components/file-upload/models/index.d.ts +0 -4
  968. package/components/file-upload/models/uploadError.d.ts +0 -6
  969. package/components/file-upload/models/validate-errors.d.ts +0 -6
  970. package/components/gantt/components/gantt/arrow.d.ts +0 -16
  971. package/components/gantt/components/gantt/bar.d.ts +0 -44
  972. package/components/gantt/components/gantt/gantt-options.d.ts +0 -2
  973. package/components/gantt/components/gantt/gantt.d.ts +0 -64
  974. package/components/gantt/components/gantt/popup.d.ts +0 -14
  975. package/components/gantt/components/gantt/utils/svg-utils.d.ts +0 -11
  976. package/components/gantt/components/side-table/side-table.component.d.ts +0 -10
  977. package/components/gantt/gantt.component.d.ts +0 -30
  978. package/components/gantt/gantt.module.d.ts +0 -2
  979. package/components/gantt/index.d.ts +0 -3
  980. package/components/gantt/models/index.d.ts +0 -3
  981. package/components/gantt/models/options.d.ts +0 -26
  982. package/components/global-search/elements/dropdown/global-search-dropdown-item.component.d.ts +0 -24
  983. package/components/global-search/global-search-size.enum.d.ts +0 -5
  984. package/components/global-search/global-search.component.d.ts +0 -34
  985. package/components/global-search/global-search.module.d.ts +0 -2
  986. package/components/global-search/index.d.ts +0 -4
  987. package/components/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +0 -7
  988. package/components/grid-menu/grid-menu.component.d.ts +0 -5
  989. package/components/grid-menu/grid-menu.module.d.ts +0 -2
  990. package/components/grid-menu/index.d.ts +0 -3
  991. package/components/grid-menu/types/grid-menu-item.d.ts +0 -6
  992. package/components/help-popover/help-popover/help-popover.component.d.ts +0 -32
  993. package/components/help-popover/help-popover.directive.d.ts +0 -64
  994. package/components/help-popover/help-popover.module.d.ts +0 -2
  995. package/components/help-popover/index.d.ts +0 -5
  996. package/components/help-popover/models/help-popover.models.d.ts +0 -2
  997. package/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.d.ts +0 -2
  998. package/components/ia-insight/components/ia-insight-card/ia-insight-card.component.d.ts +0 -22
  999. package/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.d.ts +0 -16
  1000. package/components/ia-insight/ia-insight.component.d.ts +0 -24
  1001. package/components/ia-insight/ia-insight.module.d.ts +0 -2
  1002. package/components/ia-insight/index.d.ts +0 -3
  1003. package/components/ia-insight/models/ia-insight-item.d.ts +0 -9
  1004. package/components/ia-insight/models/ia-insight-template-types.d.ts +0 -5
  1005. package/components/ia-insight/models/index.d.ts +0 -2
  1006. package/components/image-cropper/image-cropper.component.d.ts +0 -42
  1007. package/components/image-cropper/image-cropper.module.d.ts +0 -2
  1008. package/components/image-cropper/image-cropper.service.d.ts +0 -39
  1009. package/components/image-cropper/index.d.ts +0 -3
  1010. package/components/index.d.ts +0 -72
  1011. package/components/infinite-scroll/infinite-scroll.directive.d.ts +0 -7
  1012. package/components/infinite-scroll/infinite-scroll.module.d.ts +0 -2
  1013. package/components/info-sign/index.d.ts +0 -2
  1014. package/components/info-sign/info-sign.component.d.ts +0 -7
  1015. package/components/info-sign/info-sign.directive.d.ts +0 -16
  1016. package/components/info-sign/info-sign.module.d.ts +0 -2
  1017. package/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +0 -17
  1018. package/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +0 -10
  1019. package/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +0 -18
  1020. package/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +0 -9
  1021. package/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +0 -10
  1022. package/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.d.ts +0 -9
  1023. package/components/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +0 -27
  1024. package/components/inline-edit/fields/index.d.ts +0 -7
  1025. package/components/inline-edit/fields/inline-edit-calendar-field.d.ts +0 -44
  1026. package/components/inline-edit/fields/inline-edit-field.d.ts +0 -13
  1027. package/components/inline-edit/fields/inline-edit-lookup-field.d.ts +0 -79
  1028. package/components/inline-edit/fields/inline-edit-number-field.d.ts +0 -38
  1029. package/components/inline-edit/index.d.ts +0 -3
  1030. package/components/inline-edit/inline-edit.component.d.ts +0 -14
  1031. package/components/inline-edit/inline-edit.module.d.ts +0 -2
  1032. package/components/kanban/components/kanban-column/kanban-column.component.d.ts +0 -18
  1033. package/components/kanban/components/kanban-item/kanban-item.component.d.ts +0 -16
  1034. package/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +0 -3
  1035. package/components/kanban/index.d.ts +0 -3
  1036. package/components/kanban/kanban-event.service.d.ts +0 -12
  1037. package/components/kanban/kanban.component.d.ts +0 -43
  1038. package/components/kanban/kanban.module.d.ts +0 -2
  1039. package/components/kanban/models/index.d.ts +0 -2
  1040. package/components/kanban/models/kanban-data.d.ts +0 -27
  1041. package/components/kanban/models/kanban-template-types.d.ts +0 -7
  1042. package/components/label-value/index.d.ts +0 -3
  1043. package/components/label-value/label-value.component.d.ts +0 -9
  1044. package/components/label-value/label-value.module.d.ts +0 -2
  1045. package/components/label-value/types/label-value-configuration.d.ts +0 -29
  1046. package/components/loading-state/components/dots-indicator/dots-indicator.components.d.ts +0 -2
  1047. package/components/loading-state/components/logo-indicator/logo-indicator.component.d.ts +0 -2
  1048. package/components/loading-state/index.d.ts +0 -3
  1049. package/components/loading-state/loading-state.component.d.ts +0 -20
  1050. package/components/loading-state/loading-state.directive.d.ts +0 -19
  1051. package/components/loading-state/loading-state.module.d.ts +0 -2
  1052. package/components/locale/index.d.ts +0 -10
  1053. package/components/locale/locale.module.d.ts +0 -5
  1054. package/components/locale/locale.service.d.ts +0 -24
  1055. package/components/locale/options/calendar.d.ts +0 -25
  1056. package/components/locale/options/index.d.ts +0 -26
  1057. package/components/locale/options/number.d.ts +0 -11
  1058. package/components/locale/pipes/localized-bignumber-impure.pipe.d.ts +0 -6
  1059. package/components/locale/pipes/localized-bignumber.pipe.d.ts +0 -9
  1060. package/components/locale/pipes/localized-currency-impure.pipe.d.ts +0 -8
  1061. package/components/locale/pipes/localized-currency.pipe.d.ts +0 -19
  1062. package/components/locale/pipes/localized-date-impure.pipe.d.ts +0 -4
  1063. package/components/locale/pipes/localized-date.pipe.d.ts +0 -7
  1064. package/components/locale/pipes/localized-number.pipe.d.ts +0 -14
  1065. package/components/locale/pipes/localized-time-impure.pipe.d.ts +0 -4
  1066. package/components/locale/pipes/localized-time.pipe.d.ts +0 -7
  1067. package/components/locale/pipes/numeric.pipe.d.ts +0 -13
  1068. package/components/locale/services/numeric.service.d.ts +0 -27
  1069. package/components/localized-number-input/index.d.ts +0 -2
  1070. package/components/localized-number-input/localized-number-input.directive.d.ts +0 -13
  1071. package/components/localized-number-input/localized-number-input.module.d.ts +0 -2
  1072. package/components/mask/index.d.ts +0 -2
  1073. package/components/mask/mask-formatter.module.d.ts +0 -2
  1074. package/components/mask/mask-formatter.pipe.d.ts +0 -5
  1075. package/components/mouse-events/double-click.directive.d.ts +0 -9
  1076. package/components/mouse-events/index.d.ts +0 -3
  1077. package/components/mouse-events/long-press.directive.d.ts +0 -13
  1078. package/components/mouse-events/mouse-events.module.d.ts +0 -2
  1079. package/components/navigation-button/index.d.ts +0 -3
  1080. package/components/navigation-button/models/index.d.ts +0 -2
  1081. package/components/navigation-button/models/navigation-button-step-changed-info.d.ts +0 -5
  1082. package/components/navigation-button/navigation-button.component.d.ts +0 -30
  1083. package/components/navigation-button/navigation-button.module.d.ts +0 -2
  1084. package/components/number-input/index.d.ts +0 -2
  1085. package/components/number-input/number-input.directive.d.ts +0 -44
  1086. package/components/number-input/number-input.module.d.ts +0 -5
  1087. package/components/object-card/elements/field/object-card-field.component.d.ts +0 -17
  1088. package/components/object-card/elements/main/object-card-main.component.d.ts +0 -27
  1089. package/components/object-card/index.d.ts +0 -4
  1090. package/components/object-card/object-card.component.d.ts +0 -29
  1091. package/components/object-card/object-card.module.d.ts +0 -2
  1092. package/components/panel/index.d.ts +0 -2
  1093. package/components/panel/panel.component.d.ts +0 -25
  1094. package/components/panel/panel.module.d.ts +0 -2
  1095. package/components/password-strength/index.d.ts +0 -4
  1096. package/components/password-strength/models/index.d.ts +0 -2
  1097. package/components/password-strength/models/password-positions.d.ts +0 -5
  1098. package/components/password-strength/models/password-strengths.d.ts +0 -6
  1099. package/components/password-strength/password-strength.component.d.ts +0 -19
  1100. package/components/password-strength/password-strength.directive.d.ts +0 -26
  1101. package/components/password-strength/password-strength.module.d.ts +0 -2
  1102. package/components/picklist/index.d.ts +0 -4
  1103. package/components/picklist/picklist/models/picklist-models.d.ts +0 -8
  1104. package/components/picklist/picklist/picklist.component.d.ts +0 -71
  1105. package/components/picklist/picklist.module.d.ts +0 -2
  1106. package/components/product-header/index.d.ts +0 -2
  1107. package/components/product-header/product-header.component.d.ts +0 -10
  1108. package/components/product-header/product-header.module.d.ts +0 -2
  1109. package/components/profile-picture-picker/index.d.ts +0 -3
  1110. package/components/profile-picture-picker/models/file-validation-errors.d.ts +0 -10
  1111. package/components/profile-picture-picker/models/index.d.ts +0 -4
  1112. package/components/profile-picture-picker/profile-picture-picker.component.d.ts +0 -55
  1113. package/components/profile-picture-picker/profile-picture-picker.module.d.ts +0 -2
  1114. package/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +0 -17
  1115. package/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +0 -5
  1116. package/components/progressbar/index.d.ts +0 -3
  1117. package/components/progressbar/models/index.d.ts +0 -2
  1118. package/components/progressbar/models/progressbar-colors.d.ts +0 -6
  1119. package/components/progressbar/models/progressbar-mode.d.ts +0 -4
  1120. package/components/progressbar/progressbar.component.d.ts +0 -15
  1121. package/components/progressbar/progressbar.module.d.ts +0 -2
  1122. package/components/rating-scale/index.d.ts +0 -3
  1123. package/components/rating-scale/models/index.d.ts +0 -1
  1124. package/components/rating-scale/rating-scale.component.d.ts +0 -15
  1125. package/components/rating-scale/rating-scale.module.d.ts +0 -2
  1126. package/components/select-button/components/select-button-item/select-button-item.component.d.ts +0 -7
  1127. package/components/select-button/index.d.ts +0 -3
  1128. package/components/select-button/models/index.d.ts +0 -1
  1129. package/components/select-button/select-button.component.d.ts +0 -19
  1130. package/components/select-button/select-button.module.d.ts +0 -2
  1131. package/components/shared/border-button/border-button.component.d.ts +0 -9
  1132. package/components/shared/border-button/border-button.module.d.ts +0 -2
  1133. package/components/shared/index.d.ts +0 -3
  1134. package/components/shared/models/border-button-options.d.ts +0 -9
  1135. package/components/shared/models/enum-severity.d.ts +0 -7
  1136. package/components/sidebar/index.d.ts +0 -2
  1137. package/components/sidebar/sidebar.component.d.ts +0 -22
  1138. package/components/sidebar/sidebar.module.d.ts +0 -2
  1139. package/components/slide-panel/index.d.ts +0 -2
  1140. package/components/slide-panel/slide-panel.component.d.ts +0 -32
  1141. package/components/slide-panel/slide-panel.module.d.ts +0 -2
  1142. package/components/slide-panel/slide-panel.service.d.ts +0 -7
  1143. package/components/slider/index.d.ts +0 -2
  1144. package/components/slider/slider.component.d.ts +0 -95
  1145. package/components/slider/slider.module.d.ts +0 -2
  1146. package/components/speech-recognition/speech-recognition/speech-recognition.component.d.ts +0 -44
  1147. package/components/speech-recognition/speech-recognition.module.d.ts +0 -2
  1148. package/components/speech-recognition/speech-recognition.service.d.ts +0 -18
  1149. package/components/speech-recognition/text-to-speech.service.d.ts +0 -23
  1150. package/components/split-button/index.d.ts +0 -4
  1151. package/components/split-button/models/split-button-type.d.ts +0 -5
  1152. package/components/split-button/split-button.component.d.ts +0 -19
  1153. package/components/split-button/split-button.module.d.ts +0 -2
  1154. package/components/stats-card/index.d.ts +0 -2
  1155. package/components/stats-card/stats-card.component.d.ts +0 -26
  1156. package/components/stats-card/stats-card.module.d.ts +0 -2
  1157. package/components/steps/index.d.ts +0 -2
  1158. package/components/steps/steps.component.d.ts +0 -38
  1159. package/components/steps/steps.module.d.ts +0 -2
  1160. package/components/structure/footer.component.d.ts +0 -2
  1161. package/components/structure/header.component.d.ts +0 -2
  1162. package/components/structure/structure.module.d.ts +0 -2
  1163. package/components/switch/index.d.ts +0 -2
  1164. package/components/switch/switch.component.d.ts +0 -22
  1165. package/components/switch/switch.module.d.ts +0 -2
  1166. package/components/table/frozen-position/frozen-position.directive.d.ts +0 -28
  1167. package/components/table/index.d.ts +0 -6
  1168. package/components/table/navigation/navigation.directive.d.ts +0 -15
  1169. package/components/table/row-toggler/row-toggler.directive.d.ts +0 -7
  1170. package/components/table/table-column/index.d.ts +0 -1
  1171. package/components/table/table-column/models/badge-column.interface.d.ts +0 -9
  1172. package/components/table/table-column/models/badge-configs.interface.d.ts +0 -5
  1173. package/components/table/table-column/models/column-colors.d.ts +0 -1
  1174. package/components/table/table-column/models/column-values.interface.d.ts +0 -17
  1175. package/components/table/table-column/models/column.interface.d.ts +0 -27
  1176. package/components/table/table-column/models/dynamic-editable-grid.interface.d.ts +0 -13
  1177. package/components/table/table-column/models/index.d.ts +0 -9
  1178. package/components/table/table-column/models/locale-options.interface.d.ts +0 -6
  1179. package/components/table/table-column/models/number-locale-options.interface.d.ts +0 -6
  1180. package/components/table/table-column/table-columns.component.d.ts +0 -49
  1181. package/components/table/table-paging/index.d.ts +0 -1
  1182. package/components/table/table-paging/models/index.d.ts +0 -1
  1183. package/components/table/table-paging/table-paging.component.d.ts +0 -63
  1184. package/components/table/table.module.d.ts +0 -2
  1185. package/components/table-header/index.d.ts +0 -2
  1186. package/components/table-header/table-header-checkbox.component.d.ts +0 -25
  1187. package/components/table-header/table-header-checkox.module.d.ts +0 -2
  1188. package/components/template/index.d.ts +0 -2
  1189. package/components/template/template.directive.d.ts +0 -6
  1190. package/components/template/template.module.d.ts +0 -2
  1191. package/components/text-area/index.d.ts +0 -2
  1192. package/components/text-area/text-area/text-area.component.d.ts +0 -28
  1193. package/components/text-area/text-area.module.d.ts +0 -2
  1194. package/components/text-area-ia/index.d.ts +0 -2
  1195. package/components/text-area-ia/text-area-ia.component.d.ts +0 -40
  1196. package/components/text-area-ia/text-area-ia.module.d.ts +0 -2
  1197. package/components/thumbnail/index.d.ts +0 -3
  1198. package/components/thumbnail/thumbnail-size.d.ts +0 -5
  1199. package/components/thumbnail/thumbnail.component.d.ts +0 -24
  1200. package/components/thumbnail/thumbnail.module.d.ts +0 -2
  1201. package/components/thumbnail/thumbnail.service.d.ts +0 -7
  1202. package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +0 -3
  1203. package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +0 -8
  1204. package/components/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +0 -20
  1205. package/components/thumbnails/index.d.ts +0 -3
  1206. package/components/thumbnails/models/thumbnails-item.d.ts +0 -20
  1207. package/components/thumbnails/thumbnails.component.d.ts +0 -17
  1208. package/components/thumbnails/thumbnails.module.d.ts +0 -2
  1209. package/components/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +0 -32
  1210. package/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +0 -2
  1211. package/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +0 -15
  1212. package/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +0 -24
  1213. package/components/tiered-menu/index.d.ts +0 -3
  1214. package/components/tiered-menu/models/index.d.ts +0 -2
  1215. package/components/tiered-menu/models/tiered-menu-item-data.d.ts +0 -9
  1216. package/components/tiered-menu/models/tiered-menu-item-internal-data.d.ts +0 -6
  1217. package/components/tiered-menu/services/tiered-menu.event.service.d.ts +0 -11
  1218. package/components/tiered-menu/services/tiered-menu.global.service.d.ts +0 -4
  1219. package/components/tiered-menu/services/tiered-menu.service.d.ts +0 -12
  1220. package/components/tiered-menu/tiered-menu.directive.d.ts +0 -41
  1221. package/components/tiered-menu/tiered-menu.module.d.ts +0 -2
  1222. package/components/tile/index.d.ts +0 -2
  1223. package/components/tile/tile.component.d.ts +0 -16
  1224. package/components/tile/tile.module.d.ts +0 -2
  1225. package/components/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +0 -6
  1226. package/components/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -2
  1227. package/components/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +0 -7
  1228. package/components/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -2
  1229. package/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +0 -6
  1230. package/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +0 -10
  1231. package/components/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +0 -2
  1232. package/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +0 -8
  1233. package/components/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +0 -21
  1234. package/components/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -2
  1235. package/components/timeline/index.d.ts +0 -3
  1236. package/components/timeline/models/index.d.ts +0 -3
  1237. package/components/timeline/models/timeline-item.d.ts +0 -27
  1238. package/components/timeline/timeline.component.d.ts +0 -20
  1239. package/components/timeline/timeline.module.d.ts +0 -2
  1240. package/components/toast/index.d.ts +0 -3
  1241. package/components/toast/toast.component.d.ts +0 -12
  1242. package/components/toast/toast.module.d.ts +0 -2
  1243. package/components/toast/toast.service.d.ts +0 -12
  1244. package/components/toast/types/toast.d.ts +0 -16
  1245. package/components/token-list/index.d.ts +0 -3
  1246. package/components/token-list/models/index.d.ts +0 -1
  1247. package/components/token-list/token-list.component.d.ts +0 -13
  1248. package/components/token-list/token-list.module.d.ts +0 -2
  1249. package/components/tooltip/index.d.ts +0 -2
  1250. package/components/tooltip/models/index.d.ts +0 -3
  1251. package/components/tooltip/models/mobile-behavior.d.ts +0 -4
  1252. package/components/tooltip/models/tooltip-event.d.ts +0 -4
  1253. package/components/tooltip/models/tooltip-position.d.ts +0 -6
  1254. package/components/tooltip/tooltip.component.d.ts +0 -9
  1255. package/components/tooltip/tooltip.directive.d.ts +0 -59
  1256. package/components/tooltip/tooltip.module.d.ts +0 -2
  1257. package/components/utils/debouce.d.ts +0 -4
  1258. package/components/utils/export-utils.d.ts +0 -9
  1259. package/components/utils/index.d.ts +0 -5
  1260. package/components/utils/utils.d.ts +0 -24
  1261. package/components/workspace-switch/index.d.ts +0 -3
  1262. package/components/workspace-switch/models/index.d.ts +0 -1
  1263. package/components/workspace-switch/workspace-switch.component.d.ts +0 -30
  1264. package/components/workspace-switch/workspace-switch.module.d.ts +0 -2
  1265. package/esm2015/angular-components.module.js +0 -22
  1266. package/esm2015/components/accordion/accordion.component.js +0 -90
  1267. package/esm2015/components/accordion/accordion.module.js +0 -31
  1268. package/esm2015/components/accordion/components/accordion-panel/accordion-panel.component.js +0 -118
  1269. package/esm2015/components/accordion/index.js +0 -4
  1270. package/esm2015/components/accordion/models/accordion-button-settings.js +0 -1
  1271. package/esm2015/components/accordion/models/accordion-switch-settings.js +0 -1
  1272. package/esm2015/components/alert/alert.component.js +0 -47
  1273. package/esm2015/components/alert/alert.module.js +0 -15
  1274. package/esm2015/components/alert/index.js +0 -3
  1275. package/esm2015/components/badge/badge.component.js +0 -61
  1276. package/esm2015/components/badge/badge.module.js +0 -17
  1277. package/esm2015/components/badge/index.js +0 -4
  1278. package/esm2015/components/badge/models/badge-colors.js +0 -12
  1279. package/esm2015/components/badge/models/badge-types.js +0 -6
  1280. package/esm2015/components/badge/models/index.js +0 -3
  1281. package/esm2015/components/bignumber-input/bignumber-input.directive.js +0 -150
  1282. package/esm2015/components/bignumber-input/bignumber-input.module.js +0 -15
  1283. package/esm2015/components/bignumber-input/index.js +0 -3
  1284. package/esm2015/components/breadcrumb/breadcrumb.component.js +0 -90
  1285. package/esm2015/components/breadcrumb/breadcrumb.module.js +0 -17
  1286. package/esm2015/components/breadcrumb/index.js +0 -3
  1287. package/esm2015/components/button/button.component.js +0 -138
  1288. package/esm2015/components/button/button.module.js +0 -20
  1289. package/esm2015/components/button/index.js +0 -6
  1290. package/esm2015/components/button/models/button-animation.js +0 -5
  1291. package/esm2015/components/button/models/button-badge-config.js +0 -1
  1292. package/esm2015/components/button/models/button-priority.js +0 -9
  1293. package/esm2015/components/button/models/button-size.js +0 -6
  1294. package/esm2015/components/calendar-mask/calendar-mask.directive.js +0 -573
  1295. package/esm2015/components/calendar-mask/calendar-mask.module.js +0 -15
  1296. package/esm2015/components/calendar-mask/index.js +0 -3
  1297. package/esm2015/components/card/card.component.js +0 -73
  1298. package/esm2015/components/card/card.module.js +0 -16
  1299. package/esm2015/components/card/index.js +0 -4
  1300. package/esm2015/components/card/models/card-template-types.js +0 -7
  1301. package/esm2015/components/chat/chat.component.js +0 -32
  1302. package/esm2015/components/chat/chat.module.js +0 -18
  1303. package/esm2015/components/chat/components/chat-message/chat-message.component.js +0 -28
  1304. package/esm2015/components/chat/index.js +0 -3
  1305. package/esm2015/components/chat/types/chat-message.js +0 -1
  1306. package/esm2015/components/checkbox/checkbox.component.js +0 -107
  1307. package/esm2015/components/checkbox/checkbox.module.js +0 -16
  1308. package/esm2015/components/checkbox/index.js +0 -3
  1309. package/esm2015/components/checkbox/models/checkbox-data.js +0 -1
  1310. package/esm2015/components/checkbox/models/checkbox-state.js +0 -1
  1311. package/esm2015/components/checkbox/models/index.js +0 -1
  1312. package/esm2015/components/chips/chip-item/chip-item.component.js +0 -68
  1313. package/esm2015/components/chips/chips/chips.component.js +0 -228
  1314. package/esm2015/components/chips/chips.module.js +0 -24
  1315. package/esm2015/components/chips/index.js +0 -3
  1316. package/esm2015/components/chips/models/chip-models.js +0 -1
  1317. package/esm2015/components/code-editor/code-editor.component.js +0 -110
  1318. package/esm2015/components/code-editor/code-editor.module.js +0 -24
  1319. package/esm2015/components/code-editor/core/facades/core-facade.js +0 -85
  1320. package/esm2015/components/code-editor/core/facades/linter-facade.js +0 -1
  1321. package/esm2015/components/code-editor/core/models/enums/marker-severity.js +0 -7
  1322. package/esm2015/components/code-editor/core/models/index.js +0 -3
  1323. package/esm2015/components/code-editor/core/models/interfaces/marker.js +0 -1
  1324. package/esm2015/components/code-editor/core/use-cases/core-linters.js +0 -9
  1325. package/esm2015/components/code-editor/index.js +0 -5
  1326. package/esm2015/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +0 -97
  1327. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +0 -15
  1328. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.js +0 -29
  1329. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.js +0 -29
  1330. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.js +0 -17
  1331. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.js +0 -75
  1332. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.js +0 -4
  1333. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.js +0 -35
  1334. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +0 -341
  1335. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.js +0 -34
  1336. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.js +0 -18
  1337. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.js +0 -37
  1338. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.js +0 -10
  1339. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.js +0 -8
  1340. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.js +0 -12
  1341. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +0 -36
  1342. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.js +0 -9
  1343. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.js +0 -7
  1344. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.js +0 -1
  1345. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.js +0 -1
  1346. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.js +0 -1
  1347. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.js +0 -1
  1348. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.js +0 -1
  1349. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.js +0 -1
  1350. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.js +0 -1
  1351. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.js +0 -1
  1352. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.js +0 -1
  1353. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.js +0 -1
  1354. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.js +0 -1
  1355. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.js +0 -1
  1356. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.js +0 -1
  1357. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.js +0 -1
  1358. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.js +0 -10
  1359. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +0 -9
  1360. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.js +0 -15
  1361. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.js +0 -16
  1362. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +0 -3
  1363. package/esm2015/components/code-editor/infra/cores/codemirror-6/models/index.js +0 -1
  1364. package/esm2015/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.js +0 -1
  1365. package/esm2015/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.js +0 -1
  1366. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +0 -15
  1367. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.js +0 -61
  1368. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.js +0 -29
  1369. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.js +0 -25
  1370. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.js +0 -18
  1371. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +0 -16
  1372. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.js +0 -13
  1373. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.js +0 -22
  1374. package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.js +0 -18
  1375. package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/index.js +0 -3
  1376. package/esm2015/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.js +0 -6
  1377. package/esm2015/components/code-editor/infra/utils/custom-http-client/custom-http-client.js +0 -80
  1378. package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.js +0 -13
  1379. package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.js +0 -12
  1380. package/esm2015/components/code-editor/infra/utils/custom-http-client/json-response-formatters/index.js +0 -3
  1381. package/esm2015/components/code-editor/infra/utils/custom-translations/custom-translations-service.js +0 -37
  1382. package/esm2015/components/code-editor/infra/utils/custom-translations/custom-translations.module.js +0 -30
  1383. package/esm2015/components/code-editor/infra/utils/custom-translations/index.js +0 -3
  1384. package/esm2015/components/code-editor/infra/utils/custom-translations/models/index.js +0 -1
  1385. package/esm2015/components/code-editor/infra/utils/custom-translations/models/interfaces/translations.js +0 -1
  1386. package/esm2015/components/code-editor/infra/utils/index.js +0 -3
  1387. package/esm2015/components/code-editor/models/enums/languages.js +0 -5
  1388. package/esm2015/components/code-editor/models/enums/themes.js +0 -5
  1389. package/esm2015/components/code-editor/models/index.js +0 -4
  1390. package/esm2015/components/code-editor/models/interfaces/editor-options.js +0 -1
  1391. package/esm2015/components/collapse-link/collapse-link.component.js +0 -73
  1392. package/esm2015/components/collapse-link/collapse-link.module.js +0 -15
  1393. package/esm2015/components/collapse-link/index.js +0 -3
  1394. package/esm2015/components/control-errors/control-errors.component.js +0 -37
  1395. package/esm2015/components/control-errors/control-errors.module.js +0 -16
  1396. package/esm2015/components/control-errors/index.js +0 -3
  1397. package/esm2015/components/country-phone-picker/country-phone-picker.component.js +0 -301
  1398. package/esm2015/components/country-phone-picker/country-phone-picker.module.js +0 -27
  1399. package/esm2015/components/country-phone-picker/country-phone-picker.service.js +0 -43
  1400. package/esm2015/components/country-phone-picker/index.js +0 -5
  1401. package/esm2015/components/country-phone-picker/models/country-phone-data.js +0 -1
  1402. package/esm2015/components/country-phone-picker/models/index.js +0 -2
  1403. package/esm2015/components/country-phone-picker/models/ordination.js +0 -7
  1404. package/esm2015/components/country-phone-picker/models/phone-selection-data.js +0 -1
  1405. package/esm2015/components/country-phone-picker/resources/countries.js +0 -228
  1406. package/esm2015/components/country-phone-picker/resources/index.js +0 -2
  1407. package/esm2015/components/custom-fields/custom-fields.component.js +0 -609
  1408. package/esm2015/components/custom-fields/custom-fields.module.js +0 -30
  1409. package/esm2015/components/custom-fields/custom-fields.service.js +0 -36
  1410. package/esm2015/components/custom-fields/index.js +0 -4
  1411. package/esm2015/components/custom-fields/models/custom-field-type.js +0 -17
  1412. package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +0 -37
  1413. package/esm2015/components/dynamic-form/components/field-label/field-label.component.js +0 -18
  1414. package/esm2015/components/dynamic-form/components/field-label/field-label.module.js +0 -19
  1415. package/esm2015/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +0 -32
  1416. package/esm2015/components/dynamic-form/components/fields/base-field-component.js +0 -9
  1417. package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +0 -113
  1418. package/esm2015/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +0 -32
  1419. package/esm2015/components/dynamic-form/components/fields/boolean/boolean-field.component.js +0 -20
  1420. package/esm2015/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.js +0 -17
  1421. package/esm2015/components/dynamic-form/components/fields/button-field/button-field.component.js +0 -31
  1422. package/esm2015/components/dynamic-form/components/fields/calendar/calendar-field.component.js +0 -106
  1423. package/esm2015/components/dynamic-form/components/fields/checkbox/checkbox-field.component.js +0 -17
  1424. package/esm2015/components/dynamic-form/components/fields/checkbox/checkbox-field.module.js +0 -17
  1425. package/esm2015/components/dynamic-form/components/fields/chips/chips-field.component.js +0 -53
  1426. package/esm2015/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +0 -32
  1427. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.component.js +0 -71
  1428. package/esm2015/components/dynamic-form/components/fields/currency/currency-field.module.js +0 -30
  1429. package/esm2015/components/dynamic-form/components/fields/editor/editor-field.component.js +0 -18
  1430. package/esm2015/components/dynamic-form/components/fields/editor/editor-field.module.js +0 -18
  1431. package/esm2015/components/dynamic-form/components/fields/file-upload/file-upload.component.js +0 -51
  1432. package/esm2015/components/dynamic-form/components/fields/index.js +0 -22
  1433. package/esm2015/components/dynamic-form/components/fields/lookup/lookup-field.component.js +0 -17
  1434. package/esm2015/components/dynamic-form/components/fields/number/number-field.component.js +0 -109
  1435. package/esm2015/components/dynamic-form/components/fields/number/number-field.module.js +0 -34
  1436. package/esm2015/components/dynamic-form/components/fields/password/password-field.component.js +0 -77
  1437. package/esm2015/components/dynamic-form/components/fields/password/password-field.module.js +0 -30
  1438. package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +0 -17
  1439. package/esm2015/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +0 -24
  1440. package/esm2015/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +0 -60
  1441. package/esm2015/components/dynamic-form/components/fields/select/select-field.component.js +0 -18
  1442. package/esm2015/components/dynamic-form/components/fields/slider/slider-field.component.js +0 -111
  1443. package/esm2015/components/dynamic-form/components/fields/text/text-field.component.js +0 -76
  1444. package/esm2015/components/dynamic-form/components/fields/text/text-field.module.js +0 -32
  1445. package/esm2015/components/dynamic-form/components/fields/text-area/text-area-field.component.js +0 -29
  1446. package/esm2015/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +0 -87
  1447. package/esm2015/components/dynamic-form/components/grid/row/row.component.js +0 -77
  1448. package/esm2015/components/dynamic-form/components/lookup/lookup.component.js +0 -577
  1449. package/esm2015/components/dynamic-form/components/lookup/models/default-filter.js +0 -1
  1450. package/esm2015/components/dynamic-form/components/lookup/models/index.js +0 -1
  1451. package/esm2015/components/dynamic-form/components/structure/base-structure-component.js +0 -1
  1452. package/esm2015/components/dynamic-form/components/structure/fieldset/fieldset.component.js +0 -32
  1453. package/esm2015/components/dynamic-form/components/structure/section/section.component.js +0 -52
  1454. package/esm2015/components/dynamic-form/configurations/addon-config.js +0 -1
  1455. package/esm2015/components/dynamic-form/configurations/dynamic-config.js +0 -71
  1456. package/esm2015/components/dynamic-form/configurations/dynamic-type.js +0 -26
  1457. package/esm2015/components/dynamic-form/configurations/field-size.js +0 -9
  1458. package/esm2015/components/dynamic-form/configurations/field-type.js +0 -32
  1459. package/esm2015/components/dynamic-form/configurations/fields/autocomplete-field.js +0 -11
  1460. package/esm2015/components/dynamic-form/configurations/fields/bignumber-field.js +0 -23
  1461. package/esm2015/components/dynamic-form/configurations/fields/blob-field.js +0 -19
  1462. package/esm2015/components/dynamic-form/configurations/fields/boolean-field.js +0 -21
  1463. package/esm2015/components/dynamic-form/configurations/fields/boolean-switch-field.js +0 -13
  1464. package/esm2015/components/dynamic-form/configurations/fields/button-field.js +0 -30
  1465. package/esm2015/components/dynamic-form/configurations/fields/calendar-field.js +0 -37
  1466. package/esm2015/components/dynamic-form/configurations/fields/checkbox-field.js +0 -8
  1467. package/esm2015/components/dynamic-form/configurations/fields/chips-field.js +0 -17
  1468. package/esm2015/components/dynamic-form/configurations/fields/country-phone-picker-field.js +0 -11
  1469. package/esm2015/components/dynamic-form/configurations/fields/currency-field.js +0 -12
  1470. package/esm2015/components/dynamic-form/configurations/fields/decimal-field.js +0 -14
  1471. package/esm2015/components/dynamic-form/configurations/fields/editor-field.js +0 -11
  1472. package/esm2015/components/dynamic-form/configurations/fields/field.js +0 -41
  1473. package/esm2015/components/dynamic-form/configurations/fields/index.js +0 -22
  1474. package/esm2015/components/dynamic-form/configurations/fields/lookup-field.js +0 -33
  1475. package/esm2015/components/dynamic-form/configurations/fields/number-field.js +0 -23
  1476. package/esm2015/components/dynamic-form/configurations/fields/password-field.js +0 -20
  1477. package/esm2015/components/dynamic-form/configurations/fields/profile-picture.js +0 -21
  1478. package/esm2015/components/dynamic-form/configurations/fields/radio-button-field.js +0 -19
  1479. package/esm2015/components/dynamic-form/configurations/fields/select-field.js +0 -26
  1480. package/esm2015/components/dynamic-form/configurations/fields/slider-field.js +0 -21
  1481. package/esm2015/components/dynamic-form/configurations/fields/text-area-field.js +0 -14
  1482. package/esm2015/components/dynamic-form/configurations/fields/text-area-ia-field.js +0 -18
  1483. package/esm2015/components/dynamic-form/configurations/fields/text-field.js +0 -24
  1484. package/esm2015/components/dynamic-form/configurations/form-field.js +0 -92
  1485. package/esm2015/components/dynamic-form/configurations/grid/grid.js +0 -10
  1486. package/esm2015/components/dynamic-form/configurations/grid/row.js +0 -7
  1487. package/esm2015/components/dynamic-form/configurations/grid-type.js +0 -5
  1488. package/esm2015/components/dynamic-form/configurations/structure/fieldset.js +0 -8
  1489. package/esm2015/components/dynamic-form/configurations/structure/section.js +0 -29
  1490. package/esm2015/components/dynamic-form/configurations/structure/structure.js +0 -7
  1491. package/esm2015/components/dynamic-form/configurations/structure-type.js +0 -6
  1492. package/esm2015/components/dynamic-form/dynamic-form.component.js +0 -32
  1493. package/esm2015/components/dynamic-form/dynamic-form.directive.js +0 -80
  1494. package/esm2015/components/dynamic-form/dynamic-form.js +0 -196
  1495. package/esm2015/components/dynamic-form/dynamic-form.module.js +0 -189
  1496. package/esm2015/components/dynamic-form/index.js +0 -31
  1497. package/esm2015/components/dynamic-form/services/IAssist/iassist.service.js +0 -75
  1498. package/esm2015/components/dynamic-form/services/IAssist/models/iassist-input-data.js +0 -1
  1499. package/esm2015/components/dynamic-form/services/IAssist/models/iassist-response.js +0 -1
  1500. package/esm2015/components/dynamic-form/services/IAssist/models/index.js +0 -1
  1501. package/esm2015/components/editable-overlay/editable-overlay.directive.js +0 -42
  1502. package/esm2015/components/editable-overlay/editable-overlay.module.js +0 -15
  1503. package/esm2015/components/editable-overlay/index.js +0 -3
  1504. package/esm2015/components/empty-state/empty-state.component.js +0 -57
  1505. package/esm2015/components/empty-state/empty-state.module.js +0 -19
  1506. package/esm2015/components/empty-state/go-back/go-back.component.js +0 -37
  1507. package/esm2015/components/empty-state/index.js +0 -3
  1508. package/esm2015/components/file-upload/file-upload.component.js +0 -285
  1509. package/esm2015/components/file-upload/file-upload.module.js +0 -27
  1510. package/esm2015/components/file-upload/file-upload.service.js +0 -19
  1511. package/esm2015/components/file-upload/index.js +0 -4
  1512. package/esm2015/components/file-upload/models/file-dto.js +0 -1
  1513. package/esm2015/components/file-upload/models/file-upload-permissions.js +0 -12
  1514. package/esm2015/components/file-upload/models/index.js +0 -3
  1515. package/esm2015/components/file-upload/models/list-blob-metadata.js +0 -1
  1516. package/esm2015/components/file-upload/models/uploadError.js +0 -1
  1517. package/esm2015/components/file-upload/models/validate-errors.js +0 -8
  1518. package/esm2015/components/gantt/components/gantt/arrow.js +0 -82
  1519. package/esm2015/components/gantt/components/gantt/bar.js +0 -264
  1520. package/esm2015/components/gantt/components/gantt/gantt-options.js +0 -20
  1521. package/esm2015/components/gantt/components/gantt/gantt.js +0 -808
  1522. package/esm2015/components/gantt/components/gantt/popup.js +0 -100
  1523. package/esm2015/components/gantt/components/gantt/utils/date-utils.js +0 -127
  1524. package/esm2015/components/gantt/components/gantt/utils/svg-utils.js +0 -119
  1525. package/esm2015/components/gantt/components/side-table/side-table.component.js +0 -32
  1526. package/esm2015/components/gantt/gantt.component.js +0 -160
  1527. package/esm2015/components/gantt/gantt.module.js +0 -20
  1528. package/esm2015/components/gantt/index.js +0 -4
  1529. package/esm2015/components/gantt/models/index.js +0 -2
  1530. package/esm2015/components/gantt/models/options.js +0 -1
  1531. package/esm2015/components/gantt/models/task.js +0 -1
  1532. package/esm2015/components/gantt/models/view-mode.js +0 -12
  1533. package/esm2015/components/global-search/elements/dropdown/global-search-dropdown-item.component.js +0 -76
  1534. package/esm2015/components/global-search/global-search-size.enum.js +0 -7
  1535. package/esm2015/components/global-search/global-search.component.js +0 -135
  1536. package/esm2015/components/global-search/global-search.module.js +0 -50
  1537. package/esm2015/components/global-search/index.js +0 -5
  1538. package/esm2015/components/grid-menu/components/grid-menu-item/grid-menu-item.component.js +0 -36
  1539. package/esm2015/components/grid-menu/grid-menu.component.js +0 -22
  1540. package/esm2015/components/grid-menu/grid-menu.module.js +0 -16
  1541. package/esm2015/components/grid-menu/index.js +0 -3
  1542. package/esm2015/components/grid-menu/types/grid-menu-item.js +0 -1
  1543. package/esm2015/components/help-popover/help-popover/help-popover.component.js +0 -82
  1544. package/esm2015/components/help-popover/help-popover.directive.js +0 -328
  1545. package/esm2015/components/help-popover/help-popover.module.js +0 -20
  1546. package/esm2015/components/help-popover/index.js +0 -4
  1547. package/esm2015/components/help-popover/models/help-popover.models.js +0 -1
  1548. package/esm2015/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +0 -13
  1549. package/esm2015/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +0 -82
  1550. package/esm2015/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.js +0 -50
  1551. package/esm2015/components/ia-insight/ia-insight.component.js +0 -68
  1552. package/esm2015/components/ia-insight/ia-insight.module.js +0 -40
  1553. package/esm2015/components/ia-insight/index.js +0 -4
  1554. package/esm2015/components/ia-insight/models/ia-insight-item.js +0 -1
  1555. package/esm2015/components/ia-insight/models/ia-insight-template-types.js +0 -7
  1556. package/esm2015/components/ia-insight/models/index.js +0 -2
  1557. package/esm2015/components/image-cropper/image-cropper.component.js +0 -183
  1558. package/esm2015/components/image-cropper/image-cropper.module.js +0 -20
  1559. package/esm2015/components/image-cropper/image-cropper.service.js +0 -62
  1560. package/esm2015/components/image-cropper/index.js +0 -4
  1561. package/esm2015/components/index.js +0 -73
  1562. package/esm2015/components/infinite-scroll/infinite-scroll.directive.js +0 -30
  1563. package/esm2015/components/infinite-scroll/infinite-scroll.module.js +0 -21
  1564. package/esm2015/components/info-sign/index.js +0 -3
  1565. package/esm2015/components/info-sign/info-sign.component.js +0 -13
  1566. package/esm2015/components/info-sign/info-sign.directive.js +0 -68
  1567. package/esm2015/components/info-sign/info-sign.module.js +0 -24
  1568. package/esm2015/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.js +0 -51
  1569. package/esm2015/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.js +0 -30
  1570. package/esm2015/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.js +0 -75
  1571. package/esm2015/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.js +0 -30
  1572. package/esm2015/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.js +0 -30
  1573. package/esm2015/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.js +0 -30
  1574. package/esm2015/components/inline-edit/components/index.js +0 -8
  1575. package/esm2015/components/inline-edit/components/inline-edit-item/inline-edit-item.component.js +0 -98
  1576. package/esm2015/components/inline-edit/fields/index.js +0 -8
  1577. package/esm2015/components/inline-edit/fields/inline-edit-calendar-field.js +0 -26
  1578. package/esm2015/components/inline-edit/fields/inline-edit-field.js +0 -9
  1579. package/esm2015/components/inline-edit/fields/inline-edit-lookup-field.js +0 -32
  1580. package/esm2015/components/inline-edit/fields/inline-edit-number-field.js +0 -24
  1581. package/esm2015/components/inline-edit/fields/inline-edit-text-area-field.js +0 -11
  1582. package/esm2015/components/inline-edit/fields/inline-edit-text-area-ia-field.js +0 -7
  1583. package/esm2015/components/inline-edit/fields/inline-edit-text-field.js +0 -7
  1584. package/esm2015/components/inline-edit/index.js +0 -4
  1585. package/esm2015/components/inline-edit/inline-edit.component.js +0 -70
  1586. package/esm2015/components/inline-edit/inline-edit.module.js +0 -62
  1587. package/esm2015/components/kanban/components/kanban-column/kanban-column.component.js +0 -96
  1588. package/esm2015/components/kanban/components/kanban-item/kanban-item.component.js +0 -60
  1589. package/esm2015/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +0 -19
  1590. package/esm2015/components/kanban/index.js +0 -4
  1591. package/esm2015/components/kanban/kanban-event.service.js +0 -27
  1592. package/esm2015/components/kanban/kanban.component.js +0 -217
  1593. package/esm2015/components/kanban/kanban.module.js +0 -45
  1594. package/esm2015/components/kanban/models/index.js +0 -2
  1595. package/esm2015/components/kanban/models/kanban-data.js +0 -1
  1596. package/esm2015/components/kanban/models/kanban-template-types.js +0 -9
  1597. package/esm2015/components/label-value/index.js +0 -3
  1598. package/esm2015/components/label-value/label-value.component.js +0 -31
  1599. package/esm2015/components/label-value/label-value.module.js +0 -20
  1600. package/esm2015/components/label-value/types/label-value-configuration.js +0 -1
  1601. package/esm2015/components/loading-state/components/dots-indicator/dots-indicator.components.js +0 -13
  1602. package/esm2015/components/loading-state/components/loading-state-indicators.js +0 -6
  1603. package/esm2015/components/loading-state/components/logo-indicator/logo-indicator.component.js +0 -13
  1604. package/esm2015/components/loading-state/index.js +0 -4
  1605. package/esm2015/components/loading-state/loading-state.component.js +0 -73
  1606. package/esm2015/components/loading-state/loading-state.directive.js +0 -60
  1607. package/esm2015/components/loading-state/loading-state.module.js +0 -31
  1608. package/esm2015/components/locale/index.js +0 -11
  1609. package/esm2015/components/locale/locale.module.js +0 -71
  1610. package/esm2015/components/locale/locale.service.js +0 -89
  1611. package/esm2015/components/locale/options/calendar.js +0 -29
  1612. package/esm2015/components/locale/options/index.js +0 -24
  1613. package/esm2015/components/locale/options/number.js +0 -9
  1614. package/esm2015/components/locale/pipes/localized-bignumber-impure.pipe.js +0 -16
  1615. package/esm2015/components/locale/pipes/localized-bignumber.pipe.js +0 -39
  1616. package/esm2015/components/locale/pipes/localized-currency-impure.pipe.js +0 -19
  1617. package/esm2015/components/locale/pipes/localized-currency.pipe.js +0 -53
  1618. package/esm2015/components/locale/pipes/localized-date-impure.pipe.js +0 -13
  1619. package/esm2015/components/locale/pipes/localized-date.pipe.js +0 -24
  1620. package/esm2015/components/locale/pipes/localized-number.pipe.js +0 -31
  1621. package/esm2015/components/locale/pipes/localized-time-impure.pipe.js +0 -13
  1622. package/esm2015/components/locale/pipes/localized-time.pipe.js +0 -24
  1623. package/esm2015/components/locale/pipes/numeric.pipe.js +0 -28
  1624. package/esm2015/components/locale/services/numeric.service.js +0 -86
  1625. package/esm2015/components/localized-number-input/index.js +0 -3
  1626. package/esm2015/components/localized-number-input/localized-number-input.directive.js +0 -58
  1627. package/esm2015/components/localized-number-input/localized-number-input.module.js +0 -15
  1628. package/esm2015/components/mask/index.js +0 -3
  1629. package/esm2015/components/mask/mask-formatter.module.js +0 -13
  1630. package/esm2015/components/mask/mask-formatter.pipe.js +0 -71
  1631. package/esm2015/components/mouse-events/double-click.directive.js +0 -38
  1632. package/esm2015/components/mouse-events/index.js +0 -4
  1633. package/esm2015/components/mouse-events/long-press.directive.js +0 -49
  1634. package/esm2015/components/mouse-events/mouse-events.module.js +0 -22
  1635. package/esm2015/components/navigation-button/index.js +0 -3
  1636. package/esm2015/components/navigation-button/models/index.js +0 -1
  1637. package/esm2015/components/navigation-button/models/navigation-button-item.js +0 -1
  1638. package/esm2015/components/navigation-button/models/navigation-button-step-changed-info.js +0 -1
  1639. package/esm2015/components/navigation-button/navigation-button.component.js +0 -126
  1640. package/esm2015/components/navigation-button/navigation-button.module.js +0 -17
  1641. package/esm2015/components/number-input/index.js +0 -3
  1642. package/esm2015/components/number-input/number-input.directive.js +0 -162
  1643. package/esm2015/components/number-input/number-input.module.js +0 -18
  1644. package/esm2015/components/object-card/elements/field/object-card-field.component.js +0 -53
  1645. package/esm2015/components/object-card/elements/main/object-card-main.component.js +0 -93
  1646. package/esm2015/components/object-card/index.js +0 -5
  1647. package/esm2015/components/object-card/object-card.component.js +0 -141
  1648. package/esm2015/components/object-card/object-card.module.js +0 -21
  1649. package/esm2015/components/panel/index.js +0 -3
  1650. package/esm2015/components/panel/panel.component.js +0 -84
  1651. package/esm2015/components/panel/panel.module.js +0 -17
  1652. package/esm2015/components/password-strength/index.js +0 -5
  1653. package/esm2015/components/password-strength/models/index.js +0 -3
  1654. package/esm2015/components/password-strength/models/password-positions.js +0 -7
  1655. package/esm2015/components/password-strength/models/password-strengths.js +0 -8
  1656. package/esm2015/components/password-strength/password-strength.component.js +0 -95
  1657. package/esm2015/components/password-strength/password-strength.directive.js +0 -196
  1658. package/esm2015/components/password-strength/password-strength.module.js +0 -19
  1659. package/esm2015/components/picklist/index.js +0 -5
  1660. package/esm2015/components/picklist/picklist/models/picklist-models.js +0 -6
  1661. package/esm2015/components/picklist/picklist/picklist.component.js +0 -305
  1662. package/esm2015/components/picklist/picklist.module.js +0 -25
  1663. package/esm2015/components/product-header/index.js +0 -3
  1664. package/esm2015/components/product-header/product-header.component.js +0 -45
  1665. package/esm2015/components/product-header/product-header.module.js +0 -17
  1666. package/esm2015/components/profile-picture-picker/index.js +0 -4
  1667. package/esm2015/components/profile-picture-picker/models/confirmation-texts.js +0 -1
  1668. package/esm2015/components/profile-picture-picker/models/cropper-labels-config.js +0 -1
  1669. package/esm2015/components/profile-picture-picker/models/file-validation-errors.js +0 -8
  1670. package/esm2015/components/profile-picture-picker/models/index.js +0 -2
  1671. package/esm2015/components/profile-picture-picker/models/profile-picture-picker-data.js +0 -1
  1672. package/esm2015/components/profile-picture-picker/profile-picture-picker.component.js +0 -262
  1673. package/esm2015/components/profile-picture-picker/profile-picture-picker.module.js +0 -33
  1674. package/esm2015/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +0 -61
  1675. package/esm2015/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.js +0 -19
  1676. package/esm2015/components/progressbar/index.js +0 -4
  1677. package/esm2015/components/progressbar/models/index.js +0 -3
  1678. package/esm2015/components/progressbar/models/progressbar-colors.js +0 -8
  1679. package/esm2015/components/progressbar/models/progressbar-mode.js +0 -6
  1680. package/esm2015/components/progressbar/progressbar.component.js +0 -62
  1681. package/esm2015/components/progressbar/progressbar.module.js +0 -21
  1682. package/esm2015/components/rating-scale/index.js +0 -3
  1683. package/esm2015/components/rating-scale/models/index.js +0 -1
  1684. package/esm2015/components/rating-scale/models/rating-scale-node.js +0 -1
  1685. package/esm2015/components/rating-scale/rating-scale.component.js +0 -52
  1686. package/esm2015/components/rating-scale/rating-scale.module.js +0 -19
  1687. package/esm2015/components/select-button/components/select-button-item/select-button-item.component.js +0 -34
  1688. package/esm2015/components/select-button/index.js +0 -3
  1689. package/esm2015/components/select-button/models/index.js +0 -1
  1690. package/esm2015/components/select-button/models/select-button-item.js +0 -1
  1691. package/esm2015/components/select-button/select-button.component.js +0 -114
  1692. package/esm2015/components/select-button/select-button.module.js +0 -19
  1693. package/esm2015/components/shared/border-button/border-button.component.js +0 -26
  1694. package/esm2015/components/shared/border-button/border-button.module.js +0 -16
  1695. package/esm2015/components/shared/helpers.js +0 -30
  1696. package/esm2015/components/shared/index.js +0 -3
  1697. package/esm2015/components/shared/models/border-button-options.js +0 -1
  1698. package/esm2015/components/shared/models/enum-severity.js +0 -9
  1699. package/esm2015/components/sidebar/index.js +0 -3
  1700. package/esm2015/components/sidebar/sidebar.component.js +0 -72
  1701. package/esm2015/components/sidebar/sidebar.module.js +0 -19
  1702. package/esm2015/components/slide-panel/index.js +0 -3
  1703. package/esm2015/components/slide-panel/slide-panel.component.js +0 -140
  1704. package/esm2015/components/slide-panel/slide-panel.module.js +0 -17
  1705. package/esm2015/components/slide-panel/slide-panel.service.js +0 -27
  1706. package/esm2015/components/slider/index.js +0 -3
  1707. package/esm2015/components/slider/slider.component.js +0 -620
  1708. package/esm2015/components/slider/slider.module.js +0 -16
  1709. package/esm2015/components/speech-recognition/speech-recognition/speech-recognition.component.js +0 -180
  1710. package/esm2015/components/speech-recognition/speech-recognition.module.js +0 -19
  1711. package/esm2015/components/speech-recognition/speech-recognition.service.js +0 -104
  1712. package/esm2015/components/speech-recognition/text-to-speech.service.js +0 -84
  1713. package/esm2015/components/split-button/index.js +0 -4
  1714. package/esm2015/components/split-button/models/split-button-option.js +0 -1
  1715. package/esm2015/components/split-button/models/split-button-type.js +0 -7
  1716. package/esm2015/components/split-button/split-button.component.js +0 -68
  1717. package/esm2015/components/split-button/split-button.module.js +0 -15
  1718. package/esm2015/components/stats-card/index.js +0 -3
  1719. package/esm2015/components/stats-card/stats-card.component.js +0 -124
  1720. package/esm2015/components/stats-card/stats-card.module.js +0 -23
  1721. package/esm2015/components/steps/index.js +0 -3
  1722. package/esm2015/components/steps/steps.component.js +0 -97
  1723. package/esm2015/components/steps/steps.module.js +0 -16
  1724. package/esm2015/components/structure/footer.component.js +0 -12
  1725. package/esm2015/components/structure/header.component.js +0 -12
  1726. package/esm2015/components/structure/structure.module.js +0 -16
  1727. package/esm2015/components/switch/index.js +0 -3
  1728. package/esm2015/components/switch/switch.component.js +0 -92
  1729. package/esm2015/components/switch/switch.module.js +0 -15
  1730. package/esm2015/components/table/frozen-position/frozen-position.directive.js +0 -203
  1731. package/esm2015/components/table/index.js +0 -6
  1732. package/esm2015/components/table/navigation/navigation.directive.js +0 -134
  1733. package/esm2015/components/table/row-toggler/row-toggler.directive.js +0 -36
  1734. package/esm2015/components/table/table-column/index.js +0 -2
  1735. package/esm2015/components/table/table-column/models/badge-column.interface.js +0 -1
  1736. package/esm2015/components/table/table-column/models/badge-configs.interface.js +0 -1
  1737. package/esm2015/components/table/table-column/models/column-colors.js +0 -1
  1738. package/esm2015/components/table/table-column/models/column-values.interface.js +0 -1
  1739. package/esm2015/components/table/table-column/models/column.interface.js +0 -1
  1740. package/esm2015/components/table/table-column/models/dynamic-editable-grid.interface.js +0 -1
  1741. package/esm2015/components/table/table-column/models/enum-badge-colors.js +0 -10
  1742. package/esm2015/components/table/table-column/models/enum-column-field-type.js +0 -13
  1743. package/esm2015/components/table/table-column/models/index.js +0 -3
  1744. package/esm2015/components/table/table-column/models/locale-options.interface.js +0 -1
  1745. package/esm2015/components/table/table-column/models/number-locale-options.interface.js +0 -1
  1746. package/esm2015/components/table/table-column/table-columns.component.js +0 -285
  1747. package/esm2015/components/table/table-paging/index.js +0 -1
  1748. package/esm2015/components/table/table-paging/models/custom-action.interface.js +0 -1
  1749. package/esm2015/components/table/table-paging/models/index.js +0 -1
  1750. package/esm2015/components/table/table-paging/table-paging.component.js +0 -313
  1751. package/esm2015/components/table/table.module.js +0 -45
  1752. package/esm2015/components/table-header/index.js +0 -3
  1753. package/esm2015/components/table-header/table-header-checkbox.component.js +0 -141
  1754. package/esm2015/components/table-header/table-header-checkox.module.js +0 -15
  1755. package/esm2015/components/template/index.js +0 -3
  1756. package/esm2015/components/template/template.directive.js +0 -20
  1757. package/esm2015/components/template/template.module.js +0 -15
  1758. package/esm2015/components/text-area/index.js +0 -3
  1759. package/esm2015/components/text-area/text-area/text-area.component.js +0 -101
  1760. package/esm2015/components/text-area/text-area.module.js +0 -24
  1761. package/esm2015/components/text-area-ia/index.js +0 -3
  1762. package/esm2015/components/text-area-ia/text-area-ia.component.js +0 -133
  1763. package/esm2015/components/text-area-ia/text-area-ia.module.js +0 -32
  1764. package/esm2015/components/thumbnail/index.js +0 -4
  1765. package/esm2015/components/thumbnail/thumbnail-size.js +0 -7
  1766. package/esm2015/components/thumbnail/thumbnail.component.js +0 -80
  1767. package/esm2015/components/thumbnail/thumbnail.module.js +0 -17
  1768. package/esm2015/components/thumbnail/thumbnail.service.js +0 -61
  1769. package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +0 -16
  1770. package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +0 -41
  1771. package/esm2015/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +0 -66
  1772. package/esm2015/components/thumbnails/index.js +0 -3
  1773. package/esm2015/components/thumbnails/models/thumbnails-item.js +0 -1
  1774. package/esm2015/components/thumbnails/thumbnails.component.js +0 -56
  1775. package/esm2015/components/thumbnails/thumbnails.module.js +0 -21
  1776. package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +0 -283
  1777. package/esm2015/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +0 -13
  1778. package/esm2015/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +0 -76
  1779. package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +0 -178
  1780. package/esm2015/components/tiered-menu/index.js +0 -3
  1781. package/esm2015/components/tiered-menu/models/index.js +0 -1
  1782. package/esm2015/components/tiered-menu/models/tiered-menu-item-data.js +0 -1
  1783. package/esm2015/components/tiered-menu/models/tiered-menu-item-internal-data.js +0 -1
  1784. package/esm2015/components/tiered-menu/services/tiered-menu.event.service.js +0 -18
  1785. package/esm2015/components/tiered-menu/services/tiered-menu.global.service.js +0 -9
  1786. package/esm2015/components/tiered-menu/services/tiered-menu.service.js +0 -51
  1787. package/esm2015/components/tiered-menu/tiered-menu.directive.js +0 -220
  1788. package/esm2015/components/tiered-menu/tiered-menu.module.js +0 -29
  1789. package/esm2015/components/tiered-menu/utils.js +0 -7
  1790. package/esm2015/components/tile/index.js +0 -3
  1791. package/esm2015/components/tile/tile.component.js +0 -71
  1792. package/esm2015/components/tile/tile.module.js +0 -24
  1793. package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +0 -25
  1794. package/esm2015/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +0 -21
  1795. package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +0 -25
  1796. package/esm2015/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +0 -19
  1797. package/esm2015/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +0 -26
  1798. package/esm2015/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +0 -35
  1799. package/esm2015/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +0 -13
  1800. package/esm2015/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +0 -28
  1801. package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.component.js +0 -53
  1802. package/esm2015/components/timeline/components/vertical-timeline/vertical-timeline.module.js +0 -29
  1803. package/esm2015/components/timeline/index.js +0 -4
  1804. package/esm2015/components/timeline/models/index.js +0 -4
  1805. package/esm2015/components/timeline/models/timeline-item-severity.js +0 -7
  1806. package/esm2015/components/timeline/models/timeline-item-size.js +0 -6
  1807. package/esm2015/components/timeline/models/timeline-item.js +0 -37
  1808. package/esm2015/components/timeline/timeline.component.js +0 -66
  1809. package/esm2015/components/timeline/timeline.module.js +0 -27
  1810. package/esm2015/components/toast/index.js +0 -4
  1811. package/esm2015/components/toast/toast.component.js +0 -51
  1812. package/esm2015/components/toast/toast.module.js +0 -14
  1813. package/esm2015/components/toast/toast.service.js +0 -68
  1814. package/esm2015/components/toast/types/toast.js +0 -1
  1815. package/esm2015/components/token-list/index.js +0 -3
  1816. package/esm2015/components/token-list/models/index.js +0 -1
  1817. package/esm2015/components/token-list/models/token.js +0 -1
  1818. package/esm2015/components/token-list/token-list.component.js +0 -50
  1819. package/esm2015/components/token-list/token-list.module.js +0 -15
  1820. package/esm2015/components/tooltip/index.js +0 -3
  1821. package/esm2015/components/tooltip/models/index.js +0 -4
  1822. package/esm2015/components/tooltip/models/mobile-behavior.js +0 -6
  1823. package/esm2015/components/tooltip/models/tooltip-event.js +0 -6
  1824. package/esm2015/components/tooltip/models/tooltip-position.js +0 -8
  1825. package/esm2015/components/tooltip/tooltip.component.js +0 -21
  1826. package/esm2015/components/tooltip/tooltip.directive.js +0 -350
  1827. package/esm2015/components/tooltip/tooltip.module.js +0 -19
  1828. package/esm2015/components/utils/breakpoints.js +0 -11
  1829. package/esm2015/components/utils/debouce.js +0 -35
  1830. package/esm2015/components/utils/export-utils.js +0 -89
  1831. package/esm2015/components/utils/index.js +0 -6
  1832. package/esm2015/components/utils/locale-utils.js +0 -15
  1833. package/esm2015/components/utils/utils.js +0 -39
  1834. package/esm2015/components/workspace-switch/index.js +0 -3
  1835. package/esm2015/components/workspace-switch/models/index.js +0 -1
  1836. package/esm2015/components/workspace-switch/models/workspace.js +0 -1
  1837. package/esm2015/components/workspace-switch/workspace-switch.component.js +0 -143
  1838. package/esm2015/components/workspace-switch/workspace-switch.module.js +0 -15
  1839. package/esm2015/locale/fallback.js +0 -332
  1840. package/esm2015/public-api.js +0 -5
  1841. package/esm2015/seniorsistemas-angular-components.js +0 -119
  1842. package/esm2015/utils/currency/currency.service.js +0 -189
  1843. package/esm2015/utils/currency/index.js +0 -2
  1844. package/esm2015/utils/index.js +0 -3
  1845. package/esm2015/utils/svg-factory/components/iassist-icon/iassist-icon.component.js +0 -11
  1846. package/esm2015/utils/svg-factory/components/senior-icon/senior-icon.component.js +0 -11
  1847. package/esm2015/utils/svg-factory/components/svg-factory-icons.js +0 -6
  1848. package/esm2015/utils/svg-factory/index.js +0 -3
  1849. package/esm2015/utils/svg-factory/svg-factory.directive.js +0 -49
  1850. package/esm2015/utils/svg-factory/svg-factory.module.js +0 -21
  1851. package/esm5/angular-components.module.js +0 -26
  1852. package/esm5/components/accordion/accordion.component.js +0 -93
  1853. package/esm5/components/accordion/accordion.module.js +0 -34
  1854. package/esm5/components/accordion/components/accordion-panel/accordion-panel.component.js +0 -124
  1855. package/esm5/components/accordion/index.js +0 -4
  1856. package/esm5/components/accordion/models/accordion-button-settings.js +0 -1
  1857. package/esm5/components/accordion/models/accordion-switch-settings.js +0 -1
  1858. package/esm5/components/alert/alert.component.js +0 -52
  1859. package/esm5/components/alert/alert.module.js +0 -18
  1860. package/esm5/components/alert/index.js +0 -3
  1861. package/esm5/components/badge/badge.component.js +0 -62
  1862. package/esm5/components/badge/badge.module.js +0 -20
  1863. package/esm5/components/badge/index.js +0 -4
  1864. package/esm5/components/badge/models/badge-colors.js +0 -12
  1865. package/esm5/components/badge/models/badge-types.js +0 -6
  1866. package/esm5/components/badge/models/index.js +0 -3
  1867. package/esm5/components/bignumber-input/bignumber-input.directive.js +0 -155
  1868. package/esm5/components/bignumber-input/bignumber-input.module.js +0 -18
  1869. package/esm5/components/bignumber-input/index.js +0 -3
  1870. package/esm5/components/breadcrumb/breadcrumb.component.js +0 -95
  1871. package/esm5/components/breadcrumb/breadcrumb.module.js +0 -20
  1872. package/esm5/components/breadcrumb/index.js +0 -3
  1873. package/esm5/components/button/button.component.js +0 -141
  1874. package/esm5/components/button/button.module.js +0 -23
  1875. package/esm5/components/button/index.js +0 -6
  1876. package/esm5/components/button/models/button-animation.js +0 -5
  1877. package/esm5/components/button/models/button-badge-config.js +0 -1
  1878. package/esm5/components/button/models/button-priority.js +0 -9
  1879. package/esm5/components/button/models/button-size.js +0 -6
  1880. package/esm5/components/calendar-mask/calendar-mask.directive.js +0 -584
  1881. package/esm5/components/calendar-mask/calendar-mask.module.js +0 -18
  1882. package/esm5/components/calendar-mask/index.js +0 -3
  1883. package/esm5/components/card/card.component.js +0 -79
  1884. package/esm5/components/card/card.module.js +0 -19
  1885. package/esm5/components/card/index.js +0 -4
  1886. package/esm5/components/card/models/card-template-types.js +0 -7
  1887. package/esm5/components/chat/chat.component.js +0 -34
  1888. package/esm5/components/chat/chat.module.js +0 -21
  1889. package/esm5/components/chat/components/chat-message/chat-message.component.js +0 -29
  1890. package/esm5/components/chat/index.js +0 -3
  1891. package/esm5/components/chat/types/chat-message.js +0 -1
  1892. package/esm5/components/checkbox/checkbox.component.js +0 -116
  1893. package/esm5/components/checkbox/checkbox.module.js +0 -19
  1894. package/esm5/components/checkbox/index.js +0 -3
  1895. package/esm5/components/checkbox/models/checkbox-data.js +0 -1
  1896. package/esm5/components/checkbox/models/checkbox-state.js +0 -1
  1897. package/esm5/components/checkbox/models/index.js +0 -1
  1898. package/esm5/components/chips/chip-item/chip-item.component.js +0 -77
  1899. package/esm5/components/chips/chips/chips.component.js +0 -235
  1900. package/esm5/components/chips/chips.module.js +0 -27
  1901. package/esm5/components/chips/index.js +0 -3
  1902. package/esm5/components/chips/models/chip-models.js +0 -1
  1903. package/esm5/components/code-editor/code-editor.component.js +0 -121
  1904. package/esm5/components/code-editor/code-editor.module.js +0 -27
  1905. package/esm5/components/code-editor/core/facades/core-facade.js +0 -96
  1906. package/esm5/components/code-editor/core/facades/linter-facade.js +0 -1
  1907. package/esm5/components/code-editor/core/models/enums/marker-severity.js +0 -7
  1908. package/esm5/components/code-editor/core/models/index.js +0 -3
  1909. package/esm5/components/code-editor/core/models/interfaces/marker.js +0 -1
  1910. package/esm5/components/code-editor/core/use-cases/core-linters.js +0 -13
  1911. package/esm5/components/code-editor/index.js +0 -5
  1912. package/esm5/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +0 -109
  1913. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +0 -19
  1914. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.js +0 -29
  1915. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.js +0 -29
  1916. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.js +0 -17
  1917. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper.js +0 -68
  1918. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.js +0 -4
  1919. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.js +0 -35
  1920. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +0 -355
  1921. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.js +0 -46
  1922. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.js +0 -19
  1923. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.js +0 -2
  1924. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.js +0 -10
  1925. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.js +0 -8
  1926. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.js +0 -12
  1927. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.js +0 -36
  1928. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.js +0 -9
  1929. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.js +0 -7
  1930. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.js +0 -1
  1931. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.js +0 -1
  1932. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.js +0 -1
  1933. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.js +0 -1
  1934. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.js +0 -1
  1935. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.js +0 -1
  1936. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.js +0 -1
  1937. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.js +0 -1
  1938. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.js +0 -1
  1939. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.js +0 -1
  1940. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.js +0 -1
  1941. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.js +0 -1
  1942. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/safe-http-communication.js +0 -1
  1943. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.js +0 -1
  1944. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.js +0 -14
  1945. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +0 -9
  1946. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.js +0 -15
  1947. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-safe-response.js +0 -27
  1948. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +0 -3
  1949. package/esm5/components/code-editor/infra/cores/codemirror-6/models/index.js +0 -1
  1950. package/esm5/components/code-editor/infra/cores/codemirror-6/models/types/diagnostic-severity.js +0 -1
  1951. package/esm5/components/code-editor/infra/cores/codemirror-6/models/types/editor-theme.js +0 -1
  1952. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +0 -19
  1953. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.js +0 -61
  1954. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.js +0 -30
  1955. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.js +0 -25
  1956. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.js +0 -18
  1957. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +0 -16
  1958. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.js +0 -13
  1959. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.js +0 -22
  1960. package/esm5/components/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.js +0 -18
  1961. package/esm5/components/code-editor/infra/cores/codemirror-6/utils/index.js +0 -3
  1962. package/esm5/components/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.js +0 -6
  1963. package/esm5/components/code-editor/infra/utils/custom-http-client/custom-http-client.js +0 -126
  1964. package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.js +0 -21
  1965. package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.js +0 -14
  1966. package/esm5/components/code-editor/infra/utils/custom-http-client/json-response-formatters/index.js +0 -3
  1967. package/esm5/components/code-editor/infra/utils/custom-translations/custom-translations-service.js +0 -41
  1968. package/esm5/components/code-editor/infra/utils/custom-translations/custom-translations.module.js +0 -31
  1969. package/esm5/components/code-editor/infra/utils/custom-translations/index.js +0 -3
  1970. package/esm5/components/code-editor/infra/utils/custom-translations/models/index.js +0 -1
  1971. package/esm5/components/code-editor/infra/utils/custom-translations/models/interfaces/translations.js +0 -1
  1972. package/esm5/components/code-editor/infra/utils/index.js +0 -3
  1973. package/esm5/components/code-editor/models/enums/languages.js +0 -5
  1974. package/esm5/components/code-editor/models/enums/themes.js +0 -5
  1975. package/esm5/components/code-editor/models/index.js +0 -4
  1976. package/esm5/components/code-editor/models/interfaces/editor-options.js +0 -1
  1977. package/esm5/components/collapse-link/collapse-link.component.js +0 -75
  1978. package/esm5/components/collapse-link/collapse-link.module.js +0 -18
  1979. package/esm5/components/collapse-link/index.js +0 -3
  1980. package/esm5/components/control-errors/control-errors.component.js +0 -40
  1981. package/esm5/components/control-errors/control-errors.module.js +0 -19
  1982. package/esm5/components/control-errors/index.js +0 -3
  1983. package/esm5/components/country-phone-picker/country-phone-picker.component.js +0 -327
  1984. package/esm5/components/country-phone-picker/country-phone-picker.module.js +0 -30
  1985. package/esm5/components/country-phone-picker/country-phone-picker.service.js +0 -46
  1986. package/esm5/components/country-phone-picker/index.js +0 -5
  1987. package/esm5/components/country-phone-picker/models/country-phone-data.js +0 -1
  1988. package/esm5/components/country-phone-picker/models/index.js +0 -2
  1989. package/esm5/components/country-phone-picker/models/ordination.js +0 -7
  1990. package/esm5/components/country-phone-picker/models/phone-selection-data.js +0 -1
  1991. package/esm5/components/country-phone-picker/resources/countries.js +0 -228
  1992. package/esm5/components/country-phone-picker/resources/index.js +0 -2
  1993. package/esm5/components/custom-fields/custom-fields.component.js +0 -649
  1994. package/esm5/components/custom-fields/custom-fields.module.js +0 -33
  1995. package/esm5/components/custom-fields/custom-fields.service.js +0 -37
  1996. package/esm5/components/custom-fields/index.js +0 -4
  1997. package/esm5/components/custom-fields/models/custom-field-type.js +0 -17
  1998. package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +0 -38
  1999. package/esm5/components/dynamic-form/components/field-label/field-label.component.js +0 -21
  2000. package/esm5/components/dynamic-form/components/field-label/field-label.module.js +0 -22
  2001. package/esm5/components/dynamic-form/components/fields/autocomplete/autocomplete-field.component.js +0 -33
  2002. package/esm5/components/dynamic-form/components/fields/base-field-component.js +0 -13
  2003. package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.component.js +0 -122
  2004. package/esm5/components/dynamic-form/components/fields/bignumber/bignumber-field.module.js +0 -35
  2005. package/esm5/components/dynamic-form/components/fields/boolean/boolean-field.component.js +0 -23
  2006. package/esm5/components/dynamic-form/components/fields/boolean/boolean-switch-field.component.js +0 -20
  2007. package/esm5/components/dynamic-form/components/fields/button-field/button-field.component.js +0 -34
  2008. package/esm5/components/dynamic-form/components/fields/calendar/calendar-field.component.js +0 -107
  2009. package/esm5/components/dynamic-form/components/fields/checkbox/checkbox-field.component.js +0 -20
  2010. package/esm5/components/dynamic-form/components/fields/checkbox/checkbox-field.module.js +0 -20
  2011. package/esm5/components/dynamic-form/components/fields/chips/chips-field.component.js +0 -55
  2012. package/esm5/components/dynamic-form/components/fields/country-phone-picker/country-phone-picker-field.component.js +0 -33
  2013. package/esm5/components/dynamic-form/components/fields/currency/currency-field.component.js +0 -75
  2014. package/esm5/components/dynamic-form/components/fields/currency/currency-field.module.js +0 -33
  2015. package/esm5/components/dynamic-form/components/fields/editor/editor-field.component.js +0 -23
  2016. package/esm5/components/dynamic-form/components/fields/editor/editor-field.module.js +0 -21
  2017. package/esm5/components/dynamic-form/components/fields/file-upload/file-upload.component.js +0 -55
  2018. package/esm5/components/dynamic-form/components/fields/index.js +0 -22
  2019. package/esm5/components/dynamic-form/components/fields/lookup/lookup-field.component.js +0 -20
  2020. package/esm5/components/dynamic-form/components/fields/number/number-field.component.js +0 -122
  2021. package/esm5/components/dynamic-form/components/fields/number/number-field.module.js +0 -37
  2022. package/esm5/components/dynamic-form/components/fields/password/password-field.component.js +0 -79
  2023. package/esm5/components/dynamic-form/components/fields/password/password-field.module.js +0 -33
  2024. package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.component.js +0 -20
  2025. package/esm5/components/dynamic-form/components/fields/profile-picture/profile-picture-field.module.js +0 -27
  2026. package/esm5/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +0 -51
  2027. package/esm5/components/dynamic-form/components/fields/select/select-field.component.js +0 -23
  2028. package/esm5/components/dynamic-form/components/fields/slider/slider-field.component.js +0 -123
  2029. package/esm5/components/dynamic-form/components/fields/text/text-field.component.js +0 -80
  2030. package/esm5/components/dynamic-form/components/fields/text/text-field.module.js +0 -35
  2031. package/esm5/components/dynamic-form/components/fields/text-area/text-area-field.component.js +0 -30
  2032. package/esm5/components/dynamic-form/components/fields/text-area-ia/text-area-ia-field.component.js +0 -89
  2033. package/esm5/components/dynamic-form/components/grid/row/row.component.js +0 -37
  2034. package/esm5/components/dynamic-form/components/lookup/lookup.component.js +0 -590
  2035. package/esm5/components/dynamic-form/components/lookup/models/default-filter.js +0 -1
  2036. package/esm5/components/dynamic-form/components/lookup/models/index.js +0 -1
  2037. package/esm5/components/dynamic-form/components/structure/base-structure-component.js +0 -1
  2038. package/esm5/components/dynamic-form/components/structure/fieldset/fieldset.component.js +0 -27
  2039. package/esm5/components/dynamic-form/components/structure/section/section.component.js +0 -44
  2040. package/esm5/components/dynamic-form/configurations/addon-config.js +0 -1
  2041. package/esm5/components/dynamic-form/configurations/dynamic-config.js +0 -73
  2042. package/esm5/components/dynamic-form/configurations/dynamic-type.js +0 -26
  2043. package/esm5/components/dynamic-form/configurations/field-size.js +0 -12
  2044. package/esm5/components/dynamic-form/configurations/field-type.js +0 -32
  2045. package/esm5/components/dynamic-form/configurations/fields/autocomplete-field.js +0 -16
  2046. package/esm5/components/dynamic-form/configurations/fields/bignumber-field.js +0 -28
  2047. package/esm5/components/dynamic-form/configurations/fields/blob-field.js +0 -24
  2048. package/esm5/components/dynamic-form/configurations/fields/boolean-field.js +0 -28
  2049. package/esm5/components/dynamic-form/configurations/fields/boolean-switch-field.js +0 -18
  2050. package/esm5/components/dynamic-form/configurations/fields/button-field.js +0 -35
  2051. package/esm5/components/dynamic-form/configurations/fields/calendar-field.js +0 -42
  2052. package/esm5/components/dynamic-form/configurations/fields/checkbox-field.js +0 -13
  2053. package/esm5/components/dynamic-form/configurations/fields/chips-field.js +0 -22
  2054. package/esm5/components/dynamic-form/configurations/fields/country-phone-picker-field.js +0 -16
  2055. package/esm5/components/dynamic-form/configurations/fields/currency-field.js +0 -17
  2056. package/esm5/components/dynamic-form/configurations/fields/decimal-field.js +0 -19
  2057. package/esm5/components/dynamic-form/configurations/fields/editor-field.js +0 -16
  2058. package/esm5/components/dynamic-form/configurations/fields/field.js +0 -49
  2059. package/esm5/components/dynamic-form/configurations/fields/index.js +0 -22
  2060. package/esm5/components/dynamic-form/configurations/fields/lookup-field.js +0 -51
  2061. package/esm5/components/dynamic-form/configurations/fields/number-field.js +0 -28
  2062. package/esm5/components/dynamic-form/configurations/fields/password-field.js +0 -25
  2063. package/esm5/components/dynamic-form/configurations/fields/profile-picture.js +0 -26
  2064. package/esm5/components/dynamic-form/configurations/fields/radio-button-field.js +0 -26
  2065. package/esm5/components/dynamic-form/configurations/fields/select-field.js +0 -33
  2066. package/esm5/components/dynamic-form/configurations/fields/slider-field.js +0 -26
  2067. package/esm5/components/dynamic-form/configurations/fields/text-area-field.js +0 -19
  2068. package/esm5/components/dynamic-form/configurations/fields/text-area-ia-field.js +0 -23
  2069. package/esm5/components/dynamic-form/configurations/fields/text-field.js +0 -29
  2070. package/esm5/components/dynamic-form/configurations/form-field.js +0 -96
  2071. package/esm5/components/dynamic-form/configurations/grid/grid.js +0 -13
  2072. package/esm5/components/dynamic-form/configurations/grid/row.js +0 -11
  2073. package/esm5/components/dynamic-form/configurations/grid-type.js +0 -5
  2074. package/esm5/components/dynamic-form/configurations/structure/fieldset.js +0 -13
  2075. package/esm5/components/dynamic-form/configurations/structure/section.js +0 -34
  2076. package/esm5/components/dynamic-form/configurations/structure/structure.js +0 -10
  2077. package/esm5/components/dynamic-form/configurations/structure-type.js +0 -6
  2078. package/esm5/components/dynamic-form/dynamic-form.component.js +0 -33
  2079. package/esm5/components/dynamic-form/dynamic-form.directive.js +0 -85
  2080. package/esm5/components/dynamic-form/dynamic-form.js +0 -215
  2081. package/esm5/components/dynamic-form/dynamic-form.module.js +0 -192
  2082. package/esm5/components/dynamic-form/index.js +0 -31
  2083. package/esm5/components/dynamic-form/services/IAssist/iassist.service.js +0 -58
  2084. package/esm5/components/dynamic-form/services/IAssist/models/iassist-input-data.js +0 -1
  2085. package/esm5/components/dynamic-form/services/IAssist/models/iassist-response.js +0 -1
  2086. package/esm5/components/dynamic-form/services/IAssist/models/index.js +0 -1
  2087. package/esm5/components/editable-overlay/editable-overlay.directive.js +0 -45
  2088. package/esm5/components/editable-overlay/editable-overlay.module.js +0 -18
  2089. package/esm5/components/editable-overlay/index.js +0 -3
  2090. package/esm5/components/empty-state/empty-state.component.js +0 -59
  2091. package/esm5/components/empty-state/empty-state.module.js +0 -22
  2092. package/esm5/components/empty-state/go-back/go-back.component.js +0 -38
  2093. package/esm5/components/empty-state/index.js +0 -3
  2094. package/esm5/components/file-upload/file-upload.component.js +0 -304
  2095. package/esm5/components/file-upload/file-upload.module.js +0 -30
  2096. package/esm5/components/file-upload/file-upload.service.js +0 -22
  2097. package/esm5/components/file-upload/index.js +0 -4
  2098. package/esm5/components/file-upload/models/file-dto.js +0 -1
  2099. package/esm5/components/file-upload/models/file-upload-permissions.js +0 -12
  2100. package/esm5/components/file-upload/models/index.js +0 -3
  2101. package/esm5/components/file-upload/models/list-blob-metadata.js +0 -1
  2102. package/esm5/components/file-upload/models/uploadError.js +0 -1
  2103. package/esm5/components/file-upload/models/validate-errors.js +0 -8
  2104. package/esm5/components/gantt/components/gantt/arrow.js +0 -81
  2105. package/esm5/components/gantt/components/gantt/bar.js +0 -299
  2106. package/esm5/components/gantt/components/gantt/gantt-options.js +0 -20
  2107. package/esm5/components/gantt/components/gantt/gantt.js +0 -924
  2108. package/esm5/components/gantt/components/gantt/popup.js +0 -84
  2109. package/esm5/components/gantt/components/gantt/utils/date-utils.js +0 -135
  2110. package/esm5/components/gantt/components/gantt/utils/svg-utils.js +0 -121
  2111. package/esm5/components/gantt/components/side-table/side-table.component.js +0 -33
  2112. package/esm5/components/gantt/gantt.component.js +0 -162
  2113. package/esm5/components/gantt/gantt.module.js +0 -23
  2114. package/esm5/components/gantt/index.js +0 -4
  2115. package/esm5/components/gantt/models/index.js +0 -2
  2116. package/esm5/components/gantt/models/options.js +0 -1
  2117. package/esm5/components/gantt/models/task.js +0 -1
  2118. package/esm5/components/gantt/models/view-mode.js +0 -12
  2119. package/esm5/components/global-search/elements/dropdown/global-search-dropdown-item.component.js +0 -78
  2120. package/esm5/components/global-search/global-search-size.enum.js +0 -7
  2121. package/esm5/components/global-search/global-search.component.js +0 -137
  2122. package/esm5/components/global-search/global-search.module.js +0 -53
  2123. package/esm5/components/global-search/index.js +0 -5
  2124. package/esm5/components/grid-menu/components/grid-menu-item/grid-menu-item.component.js +0 -47
  2125. package/esm5/components/grid-menu/grid-menu.component.js +0 -27
  2126. package/esm5/components/grid-menu/grid-menu.module.js +0 -19
  2127. package/esm5/components/grid-menu/index.js +0 -3
  2128. package/esm5/components/grid-menu/types/grid-menu-item.js +0 -1
  2129. package/esm5/components/help-popover/help-popover/help-popover.component.js +0 -115
  2130. package/esm5/components/help-popover/help-popover.directive.js +0 -348
  2131. package/esm5/components/help-popover/help-popover.module.js +0 -23
  2132. package/esm5/components/help-popover/index.js +0 -4
  2133. package/esm5/components/help-popover/models/help-popover.models.js +0 -1
  2134. package/esm5/components/ia-insight/components/ia-insight-card/components/ia-insight-card-loader/ia-insight-card-loader.component.js +0 -16
  2135. package/esm5/components/ia-insight/components/ia-insight-card/ia-insight-card.component.js +0 -84
  2136. package/esm5/components/ia-insight/components/ia-insight-sidebar/ia-insight-sidebar.component.js +0 -51
  2137. package/esm5/components/ia-insight/ia-insight.component.js +0 -69
  2138. package/esm5/components/ia-insight/ia-insight.module.js +0 -43
  2139. package/esm5/components/ia-insight/index.js +0 -4
  2140. package/esm5/components/ia-insight/models/ia-insight-item.js +0 -1
  2141. package/esm5/components/ia-insight/models/ia-insight-template-types.js +0 -7
  2142. package/esm5/components/ia-insight/models/index.js +0 -2
  2143. package/esm5/components/image-cropper/image-cropper.component.js +0 -185
  2144. package/esm5/components/image-cropper/image-cropper.module.js +0 -23
  2145. package/esm5/components/image-cropper/image-cropper.service.js +0 -70
  2146. package/esm5/components/image-cropper/index.js +0 -4
  2147. package/esm5/components/index.js +0 -73
  2148. package/esm5/components/infinite-scroll/infinite-scroll.directive.js +0 -31
  2149. package/esm5/components/infinite-scroll/infinite-scroll.module.js +0 -24
  2150. package/esm5/components/info-sign/index.js +0 -3
  2151. package/esm5/components/info-sign/info-sign.component.js +0 -16
  2152. package/esm5/components/info-sign/info-sign.directive.js +0 -69
  2153. package/esm5/components/info-sign/info-sign.module.js +0 -27
  2154. package/esm5/components/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.js +0 -53
  2155. package/esm5/components/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.js +0 -33
  2156. package/esm5/components/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.js +0 -99
  2157. package/esm5/components/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.js +0 -33
  2158. package/esm5/components/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.js +0 -33
  2159. package/esm5/components/inline-edit/components/fields/inline-edit-text-area-ia/inline-edit-text-area-ia.component.js +0 -33
  2160. package/esm5/components/inline-edit/components/index.js +0 -8
  2161. package/esm5/components/inline-edit/components/inline-edit-item/inline-edit-item.component.js +0 -112
  2162. package/esm5/components/inline-edit/fields/index.js +0 -8
  2163. package/esm5/components/inline-edit/fields/inline-edit-calendar-field.js +0 -31
  2164. package/esm5/components/inline-edit/fields/inline-edit-field.js +0 -11
  2165. package/esm5/components/inline-edit/fields/inline-edit-lookup-field.js +0 -50
  2166. package/esm5/components/inline-edit/fields/inline-edit-number-field.js +0 -29
  2167. package/esm5/components/inline-edit/fields/inline-edit-text-area-field.js +0 -16
  2168. package/esm5/components/inline-edit/fields/inline-edit-text-area-ia-field.js +0 -11
  2169. package/esm5/components/inline-edit/fields/inline-edit-text-field.js +0 -11
  2170. package/esm5/components/inline-edit/index.js +0 -4
  2171. package/esm5/components/inline-edit/inline-edit.component.js +0 -84
  2172. package/esm5/components/inline-edit/inline-edit.module.js +0 -65
  2173. package/esm5/components/kanban/components/kanban-column/kanban-column.component.js +0 -99
  2174. package/esm5/components/kanban/components/kanban-item/kanban-item.component.js +0 -62
  2175. package/esm5/components/kanban/components/kanban-item-dragging/kanban-item-dragging.component.js +0 -20
  2176. package/esm5/components/kanban/index.js +0 -4
  2177. package/esm5/components/kanban/kanban-event.service.js +0 -28
  2178. package/esm5/components/kanban/kanban.component.js +0 -221
  2179. package/esm5/components/kanban/kanban.module.js +0 -48
  2180. package/esm5/components/kanban/models/index.js +0 -2
  2181. package/esm5/components/kanban/models/kanban-data.js +0 -1
  2182. package/esm5/components/kanban/models/kanban-template-types.js +0 -9
  2183. package/esm5/components/label-value/index.js +0 -3
  2184. package/esm5/components/label-value/label-value.component.js +0 -34
  2185. package/esm5/components/label-value/label-value.module.js +0 -23
  2186. package/esm5/components/label-value/types/label-value-configuration.js +0 -1
  2187. package/esm5/components/loading-state/components/dots-indicator/dots-indicator.components.js +0 -16
  2188. package/esm5/components/loading-state/components/loading-state-indicators.js +0 -6
  2189. package/esm5/components/loading-state/components/logo-indicator/logo-indicator.component.js +0 -16
  2190. package/esm5/components/loading-state/index.js +0 -4
  2191. package/esm5/components/loading-state/loading-state.component.js +0 -81
  2192. package/esm5/components/loading-state/loading-state.directive.js +0 -65
  2193. package/esm5/components/loading-state/loading-state.module.js +0 -34
  2194. package/esm5/components/locale/index.js +0 -11
  2195. package/esm5/components/locale/locale.module.js +0 -75
  2196. package/esm5/components/locale/locale.service.js +0 -93
  2197. package/esm5/components/locale/options/calendar.js +0 -33
  2198. package/esm5/components/locale/options/index.js +0 -28
  2199. package/esm5/components/locale/options/number.js +0 -12
  2200. package/esm5/components/locale/pipes/localized-bignumber-impure.pipe.js +0 -21
  2201. package/esm5/components/locale/pipes/localized-bignumber.pipe.js +0 -40
  2202. package/esm5/components/locale/pipes/localized-currency-impure.pipe.js +0 -25
  2203. package/esm5/components/locale/pipes/localized-currency.pipe.js +0 -59
  2204. package/esm5/components/locale/pipes/localized-date-impure.pipe.js +0 -18
  2205. package/esm5/components/locale/pipes/localized-date.pipe.js +0 -26
  2206. package/esm5/components/locale/pipes/localized-number.pipe.js +0 -32
  2207. package/esm5/components/locale/pipes/localized-time-impure.pipe.js +0 -18
  2208. package/esm5/components/locale/pipes/localized-time.pipe.js +0 -26
  2209. package/esm5/components/locale/pipes/numeric.pipe.js +0 -32
  2210. package/esm5/components/locale/services/numeric.service.js +0 -87
  2211. package/esm5/components/localized-number-input/index.js +0 -3
  2212. package/esm5/components/localized-number-input/localized-number-input.directive.js +0 -61
  2213. package/esm5/components/localized-number-input/localized-number-input.module.js +0 -18
  2214. package/esm5/components/mask/index.js +0 -3
  2215. package/esm5/components/mask/mask-formatter.module.js +0 -16
  2216. package/esm5/components/mask/mask-formatter.pipe.js +0 -72
  2217. package/esm5/components/mouse-events/double-click.directive.js +0 -40
  2218. package/esm5/components/mouse-events/index.js +0 -4
  2219. package/esm5/components/mouse-events/long-press.directive.js +0 -51
  2220. package/esm5/components/mouse-events/mouse-events.module.js +0 -25
  2221. package/esm5/components/navigation-button/index.js +0 -3
  2222. package/esm5/components/navigation-button/models/index.js +0 -1
  2223. package/esm5/components/navigation-button/models/navigation-button-item.js +0 -1
  2224. package/esm5/components/navigation-button/models/navigation-button-step-changed-info.js +0 -1
  2225. package/esm5/components/navigation-button/navigation-button.component.js +0 -131
  2226. package/esm5/components/navigation-button/navigation-button.module.js +0 -20
  2227. package/esm5/components/number-input/index.js +0 -3
  2228. package/esm5/components/number-input/number-input.directive.js +0 -167
  2229. package/esm5/components/number-input/number-input.module.js +0 -21
  2230. package/esm5/components/object-card/elements/field/object-card-field.component.js +0 -55
  2231. package/esm5/components/object-card/elements/main/object-card-main.component.js +0 -99
  2232. package/esm5/components/object-card/index.js +0 -5
  2233. package/esm5/components/object-card/object-card.component.js +0 -154
  2234. package/esm5/components/object-card/object-card.module.js +0 -24
  2235. package/esm5/components/panel/index.js +0 -3
  2236. package/esm5/components/panel/panel.component.js +0 -85
  2237. package/esm5/components/panel/panel.module.js +0 -20
  2238. package/esm5/components/password-strength/index.js +0 -5
  2239. package/esm5/components/password-strength/models/index.js +0 -3
  2240. package/esm5/components/password-strength/models/password-positions.js +0 -7
  2241. package/esm5/components/password-strength/models/password-strengths.js +0 -8
  2242. package/esm5/components/password-strength/password-strength.component.js +0 -96
  2243. package/esm5/components/password-strength/password-strength.directive.js +0 -197
  2244. package/esm5/components/password-strength/password-strength.module.js +0 -22
  2245. package/esm5/components/picklist/index.js +0 -5
  2246. package/esm5/components/picklist/picklist/models/picklist-models.js +0 -6
  2247. package/esm5/components/picklist/picklist/picklist.component.js +0 -339
  2248. package/esm5/components/picklist/picklist.module.js +0 -28
  2249. package/esm5/components/product-header/index.js +0 -3
  2250. package/esm5/components/product-header/product-header.component.js +0 -47
  2251. package/esm5/components/product-header/product-header.module.js +0 -20
  2252. package/esm5/components/profile-picture-picker/index.js +0 -4
  2253. package/esm5/components/profile-picture-picker/models/confirmation-texts.js +0 -1
  2254. package/esm5/components/profile-picture-picker/models/cropper-labels-config.js +0 -1
  2255. package/esm5/components/profile-picture-picker/models/file-validation-errors.js +0 -8
  2256. package/esm5/components/profile-picture-picker/models/index.js +0 -2
  2257. package/esm5/components/profile-picture-picker/models/profile-picture-picker-data.js +0 -1
  2258. package/esm5/components/profile-picture-picker/profile-picture-picker.component.js +0 -270
  2259. package/esm5/components/profile-picture-picker/profile-picture-picker.module.js +0 -36
  2260. package/esm5/components/progressbar/components/progressbar-determinate/progressbar-determinate.component.js +0 -63
  2261. package/esm5/components/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.js +0 -22
  2262. package/esm5/components/progressbar/index.js +0 -4
  2263. package/esm5/components/progressbar/models/index.js +0 -3
  2264. package/esm5/components/progressbar/models/progressbar-colors.js +0 -8
  2265. package/esm5/components/progressbar/models/progressbar-mode.js +0 -6
  2266. package/esm5/components/progressbar/progressbar.component.js +0 -63
  2267. package/esm5/components/progressbar/progressbar.module.js +0 -24
  2268. package/esm5/components/rating-scale/index.js +0 -3
  2269. package/esm5/components/rating-scale/models/index.js +0 -1
  2270. package/esm5/components/rating-scale/models/rating-scale-node.js +0 -1
  2271. package/esm5/components/rating-scale/rating-scale.component.js +0 -54
  2272. package/esm5/components/rating-scale/rating-scale.module.js +0 -22
  2273. package/esm5/components/select-button/components/select-button-item/select-button-item.component.js +0 -35
  2274. package/esm5/components/select-button/index.js +0 -3
  2275. package/esm5/components/select-button/models/index.js +0 -1
  2276. package/esm5/components/select-button/models/select-button-item.js +0 -1
  2277. package/esm5/components/select-button/select-button.component.js +0 -128
  2278. package/esm5/components/select-button/select-button.module.js +0 -22
  2279. package/esm5/components/shared/border-button/border-button.component.js +0 -27
  2280. package/esm5/components/shared/border-button/border-button.module.js +0 -19
  2281. package/esm5/components/shared/helpers.js +0 -35
  2282. package/esm5/components/shared/index.js +0 -3
  2283. package/esm5/components/shared/models/border-button-options.js +0 -1
  2284. package/esm5/components/shared/models/enum-severity.js +0 -9
  2285. package/esm5/components/sidebar/index.js +0 -3
  2286. package/esm5/components/sidebar/sidebar.component.js +0 -74
  2287. package/esm5/components/sidebar/sidebar.module.js +0 -22
  2288. package/esm5/components/slide-panel/index.js +0 -3
  2289. package/esm5/components/slide-panel/slide-panel.component.js +0 -145
  2290. package/esm5/components/slide-panel/slide-panel.module.js +0 -20
  2291. package/esm5/components/slide-panel/slide-panel.service.js +0 -28
  2292. package/esm5/components/slider/index.js +0 -3
  2293. package/esm5/components/slider/slider.component.js +0 -648
  2294. package/esm5/components/slider/slider.module.js +0 -19
  2295. package/esm5/components/speech-recognition/speech-recognition/speech-recognition.component.js +0 -193
  2296. package/esm5/components/speech-recognition/speech-recognition.module.js +0 -22
  2297. package/esm5/components/speech-recognition/speech-recognition.service.js +0 -107
  2298. package/esm5/components/speech-recognition/text-to-speech.service.js +0 -92
  2299. package/esm5/components/split-button/index.js +0 -4
  2300. package/esm5/components/split-button/models/split-button-option.js +0 -1
  2301. package/esm5/components/split-button/models/split-button-type.js +0 -7
  2302. package/esm5/components/split-button/split-button.component.js +0 -69
  2303. package/esm5/components/split-button/split-button.module.js +0 -18
  2304. package/esm5/components/stats-card/index.js +0 -3
  2305. package/esm5/components/stats-card/stats-card.component.js +0 -131
  2306. package/esm5/components/stats-card/stats-card.module.js +0 -26
  2307. package/esm5/components/steps/index.js +0 -3
  2308. package/esm5/components/steps/steps.component.js +0 -107
  2309. package/esm5/components/steps/steps.module.js +0 -19
  2310. package/esm5/components/structure/footer.component.js +0 -15
  2311. package/esm5/components/structure/header.component.js +0 -15
  2312. package/esm5/components/structure/structure.module.js +0 -19
  2313. package/esm5/components/switch/index.js +0 -3
  2314. package/esm5/components/switch/switch.component.js +0 -94
  2315. package/esm5/components/switch/switch.module.js +0 -18
  2316. package/esm5/components/table/frozen-position/frozen-position.directive.js +0 -256
  2317. package/esm5/components/table/index.js +0 -6
  2318. package/esm5/components/table/navigation/navigation.directive.js +0 -137
  2319. package/esm5/components/table/row-toggler/row-toggler.directive.js +0 -39
  2320. package/esm5/components/table/table-column/index.js +0 -2
  2321. package/esm5/components/table/table-column/models/badge-column.interface.js +0 -1
  2322. package/esm5/components/table/table-column/models/badge-configs.interface.js +0 -1
  2323. package/esm5/components/table/table-column/models/column-colors.js +0 -1
  2324. package/esm5/components/table/table-column/models/column-values.interface.js +0 -1
  2325. package/esm5/components/table/table-column/models/column.interface.js +0 -1
  2326. package/esm5/components/table/table-column/models/dynamic-editable-grid.interface.js +0 -1
  2327. package/esm5/components/table/table-column/models/enum-badge-colors.js +0 -10
  2328. package/esm5/components/table/table-column/models/enum-column-field-type.js +0 -13
  2329. package/esm5/components/table/table-column/models/index.js +0 -3
  2330. package/esm5/components/table/table-column/models/locale-options.interface.js +0 -1
  2331. package/esm5/components/table/table-column/models/number-locale-options.interface.js +0 -1
  2332. package/esm5/components/table/table-column/table-columns.component.js +0 -288
  2333. package/esm5/components/table/table-paging/index.js +0 -1
  2334. package/esm5/components/table/table-paging/models/custom-action.interface.js +0 -1
  2335. package/esm5/components/table/table-paging/models/index.js +0 -1
  2336. package/esm5/components/table/table-paging/table-paging.component.js +0 -361
  2337. package/esm5/components/table/table.module.js +0 -48
  2338. package/esm5/components/table-header/index.js +0 -3
  2339. package/esm5/components/table-header/table-header-checkbox.component.js +0 -157
  2340. package/esm5/components/table-header/table-header-checkox.module.js +0 -18
  2341. package/esm5/components/template/index.js +0 -3
  2342. package/esm5/components/template/template.directive.js +0 -21
  2343. package/esm5/components/template/template.module.js +0 -18
  2344. package/esm5/components/text-area/index.js +0 -3
  2345. package/esm5/components/text-area/text-area/text-area.component.js +0 -112
  2346. package/esm5/components/text-area/text-area.module.js +0 -27
  2347. package/esm5/components/text-area-ia/index.js +0 -3
  2348. package/esm5/components/text-area-ia/text-area-ia.component.js +0 -136
  2349. package/esm5/components/text-area-ia/text-area-ia.module.js +0 -35
  2350. package/esm5/components/thumbnail/index.js +0 -4
  2351. package/esm5/components/thumbnail/thumbnail-size.js +0 -7
  2352. package/esm5/components/thumbnail/thumbnail.component.js +0 -83
  2353. package/esm5/components/thumbnail/thumbnail.module.js +0 -20
  2354. package/esm5/components/thumbnail/thumbnail.service.js +0 -65
  2355. package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +0 -19
  2356. package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +0 -44
  2357. package/esm5/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +0 -68
  2358. package/esm5/components/thumbnails/index.js +0 -3
  2359. package/esm5/components/thumbnails/models/thumbnails-item.js +0 -1
  2360. package/esm5/components/thumbnails/thumbnails.component.js +0 -61
  2361. package/esm5/components/thumbnails/thumbnails.module.js +0 -24
  2362. package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +0 -288
  2363. package/esm5/components/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.js +0 -16
  2364. package/esm5/components/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.js +0 -78
  2365. package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +0 -180
  2366. package/esm5/components/tiered-menu/index.js +0 -3
  2367. package/esm5/components/tiered-menu/models/index.js +0 -1
  2368. package/esm5/components/tiered-menu/models/tiered-menu-item-data.js +0 -1
  2369. package/esm5/components/tiered-menu/models/tiered-menu-item-internal-data.js +0 -1
  2370. package/esm5/components/tiered-menu/services/tiered-menu.event.service.js +0 -19
  2371. package/esm5/components/tiered-menu/services/tiered-menu.global.service.js +0 -12
  2372. package/esm5/components/tiered-menu/services/tiered-menu.service.js +0 -54
  2373. package/esm5/components/tiered-menu/tiered-menu.directive.js +0 -224
  2374. package/esm5/components/tiered-menu/tiered-menu.module.js +0 -32
  2375. package/esm5/components/tiered-menu/utils.js +0 -7
  2376. package/esm5/components/tile/index.js +0 -3
  2377. package/esm5/components/tile/tile.component.js +0 -77
  2378. package/esm5/components/tile/tile.module.js +0 -27
  2379. package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.component.js +0 -26
  2380. package/esm5/components/timeline/components/horizontal-timeline/horizontal-timeline.module.js +0 -24
  2381. package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.component.js +0 -28
  2382. package/esm5/components/timeline/components/timeline-icon-item/timeline-icon-item.module.js +0 -22
  2383. package/esm5/components/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.js +0 -27
  2384. package/esm5/components/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.js +0 -36
  2385. package/esm5/components/timeline/components/vertical-timeline/components/range-line/range-line.component.js +0 -16
  2386. package/esm5/components/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.js +0 -31
  2387. package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.component.js +0 -58
  2388. package/esm5/components/timeline/components/vertical-timeline/vertical-timeline.module.js +0 -32
  2389. package/esm5/components/timeline/index.js +0 -4
  2390. package/esm5/components/timeline/models/index.js +0 -4
  2391. package/esm5/components/timeline/models/timeline-item-severity.js +0 -7
  2392. package/esm5/components/timeline/models/timeline-item-size.js +0 -6
  2393. package/esm5/components/timeline/models/timeline-item.js +0 -39
  2394. package/esm5/components/timeline/timeline.component.js +0 -71
  2395. package/esm5/components/timeline/timeline.module.js +0 -30
  2396. package/esm5/components/toast/index.js +0 -4
  2397. package/esm5/components/toast/toast.component.js +0 -54
  2398. package/esm5/components/toast/toast.module.js +0 -17
  2399. package/esm5/components/toast/toast.service.js +0 -70
  2400. package/esm5/components/toast/types/toast.js +0 -1
  2401. package/esm5/components/token-list/index.js +0 -3
  2402. package/esm5/components/token-list/models/index.js +0 -1
  2403. package/esm5/components/token-list/models/token.js +0 -1
  2404. package/esm5/components/token-list/token-list.component.js +0 -52
  2405. package/esm5/components/token-list/token-list.module.js +0 -18
  2406. package/esm5/components/tooltip/index.js +0 -3
  2407. package/esm5/components/tooltip/models/index.js +0 -4
  2408. package/esm5/components/tooltip/models/mobile-behavior.js +0 -6
  2409. package/esm5/components/tooltip/models/tooltip-event.js +0 -6
  2410. package/esm5/components/tooltip/models/tooltip-position.js +0 -8
  2411. package/esm5/components/tooltip/tooltip.component.js +0 -22
  2412. package/esm5/components/tooltip/tooltip.directive.js +0 -358
  2413. package/esm5/components/tooltip/tooltip.module.js +0 -22
  2414. package/esm5/components/utils/breakpoints.js +0 -11
  2415. package/esm5/components/utils/debouce.js +0 -50
  2416. package/esm5/components/utils/export-utils.js +0 -96
  2417. package/esm5/components/utils/index.js +0 -6
  2418. package/esm5/components/utils/locale-utils.js +0 -15
  2419. package/esm5/components/utils/utils.js +0 -39
  2420. package/esm5/components/workspace-switch/index.js +0 -3
  2421. package/esm5/components/workspace-switch/models/index.js +0 -1
  2422. package/esm5/components/workspace-switch/models/workspace.js +0 -1
  2423. package/esm5/components/workspace-switch/workspace-switch.component.js +0 -148
  2424. package/esm5/components/workspace-switch/workspace-switch.module.js +0 -18
  2425. package/esm5/locale/fallback.js +0 -332
  2426. package/esm5/public-api.js +0 -5
  2427. package/esm5/seniorsistemas-angular-components.js +0 -119
  2428. package/esm5/utils/currency/currency.service.js +0 -191
  2429. package/esm5/utils/currency/index.js +0 -2
  2430. package/esm5/utils/index.js +0 -3
  2431. package/esm5/utils/svg-factory/components/iassist-icon/iassist-icon.component.js +0 -14
  2432. package/esm5/utils/svg-factory/components/senior-icon/senior-icon.component.js +0 -14
  2433. package/esm5/utils/svg-factory/components/svg-factory-icons.js +0 -6
  2434. package/esm5/utils/svg-factory/index.js +0 -3
  2435. package/esm5/utils/svg-factory/svg-factory.directive.js +0 -54
  2436. package/esm5/utils/svg-factory/svg-factory.module.js +0 -24
  2437. package/fesm2015/seniorsistemas-angular-components.js +0 -21532
  2438. package/fesm2015/seniorsistemas-angular-components.js.map +0 -1
  2439. package/fesm5/seniorsistemas-angular-components.js +0 -23095
  2440. package/fesm5/seniorsistemas-angular-components.js.map +0 -1
  2441. package/locale/fallback.d.ts +0 -1
  2442. package/public-api.d.ts +0 -4
  2443. package/seniorsistemas-angular-components.d.ts +0 -118
  2444. package/seniorsistemas-angular-components.metadata.json +0 -1
  2445. package/utils/currency/currency.service.d.ts +0 -642
  2446. package/utils/currency/index.d.ts +0 -1
  2447. package/utils/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +0 -2
  2448. package/utils/svg-factory/components/senior-icon/senior-icon.component.d.ts +0 -2
  2449. package/utils/svg-factory/components/svg-factory-icons.d.ts +0 -4
  2450. package/utils/svg-factory/index.d.ts +0 -2
  2451. package/utils/svg-factory/svg-factory.directive.d.ts +0 -13
  2452. package/utils/svg-factory/svg-factory.module.d.ts +0 -2
  2453. /package/{components → checkbox/lib}/checkbox/models/checkbox-data.d.ts +0 -0
  2454. /package/{components → code-editor/lib}/code-editor/core/facades/linter-facade.d.ts +0 -0
  2455. /package/{components → code-editor/lib}/code-editor/core/models/enums/marker-severity.d.ts +0 -0
  2456. /package/{components → code-editor/lib}/code-editor/core/models/index.d.ts +0 -0
  2457. /package/{components → code-editor/lib}/code-editor/core/models/interfaces/marker.d.ts +0 -0
  2458. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/editor-languages.d.ts +0 -0
  2459. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-empty-state.d.ts +0 -0
  2460. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-loading-state.d.ts +0 -0
  2461. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/autocomplete-state-wrapper/autocomplete-state-wrapper-style.d.ts +0 -0
  2462. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-states/index.d.ts +0 -0
  2463. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete-style.d.ts +0 -0
  2464. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.service.d.ts +0 -0
  2465. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/base-configs.d.ts +0 -0
  2466. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/base-configs/grammar.d.ts +0 -0
  2467. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/completion-types.d.ts +0 -0
  2468. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/enum-type-order.d.ts +0 -0
  2469. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/keywords.d.ts +0 -0
  2470. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/meta-type.d.ts +0 -0
  2471. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/enums/request-types.d.ts +0 -0
  2472. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/index.d.ts +0 -0
  2473. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/completion-Item.d.ts +0 -0
  2474. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/facade-metadata-name.d.ts +0 -0
  2475. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/fields-order-by.d.ts +0 -0
  2476. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/get-facade-metadata-by-path.d.ts +0 -0
  2477. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-context-metadata-by-id.d.ts +0 -0
  2478. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-expression-metadata.d.ts +0 -0
  2479. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/list-facade-metadata-names.d.ts +0 -0
  2480. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-expression-metadata.d.ts +0 -0
  2481. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-context-metadata.d.ts +0 -0
  2482. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-facade-metadata.d.ts +0 -0
  2483. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-front-field-metadata.d.ts +0 -0
  2484. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/rec-page-request.d.ts +0 -0
  2485. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/models/interfaces/tax-calculation-configs.d.ts +0 -0
  2486. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation-language-configs.d.ts +0 -0
  2487. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.d.ts +0 -0
  2488. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/get-language-configs.d.ts +0 -0
  2489. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.d.ts +0 -0
  2490. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/models/index.d.ts +0 -0
  2491. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/editor-themes.d.ts +0 -0
  2492. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/autocomplete-tooltip.d.ts +0 -0
  2493. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/font-style.d.ts +0 -0
  2494. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/line-counter.d.ts +0 -0
  2495. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/extensions/scrollbars.d.ts +0 -0
  2496. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.d.ts +0 -0
  2497. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-style.d.ts +0 -0
  2498. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-theme.d.ts +0 -0
  2499. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/utils/convert-markers-to-diagnostics.d.ts +0 -0
  2500. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/utils/index.d.ts +0 -0
  2501. /package/{components → code-editor/lib}/code-editor/infra/cores/codemirror-6/utils/is-current-position-inside-string.d.ts +0 -0
  2502. /package/{components → code-editor/lib}/code-editor/infra/utils/custom-http-client/json-response-formatters/format-blob-response.d.ts +0 -0
  2503. /package/{components → code-editor/lib}/code-editor/infra/utils/custom-http-client/json-response-formatters/format-json-response.d.ts +0 -0
  2504. /package/{components → code-editor/lib}/code-editor/infra/utils/custom-http-client/json-response-formatters/index.d.ts +0 -0
  2505. /package/{components → code-editor/lib}/code-editor/infra/utils/custom-translations/index.d.ts +0 -0
  2506. /package/{components → code-editor/lib}/code-editor/infra/utils/custom-translations/models/index.d.ts +0 -0
  2507. /package/{components → code-editor/lib}/code-editor/infra/utils/custom-translations/models/interfaces/translations.d.ts +0 -0
  2508. /package/{components → code-editor/lib}/code-editor/infra/utils/index.d.ts +0 -0
  2509. /package/{components → code-editor/lib}/code-editor/models/enums/languages.d.ts +0 -0
  2510. /package/{components → code-editor/lib}/code-editor/models/enums/themes.d.ts +0 -0
  2511. /package/{components → code-editor/lib}/code-editor/models/index.d.ts +0 -0
  2512. /package/{components → code-editor/lib}/code-editor/models/interfaces/editor-options.d.ts +0 -0
  2513. /package/{components → country-phone-picker/lib}/country-phone-picker/models/country-phone-data.d.ts +0 -0
  2514. /package/{components → country-phone-picker/lib}/country-phone-picker/models/ordination.d.ts +0 -0
  2515. /package/{components → country-phone-picker/lib}/country-phone-picker/models/phone-selection-data.d.ts +0 -0
  2516. /package/{components → custom-fields/lib}/custom-fields/models/custom-field-type.d.ts +0 -0
  2517. /package/{components → dynamic-form/lib}/dynamic-form/configurations/dynamic-config.d.ts +0 -0
  2518. /package/{components → dynamic-form/lib}/dynamic-form/configurations/dynamic-type.d.ts +0 -0
  2519. /package/{components → dynamic-form/lib}/dynamic-form/configurations/grid-type.d.ts +0 -0
  2520. /package/{components → dynamic-form/lib}/dynamic-form/configurations/structure-type.d.ts +0 -0
  2521. /package/{components/dynamic-form → dynamic-form/lib/dynamic-form/form-field}/configurations/field-size.d.ts +0 -0
  2522. /package/{components/dynamic-form → dynamic-form/lib/dynamic-form/form-field}/configurations/fields/editor-field.d.ts +0 -0
  2523. /package/{components → file-upload/lib}/file-upload/models/list-blob-metadata.d.ts +0 -0
  2524. /package/{components → gantt/lib}/gantt/components/gantt/utils/date-utils.d.ts +0 -0
  2525. /package/{components → gantt/lib}/gantt/models/task.d.ts +0 -0
  2526. /package/{components → gantt/lib}/gantt/models/view-mode.d.ts +0 -0
  2527. /package/{components → inline-edit/lib}/inline-edit/components/index.d.ts +0 -0
  2528. /package/{components → inline-edit/lib}/inline-edit/fields/inline-edit-text-area-field.d.ts +0 -0
  2529. /package/{components → inline-edit/lib}/inline-edit/fields/inline-edit-text-area-ia-field.d.ts +0 -0
  2530. /package/{components → inline-edit/lib}/inline-edit/fields/inline-edit-text-field.d.ts +0 -0
  2531. /package/{components → loading-state/lib}/loading-state/components/loading-state-indicators.d.ts +0 -0
  2532. /package/{components → navigation-button/lib}/navigation-button/models/navigation-button-item.d.ts +0 -0
  2533. /package/{components → profile-picture-picker/lib}/profile-picture-picker/models/confirmation-texts.d.ts +0 -0
  2534. /package/{components → profile-picture-picker/lib}/profile-picture-picker/models/cropper-labels-config.d.ts +0 -0
  2535. /package/{components → profile-picture-picker/lib}/profile-picture-picker/models/profile-picture-picker-data.d.ts +0 -0
  2536. /package/{components → rating-scale/lib}/rating-scale/models/rating-scale-node.d.ts +0 -0
  2537. /package/{components → select-button/lib}/select-button/models/select-button-item.d.ts +0 -0
  2538. /package/{components → shared/lib}/shared/helpers.d.ts +0 -0
  2539. /package/{components → split-button/lib}/split-button/models/split-button-option.d.ts +0 -0
  2540. /package/{components/utils → table/lib}/locale-utils.d.ts +0 -0
  2541. /package/{components → table/lib}/table/table-column/models/enum-badge-colors.d.ts +0 -0
  2542. /package/{components → table/lib}/table/table-column/models/enum-column-field-type.d.ts +0 -0
  2543. /package/{components → table/lib}/table/table-paging/models/custom-action.interface.d.ts +0 -0
  2544. /package/{components → tiered-menu/lib}/tiered-menu/utils.d.ts +0 -0
  2545. /package/{components → timeline/lib}/timeline/models/timeline-item-severity.d.ts +0 -0
  2546. /package/{components → timeline/lib}/timeline/models/timeline-item-size.d.ts +0 -0
  2547. /package/{components → token-list/lib}/token-list/models/token.d.ts +0 -0
  2548. /package/{components → utils/lib}/utils/breakpoints.d.ts +0 -0
  2549. /package/{components → workspace-switch/lib}/workspace-switch/models/workspace.d.ts +0 -0
@@ -1 +0,0 @@
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/bignumber-input.directive.ts","ng://@seniorsistemas/angular-components/components/bignumber-input/bignumber-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/text-area/text-area/text-area.component.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/speech-recognition.service.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/text-to-speech.service.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/speech-recognition/speech-recognition.component.ts","ng://@seniorsistemas/angular-components/components/speech-recognition/speech-recognition.module.ts","ng://@seniorsistemas/angular-components/components/text-area/text-area.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","pasteRejected","onLocaleService","updateVariables","placeholder","padEnd","onPaste","pastedText","clipboardData","getData","replace","RegExp","split","intPart","_d","decimalPart","slice","preventDefault","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","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","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","handleAndroidInput","updatedValue","onUserInput","filled","focus","completeMask","defs","9","maskTokens","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","subtitle","showBanner","_getTemplates","_loadImage","headerTemplate","hasHeaderAttributes","_getHeaderTemplate","_getCustomTemplate","Header","_getBodyTemplate","Body","_getFooterTemplate","Footer","templates","bodyTemplate","footerTemplate","img","Image","src","bannerImage","onload","onerror","TemplateModule","CardModule","ChatComponent","messages","scrollToBottom","messageElements","scrollIntoView","behavior","ViewChildren","read","LocalizedBignumberPipe","transform","applyMask","localeConfig","configs","_f","_e","_j","_g","_h","_k","_l","isNumber","BigNumber","isNaN","Pipe","name","LocalizedBignumberImpurePipe","pure","LocalizedCurrencyPipeOptions","LocalizedCurrencyPipe","rawValue","Number","toFixed","onlyNumbers","integerPart","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","Field","ignoreLabel","footer","help","required","infoSign","showClear","bottomTemplate","defaultValue","representedBy","CustomFieldClass","CustomFieldComponentClass","displayTimeInfoSign","useInfoSignFocusedInputRef","AutocompleteField","Autocomplete","suggestions","suggestionsObservable","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","_onPaste","_onKeypress","decimal","thousands","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","speechRecognition","TextAreaIAField","resize","prompt","TextField","characterPattern","unmask","sortableColumnName","ButtonField","iconColor","badge","styleClass","rightIconClass","mouseEnter","mouseLeave","EditorField","formats","modules","ProfilePictureField","simpleTitle","actionTitle","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","gridClass","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","TextAreaComponent","_inputStyle","readOnly","renderTextArea","_textAreaElement","handleRecognizedText","recognizedText","TextAreaComponent_1","SpeechRecognitionService","ngZone","isListening","TIMEOUT_NO_MESSAGE","setRecognition","silenceTimer","speechSubject","recognition","continuous","interimResults","maxAlternatives","fullTranscript","onresult","run","stop","interimTranscript","resultIndex","results","transcript","isFinal","onend","SpeechRecognitionConstructor","SpeechRecognition","webkitSpeechRecognition","NgZone","TextToSpeechService","utterance","SpeechSynthesisUtterance","voices","setVoices","_voices","speechSynthesis","getVoices","onvoiceschanged","setActiveVoice","updateVoice","voiceUri","activeVoice","voice","voiceURI","speak","speed","rate","resume","_voice","SpeechRecognitionComponent","speechRecognitionService","textToSpeechService","_recognizedText","originalTextAreaElementText","isDoneSpeaking","onDestroy$","VOICE_SPEEDS","keydownEventListener","isSpeaking","voiceSpeed","isDisabledMicrophone","canRenderMicrophone","canRenderTextToSpeech","canRenderListeningText","canRenderDiscard","canRenderAprove","canRenderTextToSpeechToolbar","isPlayingTextToSpeech","textAreaElement","onListen","setTextAreaValue","scrollHeight","onOpenToolbar","isDisabledTextToSpeech","onCloseToolbar","onDiscard","onAprove","toggleTextToSpeech","restartTextToSpeech","updateVoiceSpeed","voiceSpeedIndex","nextVoiceSpeedIndex","stopListening","hasTextToSpeechVoice","hasVoice","SpeechRecognitionModule","TextAreaModule","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","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","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","platform.angular_components.text_area_speech_recognition_placeholder","platform.angular_components.text_area_before_speech","platform.angular_components.text_area_while_speech","platform.angular_components.text_area_end_speech","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 EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n KeyValueDiffers,\n OnChanges,\n OnInit,\n Output,\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 @Output()\n public pasteRejected = new EventEmitter<string>();\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(): void {\n this.updateVariables();\n\n super.ngOnInit();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\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(\"paste\", [\"$event\"])\n public onPaste(event: ClipboardEvent): void {\n const pastedText = event.clipboardData?.getData(\"text\") ?? \"\";\n const numericText = pastedText.replace(new RegExp(`\\\\${this.thousandsSeparator}`, \"g\"), \"\").replace(this.decimalSeparator, \".\");\n const [intPart, decimalPart = \"\"] = numericText.split(\".\");\n const totalDigits = intPart.replace(/\\D/g, \"\").length + decimalPart.slice(0, this.scale).length;\n\n if (totalDigits > this.precision) {\n event.preventDefault();\n this.pasteRejected.emit(pastedText);\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 \"./bignumber-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 @Input()\n title = '';\n\n @Input()\n subtitle = '';\n\n @Input()\n icon = '';\n\n public showBanner = false;\n\n @ContentChildren(TemplateDirective)\n public templates: QueryList<TemplateDirective>;\n\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._loadImage();\n }\n\n public get hasHeader() {\n const headerTemplate = !!this.headerTemplate;\n const hasHeaderAttributes = this.title || this.subtitle || this.icon;\n return headerTemplate || hasHeaderAttributes;\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\n private _loadImage(): 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 EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n KeyValueDiffers,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\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, OnDestroy {\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 @Output()\n public pasteRejected = new EventEmitter<string>();\n\n private _maxLength: number;\n\n private pasteListener: any;\n private keypressListener: any;\n\n constructor(\n _keyValueDiffers: KeyValueDiffers,\n private readonly _elementRef: ElementRef,\n private readonly localeService: LocaleService\n ) {\n super(null, _elementRef, _keyValueDiffers);\n\n this.onLocaleService();\n }\n\n public ngOnInit(): void {\n this.updateVariables();\n\n super.ngOnInit();\n\n this.pasteListener = this._onPaste.bind(this);\n this._elementRef.nativeElement.addEventListener(\"paste\", this.pasteListener);\n\n this.keypressListener = this._onKeypress.bind(this);\n this._elementRef.nativeElement.addEventListener(\"keypress\", this.keypressListener);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\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 public ngOnDestroy(): void {\n this._elementRef.nativeElement.removeEventListener(\"paste\", this.pasteListener);\n this._elementRef.nativeElement.removeEventListener(\"keypress\", this.keypressListener);\n }\n\n private _onPaste(event: ClipboardEvent): void {\n const pastedText = event.clipboardData?.getData(\"text\") ?? \"\";\n const numericText = pastedText.replace(new RegExp(`\\\\${this.thousandsSeparator}`, \"g\"), \"\").replace(this.decimalSeparator, \".\");\n const [intPart, decimalPart = \"\"] = numericText.split(\".\");\n const totalDigits = intPart.replace(/\\D/g, \"\").length + decimalPart.slice(0, this.scale).length;\n\n if (totalDigits > this.precision) {\n event.preventDefault();\n event.stopPropagation();\n this.pasteRejected.emit(pastedText);\n }\n }\n\n private _onKeypress(event: KeyboardEvent): void {\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 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 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 { 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 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.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 get gridClass() {\n return Object.keys(this.size).map(key => `ui-${key}-${this.size[key]}`);\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 speechRecognition?: 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 public speechRecognition?: 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 this.speechRecognition = config.speechRecognition ?? false\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?: Partial<CSSStyleDeclaration>;\n prompt?: string;\n readonly?: () => boolean;\n speechRecognition?: boolean\n}\n\nexport class TextAreaIAField extends Field {\n public cols?: number;\n public rows?: number;\n public keyFilter?: any;\n public style?: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n };\n public prompt?: string;\n public readonly?: () => boolean;\n speechRecognition?: 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 = {\n ...config.style,\n ...this.style,\n };\n this.prompt = config.prompt;\n this.readonly = config.readonly;\n this.speechRecognition = config.speechRecognition ?? false;\n }\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, Input, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormControl, FormGroup } from \"@angular/forms\";\n\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\nimport { FieldType } from \"../../../configurations/field-type\";\nimport { TextAreaIAField } from \"../../../configurations/fields/text-area-ia-field\";\nimport { FormField } from \"../../../configurations/form-field\";\nimport { IAssistService } from \"../../../services/IAssist/iassist.service\";\nimport { IAssistResponse } from \"../../../services/IAssist/models/iassist-response\";\nimport { BaseFieldComponentConfig } from \"../base-field-component\";\nimport { TextAreaFieldConfig } from \"../../../configurations/fields/text-area-field\";\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 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 speechRecognition: this.field.speechRecognition ?? false\n } as TextAreaFieldConfig),\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/bignumber-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 { ChangeDetectorRef, Component, ElementRef, forwardRef, Input, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 's-textarea',\n templateUrl: './text-area.component.html',\n styleUrls: ['./text-area.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextAreaComponent),\n multi: true,\n },\n ],\n})\nexport class TextAreaComponent implements ControlValueAccessor {\n onChange: (value: string) => void = () => { };\n onTouched: (value: string) => void = () => { };\n disabled = false;\n value = '';\n private _textAreaElement: ElementRef<HTMLTextAreaElement>;\n\n @ViewChild('textArea', { read: ElementRef })\n public get textAreaElement(): ElementRef<HTMLTextAreaElement> {\n return this._textAreaElement;\n }\n\n public set textAreaElement(value: ElementRef<HTMLTextAreaElement>) {\n this._textAreaElement = value;\n setTimeout(() => {\n this.renderTextArea = true;\n this.cdr.detectChanges();\n })\n }\n\n @Input() inputId = `textarea-${Math.random()}`;\n @Input() rows = 5;\n @Input() speechRecognition = false;\n @Input() keyFilter: string | RegExp;\n private _inputStyle: Partial<CSSStyleDeclaration> = {\n resize: 'vertical'\n }\n @Input() get inputStyle(): Partial<CSSStyleDeclaration> {\n return this._inputStyle;\n }\n set inputStyle(value: Partial<CSSStyleDeclaration>) {\n this._inputStyle = {\n ...value,\n ...this._inputStyle,\n };\n }\n @Input() readOnly = false;\n\n renderTextArea = false;\n\n constructor(private readonly cdr: ChangeDetectorRef) { }\n\n writeValue(obj: string): void {\n this.value = obj;\n }\n\n registerOnChange(fn: (value: string) => 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 setValue(value: string) {\n if (this.disabled) {\n return;\n }\n this.value = value;\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouched(this.value);\n }\n\n handleRecognizedText(recognizedText: string) {\n this.setValue(recognizedText);\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { LocaleService } from '../locale/locale.service';\n\nexport interface SpeechResult {\n text: string;\n isFinal: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SpeechRecognitionService {\n isListening = false;\n private recognition!: SpeechRecognition;\n private readonly TIMEOUT_NO_MESSAGE = 3000;\n\n constructor(private readonly localeService: LocaleService, private readonly ngZone: NgZone) {\n this.setRecognition();\n }\n\n listen(): Subject<SpeechResult> {\n if (this.isListening) {\n return;\n }\n const speechSubject = new Subject<SpeechResult>();\n this.isListening = true;\n this.recognition.continuous = true;\n this.recognition.interimResults = true;\n this.recognition.maxAlternatives = 1;\n let silenceTimer: any;\n const restartSilenceTimer = () => {\n if (silenceTimer !== undefined) {\n clearTimeout(silenceTimer);\n }\n\n silenceTimer = setTimeout(() => {\n this.recognition.stop();\n }, this.TIMEOUT_NO_MESSAGE);\n };\n let fullTranscript = '';\n let interimTranscript = '';\n\n this.recognition.onresult = (event: SpeechRecognitionEvent) => {\n this.ngZone.run(() => {\n restartSilenceTimer();\n let interimTranscript = '';\n for (let i = event.resultIndex; i < event.results.length; ++i) {\n const transcript = event.results[i][0].transcript;\n if (event.results[i].isFinal) {\n fullTranscript += transcript + '\\n';\n } else {\n interimTranscript += transcript;\n }\n }\n interimTranscript = interimTranscript;\n speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: false });\n })\n };\n\n\n this.recognition.onerror = () => {\n this.ngZone.run(() => {\n if (silenceTimer !== undefined) {\n clearTimeout(silenceTimer);\n }\n this.isListening = false;\n speechSubject.next({\n isFinal: true,\n text: ''\n })\n })\n };\n\n this.recognition.onend = () => {\n this.ngZone.run(() => {\n if (silenceTimer !== undefined) {\n clearTimeout(silenceTimer);\n }\n speechSubject.next({ text: fullTranscript + interimTranscript, isFinal: true });\n this.isListening = false;\n speechSubject.complete();\n })\n };\n this.recognition.start();\n return speechSubject;\n }\n\n stop() {\n this.recognition.stop();\n }\n\n private setRecognition() {\n const SpeechRecognitionConstructor =\n (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\n\n if (!SpeechRecognitionConstructor) {\n throw new Error('Speech recognition is not supported in this browser.');\n }\n\n this.recognition = new SpeechRecognitionConstructor();\n this.recognition.lang = this.localeService.getLocaleOptions()?.locale || 'pt-BR';\n this.recognition.interimResults = false;\n this.recognition.maxAlternatives = 1;\n this.localeService.getLocale().subscribe(locale => this.recognition.lang = locale);\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { LocaleService } from '../locale/locale.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TextToSpeechService {\n private readonly utterance = new SpeechSynthesisUtterance();\n private activeVoice: SpeechSynthesisVoice;\n voices: SpeechSynthesisVoice[] = [];\n\n constructor(private readonly locale: LocaleService, private readonly ngZone: NgZone) {\n this.setVoices();\n }\n\n private setVoices() {\n let _voices = speechSynthesis.getVoices();\n\n if (!_voices.length) {\n speechSynthesis.onvoiceschanged = () => {\n this.ngZone.run(() => {\n _voices = speechSynthesis.getVoices();\n const currentLang = this.locale.getLocaleOptions()?.locale || 'pt-BR';\n this.setActiveVoice(_voices, currentLang);\n this.locale.getLocale().subscribe((locale) => {\n this.setActiveVoice(_voices, locale);\n })\n })\n }\n }\n }\n\n /**\n * Updates the active voice\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SpeechSynthesisVoice/voiceURI)\n * @param voiceUri\n */\n updateVoice(voiceUri: string) {\n this.activeVoice = this.voices.find((voice) => voice.voiceURI === voiceUri);\n }\n\n\n speak(text: string, speed: number = 1) {\n if (!this.activeVoice) {\n return;\n }\n return new Promise((resolve) => {\n this.utterance.text = text;\n this.utterance.voice = this.activeVoice;\n this.utterance.rate = speed;\n speechSynthesis.speak(this.utterance);\n this.utterance.onend = () => {\n this.ngZone.run(() => {\n resolve(true);\n })\n }\n })\n }\n\n pause() {\n speechSynthesis.pause();\n }\n\n resume() {\n speechSynthesis.resume();\n }\n\n cancel() {\n speechSynthesis.cancel();\n }\n\n get hasVoice() {\n return !!this.activeVoice;\n }\n\n private setActiveVoice(voices: SpeechSynthesisVoice[], lang: string) {\n const _voice = voices.find((voice) => voice.lang === lang);\n if (_voice) {\n this.activeVoice = _voice;\n }\n }\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SpeechRecognitionService } from '../speech-recognition.service';\nimport { TextToSpeechService } from '../text-to-speech.service';\n\n@Component({\n selector: 's-speech-recognition',\n templateUrl: './speech-recognition.component.html',\n styleUrls: ['./speech-recognition.component.scss']\n})\nexport class SpeechRecognitionComponent implements OnInit, OnDestroy {\n @Input() textAreaElement: HTMLTextAreaElement;\n private _recognizedText = '';\n private originalTextAreaElementText = '';\n private isDoneSpeaking = false;\n private readonly onDestroy$ = new Subject<void>();\n private readonly VOICE_SPEEDS = [0.5, 1, 1.5, 2];\n private readonly keydownEventListener = (event: KeyboardEvent) => {\n if (this.disabled) {\n event.preventDefault();\n }\n }\n\n disabled = false;\n isSpeaking = false;\n voiceSpeed = 1;\n isDisabledMicrophone = false;\n\n canRenderMicrophone = true;\n canRenderTextToSpeech = true;\n canRenderListeningText = false;\n canRenderDiscard = false;\n canRenderAprove = false;\n canRenderTextToSpeechToolbar = false;\n\n isPlayingTextToSpeech = false;\n\n @Output() recognizedText = new EventEmitter<string>();\n constructor(\n private readonly speechRecognitionService: SpeechRecognitionService,\n private readonly textToSpeechService: TextToSpeechService,\n private readonly translateService: TranslateService\n ) { }\n\n ngOnInit(): void {\n if (!this.textAreaElement) {\n throw new Error('textAreaElement is required');\n }\n this.textAreaElement.placeholder = this.translateService.instant(\"platform.angular_components.text_area_speech_recognition_placeholder\");\n this.textAreaElement.addEventListener('keydown', this.keydownEventListener)\n }\n\n onListen() {\n if (this.isDisabledMicrophone || this.isListening) {\n return;\n }\n this.disabled = true;\n this.canRenderMicrophone = false;\n this.canRenderListeningText = true;\n if (this.textAreaElement.value && !this.originalTextAreaElementText) {\n this.originalTextAreaElementText = this.textAreaElement.value;\n }\n\n\n this.textAreaElement.value = '';\n this.isSpeaking = true;\n this.speechRecognitionService.listen()\n .pipe(takeUntil(this.onDestroy$))\n .subscribe(({ text, isFinal }) => {\n this._recognizedText = text;\n this.setTextAreaValue(text);\n setTimeout(() => {\n this.textAreaElement.scrollTop = this.textAreaElement.scrollHeight;\n }, 120)\n if (isFinal) {\n this.canRenderAprove = true;\n this.canRenderDiscard = true;\n this.canRenderListeningText = false;\n this.isSpeaking = false;\n }\n })\n }\n\n onOpenToolbar() {\n if (this.isDisabledTextToSpeech) {\n return;\n }\n this.canRenderTextToSpeechToolbar = true;\n this.canRenderTextToSpeech = false;\n this.isPlayingTextToSpeech = true;\n this.speak();\n }\n\n onCloseToolbar() {\n this.canRenderTextToSpeechToolbar = false;\n this.canRenderTextToSpeech = true;\n this.isPlayingTextToSpeech = false;\n this.textToSpeechService.cancel();\n this.voiceSpeed = 1;\n }\n onDiscard() {\n this.canRenderAprove = false;\n this.canRenderDiscard = false;\n this.canRenderMicrophone = true;\n this.canRenderTextToSpeechToolbar = false;\n this.canRenderTextToSpeech = true;\n this._recognizedText = '';\n this.setTextAreaValue(this.originalTextAreaElementText);\n this.disabled = false;\n this.textToSpeechService.cancel();\n }\n\n onAprove() {\n this.canRenderAprove = false;\n this.canRenderDiscard = false;\n this.canRenderMicrophone = true;\n this.canRenderTextToSpeechToolbar = false;\n this.canRenderTextToSpeech = true;\n this.originalTextAreaElementText = this._recognizedText\n this.recognizedText.emit(this._recognizedText);\n this._recognizedText = '';\n this.disabled = false;\n this.textToSpeechService.cancel();\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n toggleTextToSpeech() {\n if (this.isPlayingTextToSpeech) {\n this.textToSpeechService.pause();\n } else {\n if (this.isDoneSpeaking) {\n this.speak();\n } else {\n this.textToSpeechService.resume();\n }\n }\n this.isPlayingTextToSpeech = !this.isPlayingTextToSpeech;\n }\n\n restartTextToSpeech() {\n this.isPlayingTextToSpeech = true;\n this.textToSpeechService.cancel();\n this.speak();\n }\n\n updateVoiceSpeed() {\n const voiceSpeedIndex = this.VOICE_SPEEDS.indexOf(this.voiceSpeed);\n const nextVoiceSpeedIndex = this.VOICE_SPEEDS[voiceSpeedIndex + 1] ? voiceSpeedIndex + 1 : 0;\n this.voiceSpeed = this.VOICE_SPEEDS[nextVoiceSpeedIndex];\n this.textToSpeechService.cancel();\n this.speak()\n }\n\n stopListening() {\n this.speechRecognitionService.stop();\n }\n\n get isListening() {\n return this.speechRecognitionService.isListening\n }\n\n get isDisabledTextToSpeech() {\n const hasTextToSpeechVoice = this.textToSpeechService.hasVoice;\n return !this._recognizedText || !hasTextToSpeechVoice || this.isListening;\n }\n private setTextAreaValue(value: string) {\n this.textAreaElement.value = value;\n }\n\n private speak() {\n this.isDoneSpeaking = false;\n this.textToSpeechService.speak(this._recognizedText, this.voiceSpeed).then(() => {\n this.isPlayingTextToSpeech = false;\n this.isDoneSpeaking = true;\n });\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SpeechRecognitionComponent } from './speech-recognition/speech-recognition.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [SpeechRecognitionComponent],\n imports: [\n CommonModule,\n TranslateModule\n ],\n exports: [SpeechRecognitionComponent]\n})\nexport class SpeechRecognitionModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TextAreaComponent } from './text-area/text-area.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SpeechRecognitionModule } from '../speech-recognition/speech-recognition.module';\nimport { KeyFilterModule } from 'primeng/keyfilter';\n\n\n\n@NgModule({\n declarations: [TextAreaComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n SpeechRecognitionModule,\n KeyFilterModule\n ],\n exports: [TextAreaComponent]\n})\nexport class TextAreaModule { }\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/bignumber-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\";\nimport { TextAreaModule } from \"../text-area/text-area.module\";\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 TextAreaModule\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 @Input()\n speechRecognition = false\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 speechRecognition: this.speechRecognition\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\";\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\";\nimport { TextAreaModule } from \"../text-area/text-area.module\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n DialogModule,\n ButtonModule,\n DynamicFormModule,\n LoadingStateModule,\n TextAreaModule\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/bignumber-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 = 3; \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 three 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 \"platform.angular_components.text_area_speech_recognition_placeholder\": \"Preencha o campo com, pelo menos, uma frase\",\n \"platform.angular_components.text_area_before_speech\": \"Grave ou ouça o texto clicando nos ícones\",\n \"platform.angular_components.text_area_while_speech\": \"Clique novamente no ícone para finalizar\",\n \"platform.angular_components.text_area_end_speech\": \"Gravação finalizada\"\n};\n"]}