keevo-components 2.0.178 → 2.0.180

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 (790) hide show
  1. package/ng-package.json +14 -0
  2. package/package.json +32 -42
  3. package/src/assets/.gitkeep +0 -0
  4. package/src/index.ts +1 -0
  5. package/src/lib/api/base-components/base-component-button.ts +29 -0
  6. package/src/lib/api/base-components/base-component-chart.ts +118 -0
  7. package/src/lib/api/base-components/base-component-crud-form.ts +377 -0
  8. package/src/lib/api/base-components/base-component-crud-list.ts +129 -0
  9. package/src/lib/api/base-components/base-component-crud.ts +92 -0
  10. package/src/lib/api/base-components/base-component-dropdown-external.ts +29 -0
  11. package/src/lib/api/base-components/base-component-dropdown-new.ts +112 -0
  12. package/src/lib/api/base-components/base-component-dropdown.ts +265 -0
  13. package/src/lib/api/base-components/base-component-input.ts +121 -0
  14. package/src/lib/api/base-components/base-component-multi-select.ts +187 -0
  15. package/src/lib/api/base-components/base-component-table.ts +366 -0
  16. package/src/lib/api/base-components/base-component.ts +47 -0
  17. package/src/lib/api/components/chart/chart.config.ts +15 -0
  18. package/src/lib/api/components/chart/chart.model.ts +12 -0
  19. package/src/lib/api/components/chart/orchart.config.ts +51 -0
  20. package/src/lib/api/components/chart/orchartnode.ts +44 -0
  21. package/src/lib/api/components/dropdown/filtro.combo.ts +4 -0
  22. package/{lib/api/components/step/step.model.d.ts → src/lib/api/components/step/step.model.ts} +15 -13
  23. package/src/lib/api/components/stepper/kv-stepperpanel.ts +10 -0
  24. package/src/lib/api/components/table/action-item.ts +13 -0
  25. package/src/lib/api/components/table/kv-menuitem.ts +198 -0
  26. package/src/lib/api/components/table/table-dropdown-control.ts +6 -0
  27. package/src/lib/api/components/table/table.config.column.ts +38 -0
  28. package/src/lib/api/components/table/table.config.ts +39 -0
  29. package/src/lib/api/components/table/table.paginate.ts +7 -0
  30. package/{lib/api/components/table/tabledit.config.d.ts → src/lib/api/components/table/tabledit.config.ts} +9 -8
  31. package/src/lib/api/components/table/tableedit.config.column.ts +12 -0
  32. package/src/lib/api/components/tree-table/tree-table-keys.ts +12 -0
  33. package/src/lib/api/components/tree-table/tree-table.config.ts +34 -0
  34. package/src/lib/api/directives/directives.module.ts +19 -0
  35. package/src/lib/api/directives/drag/drag.directive.ts +40 -0
  36. package/src/lib/api/directives/stepper/dynamicinput.directive.ts +23 -0
  37. package/src/lib/api/directives/template/template.directive.ts +15 -0
  38. package/src/lib/api/helpers/component-providers.ts +16 -0
  39. package/src/lib/api/helpers/keevo-validators.ts +174 -0
  40. package/src/lib/api/helpers/severity-color.ts +77 -0
  41. package/src/lib/api/helpers/translate-primeng.ts +25 -0
  42. package/src/lib/api/modules/primeng.module.ts +147 -0
  43. package/src/lib/api/pipes/capitalize.pipe.ts +47 -0
  44. package/src/lib/api/pipes/cpfcnpj.pipe.ts +21 -0
  45. package/src/lib/api/pipes/mask.pipe.ts +24 -0
  46. package/src/lib/api/pipes/pipes.module.ts +26 -0
  47. package/src/lib/api/pipes/telefone.pipe.ts +38 -0
  48. package/src/lib/api/services/base.api.service.ts +115 -0
  49. package/src/lib/api/services/breadcrumbs.service.ts +73 -0
  50. package/src/lib/api/services/chat.service.ts +39 -0
  51. package/src/lib/api/services/component.service.ts +44 -0
  52. package/src/lib/api/services/docs.service.ts +129 -0
  53. package/src/lib/api/services/form.service.ts +139 -0
  54. package/src/lib/api/services/image.cutter.service.ts +290 -0
  55. package/src/lib/api/services/imagens.service.ts +28 -0
  56. package/src/lib/api/services/notification.service.ts +88 -0
  57. package/src/lib/api/services/object.service.ts +33 -0
  58. package/src/lib/api/services/orgchart.service.ts +77 -0
  59. package/src/lib/api/services/pdf.service.ts +54 -0
  60. package/src/lib/api/types/breadcrumb.model.ts +6 -0
  61. package/{lib/api/types/severity.d.ts → src/lib/api/types/severity.ts} +3 -2
  62. package/src/lib/api/types/stimulsoft.reports.d.ts +67463 -0
  63. package/src/lib/components/keevo-components.module.ts +108 -0
  64. package/src/lib/components/kv-avatar/kv-avatar.component.html +75 -0
  65. package/src/lib/components/kv-avatar/kv-avatar.component.scss +162 -0
  66. package/src/lib/components/kv-avatar/kv-avatar.component.spec.ts +23 -0
  67. package/src/lib/components/kv-avatar/kv-avatar.component.ts +165 -0
  68. package/src/lib/components/kv-avatar/kv-avatar.module.ts +32 -0
  69. package/src/lib/components/kv-button/kv-button.component.html +26 -0
  70. package/src/lib/components/kv-button/kv-button.component.spec.ts +23 -0
  71. package/src/lib/components/kv-button/kv-button.component.ts +57 -0
  72. package/src/lib/components/kv-button/kv-button.module.ts +20 -0
  73. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.html +14 -0
  74. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.scss +6 -0
  75. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.ts +25 -0
  76. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.html +13 -0
  77. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.scss +33 -0
  78. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.ts +41 -0
  79. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.html +12 -0
  80. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.scss +18 -0
  81. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.ts +14 -0
  82. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.html +11 -0
  83. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.scss +17 -0
  84. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.ts +14 -0
  85. package/src/lib/components/kv-buttons/kv-button.module.ts +26 -0
  86. package/src/lib/components/kv-card-selection/kv-card-selection.component.html +63 -0
  87. package/src/lib/components/kv-card-selection/kv-card-selection.component.scss +54 -0
  88. package/src/lib/components/kv-card-selection/kv-card-selection.component.spec.ts +23 -0
  89. package/src/lib/components/kv-card-selection/kv-card-selection.component.ts +73 -0
  90. package/src/lib/components/kv-card-selection/kv-card-selection.module.ts +19 -0
  91. package/src/lib/components/kv-carousel/kv-carousel.component.html +26 -0
  92. package/src/lib/components/kv-carousel/kv-carousel.component.scss +47 -0
  93. package/src/lib/components/kv-carousel/kv-carousel.component.spec.ts +23 -0
  94. package/src/lib/components/kv-carousel/kv-carousel.component.ts +40 -0
  95. package/src/lib/components/kv-carousel/kv-carousel.module.ts +19 -0
  96. package/src/lib/components/kv-chart/kv-chart.component.html +38 -0
  97. package/src/lib/components/kv-chart/kv-chart.component.scss +0 -0
  98. package/src/lib/components/kv-chart/kv-chart.component.spec.ts +28 -0
  99. package/src/lib/components/kv-chart/kv-chart.component.ts +174 -0
  100. package/src/lib/components/kv-chart/kv-chart.module.ts +21 -0
  101. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.html +9 -0
  102. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.scss +7 -0
  103. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.spec.ts +23 -0
  104. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.ts +32 -0
  105. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.ts +14 -0
  106. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.html +231 -0
  107. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.scss +185 -0
  108. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.spec.ts +23 -0
  109. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.ts +172 -0
  110. package/src/lib/components/kv-content-viewer/kv-content-viewer.module.ts +25 -0
  111. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.html +253 -0
  112. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.scss +185 -0
  113. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.spec.ts +23 -0
  114. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.ts +154 -0
  115. package/src/lib/components/kv-error/kv-error.component.html +3 -0
  116. package/src/lib/components/kv-error/kv-error.component.scss +5 -0
  117. package/src/lib/components/kv-error/kv-error.component.ts +27 -0
  118. package/src/lib/components/kv-error/kv-error.module.ts +26 -0
  119. package/src/lib/components/kv-file-upload/kv-file-upload.component.html +134 -0
  120. package/src/lib/components/kv-file-upload/kv-file-upload.component.scss +13 -0
  121. package/src/lib/components/kv-file-upload/kv-file-upload.component.spec.ts +23 -0
  122. package/src/lib/components/kv-file-upload/kv-file-upload.component.ts +200 -0
  123. package/src/lib/components/kv-file-upload/kv-file-upload.module.ts +13 -0
  124. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.html +16 -0
  125. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.scss +18 -0
  126. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.ts +42 -0
  127. package/src/lib/components/kv-file-viewer/kv-file-viewer.module.ts +14 -0
  128. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.html +34 -0
  129. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.scss +17 -0
  130. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.ts +80 -0
  131. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.ts +15 -0
  132. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.html +103 -0
  133. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.scss +153 -0
  134. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.spec.ts +23 -0
  135. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.ts +73 -0
  136. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.module.ts +18 -0
  137. package/src/lib/components/kv-filter-card/kv-filter-card.component.html +12 -0
  138. package/src/lib/components/kv-filter-card/kv-filter-card.component.scss +76 -0
  139. package/src/lib/components/kv-filter-card/kv-filter-card.component.spec.ts +23 -0
  140. package/src/lib/components/kv-filter-card/kv-filter-card.component.ts +18 -0
  141. package/src/lib/components/kv-filter-card/kv-filter-card.module.ts +23 -0
  142. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.html +94 -0
  143. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.scss +189 -0
  144. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.ts +150 -0
  145. package/src/lib/components/kv-filter-cards/kv-filter-cards.module.ts +20 -0
  146. package/src/lib/components/kv-filter-cards/kv-filter-cards.pipe.ts +24 -0
  147. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.html +25 -0
  148. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.scss +22 -0
  149. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.spec.ts +23 -0
  150. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.ts +21 -0
  151. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.ts +20 -0
  152. package/src/lib/components/kv-g-icon/kv-g-icon.component.html +1 -0
  153. package/src/lib/components/kv-g-icon/kv-g-icon.component.scss +0 -0
  154. package/src/lib/components/kv-g-icon/kv-g-icon.component.spec.ts +23 -0
  155. package/src/lib/components/kv-g-icon/kv-g-icon.component.ts +10 -0
  156. package/src/lib/components/kv-g-icon/kv-g-icon.module.ts +11 -0
  157. package/src/lib/components/kv-home-card/kv-home-card.component.html +35 -0
  158. package/src/lib/components/kv-home-card/kv-home-card.component.scss +5 -0
  159. package/src/lib/components/kv-home-card/kv-home-card.component.spec.ts +23 -0
  160. package/src/lib/components/kv-home-card/kv-home-card.component.ts +33 -0
  161. package/src/lib/components/kv-home-card/kv-home-card.module.ts +18 -0
  162. package/src/lib/components/kv-icon/kv-icon.component.html +13 -0
  163. package/src/lib/components/kv-icon/kv-icon.component.scss +82 -0
  164. package/src/lib/components/kv-icon/kv-icon.component.spec.ts +28 -0
  165. package/src/lib/components/kv-icon/kv-icon.component.ts +31 -0
  166. package/{lib/components/kv-icon/kv-icon.model.d.ts → src/lib/components/kv-icon/kv-icon.model.ts} +3 -3
  167. package/src/lib/components/kv-icon/kv-icon.module.ts +16 -0
  168. package/src/lib/components/kv-image-upload/kv-image-upload.component.html +64 -0
  169. package/src/lib/components/kv-image-upload/kv-image-upload.component.scss +0 -0
  170. package/src/lib/components/kv-image-upload/kv-image-upload.component.ts +153 -0
  171. package/src/lib/components/kv-image-upload/kv-image-upload.module.ts +10 -0
  172. package/src/lib/components/kv-inputs/kv-check/kv-check.component.html +12 -0
  173. package/src/lib/components/kv-inputs/kv-check/kv-check.component.scss +42 -0
  174. package/src/lib/components/kv-inputs/kv-check/kv-check.component.ts +32 -0
  175. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.html +104 -0
  176. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.ts +122 -0
  177. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.html +13 -0
  178. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.scss +0 -0
  179. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.spec.ts +23 -0
  180. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.ts +16 -0
  181. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.html +18 -0
  182. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.scss +0 -0
  183. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.ts +41 -0
  184. package/src/lib/components/kv-inputs/kv-editor/config/kv-editor.config.ts +120 -0
  185. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.html +283 -0
  186. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.scss +182 -0
  187. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.ts +319 -0
  188. package/{lib/components/kv-inputs/kv-editor/kv-editor.d.ts → src/lib/components/kv-inputs/kv-editor/kv-editor.ts} +6 -6
  189. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.ts +156 -0
  190. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.ts +190 -0
  191. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.spec.ts +126 -0
  192. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.ts +84 -0
  193. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.spec.ts +176 -0
  194. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.ts +101 -0
  195. package/src/lib/components/kv-inputs/kv-editor/types/kv-editor.types.ts +36 -0
  196. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.html +37 -0
  197. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.scss +23 -0
  198. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.ts +167 -0
  199. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.html +24 -0
  200. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.scss +0 -0
  201. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.ts +35 -0
  202. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.html +23 -0
  203. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.scss +0 -0
  204. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.ts +61 -0
  205. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.html +33 -0
  206. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.scss +5 -0
  207. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.ts +63 -0
  208. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.html +24 -0
  209. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.scss +0 -0
  210. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.ts +26 -0
  211. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.html +23 -0
  212. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.scss +18 -0
  213. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.ts +40 -0
  214. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.html +30 -0
  215. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.scss +26 -0
  216. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.ts +38 -0
  217. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.html +53 -0
  218. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.scss +41 -0
  219. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.spec.ts +23 -0
  220. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.ts +48 -0
  221. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.html +23 -0
  222. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.scss +0 -0
  223. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.ts +40 -0
  224. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.html +24 -0
  225. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.scss +0 -0
  226. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.ts +27 -0
  227. package/src/lib/components/kv-inputs/kv-inputs.module.ts +100 -0
  228. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.html +87 -0
  229. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.scss +62 -0
  230. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.ts +54 -0
  231. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.html +19 -0
  232. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.scss +22 -0
  233. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.ts +63 -0
  234. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.html +26 -0
  235. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.scss +5 -0
  236. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.spec.ts +21 -0
  237. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.ts +30 -0
  238. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.html +28 -0
  239. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.scss +61 -0
  240. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.spec.ts +23 -0
  241. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.ts +43 -0
  242. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.html +23 -0
  243. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.scss +35 -0
  244. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.ts +54 -0
  245. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.html +68 -0
  246. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.scss +86 -0
  247. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.ts +59 -0
  248. package/src/lib/components/kv-label/kv-label.component.html +3 -0
  249. package/src/lib/components/kv-label/kv-label.component.scss +15 -0
  250. package/src/lib/components/kv-label/kv-label.component.spec.ts +23 -0
  251. package/src/lib/components/kv-label/kv-label.component.ts +14 -0
  252. package/src/lib/components/kv-label/kv-label.module.ts +17 -0
  253. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.html +25 -0
  254. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.scss +19 -0
  255. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.spec.ts +28 -0
  256. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.ts +34 -0
  257. package/src/lib/components/kv-layout/kv-layout.module.ts +44 -0
  258. package/src/lib/components/kv-layout/layout/kv-layout.component.html +591 -0
  259. package/src/lib/components/kv-layout/layout/kv-layout.component.scss +268 -0
  260. package/src/lib/components/kv-layout/layout/kv-layout.component.spec.ts +23 -0
  261. package/src/lib/components/kv-layout/layout/kv-layout.component.ts +531 -0
  262. package/src/lib/components/kv-layout/top-icons/top-icons.component.html +26 -0
  263. package/src/lib/components/kv-layout/top-icons/top-icons.component.scss +71 -0
  264. package/src/lib/components/kv-layout/top-icons/top-icons.component.spec.ts +23 -0
  265. package/src/lib/components/kv-layout/top-icons/top-icons.component.ts +26 -0
  266. package/src/lib/components/kv-loader/kv-loader.component.html +1 -0
  267. package/src/lib/components/kv-loader/kv-loader.component.ts +11 -0
  268. package/src/lib/components/kv-loader/kv-loader.module.ts +17 -0
  269. package/src/lib/components/kv-loader/kv-loader.service.ts +29 -0
  270. package/src/lib/components/kv-login/kv-login.component.html +101 -0
  271. package/src/lib/components/kv-login/kv-login.component.scss +99 -0
  272. package/src/lib/components/kv-login/kv-login.component.spec.ts +23 -0
  273. package/src/lib/components/kv-login/kv-login.component.ts +97 -0
  274. package/src/lib/components/kv-login/kv-login.module.ts +33 -0
  275. package/src/lib/components/kv-modal/kv-modal.component.html +20 -0
  276. package/src/lib/components/kv-modal/kv-modal.component.scss +37 -0
  277. package/src/lib/components/kv-modal/kv-modal.component.spec.ts +21 -0
  278. package/src/lib/components/kv-modal/kv-modal.component.ts +111 -0
  279. package/src/lib/components/kv-modal/kv-modal.module.ts +12 -0
  280. package/src/lib/components/kv-orgchart/kv-orgchart.component.html +125 -0
  281. package/src/lib/components/kv-orgchart/kv-orgchart.component.scss +73 -0
  282. package/src/lib/components/kv-orgchart/kv-orgchart.component.ts +283 -0
  283. package/src/lib/components/kv-orgchart/kv-orgchart.module.ts +31 -0
  284. package/src/lib/components/kv-page-form/kv-page-form.component.html +91 -0
  285. package/src/lib/components/kv-page-form/kv-page-form.component.scss +100 -0
  286. package/src/lib/components/kv-page-form/kv-page-form.component.spec.ts +28 -0
  287. package/src/lib/components/kv-page-form/kv-page-form.component.ts +206 -0
  288. package/src/lib/components/kv-page-form/kv-page-form.module.ts +33 -0
  289. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.html +276 -0
  290. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.scss +85 -0
  291. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.spec.ts +23 -0
  292. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.ts +223 -0
  293. package/src/lib/components/kv-page-stepper/kv-page-stepper.module.ts +36 -0
  294. package/src/lib/components/kv-pick-list/kv-pick-list.component.html +32 -0
  295. package/src/lib/components/kv-pick-list/kv-pick-list.component.scss +57 -0
  296. package/src/lib/components/kv-pick-list/kv-pick-list.component.spec.ts +26 -0
  297. package/src/lib/components/kv-pick-list/kv-pick-list.component.ts +461 -0
  298. package/src/lib/components/kv-pick-list/kv-pick-list.module.ts +24 -0
  299. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.html +38 -0
  300. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.scss +128 -0
  301. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.spec.ts +21 -0
  302. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.ts +75 -0
  303. package/src/lib/components/kv-progress-bar/kv-progress-bar.module.ts +19 -0
  304. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.html +43 -0
  305. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.scss +130 -0
  306. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.spec.ts +23 -0
  307. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.ts +82 -0
  308. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.ts +18 -0
  309. package/src/lib/components/kv-report/kv-report.component.html +3 -0
  310. package/src/lib/components/kv-report/kv-report.component.scss +14 -0
  311. package/src/lib/components/kv-report/kv-report.component.spec.ts +28 -0
  312. package/src/lib/components/kv-report/kv-report.component.ts +44 -0
  313. package/src/lib/components/kv-report/kv-report.module.ts +18 -0
  314. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.html +23 -0
  315. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.scss +48 -0
  316. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.spec.ts +28 -0
  317. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.ts +68 -0
  318. package/src/lib/components/kv-stepper/kv-stepper.component.html +94 -0
  319. package/src/lib/components/kv-stepper/kv-stepper.component.scss +43 -0
  320. package/src/lib/components/kv-stepper/kv-stepper.component.spec.ts +23 -0
  321. package/src/lib/components/kv-stepper/kv-stepper.component.ts +73 -0
  322. package/src/lib/components/kv-stepper/kv-stepper.module.ts +27 -0
  323. package/src/lib/components/kv-steps/kv-steps.component.html +53 -0
  324. package/src/lib/components/kv-steps/kv-steps.component.scss +120 -0
  325. package/src/lib/components/kv-steps/kv-steps.component.ts +122 -0
  326. package/src/lib/components/kv-table/kv-table.component.html +683 -0
  327. package/src/lib/components/kv-table/kv-table.component.spec.ts +28 -0
  328. package/src/lib/components/kv-table/kv-table.component.ts +795 -0
  329. package/src/lib/components/kv-table/kv-table.module.ts +25 -0
  330. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.html +673 -0
  331. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.scss +201 -0
  332. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.spec.ts +28 -0
  333. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.ts +982 -0
  334. package/src/lib/components/kv-table-draggable/kv-table-draggable.module.ts +28 -0
  335. package/src/lib/components/kv-table-edit/kv-table-edit.component.html +913 -0
  336. package/src/lib/components/kv-table-edit/kv-table-edit.component.scss +757 -0
  337. package/src/lib/components/kv-table-edit/kv-table-edit.component.ts +425 -0
  338. package/src/lib/components/kv-table-edit/kv-table-edit.module.ts +31 -0
  339. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.html +635 -0
  340. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.scss +395 -0
  341. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.ts +546 -0
  342. package/src/lib/components/kv-table-expandable/kv-table-expandable.module.ts +22 -0
  343. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.html +25 -0
  344. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.scss +0 -0
  345. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.spec.ts +23 -0
  346. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.ts +17 -0
  347. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.html +20 -0
  348. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.scss +0 -0
  349. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.spec.ts +23 -0
  350. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.ts +14 -0
  351. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.html +198 -0
  352. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.scss +92 -0
  353. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.spec.ts +23 -0
  354. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.ts +255 -0
  355. package/src/lib/components/kv-tag/kv-tag.component.html +7 -0
  356. package/src/lib/components/kv-tag/kv-tag.component.scss +65 -0
  357. package/src/lib/components/kv-tag/kv-tag.component.spec.ts +23 -0
  358. package/src/lib/components/kv-tag/kv-tag.component.ts +17 -0
  359. package/src/lib/components/kv-tag/kv-tag.module.ts +18 -0
  360. package/src/lib/components/kv-tags/kv-tags.component.html +26 -0
  361. package/src/lib/components/kv-tags/kv-tags.component.scss +34 -0
  362. package/src/lib/components/kv-tags/kv-tags.component.ts +67 -0
  363. package/src/lib/components/kv-tags/kv-tags.module.ts +18 -0
  364. package/src/lib/components/kv-timeline/kv-timeline.component.html +38 -0
  365. package/src/lib/components/kv-timeline/kv-timeline.component.scss +31 -0
  366. package/src/lib/components/kv-timeline/kv-timeline.component.spec.ts +23 -0
  367. package/src/lib/components/kv-timeline/kv-timeline.component.ts +83 -0
  368. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.html +57 -0
  369. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.scss +15 -0
  370. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.spec.ts +28 -0
  371. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.ts +338 -0
  372. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.html +72 -0
  373. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.scss +170 -0
  374. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.spec.ts +28 -0
  375. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.ts +91 -0
  376. package/src/lib/components/kv-tree-environment/models/no-arvore.model.ts +60 -0
  377. package/src/lib/components/kv-tree-table/kv-tree-table.component.html +452 -0
  378. package/src/lib/components/kv-tree-table/kv-tree-table.component.scss +219 -0
  379. package/src/lib/components/kv-tree-table/kv-tree-table.component.spec.ts +21 -0
  380. package/src/lib/components/kv-tree-table/kv-tree-table.component.ts +355 -0
  381. package/src/lib/components/kv-tree-table/kv-tree-table.module.ts +23 -0
  382. package/src/lib/components/kv-tree-view/kv-tree-view.component.html +16 -0
  383. package/src/lib/components/kv-tree-view/kv-tree-view.component.scss +19 -0
  384. package/src/lib/components/kv-tree-view/kv-tree-view.component.spec.ts +23 -0
  385. package/src/lib/components/kv-tree-view/kv-tree-view.component.ts +73 -0
  386. package/src/lib/components/kv-tree-view/kv-tree-view.module.ts +19 -0
  387. package/src/lib/components/kv-widget-card/kv-widget-card.component.html +65 -0
  388. package/src/lib/components/kv-widget-card/kv-widget-card.component.scss +50 -0
  389. package/src/lib/components/kv-widget-card/kv-widget-card.component.spec.ts +28 -0
  390. package/src/lib/components/kv-widget-card/kv-widget-card.component.ts +116 -0
  391. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.html +22 -0
  392. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.scss +36 -0
  393. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.spec.ts +28 -0
  394. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.ts +41 -0
  395. package/src/lib/components/kv-workspace/kv-workspace.module.ts +45 -0
  396. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.html +20 -0
  397. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.scss +0 -0
  398. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.spec.ts +28 -0
  399. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.ts +18 -0
  400. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.html +35 -0
  401. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.scss +29 -0
  402. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.spec.ts +28 -0
  403. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.ts +98 -0
  404. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.html +63 -0
  405. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.scss +62 -0
  406. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.ts +91 -0
  407. package/{public-api.d.ts → src/public-api.ts} +382 -317
  408. package/tsconfig.lib.json +14 -0
  409. package/tsconfig.lib.prod.json +10 -0
  410. package/tsconfig.spec.json +14 -0
  411. package/esm2022/keevo-components.mjs +0 -5
  412. package/esm2022/lib/api/base-components/base-component-button.mjs +0 -39
  413. package/esm2022/lib/api/base-components/base-component-chart.mjs +0 -104
  414. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +0 -308
  415. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +0 -91
  416. package/esm2022/lib/api/base-components/base-component-crud.mjs +0 -80
  417. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +0 -31
  418. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +0 -242
  419. package/esm2022/lib/api/base-components/base-component-input.mjs +0 -101
  420. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +0 -174
  421. package/esm2022/lib/api/base-components/base-component-table.mjs +0 -354
  422. package/esm2022/lib/api/base-components/base-component.mjs +0 -51
  423. package/esm2022/lib/api/components/chart/chart.config.mjs +0 -2
  424. package/esm2022/lib/api/components/chart/chart.model.mjs +0 -2
  425. package/esm2022/lib/api/components/chart/orchart.config.mjs +0 -2
  426. package/esm2022/lib/api/components/chart/orchartnode.mjs +0 -2
  427. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +0 -2
  428. package/esm2022/lib/api/components/step/step.model.mjs +0 -2
  429. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +0 -2
  430. package/esm2022/lib/api/components/table/action-item.mjs +0 -2
  431. package/esm2022/lib/api/components/table/kv-menuitem.mjs +0 -46
  432. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +0 -2
  433. package/esm2022/lib/api/components/table/table.config.column.mjs +0 -2
  434. package/esm2022/lib/api/components/table/table.config.mjs +0 -2
  435. package/esm2022/lib/api/components/table/table.paginate.mjs +0 -10
  436. package/esm2022/lib/api/components/table/tabledit.config.mjs +0 -2
  437. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +0 -2
  438. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +0 -2
  439. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +0 -3
  440. package/esm2022/lib/api/directives/directives.module.mjs +0 -30
  441. package/esm2022/lib/api/directives/drag/drag.directive.mjs +0 -52
  442. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +0 -31
  443. package/esm2022/lib/api/directives/template/template.directive.mjs +0 -24
  444. package/esm2022/lib/api/helpers/component-providers.mjs +0 -16
  445. package/esm2022/lib/api/helpers/keevo-validators.mjs +0 -144
  446. package/esm2022/lib/api/helpers/severity-color.mjs +0 -73
  447. package/esm2022/lib/api/helpers/translate-primeng.mjs +0 -23
  448. package/esm2022/lib/api/modules/primeng.module.mjs +0 -287
  449. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +0 -47
  450. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +0 -25
  451. package/esm2022/lib/api/pipes/mask.pipe.mjs +0 -29
  452. package/esm2022/lib/api/pipes/pipes.module.mjs +0 -39
  453. package/esm2022/lib/api/pipes/telefone.pipe.mjs +0 -45
  454. package/esm2022/lib/api/services/base.api.service.mjs +0 -74
  455. package/esm2022/lib/api/services/breadcrumbs.service.mjs +0 -64
  456. package/esm2022/lib/api/services/chat.service.mjs +0 -37
  457. package/esm2022/lib/api/services/component.service.mjs +0 -37
  458. package/esm2022/lib/api/services/docs.service.mjs +0 -129
  459. package/esm2022/lib/api/services/form.service.mjs +0 -95
  460. package/esm2022/lib/api/services/image.cutter.service.mjs +0 -193
  461. package/esm2022/lib/api/services/imagens.service.mjs +0 -28
  462. package/esm2022/lib/api/services/notification.service.mjs +0 -69
  463. package/esm2022/lib/api/services/object.service.mjs +0 -39
  464. package/esm2022/lib/api/services/orgchart.service.mjs +0 -64
  465. package/esm2022/lib/api/services/pdf.service.mjs +0 -48
  466. package/esm2022/lib/api/types/breadcrumb.model.mjs +0 -2
  467. package/esm2022/lib/api/types/severity.mjs +0 -2
  468. package/esm2022/lib/components/keevo-components.module.mjs +0 -239
  469. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +0 -142
  470. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +0 -55
  471. package/esm2022/lib/components/kv-button/kv-button.component.mjs +0 -54
  472. package/esm2022/lib/components/kv-button/kv-button.module.mjs +0 -28
  473. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +0 -25
  474. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +0 -39
  475. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +0 -17
  476. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +0 -17
  477. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +0 -39
  478. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +0 -60
  479. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +0 -31
  480. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +0 -34
  481. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +0 -28
  482. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +0 -166
  483. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +0 -32
  484. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.mjs +0 -32
  485. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.mjs +0 -22
  486. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +0 -186
  487. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +0 -44
  488. package/esm2022/lib/components/kv-detailed-list/kv-detailed-list.component.mjs +0 -167
  489. package/esm2022/lib/components/kv-error/kv-error.component.mjs +0 -26
  490. package/esm2022/lib/components/kv-error/kv-error.module.mjs +0 -35
  491. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +0 -191
  492. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +0 -23
  493. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +0 -46
  494. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +0 -20
  495. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +0 -68
  496. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +0 -24
  497. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +0 -29
  498. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +0 -34
  499. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.component.mjs +0 -92
  500. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.module.mjs +0 -31
  501. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.pipe.mjs +0 -30
  502. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +0 -29
  503. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +0 -28
  504. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +0 -11
  505. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +0 -19
  506. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +0 -27
  507. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +0 -32
  508. package/esm2022/lib/components/kv-icon/kv-icon.component.mjs +0 -31
  509. package/esm2022/lib/components/kv-icon/kv-icon.model.mjs +0 -2
  510. package/esm2022/lib/components/kv-icon/kv-icon.module.mjs +0 -24
  511. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +0 -136
  512. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +0 -18
  513. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +0 -29
  514. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +0 -105
  515. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.mjs +0 -18
  516. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.mjs +0 -40
  517. package/esm2022/lib/components/kv-inputs/kv-editor/config/kv-editor.config.mjs +0 -110
  518. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +0 -271
  519. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.mjs +0 -7
  520. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.mjs +0 -135
  521. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.mjs +0 -168
  522. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.mjs +0 -78
  523. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.mjs +0 -95
  524. package/esm2022/lib/components/kv-inputs/kv-editor/types/kv-editor.types.mjs +0 -2
  525. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +0 -163
  526. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +0 -30
  527. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +0 -59
  528. package/esm2022/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.mjs +0 -66
  529. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +0 -33
  530. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +0 -38
  531. package/esm2022/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.mjs +0 -42
  532. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +0 -50
  533. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +0 -43
  534. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +0 -24
  535. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +0 -165
  536. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +0 -60
  537. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +0 -60
  538. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +0 -46
  539. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +0 -37
  540. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +0 -42
  541. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +0 -58
  542. package/esm2022/lib/components/kv-label/kv-label.component.mjs +0 -15
  543. package/esm2022/lib/components/kv-label/kv-label.module.mjs +0 -24
  544. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +0 -28
  545. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +0 -72
  546. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +0 -454
  547. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +0 -15
  548. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +0 -16
  549. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +0 -28
  550. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +0 -29
  551. package/esm2022/lib/components/kv-login/kv-login.component.mjs +0 -62
  552. package/esm2022/lib/components/kv-login/kv-login.module.mjs +0 -47
  553. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +0 -98
  554. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +0 -20
  555. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +0 -225
  556. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +0 -59
  557. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +0 -190
  558. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +0 -41
  559. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +0 -205
  560. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +0 -51
  561. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +0 -386
  562. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +0 -39
  563. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +0 -58
  564. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +0 -28
  565. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.mjs +0 -62
  566. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.mjs +0 -28
  567. package/esm2022/lib/components/kv-report/kv-report.component.mjs +0 -44
  568. package/esm2022/lib/components/kv-report/kv-report.module.mjs +0 -24
  569. package/esm2022/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.mjs +0 -57
  570. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +0 -74
  571. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +0 -47
  572. package/esm2022/lib/components/kv-steps/kv-steps.component.mjs +0 -105
  573. package/esm2022/lib/components/kv-table/kv-table.component.mjs +0 -680
  574. package/esm2022/lib/components/kv-table/kv-table.module.mjs +0 -40
  575. package/esm2022/lib/components/kv-table-draggable/kv-table-draggable.component.mjs +0 -852
  576. package/esm2022/lib/components/kv-table-draggable/kv-table-draggable.module.mjs +0 -44
  577. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +0 -341
  578. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +0 -45
  579. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +0 -516
  580. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +0 -40
  581. package/esm2022/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.mjs +0 -17
  582. package/esm2022/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.mjs +0 -18
  583. package/esm2022/lib/components/kv-table-viewer/kv-table-viewer.component.mjs +0 -241
  584. package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +0 -19
  585. package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +0 -24
  586. package/esm2022/lib/components/kv-tags/kv-tags.component.mjs +0 -36
  587. package/esm2022/lib/components/kv-tags/kv-tags.module.mjs +0 -27
  588. package/esm2022/lib/components/kv-timeline/kv-timeline.component.mjs +0 -77
  589. package/esm2022/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.mjs +0 -326
  590. package/esm2022/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.mjs +0 -100
  591. package/esm2022/lib/components/kv-tree-environment/models/no-arvore.model.mjs +0 -2
  592. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +0 -334
  593. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +0 -39
  594. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +0 -70
  595. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +0 -28
  596. package/esm2022/lib/components/kv-widget-card/kv-widget-card.component.mjs +0 -102
  597. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +0 -40
  598. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +0 -68
  599. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +0 -22
  600. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +0 -78
  601. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +0 -87
  602. package/esm2022/public-api.mjs +0 -322
  603. package/fesm2022/keevo-components.mjs +0 -13705
  604. package/fesm2022/keevo-components.mjs.map +0 -1
  605. package/index.d.ts +0 -5
  606. package/lib/api/base-components/base-component-button.d.ts +0 -15
  607. package/lib/api/base-components/base-component-chart.d.ts +0 -40
  608. package/lib/api/base-components/base-component-crud-form.d.ts +0 -149
  609. package/lib/api/base-components/base-component-crud-list.d.ts +0 -70
  610. package/lib/api/base-components/base-component-crud.d.ts +0 -36
  611. package/lib/api/base-components/base-component-dropdown-external.d.ts +0 -15
  612. package/lib/api/base-components/base-component-dropdown.d.ts +0 -60
  613. package/lib/api/base-components/base-component-input.d.ts +0 -33
  614. package/lib/api/base-components/base-component-multi-select.d.ts +0 -40
  615. package/lib/api/base-components/base-component-table.d.ts +0 -88
  616. package/lib/api/base-components/base-component.d.ts +0 -22
  617. package/lib/api/components/chart/chart.config.d.ts +0 -14
  618. package/lib/api/components/chart/chart.model.d.ts +0 -12
  619. package/lib/api/components/chart/orchart.config.d.ts +0 -41
  620. package/lib/api/components/chart/orchartnode.d.ts +0 -34
  621. package/lib/api/components/dropdown/filtro.combo.d.ts +0 -4
  622. package/lib/api/components/stepper/kv-stepperpanel.d.ts +0 -9
  623. package/lib/api/components/table/action-item.d.ts +0 -13
  624. package/lib/api/components/table/kv-menuitem.d.ts +0 -152
  625. package/lib/api/components/table/table-dropdown-control.d.ts +0 -6
  626. package/lib/api/components/table/table.config.column.d.ts +0 -38
  627. package/lib/api/components/table/table.config.d.ts +0 -36
  628. package/lib/api/components/table/table.paginate.d.ts +0 -10
  629. package/lib/api/components/table/tableedit.config.column.d.ts +0 -11
  630. package/lib/api/components/tree-table/tree-table-keys.d.ts +0 -12
  631. package/lib/api/components/tree-table/tree-table.config.d.ts +0 -31
  632. package/lib/api/directives/directives.module.d.ts +0 -9
  633. package/lib/api/directives/drag/drag.directive.d.ts +0 -11
  634. package/lib/api/directives/stepper/dynamicinput.directive.d.ts +0 -15
  635. package/lib/api/directives/template/template.directive.d.ts +0 -11
  636. package/lib/api/helpers/component-providers.d.ts +0 -2
  637. package/lib/api/helpers/keevo-validators.d.ts +0 -18
  638. package/lib/api/helpers/severity-color.d.ts +0 -5
  639. package/lib/api/helpers/translate-primeng.d.ts +0 -4
  640. package/lib/api/modules/primeng.module.d.ts +0 -70
  641. package/lib/api/pipes/capitalize.pipe.d.ts +0 -10
  642. package/lib/api/pipes/cpfcnpj.pipe.d.ts +0 -7
  643. package/lib/api/pipes/mask.pipe.d.ts +0 -7
  644. package/lib/api/pipes/pipes.module.d.ts +0 -11
  645. package/lib/api/pipes/telefone.pipe.d.ts +0 -7
  646. package/lib/api/services/base.api.service.d.ts +0 -25
  647. package/lib/api/services/breadcrumbs.service.d.ts +0 -16
  648. package/lib/api/services/chat.service.d.ts +0 -17
  649. package/lib/api/services/component.service.d.ts +0 -11
  650. package/lib/api/services/docs.service.d.ts +0 -12
  651. package/lib/api/services/form.service.d.ts +0 -31
  652. package/lib/api/services/image.cutter.service.d.ts +0 -16
  653. package/lib/api/services/imagens.service.d.ts +0 -10
  654. package/lib/api/services/notification.service.d.ts +0 -26
  655. package/lib/api/services/object.service.d.ts +0 -9
  656. package/lib/api/services/orgchart.service.d.ts +0 -20
  657. package/lib/api/services/pdf.service.d.ts +0 -7
  658. package/lib/api/types/breadcrumb.model.d.ts +0 -6
  659. package/lib/components/keevo-components.module.d.ts +0 -39
  660. package/lib/components/kv-avatar/kv-avatar.component.d.ts +0 -36
  661. package/lib/components/kv-avatar/kv-avatar.module.d.ts +0 -15
  662. package/lib/components/kv-button/kv-button.component.d.ts +0 -25
  663. package/lib/components/kv-button/kv-button.module.d.ts +0 -9
  664. package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +0 -11
  665. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +0 -19
  666. package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +0 -7
  667. package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +0 -7
  668. package/lib/components/kv-buttons/kv-button.module.d.ts +0 -11
  669. package/lib/components/kv-card-selection/kv-card-selection.component.d.ts +0 -25
  670. package/lib/components/kv-card-selection/kv-card-selection.module.d.ts +0 -10
  671. package/lib/components/kv-carousel/kv-carousel.component.d.ts +0 -17
  672. package/lib/components/kv-carousel/kv-carousel.module.d.ts +0 -9
  673. package/lib/components/kv-chart/kv-chart.component.d.ts +0 -57
  674. package/lib/components/kv-chart/kv-chart.module.d.ts +0 -10
  675. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.d.ts +0 -12
  676. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.d.ts +0 -10
  677. package/lib/components/kv-content-viewer/kv-content-viewer.component.d.ts +0 -57
  678. package/lib/components/kv-content-viewer/kv-content-viewer.module.d.ts +0 -14
  679. package/lib/components/kv-detailed-list/kv-detailed-list.component.d.ts +0 -58
  680. package/lib/components/kv-error/kv-error.component.d.ts +0 -12
  681. package/lib/components/kv-error/kv-error.module.d.ts +0 -10
  682. package/lib/components/kv-file-upload/kv-file-upload.component.d.ts +0 -35
  683. package/lib/components/kv-file-upload/kv-file-upload.module.d.ts +0 -10
  684. package/lib/components/kv-file-viewer/kv-file-viewer.component.d.ts +0 -21
  685. package/lib/components/kv-file-viewer/kv-file-viewer.module.d.ts +0 -8
  686. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.d.ts +0 -24
  687. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.d.ts +0 -9
  688. package/lib/components/kv-filter-card/kv-filter-card.component.d.ts +0 -13
  689. package/lib/components/kv-filter-card/kv-filter-card.module.d.ts +0 -10
  690. package/lib/components/kv-filter-cards/kv-filter-cards.component.d.ts +0 -31
  691. package/lib/components/kv-filter-cards/kv-filter-cards.module.d.ts +0 -9
  692. package/lib/components/kv-filter-cards/kv-filter-cards.pipe.d.ts +0 -7
  693. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.d.ts +0 -11
  694. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.d.ts +0 -9
  695. package/lib/components/kv-g-icon/kv-g-icon.component.d.ts +0 -5
  696. package/lib/components/kv-g-icon/kv-g-icon.module.d.ts +0 -9
  697. package/lib/components/kv-home-card/kv-home-card.component.d.ts +0 -24
  698. package/lib/components/kv-home-card/kv-home-card.module.d.ts +0 -11
  699. package/lib/components/kv-icon/kv-icon.component.d.ts +0 -23
  700. package/lib/components/kv-icon/kv-icon.module.d.ts +0 -8
  701. package/lib/components/kv-image-upload/kv-image-upload.component.d.ts +0 -34
  702. package/lib/components/kv-image-upload/kv-image-upload.module.d.ts +0 -8
  703. package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +0 -12
  704. package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +0 -34
  705. package/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.d.ts +0 -8
  706. package/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.d.ts +0 -14
  707. package/lib/components/kv-inputs/kv-editor/config/kv-editor.config.d.ts +0 -55
  708. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +0 -70
  709. package/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.d.ts +0 -41
  710. package/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.d.ts +0 -41
  711. package/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.d.ts +0 -28
  712. package/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.d.ts +0 -45
  713. package/lib/components/kv-inputs/kv-editor/types/kv-editor.types.d.ts +0 -32
  714. package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +0 -34
  715. package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +0 -12
  716. package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +0 -19
  717. package/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.d.ts +0 -21
  718. package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +0 -13
  719. package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +0 -11
  720. package/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.d.ts +0 -13
  721. package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +0 -18
  722. package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +0 -16
  723. package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +0 -10
  724. package/lib/components/kv-inputs/kv-inputs.module.d.ts +0 -38
  725. package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +0 -20
  726. package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +0 -20
  727. package/lib/components/kv-inputs/kv-select-button/kv-select-button.component.d.ts +0 -19
  728. package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +0 -26
  729. package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +0 -16
  730. package/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.d.ts +0 -25
  731. package/lib/components/kv-label/kv-label.component.d.ts +0 -7
  732. package/lib/components/kv-label/kv-label.module.d.ts +0 -8
  733. package/lib/components/kv-layout/dropdown-master/dropdown-master.component.d.ts +0 -12
  734. package/lib/components/kv-layout/kv-layout.module.d.ts +0 -18
  735. package/lib/components/kv-layout/layout/kv-layout.component.d.ts +0 -159
  736. package/lib/components/kv-layout/top-icons/top-icons.component.d.ts +0 -16
  737. package/lib/components/kv-loader/kv-loader.component.d.ts +0 -7
  738. package/lib/components/kv-loader/kv-loader.module.d.ts +0 -9
  739. package/lib/components/kv-loader/kv-loader.service.d.ts +0 -10
  740. package/lib/components/kv-login/kv-login.component.d.ts +0 -32
  741. package/lib/components/kv-login/kv-login.module.d.ts +0 -13
  742. package/lib/components/kv-modal/kv-modal.component.d.ts +0 -27
  743. package/lib/components/kv-modal/kv-modal.module.d.ts +0 -10
  744. package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +0 -45
  745. package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +0 -17
  746. package/lib/components/kv-page-form/kv-page-form.component.d.ts +0 -98
  747. package/lib/components/kv-page-form/kv-page-form.module.d.ts +0 -12
  748. package/lib/components/kv-page-stepper/kv-page-stepper.component.d.ts +0 -84
  749. package/lib/components/kv-page-stepper/kv-page-stepper.module.d.ts +0 -14
  750. package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +0 -70
  751. package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +0 -11
  752. package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +0 -67
  753. package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +0 -9
  754. package/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.d.ts +0 -71
  755. package/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.d.ts +0 -9
  756. package/lib/components/kv-report/kv-report.component.d.ts +0 -18
  757. package/lib/components/kv-report/kv-report.module.d.ts +0 -8
  758. package/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.d.ts +0 -40
  759. package/lib/components/kv-stepper/kv-stepper.component.d.ts +0 -32
  760. package/lib/components/kv-stepper/kv-stepper.module.d.ts +0 -13
  761. package/lib/components/kv-steps/kv-steps.component.d.ts +0 -21
  762. package/lib/components/kv-table/kv-table.component.d.ts +0 -157
  763. package/lib/components/kv-table/kv-table.module.d.ts +0 -12
  764. package/lib/components/kv-table-draggable/kv-table-draggable.component.d.ts +0 -161
  765. package/lib/components/kv-table-draggable/kv-table-draggable.module.d.ts +0 -13
  766. package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +0 -66
  767. package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +0 -15
  768. package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +0 -119
  769. package/lib/components/kv-table-expandable/kv-table-expandable.module.d.ts +0 -13
  770. package/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.d.ts +0 -8
  771. package/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.d.ts +0 -7
  772. package/lib/components/kv-table-viewer/kv-table-viewer.component.d.ts +0 -94
  773. package/lib/components/kv-tag/kv-tag.component.d.ts +0 -8
  774. package/lib/components/kv-tag/kv-tag.module.d.ts +0 -8
  775. package/lib/components/kv-tags/kv-tags.component.d.ts +0 -33
  776. package/lib/components/kv-tags/kv-tags.module.d.ts +0 -8
  777. package/lib/components/kv-timeline/kv-timeline.component.d.ts +0 -20
  778. package/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.d.ts +0 -52
  779. package/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.d.ts +0 -24
  780. package/lib/components/kv-tree-environment/models/no-arvore.model.d.ts +0 -52
  781. package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +0 -87
  782. package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +0 -11
  783. package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +0 -21
  784. package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +0 -9
  785. package/lib/components/kv-widget-card/kv-widget-card.component.d.ts +0 -60
  786. package/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.d.ts +0 -14
  787. package/lib/components/kv-workspace/kv-workspace.module.d.ts +0 -19
  788. package/lib/components/kv-workspace/logo/kv-workspace-logo.component.d.ts +0 -11
  789. package/lib/components/kv-workspace/master/kv-workspace-master.component.d.ts +0 -25
  790. package/lib/components/kv-workspace/workspace/kv-workspace.component.d.ts +0 -37
