@seniorsistemas/angular-components 17.26.7-bugfix-sds-305-b2309d98 → 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 -23606
  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 -28
  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 -45
  1147. package/components/speech-recognition/speech-recognition.module.d.ts +0 -2
  1148. package/components/speech-recognition/speech-recognition.service.d.ts +0 -19
  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 -31
  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 -42
  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 -149
  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 -90
  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 -186
  1710. package/esm2015/components/speech-recognition/speech-recognition.module.js +0 -19
  1711. package/esm2015/components/speech-recognition/speech-recognition.service.js +0 -107
  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 -115
  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 -136
  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 -120
  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 -154
  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 -92
  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 -203
  2296. package/esm5/components/speech-recognition/speech-recognition.module.js +0 -22
  2297. package/esm5/components/speech-recognition/speech-recognition.service.js +0 -110
  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 -130
  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 -139
  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 -120
  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 -21558
  2438. package/fesm2015/seniorsistemas-angular-components.js.map +0 -1
  2439. package/fesm5/seniorsistemas-angular-components.js +0 -23129
  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 -119
  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/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/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/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/speech-recognition/speech-recognition.service.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/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","LocalizedBignumberPipe","localeService","transform","options","applyMask","localeConfig","configs","prefix","_f","_d","_e","_j","_g","_h","scale","_k","allowNegative","_l","isNumber","BigNumber","isNaN","Pipe","name","LocalizedBignumberImpurePipe","_super","pure","LocalizedCurrencyPipeOptions","LocalizedCurrencyPipe","rawValue","Number","toFixed","onlyNumbers","replace","integerPart","slice","decimalPart","newValue","isZero","LocalizedCurrencyImpurePipe","LocalizedDatePipe","format","LocalizedDateImpurePipe","LocalizedNumberPipe","numericValue","LocalizedTimePipe","LocalizedTimeImpurePipe","CurrencyService","currencies","KHR","precision","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","toString","toUpperCase","baseType","tag","toStringTag","Function","startsWith","className","NumericPipe","numericService","LocaleModule","forRoot","ngModule","LocaleModule_1","forChild","BignumberInputDirective","_angularComponentsLocaleService","alignTo","AlignmentOptions","LEFT","pasteRejected","onLocaleService","updateVariables","placeholder","padEnd","onPaste","pastedText","clipboardData","getData","RegExp","split","intPart","preventDefault","onKeypress","code","maxLength","_maxLength","align","suffix","calculateMaxLength","decSepLength","thoSepLength","ceil","first","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","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","_elementRef","_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","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","_keyValueDiffers","_onPaste","_onKeypress","decimal","thousands","KeyValueDiffers","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","SpeechRecognitionService","ngZone","hasSupportSpeechRecognition","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","TextAreaIAFieldComponent","_iassistService","_formBuilder","_translateService","speechRecognitionService","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","_placeholder","handleRecognizedText","recognizedText","TextAreaComponent_1","TextToSpeechService","utterance","SpeechSynthesisUtterance","voices","setVoices","_voices","speechSynthesis","getVoices","onvoiceschanged","setActiveVoice","updateVoice","voiceUri","activeVoice","voice","voiceURI","speak","speed","rate","resume","_voice","SpeechRecognitionComponent","textToSpeechService","_recognizedText","originalTextAreaElementText","isDoneSpeaking","onDestroy$","VOICE_SPEEDS","keydownEventListener","isSpeaking","voiceSpeed","isDisabledMicrophone","canRenderMicrophone","canRenderTextToSpeech","canRenderListeningText","canRenderDiscard","canRenderAprove","canRenderTextToSpeechToolbar","isPlayingTextToSpeech","hasSpeechRecognitionBrowserApi","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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ACVC,SAAA,+8IAGW89E,oBCCb,SAAAoC,KAAuC,OAA1BA,EAAuBjmF,GAAA,CARnCkK,EAAAA,SAAS,CACRG,aAAc,CAACw5E,IACf15E,QAAS,CACPC,EAAAA,aACA23B,EAAAA,iBAEFz3B,QAAS,CAACu5E,OAECoC,oBCOb,SAAAC,KAA8B,OAAjBA,EAAclmF,GAAA,CAX1BkK,EAAAA,SAAS,CACRG,aAAc,CAAC23E,IACf73E,QAAS,CACPC,EAAAA,aACAwK,EAAAA,YACAC,EAAAA,oBACAoxE,GACAlE,EAAAA,iBAEFz3E,QAAS,CAAC03E,OAECkE,oBC4Kb,SAAAC,KAAiC,OAApBA,EAAiBnmF,GAAA,CAzG7BkK,EAAAA,SAAS,CACNC,QAAS,CACLi8E,EAAAA,mBACAjvE,GACA2U,GACAyL,GACA8H,GACAgnD,EAAAA,eACAxjD,EAAAA,eACAyjD,EAAAA,YACAl8E,EAAAA,aACAwwC,GACAuH,GACA06B,EAAAA,aACA0J,EAAAA,eACAnuB,GACAxjD,EAAAA,YACA4xE,EAAAA,aACAtN,EAAAA,gBACAuN,EAAAA,oBACAtN,EAAAA,gBACA4I,EAAAA,gBACAzjB,GACA70C,GACAo1C,GACA6nB,EAAAA,YACAC,EAAAA,aACAC,EAAAA,YACAC,EAAAA,kBACA/+B,GACAg/B,EAAAA,kBACAjyE,EAAAA,oBACAH,GAEAqyE,EAAAA,eACAtjB,GACApH,GACAsV,GACA16D,GACA4oD,GACA2mB,EAAAA,aAAa98D,UACbgsC,GACAzrD,GACAg4D,GACA+kB,EAAAA,aACAjlD,EAAAA,gBAAgBlY,WAEhB4vD,GACAqI,GACAtI,GACAH,GACAJ,GACAG,GACAyI,GACAvI,GACAN,GACAkN,IAEJ77E,aAAc,CACVunE,GACAI,GACAE,GACAC,GACAC,GACAO,GACAgE,GACAhiB,GACA+jB,GACAnC,GACAzd,GACAhL,GACAklB,GACAC,GACAwD,GACAD,GACAtD,GACAC,GACAmD,GACAb,GACAgC,IAEJntE,QAAS,CAACqqD,GAAsB7G,IAChC52C,gBAAiB,CACb06D,GACAI,GACAE,GACAC,GACA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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 { 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 {\n Directive,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { AlignmentOptions, CurrencyMaskDirective } from \"@seniorsistemas/ng2-currency-mask\";\nimport { first } from \"rxjs/operators\";\nimport { LocaleService } from \"../locale\";\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(injector: Injector, private readonly _angularComponentsLocaleService: LocaleService) {\n super(injector);\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._angularComponentsLocaleService\n .getLocale()\n .pipe(first())\n .subscribe(() => {\n this.decimalSeparator = this.decimalSeparator ?? this._angularComponentsLocaleService.getDecimalSeparator();\n this.thousandsSeparator = this.thousandsSeparator ?? this._angularComponentsLocaleService.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 { 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 { 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 hasSupportSpeechRecognition = false;\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 console.warn('Speech recognition is not supported in this browser.');\n return;\n }\n this.hasSupportSpeechRecognition = true;\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 { 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\";\nimport { SpeechRecognitionService } from \"../../../../speech-recognition/speech-recognition.service\"\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 public speechRecognitionService: SpeechRecognitionService\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 _placeholder: string;\n @Input() get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n if (value) {\n this._placeholder = value;\n } else {\n this._placeholder = '';\n }\n }\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 { 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.hasSpeechRecognitionBrowserApi) {\n return;\n }\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 hasSpeechRecognitionBrowserApi() {\n return this.speechRecognitionService.hasSupportSpeechRecognition;\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\";\nimport { SpeechRecognitionService } from \"../speech-recognition/speech-recognition.service\";\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 public speechRecognitionService: SpeechRecognitionService\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"]}