@@ -1,167 +0,0 @@
1
- import { Component, computed, EventEmitter, input, Input, Output, signal } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { PdfViewerModule } from 'ng2-pdf-viewer';
4
- import { KvFileViewerNovoModule } from '../kv-file-viewer-novo/kv-file-viewer-novo.module';
5
- import { NgxLoadingModule } from 'ngx-loading';
6
- import { PrimeNgModule } from '../../api/modules/primeng.module';
7
- import { KvButtonModule } from '../kv-button/kv-button.module';
8
- import { KvButtonsModule } from '../kv-buttons/kv-button.module';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- import * as i2 from "primeng/autofocus";
12
- import * as i3 from "primeng/inputtext";
13
- import * as i4 from "primeng/skeleton";
14
- import * as i5 from "../kv-file-viewer-novo/kv-file-viewer-novo.component";
15
- import * as i6 from "ngx-loading";
16
- import * as i7 from "../kv-button/kv-button.component";
17
- export class KvDetailedListComponent {
18
- constructor() {
19
- // #region Signals
20
- this.dataSource = input([]);
21
- this.paginaInicial = signal(1);
22
- this.arquivo = input(undefined);
23
- this.arquivoPreview = signal(undefined);
24
- this.nomeArquivo = signal('');
25
- this.type = input(undefined);
26
- this.blob = input('');
27
- this.idarquivo = signal(undefined);
28
- this.ekpContent = input(undefined);
29
- this.totalItensCarregado = computed(() => this.dataSource()?.length || 0);
30
- this.widthPage = signal(0);
31
- this.previewOn = false;
32
- this.selectedItem = {};
33
- this.totalRecords = 0;
34
- this.isLoading = false;
35
- this.displaySidebar = false;
36
- this.isSelected = false;
37
- this.visualizadorDocumentos = false;
38
- this.indvisualizado = false;
39
- this.isLoadingSkeleton = false;
40
- this.borderCardNaoVisualizado = true;
41
- this.contentForm = false;
42
- this.enableSearch = false;
43
- this.searchPlaceholder = 'Pesquisar...';
44
- this.listTitle = '';
45
- this.contentViewer = false;
46
- this.keyVisualizado = 'indvisualizado';
47
- // #endregion
48
- // #region Outputs
49
- this.onScrollHandler = new EventEmitter();
50
- this.onSelectFile = new EventEmitter();
51
- this.onSave = new EventEmitter();
52
- this.onCancel = new EventEmitter();
53
- this.onSearch = new EventEmitter();
54
- }
55
- todayDate() {
56
- const today = new Date();
57
- return today.toLocaleDateString('pt-BR', { day: '2-digit', month: '2-digit', year: 'numeric' });
58
- }
59
- // #endregion
60
- trackByFn(index, item) {
61
- return item.idarquivo;
62
- }
63
- isVisualizado(option) {
64
- return option[this.keyVisualizado] || false;
65
- }
66
- visualizarPreview(arquivo, buttonTemplate) {
67
- if (buttonTemplate) {
68
- this.contentViewer = true;
69
- }
70
- else {
71
- arquivo[this.keyVisualizado] = true;
72
- this.contentViewer = true;
73
- this.arquivoPreview.set(arquivo);
74
- }
75
- this.onSelectFile.emit(arquivo);
76
- }
77
- OnSave() {
78
- this.onSave.emit();
79
- this.contentViewer = false;
80
- this.arquivoPreview.set(undefined);
81
- }
82
- OnCancel() {
83
- this.onCancel.emit();
84
- }
85
- onGlobalFilter(event) {
86
- this.onSearch.emit(event.target.value);
87
- }
88
- ngOnInit() {
89
- this.widthPage.set(window.innerWidth);
90
- document.addEventListener('fullscreenchange', () => {
91
- const button = document.getElementById('fullscreenBtn');
92
- if (button) {
93
- if (!document.fullscreenElement) {
94
- button.textContent = 'open_in_full';
95
- }
96
- else {
97
- button.textContent = 'close_fullscreen';
98
- }
99
- }
100
- });
101
- }
102
- scrollHandler($event) {
103
- const element = $event.target;
104
- //se o escroll chegar até o final
105
- if (element.scrollHeight - element.scrollTop === element.clientHeight) {
106
- // this.buscarProximosDocumentos();
107
- this.onScrollHandler.emit($event);
108
- }
109
- }
110
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvDetailedListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvDetailedListComponent, isStandalone: true, selector: "kv-detailed-list", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: false, transformFunction: null }, arquivo: { classPropertyName: "arquivo", publicName: "arquivo", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, blob: { classPropertyName: "blob", publicName: "blob", isSignal: true, isRequired: false, transformFunction: null }, ekpContent: { classPropertyName: "ekpContent", publicName: "ekpContent", isSignal: true, isRequired: false, transformFunction: null }, extencaoDocumento: { classPropertyName: "extencaoDocumento", publicName: "extencaoDocumento", isSignal: false, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: false, isRequired: false, transformFunction: null }, visualizadorDocumentos: { classPropertyName: "visualizadorDocumentos", publicName: "visualizadorDocumentos", isSignal: false, isRequired: false, transformFunction: null }, cardTemplate: { classPropertyName: "cardTemplate", publicName: "cardTemplate", isSignal: false, isRequired: false, transformFunction: null }, contentTemplate: { classPropertyName: "contentTemplate", publicName: "contentTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentSelectedTemplate: { classPropertyName: "noDocumentSelectedTemplate", publicName: "noDocumentSelectedTemplate", isSignal: false, isRequired: false, transformFunction: null }, noDocumentListTemplate: { classPropertyName: "noDocumentListTemplate", publicName: "noDocumentListTemplate", isSignal: false, isRequired: false, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: false, isRequired: false, transformFunction: null }, listBottomTemplate: { classPropertyName: "listBottomTemplate", publicName: "listBottomTemplate", isSignal: false, isRequired: false, transformFunction: null }, listTopTemplate: { classPropertyName: "listTopTemplate", publicName: "listTopTemplate", isSignal: false, isRequired: false, transformFunction: null }, indvisualizado: { classPropertyName: "indvisualizado", publicName: "indvisualizado", isSignal: false, isRequired: false, transformFunction: null }, isLoadingSkeleton: { classPropertyName: "isLoadingSkeleton", publicName: "isLoadingSkeleton", isSignal: false, isRequired: false, transformFunction: null }, borderCardNaoVisualizado: { classPropertyName: "borderCardNaoVisualizado", publicName: "borderCardNaoVisualizado", isSignal: false, isRequired: false, transformFunction: null }, contentForm: { classPropertyName: "contentForm", publicName: "contentForm", isSignal: false, isRequired: false, transformFunction: null }, enableSearch: { classPropertyName: "enableSearch", publicName: "enableSearch", isSignal: false, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, listTitle: { classPropertyName: "listTitle", publicName: "listTitle", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onScrollHandler: "onScrollHandler", onSelectFile: "onSelectFile", onSave: "onSave", onCancel: "onCancel", onSearch: "onSearch" }, ngImport: i0, template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 custom-max-height \"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\r\n >\r\n \r\n <div>\r\n @if(listTopTemplate) {\r\n <div #topListTemplate>\r\n <ng-container *ngTemplateOutlet=\"listTopTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n <div class=\"col-12\">\r\n <div class=\"flex align-items-center\">\r\n @if(listTitle) {\r\n <p class=\"w-full flex align-items-start font-semibold text-md\">{{listTitle}}</p>\r\n }\r\n @if(enableSearch) {\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"widthPage() > 800\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter($event)\"\r\n [placeholder]=\"searchPlaceholder\"\r\n autocomplete=\"off\"\r\n #inputField\r\n class=\"text-sm col-6\"\r\n style=\"height: 2rem;\"/>\r\n }\r\n </div>\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"mt-2\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-detailed-list aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(isLoadingSkeleton){\r\n <p-skeleton \r\n *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\" \r\n height=\"5rem\" \r\n [style]=\"{ 'margin-bottom': '0.25rem', 'borderRadius': '0.75rem' }\"\r\n ></p-skeleton>\r\n } @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\"flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-visualizador flex-1\"\r\n style=\"position: relative;\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\"\r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n style=\"max-height: 100%\"\r\n >\r\n </kv-file-viewer-novo>\r\n\r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 100%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%; overflow-y: auto\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Sem_Dados.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil,.card-visualizador{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}@media (max-width: 768px){.card-perfil{max-height:20rem;overflow-y:auto}}@media (max-width: 768px){.card-visualizador{max-height:100%;overflow-y:auto}}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{height:100%}@media (max-height: 768px){.custom-max-height{height:auto;min-height:100vh}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "ngmodule", type: PrimeNgModule }, { kind: "directive", type: i2.AutoFocus, selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "directive", type: i3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "component", type: i4.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "ngmodule", type: KvFileViewerNovoModule }, { kind: "component", type: i5.KvFileViewerNovoComponent, selector: "kv-file-viewer-novo", inputs: ["arquivo", "type", "blob", "width", "height"] }, { kind: "ngmodule", type: NgxLoadingModule }, { kind: "component", type: i6.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }, { kind: "ngmodule", type: KvButtonModule }, { kind: "component", type: i7.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup", "popupIcon"], outputs: ["iconChange", "onClick"] }, { kind: "ngmodule", type: KvButtonsModule }] }); }
112
- }
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvDetailedListComponent, decorators: [{
114
- type: Component,
115
- args: [{ selector: 'kv-detailed-list', standalone: true, imports: [CommonModule,
116
- PdfViewerModule,
117
- PrimeNgModule,
118
- KvFileViewerNovoModule,
119
- NgxLoadingModule,
120
- KvButtonModule,
121
- KvButtonsModule], template: "<div\r\n class=\"flex flex-column md:flex-row gap-2 custom-max-height \"\r\n style=\"height: 100%\"\r\n>\r\n <!-- Lista -->\r\n <div\r\n class=\"card-perfil col-12 md:col-4 lg:col-3 flex flex-column justify-content-between\"\r\n (scroll)=\"scrollHandler($event)\"\r\n [ngClass]=\"{\r\n 'overflow-y-auto': dataSource().length > 0,\r\n 'overflow-y-hidden': dataSource().length === 0\r\n }\"\r\n style=\"position: relative; height: 100%; min-height: 15rem\"\r\n >\r\n \r\n <div>\r\n @if(listTopTemplate) {\r\n <div #topListTemplate>\r\n <ng-container *ngTemplateOutlet=\"listTopTemplate\"></ng-container>\r\n </div>\r\n }\r\n\r\n <div class=\"col-12\">\r\n <div class=\"flex align-items-center\">\r\n @if(listTitle) {\r\n <p class=\"w-full flex align-items-start font-semibold text-md\">{{listTitle}}</p>\r\n }\r\n @if(enableSearch) {\r\n <input\r\n pInputText\r\n pAutoFocus\r\n [autofocus]=\"widthPage() > 800\"\r\n type=\"text\"\r\n (input)=\"onGlobalFilter($event)\"\r\n [placeholder]=\"searchPlaceholder\"\r\n autocomplete=\"off\"\r\n #inputField\r\n class=\"text-sm col-6\"\r\n style=\"height: 2rem;\"/>\r\n }\r\n </div>\r\n <div *ngIf=\"dataSource().length > 0; else emptyDocumentList\" class=\"mt-2\">\r\n <!-- Lista de cards -->\r\n <div\r\n *ngFor=\"let option of dataSource(); trackBy: trackByFn\"\r\n class=\"card-normal outline-none border-round-xl w-full p-2 m-1 grid p-fluid flex flex-row flex-nowrap align-items-center justify-content-center cursor-pointer\"\r\n (click)=\"visualizarPreview(option)\"\r\n [ngClass]=\"{\r\n 'card-selected': option === arquivoPreview(),\r\n 'card-normal': option !== arquivoPreview(),\r\n }\"\r\n >\r\n <div\r\n class=\"flex flex-grow-1 ml-2 flex-column gap-1 m-0 p-0 overflow-hidden text-overflow-ellipsis\"\r\n style=\"max-width: 100%\"\r\n >\r\n <ng-container *ngIf=\"cardTemplate; else defaultTemplate\">\r\n <ng-container\r\n *ngTemplateOutlet=\"cardTemplate; context: { $implicit: option }\"\r\n ></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #defaultTemplate>\r\n <div class=\"card-common-style default-card\">\r\n <h1 class=\"font-bold text-base p-0 m-0\">Bem-vindo!</h1>\r\n <p class=\"text-sm mt-2\">\r\n Kv-detailed-list aguardando um template...\r\n </p>\r\n <p class=\"font-bold text-sm p-0 m-0\">Data: {{ todayDate() }}</p>\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n <ng-template #emptyDocumentList>\r\n @if(isLoadingSkeleton){\r\n <p-skeleton \r\n *ngFor=\"let i of [1, 2, 3, 4, 5, 6, 7, 8, 9]\" \r\n height=\"5rem\" \r\n [style]=\"{ 'margin-bottom': '0.25rem', 'borderRadius': '0.75rem' }\"\r\n ></p-skeleton>\r\n } @if(!noDocumentListTemplate) {\r\n <div class=\"text-center text-gray-600 mt-4 m-3\" style=\"height: 100%\">\r\n <div class=\"flex align-items-center gap-1\">\r\n <span class=\"material-symbols-outlined\"> inbox </span>\r\n <p>Nenhum documento dispon\u00EDvel.</p>\r\n </div>\r\n </div>\r\n } @else {\r\n <div class=\"text-center mt-4 m-3\" style=\"height: 100%\">\r\n <ng-container *ngTemplateOutlet=\"noDocumentListTemplate\"></ng-container>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <!-- Contador de documentos - Fixo na parte inferior -->\r\n <div\r\n class=\"sticky-counter flex flex-column\r\n justify-content-center text-center px-2 p-2\"\r\n style=\"position: sticky; bottom: -10px; background-color: white; \"\r\n >\r\n <span>{{ totalItensCarregado() }} de {{ totalRecords }}</span>\r\n @if(listBottomTemplate) {\r\n <ng-container *ngTemplateOutlet=\"listBottomTemplate\"></ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- Visualizador -->\r\n <div\r\n id=\"fullscreenDiv\"\r\n class=\"card-visualizador flex-1\"\r\n style=\"position: relative;\"\r\n [ngStyle]=\"{\r\n 'overflow-y': arquivoPreview() ? 'auto' : 'hidden'\r\n }\"\r\n >\r\n @if(buttonTemplate && !contentViewer) {\r\n <div class=\"grid\">\r\n <div class=\"col\"></div>\r\n <span class=\"p-3\">\r\n <span (click)=\"visualizarPreview(null, true)\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n } @if(visualizadorDocumentos) {\r\n <ng-container *ngIf=\"arquivo(); else noDocumentSelected\">\r\n @if(isLoading) {\r\n <ngx-loading\r\n [show]=\"isLoading\"\r\n [config]=\"{ backdropBorderRadius: '3px', fullScreenBackdrop: false }\"\r\n ></ngx-loading>\r\n }\r\n <kv-file-viewer-novo\r\n *ngIf=\"extencaoDocumento !== 'ekp'\"\r\n [arquivo]=\"arquivo()!\"\r\n [type]=\"type()!\"\r\n [blob]=\"blob()!\"\r\n [width]=\"'100%'\"\r\n [height]=\"'100%'\"\r\n class=\"file-viewer\"\r\n style=\"max-height: 100%\"\r\n >\r\n </kv-file-viewer-novo>\r\n\r\n <div\r\n id=\"html-content\"\r\n [innerHTML]=\"ekpContent()\"\r\n *ngIf=\"extencaoDocumento === 'ekp'\"\r\n class=\"ekp-content\"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"flex flex-column\" style=\"height: 100%;\" >\r\n <ng-container\r\n *ngIf=\"arquivoPreview() || contentViewer; else noDocumentSelected\"\r\n >\r\n <div style=\"flex: 1;\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n contentTemplate;\r\n context: { $implicit: arquivoPreview() }\r\n \"\r\n style=\"overflow-y: auto; max-height: 100%\"\r\n ></ng-container>\r\n </div>\r\n @if(contentForm) {\r\n <div class=\"grid\" style=\"position: sticky; bottom: 0; background-color: white; z-index: 10; padding: 1rem 1rem 0 1rem;\">\r\n <div class=\"col-8\">\r\n <span class=\"text-sm\">\r\n <span class=\"font-bold\">*</span> Campos obrigat\u00F3rios\r\n </span>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Cancelar\"\r\n icon=\"close\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"tertiary\"\r\n (onClick)=\"OnCancel()\"\r\n >\r\n </kv-button>\r\n </div>\r\n <div class=\"col-2\">\r\n <kv-button\r\n label=\"Salvar\"\r\n icon=\"save\"\r\n class=\"w-full md:w-auto\"\r\n severity=\"primary\"\r\n (onClick)=\"OnSave()\"\r\n >\r\n </kv-button>\r\n </div>\r\n </div>\r\n }\r\n </ng-container>\r\n </div> \r\n }\r\n <ng-template #noDocumentSelected>\r\n @if(!noDocumentSelectedTemplate) {\r\n <div\r\n class=\"no-document-message flex flex-column align-items-center justify-content-center\"\r\n style=\"height: 100%; overflow-y: auto\"\r\n >\r\n <p class=\"text-center text-gray-500\">\r\n Selecione um arquivo para visualiza\u00E7\u00E3o\r\n </p>\r\n <img\r\n [src]=\"\r\n 'https://work-assets.keevo.com.br/img/Sem_Dados.png'\r\n \"\r\n style=\"max-height: 50%; margin-top: 2rem\"\r\n alt=\"\"\r\n />\r\n </div>\r\n } @else {\r\n <ng-container\r\n *ngTemplateOutlet=\"noDocumentSelectedTemplate\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.farol-statuspublicacao{margin-right:.5rem;width:.35rem;border-radius:1rem;-webkit-border-radius:1rem;-moz-border-radius:1rem;-ms-border-radius:1rem;-o-border-radius:1rem}:host ::ng-deep .p-sidebar{border-radius:5px;position:absolute;height:var(--sidebar-height)}:host ::ng-deep .p-sidebar .p-sidebar-content{overflow:auto;border:1px solid #e5e7eb;border-radius:5px;margin-top:1rem}.card-perfil,.card-visualizador{border:1.5px solid #CBD5E1;background:#fff;border-radius:6px;max-height:100%}@media (max-width: 768px){.card-perfil{max-height:20rem;overflow-y:auto}}@media (max-width: 768px){.card-visualizador{max-height:100%;overflow-y:auto}}:host ::ng-deep .p-fieldset .p-fieldset-content{padding-bottom:0}:host ::ng-deep .p-sidebar .p-sidebar-close{display:none}.card-normal{border:1.5px solid #CBD5E1}.card-naoVisualizado{border-left:4px solid #e6671f}.parent-container{height:100%;display:flex;flex-direction:column}.file-viewer{margin:auto}.ekp-content{min-height:20rem;padding:1rem;overflow-y:auto;border-radius:5px}ngx-loading{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000}.card{transition:all .3s ease;border:1px solid transparent}.card-normal:hover{border:1px solid #a9a9a9;box-shadow:0 4px 8px #0000001a}.card-selected{background-color:#f0f0f0;border:1px solid #c0c0c0;box-shadow:0 6px 12px #00000026;transform:scale(1.02)}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.5rem;color:#666}#html-content{width:100%;height:100%;overflow-y:auto}:host ::ng-deep .list-card-button .kv-button{width:22px;height:22px}:host ::ng-deep .list-card-button .kv-button .material-symbols-outlined.only-icon.icon-normal[_ngcontent-ng-c4083184952]{font-size:1rem}.custom-max-height{height:100%}@media (max-height: 768px){.custom-max-height{height:auto;min-height:100vh}}.download-icon{font-size:20px;cursor:pointer;transition:transform .3s ease,color .3s ease}.download-icon:hover{color:#0f6cbd;transform:scale(1.2)}\n"] }]
122
- }], propDecorators: { extencaoDocumento: [{
123
- type: Input
124
- }], totalRecords: [{
125
- type: Input
126
- }], visualizadorDocumentos: [{
127
- type: Input
128
- }], cardTemplate: [{
129
- type: Input
130
- }], contentTemplate: [{
131
- type: Input
132
- }], noDocumentSelectedTemplate: [{
133
- type: Input
134
- }], noDocumentListTemplate: [{
135
- type: Input
136
- }], buttonTemplate: [{
137
- type: Input
138
- }], listBottomTemplate: [{
139
- type: Input
140
- }], listTopTemplate: [{
141
- type: Input
142
- }], indvisualizado: [{
143
- type: Input
144
- }], isLoadingSkeleton: [{
145
- type: Input
146
- }], borderCardNaoVisualizado: [{
147
- type: Input
148
- }], contentForm: [{
149
- type: Input
150
- }], enableSearch: [{
151
- type: Input
152
- }], searchPlaceholder: [{
153
- type: Input
154
- }], listTitle: [{
155
- type: Input
156
- }], onScrollHandler: [{
157
- type: Output
158
- }], onSelectFile: [{
159
- type: Output
160
- }], onSave: [{
161
- type: Output
162
- }], onCancel: [{
163
- type: Output
164
- }], onSearch: [{
165
- type: Output
166
- }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZGV0YWlsZWQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi1kZXRhaWxlZC1saXN0L2t2LWRldGFpbGVkLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZGV0YWlsZWQtbGlzdC9rdi1kZXRhaWxlZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFlLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFFMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7OztBQWVqRSxNQUFNLE9BQU8sdUJBQXVCO0lBYnBDO1FBaUJJLGtCQUFrQjtRQUNuQixlQUFVLEdBQXVCLEtBQUssQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUNsRCxrQkFBYSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNsQyxZQUFPLEdBQUcsS0FBSyxDQUFxQixTQUFTLENB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QXNPQSxzZ0VEeE5ZLFlBQVkseWxCQUNwQixlQUFlLDhCQUNmLGFBQWEsd1hBQ2Isc0JBQXNCLGtMQUN0QixnQkFBZ0Isb0pBQ2hCLGNBQWMsc1JBQ2QsZUFBZTs7MkZBSU4sdUJBQXVCO2tCQWJuQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZO3dCQUNwQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2Isc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsZUFBZSxDQUFDOzhCQTJCVCxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQVdJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbnB1dCwgSW5wdXQsIElucHV0U2lnbmFsLCBPdXRwdXQsIHNpZ25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGRmVmlld2VyTW9kdWxlIH0gZnJvbSAnbmcyLXBkZi12aWV3ZXInO1xyXG5pbXBvcnQgeyBLdkZpbGVWaWV3ZXJOb3ZvTW9kdWxlIH0gZnJvbSAnLi4va3YtZmlsZS12aWV3ZXItbm92by9rdi1maWxlLXZpZXdlci1ub3ZvLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5neExvYWRpbmdNb2R1bGUgfSBmcm9tICduZ3gtbG9hZGluZyc7XHJcbmltcG9ydCB7IFByaW1lTmdNb2R1bGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4va3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBLdkJ1dHRvbnNNb2R1bGUgfSBmcm9tICcuLi9rdi1idXR0b25zL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1kZXRhaWxlZC1saXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsXHJcbiAgICBQZGZWaWV3ZXJNb2R1bGUsXHJcbiAgICBQcmltZU5nTW9kdWxlLFxyXG4gICAgS3ZGaWxlVmlld2VyTm92b01vZHVsZSxcclxuICAgIE5neExvYWRpbmdNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbk1vZHVsZSxcclxuICAgIEt2QnV0dG9uc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWRldGFpbGVkLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi1kZXRhaWxlZC1saXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZEZXRhaWxlZExpc3RDb21wb25lbnQge1xyXG5cclxuICBcclxuICBcclxuICAgIC8vICNyZWdpb24gU2lnbmFsc1xyXG4gICBkYXRhU291cmNlOiBJbnB1dFNpZ25hbDxhbnlbXT4gPSBpbnB1dDxhbnlbXT4oW10pO1xyXG4gICBwYWdpbmFJbmljaWFsID0gc2lnbmFsPG51bWJlcj4oMSk7XHJcbiAgIGFycXVpdm8gPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgIGFycXVpdm9QcmV2aWV3ID0gc2lnbmFsPGFueT4odW5kZWZpbmVkKTtcclxuICAgbm9tZUFycXVpdm8gPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgIHR5cGUgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgIGJsb2IgPSBpbnB1dDxCbG9iPignJyBhcyBhbnkpO1xyXG4gICBpZGFycXVpdm8gPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gICBla3BDb250ZW50ID0gaW5wdXQ8U2FmZUh0bWwgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgIHRvdGFsSXRlbnNDYXJyZWdhZG8gPSBjb21wdXRlZChcclxuICAgICgpID0+IHRoaXMuZGF0YVNvdXJjZSgpPy5sZW5ndGggfHwgMFxyXG4gICk7XHJcbiAgd2lkdGhQYWdlID0gc2lnbmFsPG51bWJlcj4oMCk7XHJcbiAgLy8gI2VuZHJlZ2lvblxyXG4gIFxyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG4gIGVtcHJlc2FTZWxlY2lvbmFkYSE6IGFueTtcclxuICBpZHRpcG9kb2N1bWVudG8hOiBudW1iZXJbXTtcclxuICBASW5wdXQoKSBleHRlbmNhb0RvY3VtZW50byE6IHN0cmluZztcclxuICBwcmV2aWV3T246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEl0ZW06IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5U2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB2aXN1YWxpemFkb3JEb2N1bWVudG9zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY2FyZFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBjb250ZW50VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIG5vRG9jdW1lbnRTZWxlY3RlZFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBub0RvY3VtZW50TGlzdFRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBidXR0b25UZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgbGlzdEJvdHRvbVRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBsaXN0VG9wVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIGluZHZpc3VhbGl6YWRvOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nU2tlbGV0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBib3JkZXJDYXJkTmFvVmlzdWFsaXphZG86IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXI6IHN0cmluZyA9ICdQZXNxdWlzYXIuLi4nO1xyXG4gIEBJbnB1dCgpIGxpc3RUaXRsZTogc3RyaW5nID0gJyc7XHJcbiAgY29udGVudFZpZXdlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGtleVZpc3VhbGl6YWRvOiBzdHJpbmcgPSAnaW5kdmlzdWFsaXphZG8nOyBcclxuICBcclxuICB0b2RheURhdGUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIHJldHVybiB0b2RheS50b0xvY2FsZURhdGVTdHJpbmcoJ3B0LUJSJywgeyBkYXk6ICcyLWRpZ2l0JywgbW9udGg6ICcyLWRpZ2l0JywgeWVhcjogJ251bWVyaWMnIH0pO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uXHJcbiAgXHJcbiAgLy8gI3JlZ2lvbiBPdXRwdXRzXHJcbiAgQE91dHB1dCgpIG9uU2Nyb2xsSGFuZGxlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2VsZWN0RmlsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uU2F2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8vICNlbmRyZWdpb25cclxuICBcclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcclxuICAgIHJldHVybiBpdGVtLmlkYXJxdWl2bzsgXHJcbiAgfVxyXG4gIFxyXG4gIGlzVmlzdWFsaXphZG8ob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBvcHRpb25bdGhpcy5rZXlWaXN1YWxpemFkb10gfHwgZmFsc2U7XHJcbiAgfVxyXG4gIFxyXG4gIHZpc3VhbGl6YXJQcmV2aWV3KGFycXVpdm86IGFueSwgYnV0dG9uVGVtcGxhdGU/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBcclxuICAgIGlmIChidXR0b25UZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLmNvbnRlbnRWaWV3ZXIgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXJxdWl2b1t0aGlzLmtleVZpc3VhbGl6YWRvXSA9IHRydWU7XHJcbiAgICAgIHRoaXMuY29udGVudFZpZXdlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuYXJxdWl2b1ByZXZpZXcuc2V0KGFycXVpdm8pO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgdGhpcy5vblNlbGVjdEZpbGUuZW1pdChhcnF1aXZvKTtcclxuICAgIFxyXG4gIH1cclxuICBcclxuICAgIE9uU2F2ZSgpIHtcclxuICAgICAgdGhpcy5vblNhdmUuZW1pdCgpO1xyXG4gICAgICB0aGlzLmNvbnRlbnRWaWV3ZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hcnF1aXZvUHJldmlldy5zZXQodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICBcclxuICAgIE9uQ2FuY2VsKCkge1xyXG4gICAgICAgICAgdGhpcy5vbkNhbmNlbC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgcHVibGljIG9uR2xvYmFsRmlsdGVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vblNlYXJjaC5lbWl0KChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpZHRoUGFnZS5zZXQod2luZG93LmlubmVyV2lkdGgpO1xyXG5cclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Z1bGxzY3JlZW5jaGFuZ2UnLCAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmdWxsc2NyZWVuQnRuJyk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAoYnV0dG9uKSB7XHJcbiAgICAgICAgaWYgKCFkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCkge1xyXG4gICAgICAgICAgYnV0dG9uLnRleHRDb250ZW50ID0gJ29wZW5faW5fZnVsbCc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGJ1dHRvbi50ZXh0Q29udGVudCA9ICdjbG9zZV9mdWxsc2NyZWVuJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBzY3JvbGxIYW5kbGVyKCRldmVudDogRXZlbnQpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gIFxyXG4gICAgLy9zZSBvIGVzY3JvbGwgY2hlZ2FyIGF0w6kgbyBmaW5hbFxyXG4gICAgaWYgKGVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gZWxlbWVudC5zY3JvbGxUb3AgPT09IGVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgIC8vIHRoaXMuYnVzY2FyUHJveGltb3NEb2N1bWVudG9zKCk7XHJcbiAgICAgIHRoaXMub25TY3JvbGxIYW5kbGVyLmVtaXQoJGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgZ2FwLTIgY3VzdG9tLW1heC1oZWlnaHQgXCJcclxuICBzdHlsZT1cImhlaWdodDogMTAwJVwiXHJcbj5cclxuICA8IS0tIExpc3RhIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY2FyZC1wZXJmaWwgY29sLTEyIG1kOmNvbC00IGxnOmNvbC0zIGZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxyXG4gICAgKHNjcm9sbCk9XCJzY3JvbGxIYW5kbGVyKCRldmVudClcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAnb3ZlcmZsb3cteS1hdXRvJzogZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDAsXHJcbiAgICAgICdvdmVyZmxvdy15LWhpZGRlbic6IGRhdGFTb3VyY2UoKS5sZW5ndGggPT09IDBcclxuICAgIH1cIlxyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogMTAwJTsgbWluLWhlaWdodDogMTVyZW1cIlxyXG4gID5cclxuICBcclxuICA8ZGl2PlxyXG4gIEBpZihsaXN0VG9wVGVtcGxhdGUpIHtcclxuICAgIDxkaXYgI3RvcExpc3RUZW1wbGF0ZT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RUb3BUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgQGlmKGxpc3RUaXRsZSkge1xyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ3LWZ1bGwgZmxleCBhbGlnbi1pdGVtcy1zdGFydCBmb250LXNlbWlib2xkIHRleHQtbWRcIj57e2xpc3RUaXRsZX19PC9wPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYoZW5hYmxlU2VhcmNoKSB7XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBwQXV0b0ZvY3VzXHJcbiAgICAgICAgICAgIFthdXRvZm9jdXNdPVwid2lkdGhQYWdlKCkgPiA4MDBcIlxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvbkdsb2JhbEZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgI2lucHV0RmllbGRcclxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIGNvbC02XCJcclxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDJyZW07XCIvPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YVNvdXJjZSgpLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlEb2N1bWVudExpc3RcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgIDwhLS0gTGlzdGEgZGUgY2FyZHMgLS0+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZGF0YVNvdXJjZSgpOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImNhcmQtbm9ybWFsIG91dGxpbmUtbm9uZSBib3JkZXItcm91bmQteGwgdy1mdWxsIHAtMiBtLTEgZ3JpZCBwLWZsdWlkIGZsZXggZmxleC1yb3cgZmxleC1ub3dyYXAgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidmlzdWFsaXphclByZXZpZXcob3B0aW9uKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2NhcmQtc2VsZWN0ZWQnOiBvcHRpb24gPT09IGFycXVpdm9QcmV2aWV3KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdjYXJkLW5vcm1hbCc6IG9wdGlvbiAhPT0gYXJxdWl2b1ByZXZpZXcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1ncm93LTEgbWwtMiBmbGV4LWNvbHVtbiBnYXAtMSBtLTAgcC0wIG92ZXJmbG93LWhpZGRlbiB0ZXh0LW92ZXJmbG93LWVsbGlwc2lzXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMTAwJVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FyZFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNhcmRUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiB9XCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb21tb24tc3R5bGUgZGVmYXVsdC1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1iYXNlIHAtMCBtLTBcIj5CZW0tdmluZG8hPC9oMT5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIEt2LWRldGFpbGVkLWxpc3QgYWd1YXJkYW5kbyB1bSB0ZW1wbGF0ZS4uLlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWJvbGQgdGV4dC1zbSBwLTAgbS0wXCI+RGF0YToge3sgdG9kYXlEYXRlKCkgfX08L3A+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNlbXB0eURvY3VtZW50TGlzdD5cclxuICAgICAgQGlmKGlzTG9hZGluZ1NrZWxldG9uKXtcclxuICAgICAgPHAtc2tlbGV0b24gXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGkgb2YgWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDldXCIgXHJcbiAgICAgICAgaGVpZ2h0PVwiNXJlbVwiIFxyXG4gICAgICAgIFtzdHlsZV09XCJ7ICdtYXJnaW4tYm90dG9tJzogJzAuMjVyZW0nLCAnYm9yZGVyUmFkaXVzJzogJzAuNzVyZW0nIH1cIlxyXG4gICAgICA+PC9wLXNrZWxldG9uPlxyXG4gICAgICB9IEBpZighbm9Eb2N1bWVudExpc3RUZW1wbGF0ZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgdGV4dC1ncmF5LTYwMCBtdC00IG0tM1wiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gaW5ib3ggPC9zcGFuPlxyXG4gICAgICAgICAgPHA+TmVuaHVtIGRvY3VtZW50byBkaXNwb27DrXZlbC48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTQgbS0zXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9Eb2N1bWVudExpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8IS0tIENvbnRhZG9yIGRlIGRvY3VtZW50b3MgLSBGaXhvIG5hIHBhcnRlIGluZmVyaW9yIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInN0aWNreS1jb3VudGVyIGZsZXggZmxleC1jb2x1bW5cclxuICAgICAgIGp1c3RpZnktY29udGVudC1jZW50ZXIgdGV4dC1jZW50ZXIgcHgtMiBwLTJcIlxyXG4gICAgICBzdHlsZT1cInBvc2l0aW9uOiBzdGlja3k7IGJvdHRvbTogLTEwcHg7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyBcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyB0b3RhbEl0ZW5zQ2FycmVnYWRvKCkgfX0gZGUge3sgdG90YWxSZWNvcmRzIH19PC9zcGFuPlxyXG4gICAgICBAaWYobGlzdEJvdHRvbVRlbXBsYXRlKSB7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0Qm90dG9tVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFZpc3VhbGl6YWRvciAtLT5cclxuICA8ZGl2XHJcbiAgICBpZD1cImZ1bGxzY3JlZW5EaXZcIlxyXG4gICAgY2xhc3M9XCJjYXJkLXZpc3VhbGl6YWRvciBmbGV4LTFcIlxyXG4gICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCJcclxuICAgIFtuZ1N0eWxlXT1cIntcclxuICAgICAgJ292ZXJmbG93LXknOiBhcnF1aXZvUHJldmlldygpID8gJ2F1dG8nIDogJ2hpZGRlbidcclxuICAgIH1cIlxyXG4gID5cclxuICAgQGlmKGJ1dHRvblRlbXBsYXRlICYmICFjb250ZW50Vmlld2VyKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+PC9kaXY+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicC0zXCI+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInZpc3VhbGl6YXJQcmV2aWV3KG51bGwsIHRydWUpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgfSAgQGlmKHZpc3VhbGl6YWRvckRvY3VtZW50b3MpIHtcclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcnF1aXZvKCk7IGVsc2Ugbm9Eb2N1bWVudFNlbGVjdGVkXCI+XHJcbiAgICAgIEBpZihpc0xvYWRpbmcpIHtcclxuICAgICAgPG5neC1sb2FkaW5nXHJcbiAgICAgICAgW3Nob3ddPVwiaXNMb2FkaW5nXCJcclxuICAgICAgICBbY29uZmlnXT1cInsgYmFja2Ryb3BCb3JkZXJSYWRpdXM6ICczcHgnLCBmdWxsU2NyZWVuQmFja2Ryb3A6IGZhbHNlIH1cIlxyXG4gICAgICA+PC9uZ3gtbG9hZGluZz5cclxuICAgICAgfVxyXG4gICAgICA8a3YtZmlsZS12aWV3ZXItbm92b1xyXG4gICAgICAgICpuZ0lmPVwiZXh0ZW5jYW9Eb2N1bWVudG8gIT09ICdla3AnXCJcclxuICAgICAgICBbYXJxdWl2b109XCJhcnF1aXZvKCkhXCJcclxuICAgICAgICBbdHlwZV09XCJ0eXBlKCkhXCJcclxuICAgICAgICBbYmxvYl09XCJibG9iKCkhXCJcclxuICAgICAgICBbd2lkdGhdPVwiJzEwMCUnXCJcclxuICAgICAgICBbaGVpZ2h0XT1cIicxMDAlJ1wiXHJcbiAgICAgICAgY2xhc3M9XCJmaWxlLXZpZXdlclwiXHJcbiAgICAgICAgc3R5bGU9XCJtYXgtaGVpZ2h0OiAxMDAlXCJcclxuICAgICAgPlxyXG4gICAgICA8L2t2LWZpbGUtdmlld2VyLW5vdm8+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgaWQ9XCJodG1sLWNvbnRlbnRcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwiZWtwQ29udGVudCgpXCJcclxuICAgICAgICAqbmdJZj1cImV4dGVuY2FvRG9jdW1lbnRvID09PSAnZWtwJ1wiXHJcbiAgICAgICAgY2xhc3M9XCJla3AtY29udGVudFwiXHJcbiAgICAgICAgc3R5bGU9XCJvdmVyZmxvdy15OiBhdXRvOyBtYXgtaGVpZ2h0OiAxMDAlXCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCIgPlxyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nSWY9XCJhcnF1aXZvUHJldmlldygpIHx8IGNvbnRlbnRWaWV3ZXI7IGVsc2Ugbm9Eb2N1bWVudFNlbGVjdGVkXCJcclxuICAgICAgPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMTtcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxyXG4gICAgICAgICAgICBjb250ZW50VGVtcGxhdGU7XHJcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBhcnF1aXZvUHJldmlldygpIH1cclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93LXk6IGF1dG87IG1heC1oZWlnaHQ6IDEwMCVcIlxyXG4gICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgICAgQGlmKGNvbnRlbnRGb3JtKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZFwiIHN0eWxlPVwicG9zaXRpb246IHN0aWNreTsgYm90dG9tOiAwOyBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgei1pbmRleDogMTA7IHBhZGRpbmc6IDFyZW0gMXJlbSAwIDFyZW07XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOFwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj4qPC9zcGFuPiBDYW1wb3Mgb2JyaWdhdMOzcmlvc1xyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiQ2FuY2VsYXJcIlxyXG4gICAgICAgICAgICAgICAgaWNvbj1cImNsb3NlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICBzZXZlcml0eT1cInRlcnRpYXJ5XCJcclxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIk9uQ2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgICAgICAgIGxhYmVsPVwiU2FsdmFyXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJzYXZlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiT25TYXZlKClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2t2LWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+IFxyXG4gICAgfVxyXG4gICAgPG5nLXRlbXBsYXRlICNub0RvY3VtZW50U2VsZWN0ZWQ+XHJcbiAgICAgIEBpZighbm9Eb2N1bWVudFNlbGVjdGVkVGVtcGxhdGUpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibm8tZG9jdW1lbnQtbWVzc2FnZSBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICBzdHlsZT1cImhlaWdodDogMTAwJTsgb3ZlcmZsb3cteTogYXV0b1wiXHJcbiAgICAgID5cclxuICAgICAgICA8cCBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtZ3JheS01MDBcIj5cclxuICAgICAgICAgIFNlbGVjaW9uZSB1bSBhcnF1aXZvIHBhcmEgdmlzdWFsaXphw6fDo29cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgW3NyY109XCJcclxuICAgICAgICAgICAgJ2h0dHBzOi8vd29yay1hc3NldHMua2Vldm8uY29tLmJyL2ltZy9TZW1fRGFkb3MucG5nJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIHN0eWxlPVwibWF4LWhlaWdodDogNTAlOyBtYXJnaW4tdG9wOiAycmVtXCJcclxuICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub0RvY3VtZW50U2VsZWN0ZWRUZW1wbGF0ZVwiXHJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,26 +0,0 @@
1
- import { Component, EventEmitter, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- export class KvErrorComponent {
5
- set setHasError(value) {
6
- this.hasError = value;
7
- this.emitError.emit(value);
8
- }
9
- ;
10
- constructor() {
11
- this.hasError = false;
12
- this.emitError = new EventEmitter();
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvErrorComponent, selector: "kv-error", inputs: { formControl: "formControl", setHasError: ["hasError", "setHasError"] }, ngImport: i0, template: "<small id=\"error-message\" class=\"p-error block\" style=\"height: 0px !important;\" >\r\n <ng-content *ngIf=\"hasError\"></ng-content>\r\n</small>\r\n", styles: ["#error-message{left:1px;font-size:.625rem!important;font-family:Roboto,Arial,Helvetica,sans-serif!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvErrorComponent, decorators: [{
18
- type: Component,
19
- args: [{ selector: 'kv-error', template: "<small id=\"error-message\" class=\"p-error block\" style=\"height: 0px !important;\" >\r\n <ng-content *ngIf=\"hasError\"></ng-content>\r\n</small>\r\n", styles: ["#error-message{left:1px;font-size:.625rem!important;font-family:Roboto,Arial,Helvetica,sans-serif!important}\n"] }]
20
- }], ctorParameters: () => [], propDecorators: { formControl: [{
21
- type: Input
22
- }], setHasError: [{
23
- type: Input,
24
- args: ['hasError']
25
- }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZXJyb3Iva3YtZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZXJyb3Iva3YtZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDOzs7QUFTdkIsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixJQUF1QixXQUFXLENBQUMsS0FBMEI7UUFDM0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUFBLENBQUM7SUFJRjtRQVhPLGFBQVEsR0FBd0IsS0FBSyxDQUFDO1FBUzdDLGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUUvQyxDQUFDOzhHQVpOLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLGtJQ2I3QiwySkFHQTs7MkZEVWEsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLFVBQVU7d0RBT1gsV0FBVztzQkFBbkIsS0FBSztnQkFFaUIsV0FBVztzQkFBakMsS0FBSzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtZXJyb3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1lcnJvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3YtZXJyb3IuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZFcnJvckNvbXBvbmVudCB7XHJcbiAgcHVibGljIGhhc0Vycm9yOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XHJcblxyXG4gIEBJbnB1dCgnaGFzRXJyb3InKSBzZXQgc2V0SGFzRXJyb3IodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuaGFzRXJyb3IgPSB2YWx1ZTtcclxuICAgIHRoaXMuZW1pdEVycm9yLmVtaXQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIGVtaXRFcnJvcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcbiIsIjxzbWFsbCBpZD1cImVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cInAtZXJyb3IgYmxvY2tcIiBzdHlsZT1cImhlaWdodDogMHB4ICFpbXBvcnRhbnQ7XCIgPlxyXG4gIDxuZy1jb250ZW50ICpuZ0lmPVwiaGFzRXJyb3JcIj48L25nLWNvbnRlbnQ+XHJcbjwvc21hbGw+XHJcbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { KvErrorComponent } from './kv-error.component';
5
- import { PrimeNgModule } from '../../api/modules/primeng.module';
6
- import * as i0 from "@angular/core";
7
- export class kvErrorModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: kvErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: kvErrorModule, declarations: [KvErrorComponent], imports: [CommonModule,
10
- FormsModule,
11
- PrimeNgModule,
12
- ReactiveFormsModule], exports: [KvErrorComponent] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: kvErrorModule, imports: [CommonModule,
14
- FormsModule,
15
- PrimeNgModule,
16
- ReactiveFormsModule] }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: kvErrorModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- declarations: [
22
- KvErrorComponent,
23
- ],
24
- imports: [
25
- CommonModule,
26
- FormsModule,
27
- PrimeNgModule,
28
- ReactiveFormsModule,
29
- ],
30
- exports: [
31
- KvErrorComponent,
32
- ]
33
- }]
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZXJyb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZXJyb3Iva3YtZXJyb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQWdCakUsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLGlCQVp0QixnQkFBZ0IsYUFHaEIsWUFBWTtZQUNaLFdBQVc7WUFDWCxhQUFhO1lBQ2IsbUJBQW1CLGFBR25CLGdCQUFnQjsrR0FHUCxhQUFhLFlBVHRCLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLG1CQUFtQjs7MkZBTVYsYUFBYTtrQkFkekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBLdkVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi9rdi1lcnJvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcmltZU5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vYXBpL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEt2RXJyb3JDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFByaW1lTmdNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgS3ZFcnJvckNvbXBvbmVudCxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBrdkVycm9yTW9kdWxlIHsgfVxyXG4iXX0=
@@ -1,191 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ViewChild, input, computed } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../api/services/notification.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "../kv-progress-bar/kv-progress-bar.component";
6
- import * as i4 from "primeng/button";
7
- export class KvFileUploadComponent {
8
- constructor(notificationService) {
9
- this.notificationService = notificationService;
10
- this.widthComponent = '400px';
11
- this.heightComponent = 'auto';
12
- this.validFileTypes = ['image/', 'application/pdf', 'text/html', 'text/xml', 'application/xml', 'text/plain'];
13
- this.tamanhoMaximoPermitido = '';
14
- this.includeOfficeTypes = false; // Propriedade para controlar os tipos de Office
15
- this.maxSizeFile = input(10);
16
- this.fileEmit = new EventEmitter();
17
- this.removeFileEmit = new EventEmitter();
18
- // returnMbSize = computed(() => (bytes: any) => {
19
- // if (bytes === null || bytes === undefined) {
20
- // return '0 MB';
21
- // }
22
- // const mbSize = bytes / (1024 * 1024);
23
- // return this.formatBytes(mbSize, 2);
24
- // });
25
- this.progressValue = computed(() => (bytes) => {
26
- if (bytes === null || bytes === undefined) {
27
- return 0;
28
- }
29
- const mbSize = bytes / (1024 * 1024);
30
- let progressValue = (Number(mbSize) / this.maxSizeFile()) * 100;
31
- // Limita o valor do progresso entre 0 e 100
32
- return Math.min(Math.max(progressValue, 0), 100);
33
- });
34
- this.returnProgressLabel = computed(() => (bytes) => {
35
- if (bytes === null || bytes === undefined) {
36
- return '0 MB';
37
- }
38
- const mbSize = bytes / (1024 * 1024);
39
- // let progressValue = (Number(mbSize) / this.maxSizeFile()) * 100;
40
- // this.progressValue.set(progressValue);
41
- // this.progressValue.set((mbSize / this.maxSizeFile())*100);
42
- return `${mbSize.toFixed(2)}/${this.maxSizeFile()} MB`;
43
- });
44
- }
45
- onFileSelected(event) {
46
- let validTypes = [...this.validFileTypes];
47
- if (this.includeOfficeTypes) {
48
- validTypes.push('application/msword', // .doc
49
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx
50
- 'application/vnd.ms-powerpoint', // .ppt
51
- 'application/vnd.openxmlformats-officedocument.presentationml.presentation' // .pptx
52
- );
53
- }
54
- if (event.target.files.length == 0)
55
- return;
56
- const isValidFileType = validTypes.some(type => event.target.files[0].type.startsWith(type) ||
57
- (type === 'application/xml' && event.target.files[0].type === 'application/xml') ||
58
- (type === 'text/xml' && event.target.files[0].type === 'text/xml'));
59
- if (!isValidFileType) {
60
- this.notificationService.toastError('Tipo de arquivo inválido');
61
- this.formGroup.controls[this.formControlName].setValue(null);
62
- return;
63
- }
64
- this.formGroup.controls[this.formControlName].setValue(event.target.files[0]);
65
- this.fileEmit.emit(event.target.files[0]);
66
- }
67
- deleteFile() {
68
- this.formGroup.controls[this.formControlName].setValue(null);
69
- this.fileInput.nativeElement.value = '';
70
- this.removeFileEmit.emit();
71
- }
72
- formatBytes(bytes, decimals = 2) {
73
- if (!bytes) {
74
- return "0 Bytes";
75
- }
76
- const k = 1024;
77
- const dm = decimals <= 0 ? 0 : decimals;
78
- const sizes = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
79
- const i = Math.floor(Math.log(bytes) / Math.log(k));
80
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
81
- }
82
- addDragOverClass(event) {
83
- const container = event.target;
84
- container.classList.add('dragover');
85
- }
86
- removeDragOverClass(event) {
87
- const container = event.target;
88
- container.classList.remove('dragover');
89
- }
90
- handleFile(file) {
91
- if (this.includeOfficeTypes) {
92
- let validTypes = [...this.validFileTypes];
93
- validTypes.push('application/msword', // .doc
94
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', // .docx
95
- 'application/vnd.ms-powerpoint', // .ppt
96
- 'application/vnd.openxmlformats-officedocument.presentationml.presentation' // .pptx
97
- );
98
- }
99
- const isValidFileType = this.validFileTypes.some(type => file.type.startsWith(type) ||
100
- file.type === 'application/xml' ||
101
- file.type === 'text/xml');
102
- if (!isValidFileType) {
103
- this.notificationService.toastError('Tipo de arquivo inválido');
104
- this.formGroup.controls[this.formControlName].setValue(null);
105
- return;
106
- }
107
- this.formGroup.controls[this.formControlName].setValue(file);
108
- const reader = new FileReader();
109
- if (file.type.startsWith('image/')) {
110
- reader.readAsDataURL(file);
111
- }
112
- else if (file.type === 'application/xml' || file.type === 'text/xml') {
113
- reader.readAsText(file);
114
- }
115
- else {
116
- reader.readAsArrayBuffer(file);
117
- }
118
- this.fileEmit.emit(file);
119
- }
120
- onDragOver(event) {
121
- event.preventDefault();
122
- event.stopPropagation();
123
- this.addDragOverClass(event);
124
- }
125
- onDragLeave(event) {
126
- event.preventDefault();
127
- event.stopPropagation();
128
- this.removeDragOverClass(event);
129
- }
130
- onDrop(event) {
131
- event.preventDefault();
132
- event.stopPropagation();
133
- this.removeDragOverClass(event);
134
- if (event.dataTransfer && event.dataTransfer.files.length > 0) {
135
- this.handleFile(event.dataTransfer.files[0]);
136
- }
137
- }
138
- setAccept() {
139
- let types = '';
140
- this.validFileTypes.forEach(type => {
141
- if (type.includes('image'))
142
- types += '.jpg, .png, .bmp, ';
143
- if (type.includes('html'))
144
- types += '.html, ';
145
- if (type.includes('pdf'))
146
- types += '.pdf, ';
147
- if (type.includes('xml'))
148
- types += '.xml, ';
149
- if (type.includes('plain'))
150
- types += '.txt, ';
151
- });
152
- // Adiciona tipos de arquivos do Office se includeOfficeTypes for true
153
- if (this.includeOfficeTypes) {
154
- types += '.doc, .docx, .ppt, .pptx, ';
155
- }
156
- return types.slice(0, -2); // Remove a última vírgula e espaço
157
- }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvFileUploadComponent, selector: "kv-file-upload", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: false, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: "formControlName", publicName: "formControlName", isSignal: false, isRequired: false, transformFunction: null }, widthComponent: { classPropertyName: "widthComponent", publicName: "widthComponent", isSignal: false, isRequired: false, transformFunction: null }, heightComponent: { classPropertyName: "heightComponent", publicName: "heightComponent", isSignal: false, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: false, isRequired: false, transformFunction: null }, validFileTypes: { classPropertyName: "validFileTypes", publicName: "validFileTypes", isSignal: false, isRequired: false, transformFunction: null }, tamanhoMaximoPermitido: { classPropertyName: "tamanhoMaximoPermitido", publicName: "tamanhoMaximoPermitido", isSignal: false, isRequired: false, transformFunction: null }, includeOfficeTypes: { classPropertyName: "includeOfficeTypes", publicName: "includeOfficeTypes", isSignal: false, isRequired: false, transformFunction: null }, maxSizeFile: { classPropertyName: "maxSizeFile", publicName: "maxSizeFile", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileEmit: "fileEmit", removeFileEmit: "removeFileEmit" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "inputUpload", first: true, predicate: ["inputUpload"], descendants: true }], ngImport: i0, template: "<div\r\n *ngIf=\"formGroup\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup &&\r\n formControlName &&\r\n formGroup.controls[formControlName].invalid &&\r\n formGroup.controls[formControlName].touched\r\n }\"\r\n class=\"border-dashed border-2 border-round-lg border-gray-400 flex justify-content-end relative p-2\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [style.minWidth]=\"'20rem'\"\r\n [style.minHeight]=\"'10rem'\"\r\n [style.width]=\"widthComponent\"\r\n [style.height]=\"heightComponent\"\r\n>\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value)\r\n {\r\n <button\r\n style=\"background-color: transparent\"\r\n pButton\r\n (click)=\"deleteFile()\"\r\n class=\"absolute transition-colors transition-duration-500 text-red-700 hover:text-red-500 m-1 h-2rem w-2rem\"\r\n [text]=\"true\"\r\n [icon]=\"'pi pi-trash'\"\r\n ></button>\r\n }\r\n <div\r\n class=\"col-12 flex flex-column align-items-center justify-content-center\"\r\n >\r\n <div\r\n class=\"w-full align-items-center justify-content-center col-12\"\r\n style=\"cursor: pointer\"\r\n [style.display]=\"formGroup.controls[formControlName].value ? 'none' : 'flex'\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n type=\"file\"\r\n (change)=\"onFileSelected($event)\"\r\n #fileInput\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n @if(formGroup && formControlName &&\r\n !formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column align-items-center justify-content-center\">\r\n <!-- @if(tamanhoMaximoPermitido) {\r\n <p class=\"w-full text-start\">Tamanho maximo permitido ( {{tamanhoMaximoPermitido}} )*</p>\r\n } -->\r\n <span\r\n class=\"material-symbols-outlined mt-2 text-gray-700\"\r\n style=\"font-size: 2.5rem\"\r\n >\r\n cloud_upload\r\n </span>\r\n\r\n @if(description) {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n {{ description }}\r\n </span>\r\n } @else {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n Arraste e solte o arquivo aqui, ou<br />clique para selecion\u00E1-lo\r\n </span>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column justify-content-between h-full w-full\">\r\n <div class=\"col-9 p-0 pt-1\">\r\n <kv-progress-bar\r\n [value]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size)\r\n \"\r\n [showValue]=\"false\"\r\n [barStyleClass]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100\r\n ? 'bg-red-400'\r\n : ''\r\n \"\r\n [label]=\"\r\n returnProgressLabel()(\r\n formGroup.controls[formControlName].value?.size\r\n )\r\n \"\r\n ></kv-progress-bar>\r\n\r\n @if(progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100) {\r\n <span class=\"text-red-600 text-xs\">Tamanho m\u00E1ximo excedido.</span>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n <span class=\"font-medium text-gray-600 text-xs\"\r\n >Arquivo Selecionado:</span\r\n >\r\n\r\n <div class=\"flex flex-row justify-content-between\">\r\n <span class=\"text-gray-600 text-xs\">{{\r\n formGroup.controls[formControlName].value?.name\r\n }}</span>\r\n <span\r\n class=\"\r\n {{\r\n progressValue()(\r\n formGroup.controls[formControlName].value?.size\r\n ) == 100\r\n ? 'text-red-600'\r\n : 'text-green-600'\r\n }} \r\n text-xs\"\r\n >{{\r\n formatBytes(formGroup.controls[formControlName].value?.size)\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (formGroup && formControlName && formGroup.controls[formControlName].invalid\r\n&& formGroup.controls[formControlName].touched) {\r\n<p class=\"error-message\">Campo obrigat\u00F3rio</p>\r\n}\r\n", styles: [".invalid-border{border:2px dashed red!important}.error-message{color:#ff0e0e;font-size:12px!important;margin-top:.1rem}.teste{background-color:red!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ProgressBarComponent, selector: "kv-progress-bar", inputs: ["value", "maxValue", "label", "showValue", "showLabel", "styleClass", "labelStyleClass", "barStyleClass", "style", "unit", "mode", "color"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
160
- }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvFileUploadComponent, decorators: [{
162
- type: Component,
163
- args: [{ selector: 'kv-file-upload', template: "<div\r\n *ngIf=\"formGroup\"\r\n [ngClass]=\"{\r\n 'invalid-border':\r\n formGroup &&\r\n formControlName &&\r\n formGroup.controls[formControlName].invalid &&\r\n formGroup.controls[formControlName].touched\r\n }\"\r\n class=\"border-dashed border-2 border-round-lg border-gray-400 flex justify-content-end relative p-2\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n (drop)=\"onDrop($event)\"\r\n [style.minWidth]=\"'20rem'\"\r\n [style.minHeight]=\"'10rem'\"\r\n [style.width]=\"widthComponent\"\r\n [style.height]=\"heightComponent\"\r\n>\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value)\r\n {\r\n <button\r\n style=\"background-color: transparent\"\r\n pButton\r\n (click)=\"deleteFile()\"\r\n class=\"absolute transition-colors transition-duration-500 text-red-700 hover:text-red-500 m-1 h-2rem w-2rem\"\r\n [text]=\"true\"\r\n [icon]=\"'pi pi-trash'\"\r\n ></button>\r\n }\r\n <div\r\n class=\"col-12 flex flex-column align-items-center justify-content-center\"\r\n >\r\n <div\r\n class=\"w-full align-items-center justify-content-center col-12\"\r\n style=\"cursor: pointer\"\r\n [style.display]=\"formGroup.controls[formControlName].value ? 'none' : 'flex'\"\r\n (click)=\"fileInput.click()\"\r\n >\r\n <input\r\n type=\"file\"\r\n (change)=\"onFileSelected($event)\"\r\n #fileInput\r\n [accept]=\"setAccept()\"\r\n hidden\r\n />\r\n\r\n @if(formGroup && formControlName &&\r\n !formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column align-items-center justify-content-center\">\r\n <!-- @if(tamanhoMaximoPermitido) {\r\n <p class=\"w-full text-start\">Tamanho maximo permitido ( {{tamanhoMaximoPermitido}} )*</p>\r\n } -->\r\n <span\r\n class=\"material-symbols-outlined mt-2 text-gray-700\"\r\n style=\"font-size: 2.5rem\"\r\n >\r\n cloud_upload\r\n </span>\r\n\r\n @if(description) {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n {{ description }}\r\n </span>\r\n } @else {\r\n <span class=\"font-medium text-center text-sm text-gray-600\">\r\n Arraste e solte o arquivo aqui, ou<br />clique para selecion\u00E1-lo\r\n </span>\r\n }\r\n </div>\r\n\r\n }\r\n </div>\r\n\r\n @if(formGroup && formControlName && formGroup.controls[formControlName].value) {\r\n <div class=\"flex flex-column justify-content-between h-full w-full\">\r\n <div class=\"col-9 p-0 pt-1\">\r\n <kv-progress-bar\r\n [value]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size)\r\n \"\r\n [showValue]=\"false\"\r\n [barStyleClass]=\"\r\n progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100\r\n ? 'bg-red-400'\r\n : ''\r\n \"\r\n [label]=\"\r\n returnProgressLabel()(\r\n formGroup.controls[formControlName].value?.size\r\n )\r\n \"\r\n ></kv-progress-bar>\r\n\r\n @if(progressValue()(formGroup.controls[formControlName].value?.size) ==\r\n 100) {\r\n <span class=\"text-red-600 text-xs\">Tamanho m\u00E1ximo excedido.</span>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n <span class=\"font-medium text-gray-600 text-xs\"\r\n >Arquivo Selecionado:</span\r\n >\r\n\r\n <div class=\"flex flex-row justify-content-between\">\r\n <span class=\"text-gray-600 text-xs\">{{\r\n formGroup.controls[formControlName].value?.name\r\n }}</span>\r\n <span\r\n class=\"\r\n {{\r\n progressValue()(\r\n formGroup.controls[formControlName].value?.size\r\n ) == 100\r\n ? 'text-red-600'\r\n : 'text-green-600'\r\n }} \r\n text-xs\"\r\n >{{\r\n formatBytes(formGroup.controls[formControlName].value?.size)\r\n }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n\r\n@if (formGroup && formControlName && formGroup.controls[formControlName].invalid\r\n&& formGroup.controls[formControlName].touched) {\r\n<p class=\"error-message\">Campo obrigat\u00F3rio</p>\r\n}\r\n", styles: [".invalid-border{border:2px dashed red!important}.error-message{color:#ff0e0e;font-size:12px!important;margin-top:.1rem}.teste{background-color:red!important}\n"] }]
164
- }], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { formGroup: [{
165
- type: Input
166
- }], formControlName: [{
167
- type: Input
168
- }], widthComponent: [{
169
- type: Input
170
- }], heightComponent: [{
171
- type: Input
172
- }], description: [{
173
- type: Input
174
- }], validFileTypes: [{
175
- type: Input
176
- }], tamanhoMaximoPermitido: [{
177
- type: Input
178
- }], includeOfficeTypes: [{
179
- type: Input
180
- }], fileEmit: [{
181
- type: Output
182
- }], removeFileEmit: [{
183
- type: Output
184
- }], fileInput: [{
185
- type: ViewChild,
186
- args: ['fileInput']
187
- }], inputUpload: [{
188
- type: ViewChild,
189
- args: ['inputUpload']
190
- }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtZmlsZS11cGxvYWQva3YtZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBU3ZILE1BQU0sT0FBTyxxQkFBcUI7SUFrQmhDLFlBQW9CLG1CQUF3QztRQUF4Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBZm5ELG1CQUFjLEdBQVcsT0FBTyxDQUFDO1FBQ2pDLG9CQUFlLEdBQVcsTUFBTSxDQUFDO1FBRWpDLG1CQUFjLEdBQWEsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNuSCwyQkFBc0IsR0FBVyxFQUFFLENBQUM7UUFDcEMsdUJBQWtCLEdBQVksS0FBSyxDQUFDLENBQUMsZ0RBQWdEO1FBRTlGLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFBO1FBRXJCLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBMENqRSxrREFBa0Q7UUFDbEQsaURBQWlEO1FBQ2pELHFCQUFxQjtRQUNyQixNQUFNO1FBRU4sMENBQTBDO1FBRTFDLHdD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O3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBSUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0ksV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgaW5wdXQsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtZmlsZS11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LWZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZGaWxlVXBsb2FkQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHdpZHRoQ29tcG9uZW50OiBzdHJpbmcgPSAnNDAwcHgnO1xyXG4gIEBJbnB1dCgpIGhlaWdodENvbXBvbmVudDogc3RyaW5nID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbGlkRmlsZVR5cGVzOiBzdHJpbmdbXSA9IFsnaW1hZ2UvJywgJ2FwcGxpY2F0aW9uL3BkZicsICd0ZXh0L2h0bWwnLCAndGV4dC94bWwnLCAnYXBwbGljYXRpb24veG1sJywgJ3RleHQvcGxhaW4nXTtcclxuICBASW5wdXQoKSB0YW1hbmhvTWF4aW1vUGVybWl0aWRvOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBpbmNsdWRlT2ZmaWNlVHlwZXM6IGJvb2xlYW4gPSBmYWxzZTsgLy8gUHJvcHJpZWRhZGUgcGFyYSBjb250cm9sYXIgb3MgdGlwb3MgZGUgT2ZmaWNlXHJcblxyXG4gIG1heFNpemVGaWxlID0gaW5wdXQ8bnVtYmVyPigxMClcclxuXHJcbiAgQE91dHB1dCgpIGZpbGVFbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcmVtb3ZlRmlsZUVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VXBsb2FkJykgaW5wdXRVcGxvYWQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHsgfVxyXG5cclxuICBvbkZpbGVTZWxlY3RlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgdmFsaWRUeXBlcyA9IFsuLi50aGlzLnZhbGlkRmlsZVR5cGVzXTtcclxuXHJcbiAgICBpZiAodGhpcy5pbmNsdWRlT2ZmaWNlVHlwZXMpIHtcclxuXHJcbiAgICAgIHZhbGlkVHlwZXMucHVzaChcclxuICAgICAgICAnYXBwbGljYXRpb24vbXN3b3JkJywgLy8gLmRvY1xyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsIC8vIC5kb2N4XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JywgLy8gLnBwdFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyAvLyAucHB0eFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoID09IDApIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBpc1ZhbGlkRmlsZVR5cGUgPSB2YWxpZFR5cGVzLnNvbWUodHlwZSA9PiBldmVudC50YXJnZXQuZmlsZXNbMF0udHlwZS5zdGFydHNXaXRoKHR5cGUpIHx8XHJcbiAgICAgICh0eXBlID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBldmVudC50YXJnZXQuZmlsZXNbMF0udHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcpIHx8XHJcbiAgICAgICh0eXBlID09PSAndGV4dC94bWwnICYmIGV2ZW50LnRhcmdldC5maWxlc1swXS50eXBlID09PSAndGV4dC94bWwnKVxyXG4gICAgKTtcclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgdGhpcy5maWxlRW1pdC5lbWl0KGV2ZW50LnRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKCkge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbdGhpcy5mb3JtQ29udHJvbE5hbWVdLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5yZW1vdmVGaWxlRW1pdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5NYlNpemUgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gIC8vICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAvLyAgICAgcmV0dXJuICcwIE1CJztcclxuICAvLyAgIH1cclxuXHJcbiAgLy8gICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgICBcclxuICAvLyAgIHJldHVybiB0aGlzLmZvcm1hdEJ5dGVzKG1iU2l6ZSwgMik7XHJcbiAgLy8gfSk7XHJcblxyXG4gIHByb2dyZXNzVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWJTaXplID0gYnl0ZXMgLyAoMTAyNCAqIDEwMjQpO1xyXG4gICAgbGV0IHByb2dyZXNzVmFsdWUgPSAoTnVtYmVyKG1iU2l6ZSkgLyB0aGlzLm1heFNpemVGaWxlKCkpICogMTAwO1xyXG5cclxuICAgIC8vIExpbWl0YSBvIHZhbG9yIGRvIHByb2dyZXNzbyBlbnRyZSAwIGUgMTAwXHJcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgocHJvZ3Jlc3NWYWx1ZSwgMCksIDEwMCk7XHJcbiAgfSk7XHJcblxyXG4gIHJldHVyblByb2dyZXNzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiAoYnl0ZXM6IGFueSkgPT4ge1xyXG4gICAgaWYgKGJ5dGVzID09PSBudWxsIHx8IGJ5dGVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuICcwIE1CJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYlNpemUgPSBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgICAvLyBsZXQgcHJvZ3Jlc3NWYWx1ZSA9IChOdW1iZXIobWJTaXplKSAvIHRoaXMubWF4U2l6ZUZpbGUoKSkgKiAxMDA7XHJcbiAgICAvLyB0aGlzLnByb2dyZXNzVmFsdWUuc2V0KHByb2dyZXNzVmFsdWUpO1xyXG4gICAgLy8gdGhpcy5wcm9ncmVzc1ZhbHVlLnNldCgobWJTaXplIC8gdGhpcy5tYXhTaXplRmlsZSgpKSoxMDApO1xyXG4gICAgcmV0dXJuIGAke21iU2l6ZS50b0ZpeGVkKDIpfS8ke3RoaXMubWF4U2l6ZUZpbGUoKX0gTUJgO1xyXG4gIH0pXHJcblxyXG4gIGZvcm1hdEJ5dGVzKGJ5dGVzOiBhbnksIGRlY2ltYWxzID0gMikge1xyXG4gICAgaWYgKCFieXRlcykge1xyXG4gICAgICByZXR1cm4gXCIwIEJ5dGVzXCI7XHJcbiAgICB9XHJcbiAgICBjb25zdCBrID0gMTAyNDtcclxuICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPD0gMCA/IDAgOiBkZWNpbWFscztcclxuICAgIGNvbnN0IHNpemVzID0gW1wiQnl0ZXNcIiwgXCJLQlwiLCBcIk1CXCIsIFwiR0JcIiwgXCJUQlwiLCBcIlBCXCIsIFwiRUJcIiwgXCJaQlwiLCBcIllCXCJdO1xyXG4gICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xyXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKSArIFwiIFwiICsgc2l6ZXNbaV07XHJcbiAgfVxyXG5cclxuICBhZGREcmFnT3ZlckNsYXNzKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdkcmFnb3ZlcicpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRHJhZ092ZXJDbGFzcyhldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ292ZXInKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZpbGUoZmlsZTogRmlsZSkge1xyXG5cclxuICAgIGlmICh0aGlzLmluY2x1ZGVPZmZpY2VUeXBlcykge1xyXG4gICAgICBsZXQgdmFsaWRUeXBlcyA9IFsuLi50aGlzLnZhbGlkRmlsZVR5cGVzXTtcclxuXHJcbiAgICAgIHZhbGlkVHlwZXMucHVzaChcclxuICAgICAgICAnYXBwbGljYXRpb24vbXN3b3JkJywgLy8gLmRvY1xyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsIC8vIC5kb2N4XHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JywgLy8gLnBwdFxyXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyAvLyAucHB0eFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzVmFsaWRGaWxlVHlwZSA9IHRoaXMudmFsaWRGaWxlVHlwZXMuc29tZSh0eXBlID0+XHJcbiAgICAgIGZpbGUudHlwZS5zdGFydHNXaXRoKHR5cGUpIHx8XHJcbiAgICAgIGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgfHxcclxuICAgICAgZmlsZS50eXBlID09PSAndGV4dC94bWwnXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghaXNWYWxpZEZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS50b2FzdEVycm9yKCdUaXBvIGRlIGFycXVpdm8gaW52w6FsaWRvJyk7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZm9ybUNvbnRyb2xOYW1lXS5zZXRWYWx1ZShmaWxlKTtcclxuXHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuICAgIGlmIChmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcclxuICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICB9IGVsc2UgaWYgKGZpbGUudHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3htbCcgfHwgZmlsZS50eXBlID09PSAndGV4dC94bWwnKSB7XHJcbiAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsZUVtaXQuZW1pdChmaWxlKTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5hZGREcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMucmVtb3ZlRHJhZ092ZXJDbGFzcyhldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZW1vdmVEcmFnT3ZlckNsYXNzKGV2ZW50KTtcclxuXHJcbiAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyICYmIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsZShldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0QWNjZXB0KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdHlwZXMgPSAnJ1xyXG5cclxuICAgIHRoaXMudmFsaWRGaWxlVHlwZXMuZm9yRWFjaCh0eXBlID0+IHtcclxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ2ltYWdlJykpIHR5cGVzICs9ICcuanBnLCAucG5nLCAuYm1wLCAnO1xyXG4gICAgICBpZiAodHlwZS5pbmNsdWRlcygnaHRtbCcpKSB0eXBlcyArPSAnLmh0bWwsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdwZGYnKSkgdHlwZXMgKz0gJy5wZGYsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCd4bWwnKSkgdHlwZXMgKz0gJy54bWwsICc7XHJcbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdwbGFpbicpKSB0eXBlcyArPSAnLnR4dCwgJztcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEFkaWNpb25hIHRpcG9zIGRlIGFycXVpdm9zIGRvIE9mZmljZSBzZSBpbmNsdWRlT2ZmaWNlVHlwZXMgZm9yIHRydWVcclxuICAgIGlmICh0aGlzLmluY2x1ZGVPZmZpY2VUeXBlcykge1xyXG4gICAgICB0eXBlcyArPSAnLmRvYywgLmRvY3gsIC5wcHQsIC5wcHR4LCAnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0eXBlcy5zbGljZSgwLCAtMik7IC8vIFJlbW92ZSBhIMO6bHRpbWEgdsOtcmd1bGEgZSBlc3Bhw6dvXHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAqbmdJZj1cImZvcm1Hcm91cFwiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgJ2ludmFsaWQtYm9yZGVyJzpcclxuICAgICAgZm9ybUdyb3VwICYmXHJcbiAgICAgIGZvcm1Db250cm9sTmFtZSAmJlxyXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS5pbnZhbGlkICYmXHJcbiAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnRvdWNoZWRcclxuICB9XCJcclxuICBjbGFzcz1cImJvcmRlci1kYXNoZWQgYm9yZGVyLTIgYm9yZGVyLXJvdW5kLWxnIGJvcmRlci1ncmF5LTQwMCBmbGV4IGp1c3RpZnktY29udGVudC1lbmQgcmVsYXRpdmUgcC0yXCJcclxuICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcclxuICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKCRldmVudClcIlxyXG4gIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcclxuICBbc3R5bGUubWluV2lkdGhdPVwiJzIwcmVtJ1wiXHJcbiAgW3N0eWxlLm1pbkhlaWdodF09XCInMTByZW0nXCJcclxuICBbc3R5bGUud2lkdGhdPVwid2lkdGhDb21wb25lbnRcIlxyXG4gIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0Q29tcG9uZW50XCJcclxuPlxyXG4gIEBpZihmb3JtR3JvdXAgJiYgZm9ybUNvbnRyb2xOYW1lICYmIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlKVxyXG4gIHtcclxuICA8YnV0dG9uXHJcbiAgICBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XCJcclxuICAgIHBCdXR0b25cclxuICAgIChjbGljayk9XCJkZWxldGVGaWxlKClcIlxyXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSB0cmFuc2l0aW9uLWNvbG9ycyB0cmFuc2l0aW9uLWR1cmF0aW9uLTUwMCB0ZXh0LXJlZC03MDAgaG92ZXI6dGV4dC1yZWQtNTAwIG0tMSBoLTJyZW0gdy0ycmVtXCJcclxuICAgIFt0ZXh0XT1cInRydWVcIlxyXG4gICAgW2ljb25dPVwiJ3BpIHBpLXRyYXNoJ1wiXHJcbiAgPjwvYnV0dG9uPlxyXG4gIH1cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbC0xMiBmbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGNvbC0xMlwiXHJcbiAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcclxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWUgPyAnbm9uZScgOiAnZmxleCdcIlxyXG4gICAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxyXG4gICAgPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAjZmlsZUlucHV0XHJcbiAgICAgICAgW2FjY2VwdF09XCJzZXRBY2NlcHQoKVwiXHJcbiAgICAgICAgaGlkZGVuXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICBAaWYoZm9ybUdyb3VwICYmIGZvcm1Db250cm9sTmFtZSAmJlxyXG4gICAgICAhZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWUpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICA8IS0tIEBpZih0YW1hbmhvTWF4aW1vUGVybWl0aWRvKSB7XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidy1mdWxsIHRleHQtc3RhcnRcIj5UYW1hbmhvIG1heGltbyBwZXJtaXRpZG8gKCB7e3RhbWFuaG9NYXhpbW9QZXJtaXRpZG99fSApKjwvcD5cclxuICAgICAgICAgIH0gLS0+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtdC0yIHRleHQtZ3JheS03MDBcIlxyXG4gICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDIuNXJlbVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgY2xvdWRfdXBsb2FkXHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICBAaWYoZGVzY3JpcHRpb24pIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtY2VudGVyIHRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAge3sgZGVzY3JpcHRpb24gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgIEFycmFzdGUgZSBzb2x0ZSBvIGFycXVpdm8gYXF1aSwgb3U8YnIgLz5jbGlxdWUgcGFyYSBzZWxlY2lvbsOhLWxvXHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYoZm9ybUdyb3VwICYmIGZvcm1Db250cm9sTmFtZSAmJiBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWJldHdlZW4gaC1mdWxsIHctZnVsbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTkgcC0wIHB0LTFcIj5cclxuICAgICAgICA8a3YtcHJvZ3Jlc3MtYmFyXHJcbiAgICAgICAgICBbdmFsdWVdPVwiXHJcbiAgICAgICAgICAgIHByb2dyZXNzVmFsdWUoKShmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZT8uc2l6ZSlcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBbc2hvd1ZhbHVlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtiYXJTdHlsZUNsYXNzXT1cIlxyXG4gICAgICAgICAgICBwcm9ncmVzc1ZhbHVlKCkoZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/LnNpemUpID09XHJcbiAgICAgICAgICAgIDEwMFxyXG4gICAgICAgICAgICAgID8gJ2JnLXJlZC00MDAnXHJcbiAgICAgICAgICAgICAgOiAnJ1xyXG4gICAgICAgICAgXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJcclxuICAgICAgICAgICAgcmV0dXJuUHJvZ3Jlc3NMYWJlbCgpKFxyXG4gICAgICAgICAgICAgIGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5zaXplXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPjwva3YtcHJvZ3Jlc3MtYmFyPlxyXG5cclxuICAgICAgICBAaWYocHJvZ3Jlc3NWYWx1ZSgpKGZvcm1Hcm91cC5jb250cm9sc1tmb3JtQ29udHJvbE5hbWVdLnZhbHVlPy5zaXplKSA9PVxyXG4gICAgICAgIDEwMCkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNjAwIHRleHQteHNcIj5UYW1hbmhvIG3DoXhpbW8gZXhjZWRpZG8uPC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTYwMCB0ZXh0LXhzXCJcclxuICAgICAgICAgID5BcnF1aXZvIFNlbGVjaW9uYWRvOjwvc3BhblxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTYwMCB0ZXh0LXhzXCI+e3tcclxuICAgICAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/Lm5hbWVcclxuICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZSgpKFxyXG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0udmFsdWU/LnNpemVcclxuICAgICAgICAgICAgICApID09IDEwMFxyXG4gICAgICAgICAgICAgICAgPyAndGV4dC1yZWQtNjAwJ1xyXG4gICAgICAgICAgICAgICAgOiAndGV4dC1ncmVlbi02MDAnXHJcbiAgICAgICAgICAgIH19IFxyXG4gICAgICAgICAgIHRleHQteHNcIlxyXG4gICAgICAgICAgICA+e3tcclxuICAgICAgICAgICAgICBmb3JtYXRCeXRlcyhmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS52YWx1ZT8uc2l6ZSlcclxuICAgICAgICAgICAgfX08L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5AaWYgKGZvcm1Hcm91cCAmJiBmb3JtQ29udHJvbE5hbWUgJiYgZm9ybUdyb3VwLmNvbnRyb2xzW2Zvcm1Db250cm9sTmFtZV0uaW52YWxpZFxyXG4mJiBmb3JtR3JvdXAuY29udHJvbHNbZm9ybUNvbnRyb2xOYW1lXS50b3VjaGVkKSB7XHJcbjxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPkNhbXBvIG9icmlnYXTDs3JpbzwvcD5cclxufVxyXG4iXX0=