keevo-components 2.0.107 → 2.0.109

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 (756) hide show
  1. package/esm2022/keevo-components.mjs +5 -0
  2. package/esm2022/lib/api/base-components/base-component-button.mjs +39 -0
  3. package/esm2022/lib/api/base-components/base-component-chart.mjs +104 -0
  4. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +308 -0
  5. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +91 -0
  6. package/esm2022/lib/api/base-components/base-component-crud.mjs +80 -0
  7. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +31 -0
  8. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +238 -0
  9. package/esm2022/lib/api/base-components/base-component-input.mjs +101 -0
  10. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +174 -0
  11. package/esm2022/lib/api/base-components/base-component-table.mjs +354 -0
  12. package/esm2022/lib/api/base-components/base-component.mjs +51 -0
  13. package/esm2022/lib/api/components/chart/chart.config.mjs +2 -0
  14. package/esm2022/lib/api/components/chart/chart.model.mjs +2 -0
  15. package/esm2022/lib/api/components/chart/orchart.config.mjs +2 -0
  16. package/esm2022/lib/api/components/chart/orchartnode.mjs +2 -0
  17. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +2 -0
  18. package/esm2022/lib/api/components/step/step.model.mjs +2 -0
  19. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +2 -0
  20. package/esm2022/lib/api/components/table/action-item.mjs +2 -0
  21. package/esm2022/lib/api/components/table/kv-menuitem.mjs +46 -0
  22. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +2 -0
  23. package/esm2022/lib/api/components/table/table.config.column.mjs +2 -0
  24. package/esm2022/lib/api/components/table/table.config.mjs +2 -0
  25. package/esm2022/lib/api/components/table/table.paginate.mjs +10 -0
  26. package/esm2022/lib/api/components/table/tabledit.config.mjs +2 -0
  27. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +2 -0
  28. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +2 -0
  29. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +3 -0
  30. package/esm2022/lib/api/directives/directives.module.mjs +30 -0
  31. package/esm2022/lib/api/directives/drag/drag.directive.mjs +52 -0
  32. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +31 -0
  33. package/esm2022/lib/api/directives/template/template.directive.mjs +24 -0
  34. package/esm2022/lib/api/helpers/component-providers.mjs +16 -0
  35. package/esm2022/lib/api/helpers/keevo-validators.mjs +144 -0
  36. package/esm2022/lib/api/helpers/severity-color.mjs +73 -0
  37. package/esm2022/lib/api/helpers/translate-primeng.mjs +23 -0
  38. package/esm2022/lib/api/modules/primeng.module.mjs +283 -0
  39. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +47 -0
  40. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +25 -0
  41. package/esm2022/lib/api/pipes/mask.pipe.mjs +29 -0
  42. package/esm2022/lib/api/pipes/pipes.module.mjs +39 -0
  43. package/esm2022/lib/api/pipes/telefone.pipe.mjs +45 -0
  44. package/esm2022/lib/api/services/base.api.service.mjs +74 -0
  45. package/esm2022/lib/api/services/breadcrumbs.service.mjs +62 -0
  46. package/esm2022/lib/api/services/chat.service.mjs +37 -0
  47. package/esm2022/lib/api/services/component.service.mjs +37 -0
  48. package/esm2022/lib/api/services/docs.service.mjs +129 -0
  49. package/esm2022/lib/api/services/form.service.mjs +95 -0
  50. package/esm2022/lib/api/services/image.cutter.service.mjs +193 -0
  51. package/esm2022/lib/api/services/imagens.service.mjs +28 -0
  52. package/esm2022/lib/api/services/notification.service.mjs +69 -0
  53. package/esm2022/lib/api/services/object.service.mjs +39 -0
  54. package/esm2022/lib/api/services/orgchart.service.mjs +64 -0
  55. package/esm2022/lib/api/services/pdf.service.mjs +48 -0
  56. package/esm2022/lib/api/types/breadcrumb.model.mjs +2 -0
  57. package/esm2022/lib/api/types/severity.mjs +2 -0
  58. package/esm2022/lib/components/keevo-components.module.mjs +232 -0
  59. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +142 -0
  60. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +55 -0
  61. package/esm2022/lib/components/kv-button/kv-button.component.mjs +51 -0
  62. package/esm2022/lib/components/kv-button/kv-button.module.mjs +28 -0
  63. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +25 -0
  64. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +39 -0
  65. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +17 -0
  66. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +17 -0
  67. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +39 -0
  68. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +60 -0
  69. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +31 -0
  70. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +34 -0
  71. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +28 -0
  72. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +166 -0
  73. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +32 -0
  74. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.mjs +32 -0
  75. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.mjs +22 -0
  76. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +185 -0
  77. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +44 -0
  78. package/esm2022/lib/components/kv-error/kv-error.component.mjs +26 -0
  79. package/esm2022/lib/components/kv-error/kv-error.module.mjs +35 -0
  80. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +191 -0
  81. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +23 -0
  82. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +46 -0
  83. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +20 -0
  84. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +68 -0
  85. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +24 -0
  86. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +29 -0
  87. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +34 -0
  88. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.component.mjs +103 -0
  89. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.module.mjs +31 -0
  90. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.pipe.mjs +30 -0
  91. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +26 -0
  92. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +28 -0
  93. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +11 -0
  94. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +19 -0
  95. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +27 -0
  96. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +32 -0
  97. package/esm2022/lib/components/kv-icon/kv-icon.component.mjs +30 -0
  98. package/esm2022/lib/components/kv-icon/kv-icon.model.mjs +2 -0
  99. package/esm2022/lib/components/kv-icon/kv-icon.module.mjs +24 -0
  100. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +136 -0
  101. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +18 -0
  102. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +29 -0
  103. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +102 -0
  104. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.mjs +18 -0
  105. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.mjs +40 -0
  106. package/esm2022/lib/components/kv-inputs/kv-editor/config/kv-editor.config.mjs +110 -0
  107. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +271 -0
  108. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.mjs +7 -0
  109. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.mjs +135 -0
  110. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.mjs +168 -0
  111. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.mjs +78 -0
  112. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.mjs +95 -0
  113. package/esm2022/lib/components/kv-inputs/kv-editor/types/kv-editor.types.mjs +2 -0
  114. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +168 -0
  115. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +30 -0
  116. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +59 -0
  117. package/esm2022/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.mjs +66 -0
  118. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +33 -0
  119. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +38 -0
  120. package/esm2022/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.mjs +42 -0
  121. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +50 -0
  122. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +43 -0
  123. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +24 -0
  124. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +165 -0
  125. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +60 -0
  126. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +60 -0
  127. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +46 -0
  128. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +37 -0
  129. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +42 -0
  130. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +58 -0
  131. package/esm2022/lib/components/kv-label/kv-label.component.mjs +15 -0
  132. package/esm2022/lib/components/kv-label/kv-label.module.mjs +24 -0
  133. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +28 -0
  134. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +72 -0
  135. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +433 -0
  136. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +15 -0
  137. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +16 -0
  138. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +28 -0
  139. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +29 -0
  140. package/esm2022/lib/components/kv-login/kv-login.component.mjs +62 -0
  141. package/esm2022/lib/components/kv-login/kv-login.module.mjs +47 -0
  142. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +98 -0
  143. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +20 -0
  144. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +225 -0
  145. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +59 -0
  146. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +190 -0
  147. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +41 -0
  148. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +205 -0
  149. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +51 -0
  150. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +386 -0
  151. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +39 -0
  152. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +58 -0
  153. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +28 -0
  154. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.mjs +62 -0
  155. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.mjs +28 -0
  156. package/esm2022/lib/components/kv-report/kv-report.component.mjs +44 -0
  157. package/esm2022/lib/components/kv-report/kv-report.module.mjs +24 -0
  158. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +74 -0
  159. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +47 -0
  160. package/esm2022/lib/components/kv-steps/kv-steps.component.mjs +105 -0
  161. package/esm2022/lib/components/kv-table/kv-table.component.mjs +673 -0
  162. package/esm2022/lib/components/kv-table/kv-table.module.mjs +40 -0
  163. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +341 -0
  164. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +45 -0
  165. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +516 -0
  166. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +40 -0
  167. package/esm2022/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.mjs +17 -0
  168. package/esm2022/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.mjs +18 -0
  169. package/esm2022/lib/components/kv-table-viewer/kv-table-viewer.component.mjs +184 -0
  170. package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +18 -0
  171. package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +24 -0
  172. package/esm2022/lib/components/kv-tags/kv-tags.component.mjs +35 -0
  173. package/esm2022/lib/components/kv-tags/kv-tags.module.mjs +27 -0
  174. package/esm2022/lib/components/kv-timeline/kv-timeline.component.mjs +71 -0
  175. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +334 -0
  176. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +39 -0
  177. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +70 -0
  178. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +28 -0
  179. package/esm2022/lib/components/kv-widget-card/kv-widget-card.component.mjs +103 -0
  180. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +40 -0
  181. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +68 -0
  182. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +22 -0
  183. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +78 -0
  184. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +87 -0
  185. package/esm2022/public-api.mjs +303 -0
  186. package/fesm2022/keevo-components.mjs +12127 -0
  187. package/fesm2022/keevo-components.mjs.map +1 -0
  188. package/index.d.ts +5 -0
  189. package/lib/api/base-components/base-component-button.d.ts +15 -0
  190. package/lib/api/base-components/base-component-chart.d.ts +40 -0
  191. package/lib/api/base-components/base-component-crud-form.d.ts +149 -0
  192. package/lib/api/base-components/base-component-crud-list.d.ts +70 -0
  193. package/lib/api/base-components/base-component-crud.d.ts +36 -0
  194. package/lib/api/base-components/base-component-dropdown-external.d.ts +15 -0
  195. package/lib/api/base-components/base-component-dropdown.d.ts +57 -0
  196. package/lib/api/base-components/base-component-input.d.ts +33 -0
  197. package/lib/api/base-components/base-component-multi-select.d.ts +40 -0
  198. package/lib/api/base-components/base-component-table.d.ts +88 -0
  199. package/lib/api/base-components/base-component.d.ts +22 -0
  200. package/lib/api/components/chart/chart.config.d.ts +14 -0
  201. package/lib/api/components/chart/chart.model.d.ts +12 -0
  202. package/lib/api/components/chart/orchart.config.d.ts +41 -0
  203. package/lib/api/components/chart/orchartnode.d.ts +34 -0
  204. package/lib/api/components/dropdown/filtro.combo.d.ts +4 -0
  205. package/{src/lib/api/components/step/step.model.ts → lib/api/components/step/step.model.d.ts} +13 -15
  206. package/lib/api/components/stepper/kv-stepperpanel.d.ts +9 -0
  207. package/lib/api/components/table/action-item.d.ts +13 -0
  208. package/lib/api/components/table/kv-menuitem.d.ts +152 -0
  209. package/lib/api/components/table/table-dropdown-control.d.ts +6 -0
  210. package/lib/api/components/table/table.config.column.d.ts +38 -0
  211. package/lib/api/components/table/table.config.d.ts +36 -0
  212. package/lib/api/components/table/table.paginate.d.ts +10 -0
  213. package/{src/lib/api/components/table/tabledit.config.ts → lib/api/components/table/tabledit.config.d.ts} +8 -9
  214. package/lib/api/components/table/tableedit.config.column.d.ts +11 -0
  215. package/lib/api/components/tree-table/tree-table-keys.d.ts +12 -0
  216. package/lib/api/components/tree-table/tree-table.config.d.ts +31 -0
  217. package/lib/api/directives/directives.module.d.ts +9 -0
  218. package/lib/api/directives/drag/drag.directive.d.ts +11 -0
  219. package/lib/api/directives/stepper/dynamicinput.directive.d.ts +15 -0
  220. package/lib/api/directives/template/template.directive.d.ts +11 -0
  221. package/lib/api/helpers/component-providers.d.ts +2 -0
  222. package/lib/api/helpers/keevo-validators.d.ts +18 -0
  223. package/lib/api/helpers/severity-color.d.ts +5 -0
  224. package/lib/api/helpers/translate-primeng.d.ts +4 -0
  225. package/lib/api/modules/primeng.module.d.ts +69 -0
  226. package/lib/api/pipes/capitalize.pipe.d.ts +10 -0
  227. package/lib/api/pipes/cpfcnpj.pipe.d.ts +7 -0
  228. package/lib/api/pipes/mask.pipe.d.ts +7 -0
  229. package/lib/api/pipes/pipes.module.d.ts +11 -0
  230. package/lib/api/pipes/telefone.pipe.d.ts +7 -0
  231. package/lib/api/services/base.api.service.d.ts +25 -0
  232. package/lib/api/services/breadcrumbs.service.d.ts +16 -0
  233. package/lib/api/services/chat.service.d.ts +17 -0
  234. package/lib/api/services/component.service.d.ts +11 -0
  235. package/lib/api/services/docs.service.d.ts +12 -0
  236. package/lib/api/services/form.service.d.ts +31 -0
  237. package/lib/api/services/image.cutter.service.d.ts +16 -0
  238. package/lib/api/services/imagens.service.d.ts +10 -0
  239. package/lib/api/services/notification.service.d.ts +26 -0
  240. package/lib/api/services/object.service.d.ts +9 -0
  241. package/lib/api/services/orgchart.service.d.ts +20 -0
  242. package/lib/api/services/pdf.service.d.ts +7 -0
  243. package/lib/api/types/breadcrumb.model.d.ts +5 -0
  244. package/{src/lib/api/types/severity.ts → lib/api/types/severity.d.ts} +2 -3
  245. package/lib/components/keevo-components.module.d.ts +38 -0
  246. package/lib/components/kv-avatar/kv-avatar.component.d.ts +36 -0
  247. package/lib/components/kv-avatar/kv-avatar.module.d.ts +15 -0
  248. package/lib/components/kv-button/kv-button.component.d.ts +24 -0
  249. package/lib/components/kv-button/kv-button.module.d.ts +9 -0
  250. package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +11 -0
  251. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +19 -0
  252. package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +7 -0
  253. package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +7 -0
  254. package/lib/components/kv-buttons/kv-button.module.d.ts +11 -0
  255. package/lib/components/kv-card-selection/kv-card-selection.component.d.ts +25 -0
  256. package/lib/components/kv-card-selection/kv-card-selection.module.d.ts +10 -0
  257. package/lib/components/kv-carousel/kv-carousel.component.d.ts +17 -0
  258. package/lib/components/kv-carousel/kv-carousel.module.d.ts +9 -0
  259. package/lib/components/kv-chart/kv-chart.component.d.ts +57 -0
  260. package/lib/components/kv-chart/kv-chart.module.d.ts +10 -0
  261. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.d.ts +12 -0
  262. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.d.ts +10 -0
  263. package/lib/components/kv-content-viewer/kv-content-viewer.component.d.ts +56 -0
  264. package/lib/components/kv-content-viewer/kv-content-viewer.module.d.ts +14 -0
  265. package/lib/components/kv-error/kv-error.component.d.ts +12 -0
  266. package/lib/components/kv-error/kv-error.module.d.ts +10 -0
  267. package/lib/components/kv-file-upload/kv-file-upload.component.d.ts +35 -0
  268. package/lib/components/kv-file-upload/kv-file-upload.module.d.ts +10 -0
  269. package/lib/components/kv-file-viewer/kv-file-viewer.component.d.ts +21 -0
  270. package/lib/components/kv-file-viewer/kv-file-viewer.module.d.ts +8 -0
  271. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.d.ts +24 -0
  272. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.d.ts +9 -0
  273. package/lib/components/kv-filter-card/kv-filter-card.component.d.ts +13 -0
  274. package/lib/components/kv-filter-card/kv-filter-card.module.d.ts +10 -0
  275. package/lib/components/kv-filter-cards/kv-filter-cards.component.d.ts +32 -0
  276. package/lib/components/kv-filter-cards/kv-filter-cards.module.d.ts +9 -0
  277. package/lib/components/kv-filter-cards/kv-filter-cards.pipe.d.ts +7 -0
  278. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.d.ts +10 -0
  279. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.d.ts +9 -0
  280. package/lib/components/kv-g-icon/kv-g-icon.component.d.ts +5 -0
  281. package/lib/components/kv-g-icon/kv-g-icon.module.d.ts +9 -0
  282. package/lib/components/kv-home-card/kv-home-card.component.d.ts +24 -0
  283. package/lib/components/kv-home-card/kv-home-card.module.d.ts +11 -0
  284. package/lib/components/kv-icon/kv-icon.component.d.ts +22 -0
  285. package/{src/lib/components/kv-icon/kv-icon.model.ts → lib/components/kv-icon/kv-icon.model.d.ts} +3 -3
  286. package/lib/components/kv-icon/kv-icon.module.d.ts +8 -0
  287. package/lib/components/kv-image-upload/kv-image-upload.component.d.ts +34 -0
  288. package/lib/components/kv-image-upload/kv-image-upload.module.d.ts +8 -0
  289. package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +12 -0
  290. package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +33 -0
  291. package/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.d.ts +8 -0
  292. package/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.d.ts +14 -0
  293. package/lib/components/kv-inputs/kv-editor/config/kv-editor.config.d.ts +55 -0
  294. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +70 -0
  295. package/{src/lib/components/kv-inputs/kv-editor/kv-editor.ts → lib/components/kv-inputs/kv-editor/kv-editor.d.ts} +6 -6
  296. package/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.d.ts +41 -0
  297. package/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.d.ts +41 -0
  298. package/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.d.ts +28 -0
  299. package/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.d.ts +45 -0
  300. package/lib/components/kv-inputs/kv-editor/types/kv-editor.types.d.ts +32 -0
  301. package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +34 -0
  302. package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +12 -0
  303. package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +19 -0
  304. package/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.d.ts +21 -0
  305. package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +13 -0
  306. package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +11 -0
  307. package/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.d.ts +13 -0
  308. package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +18 -0
  309. package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +16 -0
  310. package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +10 -0
  311. package/lib/components/kv-inputs/kv-inputs.module.d.ts +38 -0
  312. package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +20 -0
  313. package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +20 -0
  314. package/lib/components/kv-inputs/kv-select-button/kv-select-button.component.d.ts +19 -0
  315. package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +26 -0
  316. package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +16 -0
  317. package/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.d.ts +25 -0
  318. package/lib/components/kv-label/kv-label.component.d.ts +7 -0
  319. package/lib/components/kv-label/kv-label.module.d.ts +8 -0
  320. package/lib/components/kv-layout/dropdown-master/dropdown-master.component.d.ts +12 -0
  321. package/lib/components/kv-layout/kv-layout.module.d.ts +18 -0
  322. package/lib/components/kv-layout/layout/kv-layout.component.d.ts +156 -0
  323. package/lib/components/kv-layout/top-icons/top-icons.component.d.ts +16 -0
  324. package/lib/components/kv-loader/kv-loader.component.d.ts +7 -0
  325. package/lib/components/kv-loader/kv-loader.module.d.ts +9 -0
  326. package/lib/components/kv-loader/kv-loader.service.d.ts +10 -0
  327. package/lib/components/kv-login/kv-login.component.d.ts +32 -0
  328. package/lib/components/kv-login/kv-login.module.d.ts +13 -0
  329. package/lib/components/kv-modal/kv-modal.component.d.ts +27 -0
  330. package/lib/components/kv-modal/kv-modal.module.d.ts +10 -0
  331. package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +45 -0
  332. package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +17 -0
  333. package/lib/components/kv-page-form/kv-page-form.component.d.ts +98 -0
  334. package/lib/components/kv-page-form/kv-page-form.module.d.ts +12 -0
  335. package/lib/components/kv-page-stepper/kv-page-stepper.component.d.ts +84 -0
  336. package/lib/components/kv-page-stepper/kv-page-stepper.module.d.ts +14 -0
  337. package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +70 -0
  338. package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +11 -0
  339. package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +67 -0
  340. package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +9 -0
  341. package/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.d.ts +71 -0
  342. package/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.d.ts +9 -0
  343. package/lib/components/kv-report/kv-report.component.d.ts +18 -0
  344. package/lib/components/kv-report/kv-report.module.d.ts +8 -0
  345. package/lib/components/kv-stepper/kv-stepper.component.d.ts +32 -0
  346. package/lib/components/kv-stepper/kv-stepper.module.d.ts +13 -0
  347. package/lib/components/kv-steps/kv-steps.component.d.ts +21 -0
  348. package/lib/components/kv-table/kv-table.component.d.ts +154 -0
  349. package/lib/components/kv-table/kv-table.module.d.ts +12 -0
  350. package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +66 -0
  351. package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +15 -0
  352. package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +119 -0
  353. package/lib/components/kv-table-expandable/kv-table-expandable.module.d.ts +13 -0
  354. package/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.d.ts +8 -0
  355. package/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.d.ts +7 -0
  356. package/lib/components/kv-table-viewer/kv-table-viewer.component.d.ts +72 -0
  357. package/lib/components/kv-tag/kv-tag.component.d.ts +7 -0
  358. package/lib/components/kv-tag/kv-tag.module.d.ts +8 -0
  359. package/lib/components/kv-tags/kv-tags.component.d.ts +31 -0
  360. package/lib/components/kv-tags/kv-tags.module.d.ts +8 -0
  361. package/lib/components/kv-timeline/kv-timeline.component.d.ts +18 -0
  362. package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +87 -0
  363. package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +11 -0
  364. package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +21 -0
  365. package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +9 -0
  366. package/lib/components/kv-widget-card/kv-widget-card.component.d.ts +60 -0
  367. package/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.d.ts +14 -0
  368. package/lib/components/kv-workspace/kv-workspace.module.d.ts +19 -0
  369. package/lib/components/kv-workspace/logo/kv-workspace-logo.component.d.ts +11 -0
  370. package/lib/components/kv-workspace/master/kv-workspace-master.component.d.ts +25 -0
  371. package/lib/components/kv-workspace/workspace/kv-workspace.component.d.ts +37 -0
  372. package/package.json +42 -32
  373. package/{src/public-api.ts → public-api.d.ts} +298 -361
  374. package/src/lib/components/kv-table/kv-table.component.scss +4 -4
  375. package/ng-package.json +0 -14
  376. package/src/assets/.gitkeep +0 -0
  377. package/src/index.ts +0 -1
  378. package/src/lib/api/base-components/base-component-button.ts +0 -29
  379. package/src/lib/api/base-components/base-component-chart.ts +0 -118
  380. package/src/lib/api/base-components/base-component-crud-form.ts +0 -377
  381. package/src/lib/api/base-components/base-component-crud-list.ts +0 -129
  382. package/src/lib/api/base-components/base-component-crud.ts +0 -92
  383. package/src/lib/api/base-components/base-component-dropdown-external.ts +0 -29
  384. package/src/lib/api/base-components/base-component-dropdown-new.ts +0 -112
  385. package/src/lib/api/base-components/base-component-dropdown.ts +0 -257
  386. package/src/lib/api/base-components/base-component-input.ts +0 -121
  387. package/src/lib/api/base-components/base-component-multi-select.ts +0 -187
  388. package/src/lib/api/base-components/base-component-table.ts +0 -366
  389. package/src/lib/api/base-components/base-component.ts +0 -47
  390. package/src/lib/api/components/chart/chart.config.ts +0 -15
  391. package/src/lib/api/components/chart/chart.model.ts +0 -12
  392. package/src/lib/api/components/chart/orchart.config.ts +0 -51
  393. package/src/lib/api/components/chart/orchartnode.ts +0 -44
  394. package/src/lib/api/components/dropdown/filtro.combo.ts +0 -4
  395. package/src/lib/api/components/stepper/kv-stepperpanel.ts +0 -10
  396. package/src/lib/api/components/table/action-item.ts +0 -13
  397. package/src/lib/api/components/table/kv-menuitem.ts +0 -198
  398. package/src/lib/api/components/table/table-dropdown-control.ts +0 -6
  399. package/src/lib/api/components/table/table.config.column.ts +0 -38
  400. package/src/lib/api/components/table/table.config.ts +0 -39
  401. package/src/lib/api/components/table/table.paginate.ts +0 -7
  402. package/src/lib/api/components/table/tableedit.config.column.ts +0 -12
  403. package/src/lib/api/components/tree-table/tree-table-keys.ts +0 -12
  404. package/src/lib/api/components/tree-table/tree-table.config.ts +0 -34
  405. package/src/lib/api/directives/directives.module.ts +0 -19
  406. package/src/lib/api/directives/drag/drag.directive.ts +0 -40
  407. package/src/lib/api/directives/stepper/dynamicinput.directive.ts +0 -23
  408. package/src/lib/api/directives/template/template.directive.ts +0 -15
  409. package/src/lib/api/helpers/component-providers.ts +0 -16
  410. package/src/lib/api/helpers/keevo-validators.ts +0 -174
  411. package/src/lib/api/helpers/severity-color.ts +0 -77
  412. package/src/lib/api/helpers/translate-primeng.ts +0 -25
  413. package/src/lib/api/modules/primeng.module.ts +0 -144
  414. package/src/lib/api/pipes/capitalize.pipe.ts +0 -47
  415. package/src/lib/api/pipes/cpfcnpj.pipe.ts +0 -21
  416. package/src/lib/api/pipes/mask.pipe.ts +0 -24
  417. package/src/lib/api/pipes/pipes.module.ts +0 -26
  418. package/src/lib/api/pipes/telefone.pipe.ts +0 -38
  419. package/src/lib/api/services/base.api.service.ts +0 -115
  420. package/src/lib/api/services/breadcrumbs.service.ts +0 -71
  421. package/src/lib/api/services/chat.service.ts +0 -39
  422. package/src/lib/api/services/component.service.ts +0 -44
  423. package/src/lib/api/services/docs.service.ts +0 -129
  424. package/src/lib/api/services/form.service.ts +0 -139
  425. package/src/lib/api/services/image.cutter.service.ts +0 -290
  426. package/src/lib/api/services/imagens.service.ts +0 -28
  427. package/src/lib/api/services/notification.service.ts +0 -88
  428. package/src/lib/api/services/object.service.ts +0 -33
  429. package/src/lib/api/services/orgchart.service.ts +0 -77
  430. package/src/lib/api/services/pdf.service.ts +0 -54
  431. package/src/lib/api/types/breadcrumb.model.ts +0 -5
  432. package/src/lib/api/types/stimulsoft.reports.d.ts +0 -67463
  433. package/src/lib/components/keevo-components.module.ts +0 -105
  434. package/src/lib/components/kv-avatar/kv-avatar.component.html +0 -75
  435. package/src/lib/components/kv-avatar/kv-avatar.component.scss +0 -162
  436. package/src/lib/components/kv-avatar/kv-avatar.component.spec.ts +0 -23
  437. package/src/lib/components/kv-avatar/kv-avatar.component.ts +0 -165
  438. package/src/lib/components/kv-avatar/kv-avatar.module.ts +0 -32
  439. package/src/lib/components/kv-button/kv-button.component.html +0 -26
  440. package/src/lib/components/kv-button/kv-button.component.spec.ts +0 -23
  441. package/src/lib/components/kv-button/kv-button.component.ts +0 -55
  442. package/src/lib/components/kv-button/kv-button.module.ts +0 -20
  443. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.html +0 -14
  444. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.scss +0 -6
  445. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.ts +0 -25
  446. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.html +0 -13
  447. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.scss +0 -33
  448. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.ts +0 -41
  449. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.html +0 -12
  450. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.scss +0 -18
  451. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.ts +0 -14
  452. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.html +0 -11
  453. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.scss +0 -17
  454. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.ts +0 -14
  455. package/src/lib/components/kv-buttons/kv-button.module.ts +0 -26
  456. package/src/lib/components/kv-card-selection/kv-card-selection.component.html +0 -63
  457. package/src/lib/components/kv-card-selection/kv-card-selection.component.scss +0 -54
  458. package/src/lib/components/kv-card-selection/kv-card-selection.component.spec.ts +0 -23
  459. package/src/lib/components/kv-card-selection/kv-card-selection.component.ts +0 -73
  460. package/src/lib/components/kv-card-selection/kv-card-selection.module.ts +0 -19
  461. package/src/lib/components/kv-carousel/kv-carousel.component.html +0 -26
  462. package/src/lib/components/kv-carousel/kv-carousel.component.scss +0 -47
  463. package/src/lib/components/kv-carousel/kv-carousel.component.spec.ts +0 -23
  464. package/src/lib/components/kv-carousel/kv-carousel.component.ts +0 -40
  465. package/src/lib/components/kv-carousel/kv-carousel.module.ts +0 -19
  466. package/src/lib/components/kv-chart/kv-chart.component.html +0 -38
  467. package/src/lib/components/kv-chart/kv-chart.component.scss +0 -0
  468. package/src/lib/components/kv-chart/kv-chart.component.spec.ts +0 -28
  469. package/src/lib/components/kv-chart/kv-chart.component.ts +0 -174
  470. package/src/lib/components/kv-chart/kv-chart.module.ts +0 -21
  471. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.html +0 -9
  472. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.scss +0 -7
  473. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.spec.ts +0 -23
  474. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.ts +0 -32
  475. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.ts +0 -14
  476. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.html +0 -229
  477. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.scss +0 -185
  478. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.spec.ts +0 -23
  479. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.ts +0 -171
  480. package/src/lib/components/kv-content-viewer/kv-content-viewer.module.ts +0 -25
  481. package/src/lib/components/kv-error/kv-error.component.html +0 -3
  482. package/src/lib/components/kv-error/kv-error.component.scss +0 -5
  483. package/src/lib/components/kv-error/kv-error.component.ts +0 -27
  484. package/src/lib/components/kv-error/kv-error.module.ts +0 -26
  485. package/src/lib/components/kv-file-upload/kv-file-upload.component.html +0 -134
  486. package/src/lib/components/kv-file-upload/kv-file-upload.component.scss +0 -13
  487. package/src/lib/components/kv-file-upload/kv-file-upload.component.spec.ts +0 -23
  488. package/src/lib/components/kv-file-upload/kv-file-upload.component.ts +0 -200
  489. package/src/lib/components/kv-file-upload/kv-file-upload.module.ts +0 -13
  490. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.html +0 -16
  491. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.scss +0 -18
  492. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.ts +0 -42
  493. package/src/lib/components/kv-file-viewer/kv-file-viewer.module.ts +0 -14
  494. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.html +0 -34
  495. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.scss +0 -17
  496. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.ts +0 -80
  497. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.ts +0 -15
  498. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.html +0 -103
  499. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.scss +0 -153
  500. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.spec.ts +0 -23
  501. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.ts +0 -73
  502. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.module.ts +0 -18
  503. package/src/lib/components/kv-filter-card/kv-filter-card.component.html +0 -12
  504. package/src/lib/components/kv-filter-card/kv-filter-card.component.scss +0 -76
  505. package/src/lib/components/kv-filter-card/kv-filter-card.component.spec.ts +0 -23
  506. package/src/lib/components/kv-filter-card/kv-filter-card.component.ts +0 -18
  507. package/src/lib/components/kv-filter-card/kv-filter-card.module.ts +0 -23
  508. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.html +0 -81
  509. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.scss +0 -197
  510. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.ts +0 -150
  511. package/src/lib/components/kv-filter-cards/kv-filter-cards.module.ts +0 -20
  512. package/src/lib/components/kv-filter-cards/kv-filter-cards.pipe.ts +0 -24
  513. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.html +0 -25
  514. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.scss +0 -22
  515. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.spec.ts +0 -23
  516. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.ts +0 -20
  517. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.ts +0 -20
  518. package/src/lib/components/kv-g-icon/kv-g-icon.component.html +0 -1
  519. package/src/lib/components/kv-g-icon/kv-g-icon.component.scss +0 -0
  520. package/src/lib/components/kv-g-icon/kv-g-icon.component.spec.ts +0 -23
  521. package/src/lib/components/kv-g-icon/kv-g-icon.component.ts +0 -10
  522. package/src/lib/components/kv-g-icon/kv-g-icon.module.ts +0 -11
  523. package/src/lib/components/kv-home-card/kv-home-card.component.html +0 -35
  524. package/src/lib/components/kv-home-card/kv-home-card.component.scss +0 -5
  525. package/src/lib/components/kv-home-card/kv-home-card.component.spec.ts +0 -23
  526. package/src/lib/components/kv-home-card/kv-home-card.component.ts +0 -33
  527. package/src/lib/components/kv-home-card/kv-home-card.module.ts +0 -18
  528. package/src/lib/components/kv-icon/kv-icon.component.html +0 -13
  529. package/src/lib/components/kv-icon/kv-icon.component.scss +0 -69
  530. package/src/lib/components/kv-icon/kv-icon.component.spec.ts +0 -28
  531. package/src/lib/components/kv-icon/kv-icon.component.ts +0 -30
  532. package/src/lib/components/kv-icon/kv-icon.module.ts +0 -16
  533. package/src/lib/components/kv-image-upload/kv-image-upload.component.html +0 -64
  534. package/src/lib/components/kv-image-upload/kv-image-upload.component.scss +0 -0
  535. package/src/lib/components/kv-image-upload/kv-image-upload.component.ts +0 -153
  536. package/src/lib/components/kv-image-upload/kv-image-upload.module.ts +0 -10
  537. package/src/lib/components/kv-inputs/kv-check/kv-check.component.html +0 -12
  538. package/src/lib/components/kv-inputs/kv-check/kv-check.component.scss +0 -38
  539. package/src/lib/components/kv-inputs/kv-check/kv-check.component.ts +0 -32
  540. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.html +0 -87
  541. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.ts +0 -119
  542. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.html +0 -13
  543. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.scss +0 -0
  544. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.spec.ts +0 -23
  545. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.ts +0 -16
  546. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.html +0 -18
  547. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.scss +0 -0
  548. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.ts +0 -41
  549. package/src/lib/components/kv-inputs/kv-editor/config/kv-editor.config.ts +0 -120
  550. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.html +0 -285
  551. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.scss +0 -182
  552. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.ts +0 -311
  553. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.ts +0 -156
  554. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.ts +0 -190
  555. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.spec.ts +0 -126
  556. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.ts +0 -84
  557. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.spec.ts +0 -176
  558. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.ts +0 -101
  559. package/src/lib/components/kv-inputs/kv-editor/types/kv-editor.types.ts +0 -36
  560. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.html +0 -37
  561. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.scss +0 -23
  562. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.ts +0 -197
  563. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.html +0 -24
  564. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.scss +0 -0
  565. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.ts +0 -35
  566. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.html +0 -23
  567. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.scss +0 -0
  568. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.ts +0 -61
  569. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.html +0 -33
  570. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.scss +0 -5
  571. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.ts +0 -63
  572. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.html +0 -24
  573. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.scss +0 -0
  574. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.ts +0 -26
  575. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.html +0 -23
  576. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.scss +0 -18
  577. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.ts +0 -40
  578. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.html +0 -30
  579. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.scss +0 -26
  580. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.ts +0 -38
  581. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.html +0 -53
  582. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.scss +0 -41
  583. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.spec.ts +0 -23
  584. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.ts +0 -48
  585. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.html +0 -23
  586. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.scss +0 -0
  587. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.ts +0 -40
  588. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.html +0 -24
  589. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.scss +0 -0
  590. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.ts +0 -27
  591. package/src/lib/components/kv-inputs/kv-inputs.module.ts +0 -100
  592. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.html +0 -87
  593. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.scss +0 -62
  594. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.ts +0 -54
  595. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.html +0 -19
  596. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.scss +0 -22
  597. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.ts +0 -63
  598. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.html +0 -26
  599. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.scss +0 -5
  600. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.spec.ts +0 -21
  601. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.ts +0 -30
  602. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.html +0 -28
  603. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.scss +0 -61
  604. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.spec.ts +0 -23
  605. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.ts +0 -43
  606. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.html +0 -23
  607. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.scss +0 -35
  608. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.ts +0 -54
  609. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.html +0 -68
  610. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.scss +0 -86
  611. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.ts +0 -59
  612. package/src/lib/components/kv-label/kv-label.component.html +0 -3
  613. package/src/lib/components/kv-label/kv-label.component.scss +0 -15
  614. package/src/lib/components/kv-label/kv-label.component.spec.ts +0 -23
  615. package/src/lib/components/kv-label/kv-label.component.ts +0 -14
  616. package/src/lib/components/kv-label/kv-label.module.ts +0 -17
  617. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.html +0 -25
  618. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.scss +0 -19
  619. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.spec.ts +0 -28
  620. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.ts +0 -34
  621. package/src/lib/components/kv-layout/kv-layout.module.ts +0 -44
  622. package/src/lib/components/kv-layout/layout/kv-layout.component.html +0 -535
  623. package/src/lib/components/kv-layout/layout/kv-layout.component.scss +0 -267
  624. package/src/lib/components/kv-layout/layout/kv-layout.component.spec.ts +0 -23
  625. package/src/lib/components/kv-layout/layout/kv-layout.component.ts +0 -502
  626. package/src/lib/components/kv-layout/top-icons/top-icons.component.html +0 -26
  627. package/src/lib/components/kv-layout/top-icons/top-icons.component.scss +0 -71
  628. package/src/lib/components/kv-layout/top-icons/top-icons.component.spec.ts +0 -23
  629. package/src/lib/components/kv-layout/top-icons/top-icons.component.ts +0 -26
  630. package/src/lib/components/kv-loader/kv-loader.component.html +0 -1
  631. package/src/lib/components/kv-loader/kv-loader.component.ts +0 -11
  632. package/src/lib/components/kv-loader/kv-loader.module.ts +0 -17
  633. package/src/lib/components/kv-loader/kv-loader.service.ts +0 -29
  634. package/src/lib/components/kv-login/kv-login.component.html +0 -101
  635. package/src/lib/components/kv-login/kv-login.component.scss +0 -99
  636. package/src/lib/components/kv-login/kv-login.component.spec.ts +0 -23
  637. package/src/lib/components/kv-login/kv-login.component.ts +0 -97
  638. package/src/lib/components/kv-login/kv-login.module.ts +0 -33
  639. package/src/lib/components/kv-modal/kv-modal.component.html +0 -20
  640. package/src/lib/components/kv-modal/kv-modal.component.scss +0 -37
  641. package/src/lib/components/kv-modal/kv-modal.component.spec.ts +0 -21
  642. package/src/lib/components/kv-modal/kv-modal.component.ts +0 -111
  643. package/src/lib/components/kv-modal/kv-modal.module.ts +0 -12
  644. package/src/lib/components/kv-orgchart/kv-orgchart.component.html +0 -125
  645. package/src/lib/components/kv-orgchart/kv-orgchart.component.scss +0 -73
  646. package/src/lib/components/kv-orgchart/kv-orgchart.component.ts +0 -283
  647. package/src/lib/components/kv-orgchart/kv-orgchart.module.ts +0 -31
  648. package/src/lib/components/kv-page-form/kv-page-form.component.html +0 -91
  649. package/src/lib/components/kv-page-form/kv-page-form.component.scss +0 -100
  650. package/src/lib/components/kv-page-form/kv-page-form.component.spec.ts +0 -28
  651. package/src/lib/components/kv-page-form/kv-page-form.component.ts +0 -206
  652. package/src/lib/components/kv-page-form/kv-page-form.module.ts +0 -33
  653. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.html +0 -276
  654. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.scss +0 -85
  655. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.spec.ts +0 -23
  656. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.ts +0 -223
  657. package/src/lib/components/kv-page-stepper/kv-page-stepper.module.ts +0 -36
  658. package/src/lib/components/kv-pick-list/kv-pick-list.component.html +0 -32
  659. package/src/lib/components/kv-pick-list/kv-pick-list.component.scss +0 -57
  660. package/src/lib/components/kv-pick-list/kv-pick-list.component.spec.ts +0 -26
  661. package/src/lib/components/kv-pick-list/kv-pick-list.component.ts +0 -461
  662. package/src/lib/components/kv-pick-list/kv-pick-list.module.ts +0 -24
  663. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.html +0 -38
  664. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.scss +0 -128
  665. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.spec.ts +0 -21
  666. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.ts +0 -75
  667. package/src/lib/components/kv-progress-bar/kv-progress-bar.module.ts +0 -19
  668. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.html +0 -43
  669. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.scss +0 -130
  670. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.spec.ts +0 -23
  671. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.ts +0 -82
  672. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.ts +0 -18
  673. package/src/lib/components/kv-report/kv-report.component.html +0 -3
  674. package/src/lib/components/kv-report/kv-report.component.scss +0 -14
  675. package/src/lib/components/kv-report/kv-report.component.spec.ts +0 -28
  676. package/src/lib/components/kv-report/kv-report.component.ts +0 -44
  677. package/src/lib/components/kv-report/kv-report.module.ts +0 -18
  678. package/src/lib/components/kv-stepper/kv-stepper.component.html +0 -94
  679. package/src/lib/components/kv-stepper/kv-stepper.component.scss +0 -43
  680. package/src/lib/components/kv-stepper/kv-stepper.component.spec.ts +0 -23
  681. package/src/lib/components/kv-stepper/kv-stepper.component.ts +0 -73
  682. package/src/lib/components/kv-stepper/kv-stepper.module.ts +0 -27
  683. package/src/lib/components/kv-steps/kv-steps.component.html +0 -53
  684. package/src/lib/components/kv-steps/kv-steps.component.scss +0 -120
  685. package/src/lib/components/kv-steps/kv-steps.component.ts +0 -122
  686. package/src/lib/components/kv-table/kv-table.component.html +0 -655
  687. package/src/lib/components/kv-table/kv-table.component.spec.ts +0 -28
  688. package/src/lib/components/kv-table/kv-table.component.ts +0 -792
  689. package/src/lib/components/kv-table/kv-table.module.ts +0 -25
  690. package/src/lib/components/kv-table-edit/kv-table-edit.component.html +0 -913
  691. package/src/lib/components/kv-table-edit/kv-table-edit.component.scss +0 -829
  692. package/src/lib/components/kv-table-edit/kv-table-edit.component.ts +0 -425
  693. package/src/lib/components/kv-table-edit/kv-table-edit.module.ts +0 -31
  694. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.html +0 -634
  695. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.scss +0 -387
  696. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.ts +0 -546
  697. package/src/lib/components/kv-table-expandable/kv-table-expandable.module.ts +0 -22
  698. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.html +0 -25
  699. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.scss +0 -0
  700. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.spec.ts +0 -23
  701. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.ts +0 -17
  702. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.html +0 -20
  703. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.scss +0 -0
  704. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.spec.ts +0 -23
  705. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.ts +0 -14
  706. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.html +0 -164
  707. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.scss +0 -80
  708. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.spec.ts +0 -23
  709. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.ts +0 -183
  710. package/src/lib/components/kv-tag/kv-tag.component.html +0 -3
  711. package/src/lib/components/kv-tag/kv-tag.component.scss +0 -65
  712. package/src/lib/components/kv-tag/kv-tag.component.spec.ts +0 -23
  713. package/src/lib/components/kv-tag/kv-tag.component.ts +0 -16
  714. package/src/lib/components/kv-tag/kv-tag.module.ts +0 -18
  715. package/src/lib/components/kv-tags/kv-tags.component.html +0 -19
  716. package/src/lib/components/kv-tags/kv-tags.component.scss +0 -28
  717. package/src/lib/components/kv-tags/kv-tags.component.ts +0 -64
  718. package/src/lib/components/kv-tags/kv-tags.module.ts +0 -18
  719. package/src/lib/components/kv-timeline/kv-timeline.component.html +0 -28
  720. package/src/lib/components/kv-timeline/kv-timeline.component.scss +0 -6
  721. package/src/lib/components/kv-timeline/kv-timeline.component.spec.ts +0 -23
  722. package/src/lib/components/kv-timeline/kv-timeline.component.ts +0 -77
  723. package/src/lib/components/kv-tree-table/kv-tree-table.component.html +0 -492
  724. package/src/lib/components/kv-tree-table/kv-tree-table.component.scss +0 -187
  725. package/src/lib/components/kv-tree-table/kv-tree-table.component.spec.ts +0 -21
  726. package/src/lib/components/kv-tree-table/kv-tree-table.component.ts +0 -355
  727. package/src/lib/components/kv-tree-table/kv-tree-table.module.ts +0 -23
  728. package/src/lib/components/kv-tree-view/kv-tree-view.component.html +0 -16
  729. package/src/lib/components/kv-tree-view/kv-tree-view.component.scss +0 -19
  730. package/src/lib/components/kv-tree-view/kv-tree-view.component.spec.ts +0 -23
  731. package/src/lib/components/kv-tree-view/kv-tree-view.component.ts +0 -73
  732. package/src/lib/components/kv-tree-view/kv-tree-view.module.ts +0 -19
  733. package/src/lib/components/kv-widget-card/kv-widget-card.component.html +0 -71
  734. package/src/lib/components/kv-widget-card/kv-widget-card.component.scss +0 -27
  735. package/src/lib/components/kv-widget-card/kv-widget-card.component.spec.ts +0 -28
  736. package/src/lib/components/kv-widget-card/kv-widget-card.component.ts +0 -107
  737. package/src/lib/components/kv-widget-card/kv-widget-card.module.ts +0 -20
  738. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.html +0 -22
  739. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.scss +0 -36
  740. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.spec.ts +0 -28
  741. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.ts +0 -41
  742. package/src/lib/components/kv-workspace/kv-workspace.module.ts +0 -45
  743. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.html +0 -20
  744. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.scss +0 -0
  745. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.spec.ts +0 -28
  746. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.ts +0 -18
  747. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.html +0 -35
  748. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.scss +0 -29
  749. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.spec.ts +0 -28
  750. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.ts +0 -98
  751. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.html +0 -63
  752. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.scss +0 -62
  753. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.ts +0 -91
  754. package/tsconfig.lib.json +0 -14
  755. package/tsconfig.lib.prod.json +0 -10
  756. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Configuração padrão para o KV Editor
3
+ * Este arquivo demonstra as melhores práticas de configuração
4
+ */
5
+ /**
6
+ * Configuração padrão do componente KV Editor
7
+ */
8
+ export const DEFAULT_KV_EDITOR_CONFIG = {
9
+ contentType: 'html',
10
+ readonly: false,
11
+ debug: false,
12
+ canvaHeigth: '380px'
13
+ };
14
+ /**
15
+ * Configuração padrão do Quill Editor
16
+ */
17
+ export const DEFAULT_QUILL_CONFIG = {
18
+ theme: 'snow',
19
+ modules: {
20
+ toolbar: '#kv-editor-toolbar',
21
+ },
22
+ readOnly: false,
23
+ debug: false,
24
+ };
25
+ /**
26
+ * Configuração de fontes personalizadas
27
+ */
28
+ export const CUSTOM_FONTS = [
29
+ 'monospace',
30
+ 'roboto',
31
+ 'arial',
32
+ 'times-new-roman',
33
+ 'serif',
34
+ 'inter'
35
+ ];
36
+ /**
37
+ * Configuração de tamanhos de fonte
38
+ */
39
+ export const FONT_SIZES = [
40
+ '15px',
41
+ '20px',
42
+ '30px',
43
+ '40px',
44
+ '50px',
45
+ '70px',
46
+ '90px'
47
+ ];
48
+ /**
49
+ * Configuração de estilos CSS para PDF
50
+ */
51
+ export const PDF_STYLES = `
52
+ <style>
53
+ #temp-pdf-render-area {
54
+ font-family: 'Sans Serif', Arial, sans-serif;
55
+ font-size: 11pt;
56
+ line-height: 1.3;
57
+ text-align: justify;
58
+ }
59
+ #temp-pdf-render-area p {
60
+ min-height: 1.3em;
61
+ margin: 0;
62
+ padding: 0;
63
+ }
64
+ #temp-pdf-render-area h1, #temp-pdf-render-area h2, #temp-pdf-render-area h3,
65
+ #temp-pdf-render-area h4, #temp-pdf-render-area h5, #temp-pdf-render-area h6 {
66
+ page-break-after: avoid;
67
+ }
68
+ #temp-pdf-render-area [style*="text-align: center"] {
69
+ text-align: center !important;
70
+ }
71
+ #temp-pdf-render-area p, #temp-pdf-render-area h1, #temp-pdf-render-area h2,
72
+ #temp-pdf-render-area h3, #temp-pdf-render-area h4, #temp-pdf-render-area h5,
73
+ #temp-pdf-render-area h6, #temp-pdf-render-area blockquote, #temp-pdf-render-area ul,
74
+ #temp-pdf-render-area ol, #temp-pdf-render-area li, #temp-pdf-render-area table,
75
+ #temp-pdf-render-area tr, #temp-pdf-render-area img {
76
+ page-break-inside: avoid;
77
+ }
78
+ </style>
79
+ `;
80
+ /**
81
+ * Configuração de tempo de debounce para auto-save
82
+ */
83
+ export const DEBOUNCE_TIME = 500;
84
+ /**
85
+ * Configuração de URLs CDN
86
+ */
87
+ export const CDN_URLS = {
88
+ quillCss: 'https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css',
89
+ quillJs: 'https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js',
90
+ robotoFont: 'https://fonts.googleapis.com/css?family=Roboto'
91
+ };
92
+ /**
93
+ * Configuração de mensagens de erro
94
+ */
95
+ export const ERROR_MESSAGES = {
96
+ pdfGeneration: 'Ocorreu um erro ao gerar o relatório.',
97
+ quillInit: 'Erro ao inicializar o editor.',
98
+ saveError: 'Erro ao salvar o conteúdo.',
99
+ loadError: 'Erro ao carregar o conteúdo.'
100
+ };
101
+ /**
102
+ * Configuração de timeouts
103
+ */
104
+ export const TIMEOUTS = {
105
+ pdfGeneration: 2000,
106
+ editorInit: 1000,
107
+ cssLoad: 5000,
108
+ autoSave: 3000
109
+ };
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZWRpdG9yLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3IvY29uZmlnL2t2LWVkaXRvci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBbUI7SUFDdEQsV0FBVyxFQUFFLE1BQU07SUFDbkIsUUFBUSxFQUFFLEtBQUs7SUFDZixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxPQUFPO0NBQ3JCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFpQztJQUNoRSxLQUFLLEVBQUUsTUFBTTtJQUNiLE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFDRCxRQUFRLEVBQUUsS0FBSztJQUNmLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFdBQVc7SUFDWCxRQUFRO0lBQ1IsT0FBTztJQUNQLGlCQUFpQjtJQUNqQixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0NBQ1AsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEJ6QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBRWpDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLFFBQVEsRUFBRSw4REFBOEQ7SUFDeEUsT0FBTyxFQUFFLHdEQUF3RDtJQUNqRSxVQUFVLEVBQUUsZ0RBQWdEO0NBQzdELENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixhQUFhLEVBQUUsdUNBQXVDO0lBQ3RELFNBQVMsRUFBRSwrQkFBK0I7SUFDMUMsU0FBUyxFQUFFLDRCQUE0QjtJQUN2QyxTQUFTLEVBQUUsOEJBQThCO0NBQzFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBwYWRyw6NvIHBhcmEgbyBLViBFZGl0b3JcclxuICogRXN0ZSBhcnF1aXZvIGRlbW9uc3RyYSBhcyBtZWxob3JlcyBwcsOhdGljYXMgZGUgY29uZmlndXJhw6fDo29cclxuICovXHJcblxyXG5pbXBvcnQgeyBLdkVkaXRvckNvbmZpZywgS3ZFZGl0b3JRdWlsbENvbmZpZyB9IGZyb20gJy4uL3R5cGVzL2t2LWVkaXRvci50eXBlcyc7XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhw6fDo28gcGFkcsOjbyBkbyBjb21wb25lbnRlIEtWIEVkaXRvclxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfS1ZfRURJVE9SX0NPTkZJRzogS3ZFZGl0b3JDb25maWcgPSB7XHJcbiAgY29udGVudFR5cGU6ICdodG1sJyxcclxuICByZWFkb25seTogZmFsc2UsXHJcbiAgZGVidWc6IGZhbHNlLFxyXG4gIGNhbnZhSGVpZ3RoOiAnMzgwcHgnXHJcbn07XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhw6fDo28gcGFkcsOjbyBkbyBRdWlsbCBFZGl0b3JcclxuICovXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1FVSUxMX0NPTkZJRzogUGFydGlhbDxLdkVkaXRvclF1aWxsQ29uZmlnPiA9IHtcclxuICB0aGVtZTogJ3Nub3cnLFxyXG4gIG1vZHVsZXM6IHtcclxuICAgIHRvb2xiYXI6ICcja3YtZWRpdG9yLXRvb2xiYXInLFxyXG4gIH0sXHJcbiAgcmVhZE9ubHk6IGZhbHNlLFxyXG4gIGRlYnVnOiBmYWxzZSxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBkZSBmb250ZXMgcGVyc29uYWxpemFkYXNcclxuICovXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fRk9OVFMgPSBbXHJcbiAgJ21vbm9zcGFjZScsXHJcbiAgJ3JvYm90bycsXHJcbiAgJ2FyaWFsJyxcclxuICAndGltZXMtbmV3LXJvbWFuJyxcclxuICAnc2VyaWYnLFxyXG4gICdpbnRlcidcclxuXTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBkZSB0YW1hbmhvcyBkZSBmb250ZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEZPTlRfU0laRVMgPSBbXHJcbiAgJzE1cHgnLFxyXG4gICcyMHB4JyxcclxuICAnMzBweCcsXHJcbiAgJzQwcHgnLFxyXG4gICc1MHB4JyxcclxuICAnNzBweCcsXHJcbiAgJzkwcHgnXHJcbl07XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhw6fDo28gZGUgZXN0aWxvcyBDU1MgcGFyYSBQREZcclxuICovXHJcbmV4cG9ydCBjb25zdCBQREZfU1RZTEVTID0gYFxyXG4gIDxzdHlsZT5cclxuICAgICN0ZW1wLXBkZi1yZW5kZXItYXJlYSB7IFxyXG4gICAgICBmb250LWZhbWlseTogJ1NhbnMgU2VyaWYnLCBBcmlhbCwgc2Fucy1zZXJpZjsgXHJcbiAgICAgIGZvbnQtc2l6ZTogMTFwdDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcclxuICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTsgXHJcbiAgICB9XHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgcCB7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDEuM2VtO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICB9XHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDEsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoMiwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGgzLCBcclxuICAgICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoNCwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGg1LCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDYgeyBcclxuICAgICAgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IFxyXG4gICAgfVxyXG4gICAgI3RlbXAtcGRmLXJlbmRlci1hcmVhIFtzdHlsZSo9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIl0ge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBwLCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDEsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoMiwgXHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDMsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoNCwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGg1LCBcclxuICAgICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoNiwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGJsb2NrcXVvdGUsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSB1bCwgXHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgb2wsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBsaSwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIHRhYmxlLCBcclxuICAgICN0ZW1wLXBkZi1yZW5kZXItYXJlYSB0ciwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGltZyB7IFxyXG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IFxyXG4gICAgfVxyXG4gIDwvc3R5bGU+XHJcbmA7XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhw6fDo28gZGUgdGVtcG8gZGUgZGVib3VuY2UgcGFyYSBhdXRvLXNhdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBERUJPVU5DRV9USU1FID0gNTAwO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYcOnw6NvIGRlIFVSTHMgQ0ROXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQ0ROX1VSTFMgPSB7XHJcbiAgcXVpbGxDc3M6ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuc25vdy5jc3MnLFxyXG4gIHF1aWxsSnM6ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuanMnLFxyXG4gIHJvYm90b0ZvbnQ6ICdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvJ1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYcOnw6NvIGRlIG1lbnNhZ2VucyBkZSBlcnJvXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRVJST1JfTUVTU0FHRVMgPSB7XHJcbiAgcGRmR2VuZXJhdGlvbjogJ09jb3JyZXUgdW0gZXJybyBhbyBnZXJhciBvIHJlbGF0w7NyaW8uJyxcclxuICBxdWlsbEluaXQ6ICdFcnJvIGFvIGluaWNpYWxpemFyIG8gZWRpdG9yLicsXHJcbiAgc2F2ZUVycm9yOiAnRXJybyBhbyBzYWx2YXIgbyBjb250ZcO6ZG8uJyxcclxuICBsb2FkRXJyb3I6ICdFcnJvIGFvIGNhcnJlZ2FyIG8gY29udGXDumRvLidcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBkZSB0aW1lb3V0c1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFRJTUVPVVRTID0ge1xyXG4gIHBkZkdlbmVyYXRpb246IDIwMDAsXHJcbiAgZWRpdG9ySW5pdDogMTAwMCxcclxuICBjc3NMb2FkOiA1MDAwLFxyXG4gIGF1dG9TYXZlOiAzMDAwXHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,271 @@
1
+ import { Component, computed, effect, EventEmitter, inject, input, Input, model, Output, signal, ViewChild, } from '@angular/core';
2
+ import { DialogService } from 'primeng/dynamicdialog';
3
+ import { BaseComponentInput } from '../../../api/base-components/base-component-input';
4
+ import { ComponentProviders } from '../../../api/helpers/component-providers';
5
+ import { KvInstrucoesReportComponent } from './components/kv-instrucoes-report/kv-instrucoes-report.component';
6
+ import { KvEditorQuillService, KvEditorRelatorioService, KvEditorMentionService, KvEditorPdfService } from './kv-editor';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../../api/services/component.service";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/forms";
11
+ import * as i4 from "../../kv-error/kv-error.component";
12
+ import * as i5 from "primeng/tooltip";
13
+ import * as i6 from "primeng/divider";
14
+ import * as i7 from "primeng/progressbar";
15
+ import * as i8 from "primeng/overlaypanel";
16
+ import * as i9 from "primeng/skeleton";
17
+ import * as i10 from "../../kv-tags/kv-tags.component";
18
+ export class KvEditorComponent extends BaseComponentInput {
19
+ constructor(componentService) {
20
+ super(componentService);
21
+ // Injeção de serviços
22
+ this.quillService = inject(KvEditorQuillService);
23
+ this.relatorioService = inject(KvEditorRelatorioService);
24
+ this.mentionService = inject(KvEditorMentionService);
25
+ this.pdfService = inject(KvEditorPdfService);
26
+ this.dialogService = inject(DialogService);
27
+ // Propriedades de configuração
28
+ /**
29
+ * @deprecated Essa propriedade não será mais utilizada por esse componente nas próximas versões.
30
+ */
31
+ this.canvaHeigth = '380px';
32
+ this.contentType = 'html';
33
+ this.debug = false;
34
+ // Eventos
35
+ this.onTextChange = new EventEmitter();
36
+ this.onSelectionChange = new EventEmitter();
37
+ this.outputRaw = new EventEmitter();
38
+ this.outputHtml = new EventEmitter();
39
+ // Propriedades internas
40
+ this.updatingEditor = false;
41
+ this.lastSelectionRange = null;
42
+ this.editorReadyPromise = new Promise((resolve) => {
43
+ this.editorReadyResolver = resolve;
44
+ });
45
+ this.htmlDoEditor = '';
46
+ // Signals para controle de estado
47
+ this.initLoadComplete = signal(false);
48
+ this.isLoading = signal(true);
49
+ this.editorToolbarHeight = signal('3rem');
50
+ // tipoVisualizacao = signal<'valor' | 'descricao'>('descricao');
51
+ this.filteredVariables = signal([]);
52
+ this.clearedTemplate = signal(false);
53
+ // Inputs para relatórios
54
+ this.relatorios = input([]);
55
+ this.idRelatorioInitial = model(0);
56
+ this.printButton = input(true);
57
+ this.labelEmptyDropdown = input('Selecione um relatório');
58
+ this.instrucoesTemplate = input(undefined);
59
+ this.showHeader = input(true);
60
+ this.readonly = input(false);
61
+ // Computed properties para relatórios
62
+ this.idRelatorioSelected = computed(() => this.relatorioService.getIdRelatorioSelected());
63
+ this.relatorio = computed(() => this.relatorioService.getRelatorioSelected());
64
+ this.isLoadingPdf = computed(() => this.pdfService.getIsLoadingPdf());
65
+ this.messages = [{ severity: 'info', detail: 'Message Content' }];
66
+ effect(() => {
67
+ let readonly = this.readonly();
68
+ if (this.quill) {
69
+ this.quill.enable(!readonly);
70
+ }
71
+ });
72
+ }
73
+ // Métodos para gerenciar relatórios
74
+ setRelatorioPorId(id) {
75
+ const relatorio = this.relatorioService.setRelatorioPorId(id);
76
+ if (relatorio) {
77
+ this.setRelatorio(relatorio);
78
+ }
79
+ }
80
+ setRelatorio(relatorio) {
81
+ this.clearedTemplate.set(false);
82
+ this.relatorioService.setRelatorio(relatorio);
83
+ const modelo = relatorio.modeloRelatorio || '';
84
+ const variaveis = relatorio.variaveis || [];
85
+ this.htmlDoEditor = this.relatorioService.renderContrato(modelo, variaveis);
86
+ this.updatingEditor = true;
87
+ this.escrevaValor(this.htmlDoEditor);
88
+ }
89
+ ngOnInit() {
90
+ super.ngOnInit();
91
+ // Inicializa os relatórios no serviço
92
+ this.relatorioService.setRelatorios(this.relatorios());
93
+ if (!this.quill) {
94
+ this.handleInit();
95
+ }
96
+ setTimeout(() => {
97
+ this.isLoading.set(false);
98
+ }, 1000);
99
+ if (this.idRelatorioInitial()) {
100
+ this.clearedTemplate.set(false);
101
+ this.setRelatorioPorId(this.idRelatorioInitial());
102
+ }
103
+ else
104
+ this.clearedTemplate.set(true);
105
+ }
106
+ async handleInit() {
107
+ await this.quillService.loadCss();
108
+ this.initializeQuillEditor();
109
+ }
110
+ initializeQuillEditor() {
111
+ const config = {
112
+ theme: 'snow',
113
+ modules: {
114
+ toolbar: '#kv-editor-toolbar',
115
+ },
116
+ placeholder: this.label ? this.label : '',
117
+ readOnly: this.readonly(),
118
+ debug: this.debug,
119
+ };
120
+ this.quill = this.quillService.createQuillInstance('#kv-editor', config);
121
+ this.setupQuillEvents();
122
+ this.editorReadyResolver();
123
+ this.initLoadComplete.set(true);
124
+ setTimeout(() => {
125
+ const control = this.formControl;
126
+ if (control && control.markAsPristine) {
127
+ control.markAsPristine();
128
+ control.markAsUntouched();
129
+ }
130
+ }, 0);
131
+ }
132
+ setupQuillEvents() {
133
+ this.quill.on('selection-change', (range, oldRange, source) => {
134
+ if (range) {
135
+ this.lastSelectionRange = range;
136
+ }
137
+ this.onSelectionChange.emit({
138
+ range: range,
139
+ oldRange: oldRange,
140
+ source: source,
141
+ });
142
+ });
143
+ this.quill.on('text-change', (delta, oldContents, source) => {
144
+ if (this.relatorios().length > 0) {
145
+ this.handleMention();
146
+ }
147
+ if (!this.updatingEditor) {
148
+ this.updatingEditor = false;
149
+ this.escrevaValor(this.quill.getSemanticHTML(), this.quill.getText());
150
+ this.onTextChange.emit({
151
+ delta: delta,
152
+ oldContents: oldContents,
153
+ source: source,
154
+ });
155
+ this.outputRaw.emit(this.quill.getText());
156
+ this.outputHtml.emit(this.quill.getSemanticHTML());
157
+ }
158
+ });
159
+ }
160
+ writeValue(value) {
161
+ this.updatingEditor = true;
162
+ this.escrevaValor(value);
163
+ }
164
+ async escrevaValor(htmlvalue, rawvalue) {
165
+ if (!this.initLoadComplete()) {
166
+ await this.editorReadyPromise;
167
+ }
168
+ if (this.quill) {
169
+ if (this.updatingEditor) {
170
+ this.quill.clipboard.dangerouslyPasteHTML(htmlvalue);
171
+ }
172
+ this.updatingEditor = false;
173
+ this.value = htmlvalue;
174
+ if (rawvalue == "\n" || this.value == "\n") {
175
+ this.value = '';
176
+ }
177
+ }
178
+ else {
179
+ this.updatingEditor = false;
180
+ }
181
+ this.outputHtml.emit(this.quill.getSemanticHTML());
182
+ }
183
+ getEditorSize() {
184
+ let editorFieldHeight = document.getElementById('kv-editor-toolbar')?.offsetHeight;
185
+ if (editorFieldHeight) {
186
+ this.editorToolbarHeight.set(`${editorFieldHeight}px`);
187
+ }
188
+ }
189
+ async openRelatorio() {
190
+ if (this.isLoadingPdf())
191
+ return;
192
+ const htmlContent = this.quill.getSemanticHTML();
193
+ const relatorio = this.relatorio();
194
+ // const tipoVisualizacao = this.tipoVisualizacao();
195
+ await this.pdfService.openRelatorio(htmlContent, relatorio, 'valor');
196
+ }
197
+ // Métodos para sistema de menções
198
+ handleMention() {
199
+ if (!this.relatorio())
200
+ return;
201
+ const result = this.mentionService.handleMention(this.quill, this.relatorio().variaveis);
202
+ this.filteredVariables.set(result.filteredVariables);
203
+ if (result.shouldShowPanel && result.mentionBounds) {
204
+ this.showVariablesPanel(result.mentionBounds);
205
+ }
206
+ else {
207
+ this.closeVariablesPanel();
208
+ }
209
+ }
210
+ showVariablesPanel(bounds) {
211
+ const anchorEl = this.mentionAnchor.nativeElement;
212
+ anchorEl.style.top = `${bounds.top}px`;
213
+ anchorEl.style.left = `${bounds.left}px`;
214
+ this.opVariables.show(null, anchorEl);
215
+ }
216
+ selectVariableFromPanel(variable) {
217
+ this.mentionService.insertVariable(this.quill, variable);
218
+ this.closeVariablesPanel();
219
+ }
220
+ closeVariablesPanel() {
221
+ if (this.opVariables) {
222
+ this.opVariables.hide();
223
+ }
224
+ this.mentionService.closeMention();
225
+ }
226
+ showInstrucoes() {
227
+ this.dialogService.open(KvInstrucoesReportComponent, {
228
+ header: 'Instruções',
229
+ width: '40%',
230
+ height: '30%',
231
+ modal: true,
232
+ closable: true,
233
+ data: {
234
+ template: this.instrucoesTemplate()
235
+ }
236
+ });
237
+ }
238
+ clearTemplate() {
239
+ // Limpa o template do editor
240
+ this.clearedTemplate.set(true);
241
+ this.setRelatorioPorId(0);
242
+ this.writeValue('');
243
+ }
244
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvEditorComponent, deps: [{ token: i1.ComponentService }], target: i0.ɵɵFactoryTarget.Component }); }
245
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvEditorComponent, selector: "kv-editor", inputs: { canvaHeigth: { classPropertyName: "canvaHeigth", publicName: "canvaHeigth", isSignal: false, isRequired: false, transformFunction: null }, contentType: { classPropertyName: "contentType", publicName: "contentType", isSignal: false, isRequired: false, transformFunction: null }, debug: { classPropertyName: "debug", publicName: "debug", isSignal: false, isRequired: false, transformFunction: null }, relatorios: { classPropertyName: "relatorios", publicName: "relatorios", isSignal: true, isRequired: false, transformFunction: null }, idRelatorioInitial: { classPropertyName: "idRelatorioInitial", publicName: "idRelatorioInitial", isSignal: true, isRequired: false, transformFunction: null }, printButton: { classPropertyName: "printButton", publicName: "printButton", isSignal: true, isRequired: false, transformFunction: null }, labelEmptyDropdown: { classPropertyName: "labelEmptyDropdown", publicName: "labelEmptyDropdown", isSignal: true, isRequired: false, transformFunction: null }, instrucoesTemplate: { classPropertyName: "instrucoesTemplate", publicName: "instrucoesTemplate", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onTextChange: "onTextChange", onSelectionChange: "onSelectionChange", outputRaw: "outputRaw", outputHtml: "outputHtml", idRelatorioInitial: "idRelatorioInitialChange" }, providers: ComponentProviders(KvEditorComponent), viewQueries: [{ propertyName: "opVariables", first: true, predicate: ["opVariables"], descendants: true }, { propertyName: "mentionAnchor", first: true, predicate: ["mentionAnchor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"kv-editor-container h-full w-full max-h-full flex flex-column overflow-hidden\"\r\n>\r\n <div\r\n #editor\r\n id=\"kv-editor-toolbar\"\r\n [ngClass]=\"{ 'error-border-toolbar': hasControlError() }\"\r\n class=\"{{ showHeader() ? 'flex' : 'hidden' }} flex-column flex-initial\"\r\n >\r\n @if(relatorios().length > 0) {\r\n <div class=\"flex flex-row justify-content-between\">\r\n <div class=\"flex flex-row gap-2\">\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"op.toggle($event)\"\r\n >\r\n <span\r\n class=\"material-symbols-outlined text-lg text-green-600 font-medium\"\r\n >\r\n contract\r\n </span>\r\n <span class=\"font-semibold text-xs text-gray-600\">{{\r\n !clearedTemplate()\r\n ? relatorio()?.label || labelEmptyDropdown()\r\n : labelEmptyDropdown()\r\n }}</span>\r\n <span class=\"material-symbols-outlined text-lg\">\r\n keyboard_arrow_down\r\n </span>\r\n </div>\r\n\r\n @if(!clearedTemplate()) {\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"clearTemplate()\"\r\n >\r\n <span\r\n class=\"material-symbols-outlined text-lg text-orange-600 font-medium\"\r\n [pTooltip]=\"'Limpar Template'\"\r\n >\r\n layers_clear\r\n </span>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"showInstrucoes()\"\r\n >\r\n <span\r\n class=\"material-symbols-outlined text-lg text-blue-600 font-medium\"\r\n >\r\n info\r\n </span>\r\n <span class=\"font-semibold text-xs text-gray-600\">Instru\u00E7\u00F5es</span>\r\n </div>\r\n </div>\r\n\r\n @if(printButton()) {\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"openRelatorio()\"\r\n >\r\n <span class=\"material-symbols-outlined text-lg font-medium\">\r\n print\r\n </span>\r\n <span class=\"font-semibold text-xs text-gray-600\">Imprimir</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <p-divider class=\"w-full\"></p-divider>\r\n\r\n }\r\n\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-between w-full flex-initial\"\r\n >\r\n @if(isLoading()) {\r\n\r\n <div class=\"flex flex-row align-items-center gap-3 w-full\">\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex-row align-items-center flex-wrap gap-2 {{\r\n isLoading() ? 'hidden' : 'flex'\r\n }} w-full\"\r\n >\r\n <span class=\"ql-formats border-round-md\">\r\n <select class=\"ql-font\">\r\n <option value=\"roboto\">Roboto</option>\r\n <option value=\"arial\">Arial</option>\r\n <option value=\"times-new-roman\">Times New Roman</option>\r\n <option value=\"monospace\">Monospace</option>\r\n <option value=\"inter\">Inter</option>\r\n <option selected>Sans Serif</option>\r\n <option value=\"serif\">Serif</option>\r\n </select>\r\n\r\n <select class=\"ql-header\">\r\n <option value=\"1\">Titulo</option>\r\n <option value=\"2\">Subtitulo</option>\r\n <option selected>Normal</option>\r\n </select>\r\n\r\n <span class=\"ql-format-group\">\r\n <select title=\"Size\" class=\"ql-size\">\r\n <option value=\"15px\">15px</option>\r\n <option value=\"20px\">20px</option>\r\n <option value=\"30px\">30px</option>\r\n <option value=\"40px\">40px</option>\r\n <option value=\"50px\">50px</option>\r\n <option value=\"70px\">70px</option>\r\n <option value=\"90px\">90px</option>\r\n </select>\r\n </span>\r\n </span>\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-bold\"></button>\r\n <button class=\"ql-italic\"></button>\r\n <button class=\"ql-underline\"></button>\r\n <button class=\"ql-strike\"></button>\r\n </span>\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n\r\n @if(true) {\r\n <!-- <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-header\" value=\"1\"></button>\r\n <button class=\"ql-header\" value=\"2\"></button>\r\n </span> -->\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-link\"></button>\r\n <button class=\"ql-image\"></button>\r\n <button class=\"ql-video\"></button>\r\n </span>\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-list\" value=\"ordered\"></button>\r\n <button class=\"ql-list\" value=\"bullet\"></button>\r\n <select class=\"ql-align\"></select>\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n style=\"height: 3px; border-top: none; border-bottom: none\"\r\n [style.borderRight]=\"showHeader() ? '1px solid #e5e7eb' : 'none'\"\r\n [style.borderLeft]=\"showHeader() ? '1px solid #e5e7eb' : 'none'\"\r\n >\r\n @if(isLoadingPdf()) {\r\n <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '3px' }\" />\r\n }\r\n </div>\r\n\r\n <div\r\n id=\"kv-editor\"\r\n class=\"overflow-auto w-full flex-1 scrollstyle w-full\"\r\n [ngClass]=\"{\r\n 'error-border': hasControlError(),\r\n 'pointer-events-none opacity-60': isLoadingPdf()\r\n }\"\r\n [style.borderTop]=\"showHeader() ? 'none' : '1px solid #e5e7eb'\"\r\n ></div>\r\n</div>\r\n<kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n\r\n<!-- <link href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css\" rel=\"stylesheet\" /> -->\r\n<link href=\"https://fonts.googleapis.com/css?family=Roboto\" rel=\"stylesheet\" />\r\n<script src=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js\"></script>\r\n<script src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\"></script>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.bubble.css\"\r\n/>\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css\"\r\n/>\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\"\r\n/>\r\n\r\n<p-overlayPanel #op styleClass=\"overflow-hidden\">\r\n <div\r\n class=\"grid m-0 gap-2 p-2 max-w-20rem overflow-y-auto scrollstyle\"\r\n style=\"max-height: 16rem\"\r\n >\r\n @for(item of relatorios(); track $index) {\r\n <div\r\n class=\"col-12 cursor-pointer hover:bg-gray-100 transition-colors transition-duration-200 border-round-lg shadow-2 flex flex-column gap-2\"\r\n (click)=\"setRelatorio(item)\"\r\n >\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 justify-content-between\"\r\n >\r\n <span class=\"text-sm font-medium w-full\">{{ item.label }}</span>\r\n\r\n <kv-tags\r\n class=\"transition-opacity transition-duration-300 {{\r\n item?.id == idRelatorioSelected() ? 'opacity-100' : 'opacity-0'\r\n }}\"\r\n [tags]=\"[{ label: 'Selecionado', severity: 'primary' }]\"\r\n ></kv-tags>\r\n </div>\r\n <span class=\"text-xs text-gray-500\">{{ item.descricao }}</span>\r\n </div>\r\n }\r\n </div>\r\n</p-overlayPanel>\r\n\r\n<div class=\"kv-editor-container flex flex-column overflow-hidden relative\">\r\n <div\r\n #mentionAnchor\r\n style=\"position: fixed; width: 1px; height: 1px; opacity: 0\"\r\n ></div>\r\n</div>\r\n\r\n<p-overlayPanel\r\n #opVariables\r\n [appendTo]=\"'body'\"\r\n (onHide)=\"closeVariablesPanel()\"\r\n>\r\n <div\r\n class=\"flex flex-column gap-1 p-1 overflow-y-auto scroll-virtual border-round-lg\"\r\n style=\"max-height: 250px; min-width: 250px; background-color: #333333\"\r\n >\r\n @for(variable of filteredVariables(); track variable.id) {\r\n <div\r\n class=\"p-2 cursor-pointer transition-colors transition-duration-200 border-round-lg text-sm text-white option-dropdown\"\r\n (click)=\"selectVariableFromPanel(variable)\"\r\n >\r\n {{ variable.descricao }} (\r\n <span class=\"text-gray-400\">{{ variable.value }}</span> )\r\n </div>\r\n } @empty {\r\n <div class=\"p-2 text-sm text-gray-500\">Nenhuma vari\u00E1vel encontrada.</div>\r\n }\r\n </div>\r\n</p-overlayPanel>\r\n", styles: [":host ::ng-deep .ql-font-roboto{font-family:Roboto,sans-serif}:host ::ng-deep .ql-font-inter{font-family:Inter var,sans-serif}:host ::ng-deep .ql-font-arial{font-family:Arial,Arial,sans-serif}:host ::ng-deep .ql-font-times-new-roman{font-family:Times New Roman,Times,serif}:host ::ng-deep .ql-tooltip.ql-editing[data-mode=video]{transform:translate(40%)}:host ::ng-deep #kv-editor-toolbar{border-radius:6px 6px 0 0;border:1px solid #e5e7eb}:host ::ng-deep #kv-editor{border-radius:0 0 6px 6px;border:1px solid #e5e7eb}.error-border-toolbar{transition:all ease-in .2s;border-top-color:#e24c4c!important;border-bottom-color:#e24c4c!important;border-left-color:#e24c4c!important;border-right-color:#e24c4c!important}.error-border{border-color:#e24c4c!important;transition:all ease-in .2s}:host ::ng-deep .blot-formatter__resize-handle{background:#eaeaea!important}:ng-deep p{text-align:justify!important}::ng-deep .scrollstyle,::ng-deep .ql-editor{overflow-x:hidden}::ng-deep .scrollstyle::-webkit-scrollbar,::ng-deep .ql-editor::-webkit-scrollbar{width:6px}::ng-deep .scrollstyle::-webkit-scrollbar:hover,::ng-deep .ql-editor::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .scrollstyle::-webkit-scrollbar-thumb,::ng-deep .ql-editor::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .scrollstyle:hover::-webkit-scrollbar-thumb,::ng-deep .ql-editor:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .scrollstyle::-webkit-scrollbar-track,::ng-deep .ql-editor::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}:host ::ng-deep .editor-spinner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;display:flex;justify-content:center;align-items:center;z-index:100000;border-radius:inherit}::ng-deep .p-progressbar-indeterminate .p-progressbar-value:after{background:#002542}::ng-deep .p-progressbar-indeterminate .p-progressbar-value:before{background:#002542}::ng-deep .scroll-virtual{overflow-x:hidden}::ng-deep .scroll-virtual::-webkit-scrollbar{width:8px}::ng-deep .scroll-virtual::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .scroll-virtual::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .scroll-virtual:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .scroll-virtual::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}.option-dropdown{background-color:#333;transition:all ease-in .2s}.option-dropdown:hover{background-color:#444}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "component", type: i4.KvErrorComponent, selector: "kv-error", inputs: ["formControl", "hasError"] }, { kind: "directive", type: i5.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i6.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "component", type: i7.ProgressBar, selector: "p-progressBar", inputs: ["value", "showValue", "styleClass", "style", "unit", "mode", "color"] }, { kind: "component", type: i8.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: i9.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "style", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "component", type: i10.KvTagsComponent, selector: "kv-tags", inputs: ["tags", "hover"], outputs: ["onClickTag"] }] }); }
246
+ }
247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvEditorComponent, decorators: [{
248
+ type: Component,
249
+ args: [{ selector: 'kv-editor', providers: ComponentProviders(KvEditorComponent), template: "<div\r\n class=\"kv-editor-container h-full w-full max-h-full flex flex-column overflow-hidden\"\r\n>\r\n <div\r\n #editor\r\n id=\"kv-editor-toolbar\"\r\n [ngClass]=\"{ 'error-border-toolbar': hasControlError() }\"\r\n class=\"{{ showHeader() ? 'flex' : 'hidden' }} flex-column flex-initial\"\r\n >\r\n @if(relatorios().length > 0) {\r\n <div class=\"flex flex-row justify-content-between\">\r\n <div class=\"flex flex-row gap-2\">\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"op.toggle($event)\"\r\n >\r\n <span\r\n class=\"material-symbols-outlined text-lg text-green-600 font-medium\"\r\n >\r\n contract\r\n </span>\r\n <span class=\"font-semibold text-xs text-gray-600\">{{\r\n !clearedTemplate()\r\n ? relatorio()?.label || labelEmptyDropdown()\r\n : labelEmptyDropdown()\r\n }}</span>\r\n <span class=\"material-symbols-outlined text-lg\">\r\n keyboard_arrow_down\r\n </span>\r\n </div>\r\n\r\n @if(!clearedTemplate()) {\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"clearTemplate()\"\r\n >\r\n <span\r\n class=\"material-symbols-outlined text-lg text-orange-600 font-medium\"\r\n [pTooltip]=\"'Limpar Template'\"\r\n >\r\n layers_clear\r\n </span>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"showInstrucoes()\"\r\n >\r\n <span\r\n class=\"material-symbols-outlined text-lg text-blue-600 font-medium\"\r\n >\r\n info\r\n </span>\r\n <span class=\"font-semibold text-xs text-gray-600\">Instru\u00E7\u00F5es</span>\r\n </div>\r\n </div>\r\n\r\n @if(printButton()) {\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 p-2 border-round-lg border-1 border-gray-200 hover:shadow-1 hover:bg-gray-100 cursor-pointer transition-all transition-duration-300\"\r\n (click)=\"openRelatorio()\"\r\n >\r\n <span class=\"material-symbols-outlined text-lg font-medium\">\r\n print\r\n </span>\r\n <span class=\"font-semibold text-xs text-gray-600\">Imprimir</span>\r\n </div>\r\n }\r\n </div>\r\n\r\n <p-divider class=\"w-full\"></p-divider>\r\n\r\n }\r\n\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-between w-full flex-initial\"\r\n >\r\n @if(isLoading()) {\r\n\r\n <div class=\"flex flex-row align-items-center gap-3 w-full\">\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n\r\n <p-skeleton\r\n styleClass=\"w-6rem\"\r\n [style]=\"{ height: '2rem' }\"\r\n ></p-skeleton>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex-row align-items-center flex-wrap gap-2 {{\r\n isLoading() ? 'hidden' : 'flex'\r\n }} w-full\"\r\n >\r\n <span class=\"ql-formats border-round-md\">\r\n <select class=\"ql-font\">\r\n <option value=\"roboto\">Roboto</option>\r\n <option value=\"arial\">Arial</option>\r\n <option value=\"times-new-roman\">Times New Roman</option>\r\n <option value=\"monospace\">Monospace</option>\r\n <option value=\"inter\">Inter</option>\r\n <option selected>Sans Serif</option>\r\n <option value=\"serif\">Serif</option>\r\n </select>\r\n\r\n <select class=\"ql-header\">\r\n <option value=\"1\">Titulo</option>\r\n <option value=\"2\">Subtitulo</option>\r\n <option selected>Normal</option>\r\n </select>\r\n\r\n <span class=\"ql-format-group\">\r\n <select title=\"Size\" class=\"ql-size\">\r\n <option value=\"15px\">15px</option>\r\n <option value=\"20px\">20px</option>\r\n <option value=\"30px\">30px</option>\r\n <option value=\"40px\">40px</option>\r\n <option value=\"50px\">50px</option>\r\n <option value=\"70px\">70px</option>\r\n <option value=\"90px\">90px</option>\r\n </select>\r\n </span>\r\n </span>\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-bold\"></button>\r\n <button class=\"ql-italic\"></button>\r\n <button class=\"ql-underline\"></button>\r\n <button class=\"ql-strike\"></button>\r\n </span>\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n\r\n @if(true) {\r\n <!-- <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-header\" value=\"1\"></button>\r\n <button class=\"ql-header\" value=\"2\"></button>\r\n </span> -->\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-link\"></button>\r\n <button class=\"ql-image\"></button>\r\n <button class=\"ql-video\"></button>\r\n </span>\r\n\r\n <p-divider layout=\"vertical\"></p-divider>\r\n\r\n <span class=\"ql-formats border-round-md\">\r\n <button class=\"ql-list\" value=\"ordered\"></button>\r\n <button class=\"ql-list\" value=\"bullet\"></button>\r\n <select class=\"ql-align\"></select>\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n style=\"height: 3px; border-top: none; border-bottom: none\"\r\n [style.borderRight]=\"showHeader() ? '1px solid #e5e7eb' : 'none'\"\r\n [style.borderLeft]=\"showHeader() ? '1px solid #e5e7eb' : 'none'\"\r\n >\r\n @if(isLoadingPdf()) {\r\n <p-progressBar mode=\"indeterminate\" [style]=\"{ height: '3px' }\" />\r\n }\r\n </div>\r\n\r\n <div\r\n id=\"kv-editor\"\r\n class=\"overflow-auto w-full flex-1 scrollstyle w-full\"\r\n [ngClass]=\"{\r\n 'error-border': hasControlError(),\r\n 'pointer-events-none opacity-60': isLoadingPdf()\r\n }\"\r\n [style.borderTop]=\"showHeader() ? 'none' : '1px solid #e5e7eb'\"\r\n ></div>\r\n</div>\r\n<kv-error [hasError]=\"hasControlError()\">{{ erroMessage() }}</kv-error>\r\n\r\n<!-- <link href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css\" rel=\"stylesheet\" /> -->\r\n<link href=\"https://fonts.googleapis.com/css?family=Roboto\" rel=\"stylesheet\" />\r\n<script src=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js\"></script>\r\n<script src=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js\"></script>\r\n\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.bubble.css\"\r\n/>\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css\"\r\n/>\r\n<link\r\n rel=\"stylesheet\"\r\n href=\"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css\"\r\n/>\r\n\r\n<p-overlayPanel #op styleClass=\"overflow-hidden\">\r\n <div\r\n class=\"grid m-0 gap-2 p-2 max-w-20rem overflow-y-auto scrollstyle\"\r\n style=\"max-height: 16rem\"\r\n >\r\n @for(item of relatorios(); track $index) {\r\n <div\r\n class=\"col-12 cursor-pointer hover:bg-gray-100 transition-colors transition-duration-200 border-round-lg shadow-2 flex flex-column gap-2\"\r\n (click)=\"setRelatorio(item)\"\r\n >\r\n <div\r\n class=\"flex flex-row align-items-center gap-2 justify-content-between\"\r\n >\r\n <span class=\"text-sm font-medium w-full\">{{ item.label }}</span>\r\n\r\n <kv-tags\r\n class=\"transition-opacity transition-duration-300 {{\r\n item?.id == idRelatorioSelected() ? 'opacity-100' : 'opacity-0'\r\n }}\"\r\n [tags]=\"[{ label: 'Selecionado', severity: 'primary' }]\"\r\n ></kv-tags>\r\n </div>\r\n <span class=\"text-xs text-gray-500\">{{ item.descricao }}</span>\r\n </div>\r\n }\r\n </div>\r\n</p-overlayPanel>\r\n\r\n<div class=\"kv-editor-container flex flex-column overflow-hidden relative\">\r\n <div\r\n #mentionAnchor\r\n style=\"position: fixed; width: 1px; height: 1px; opacity: 0\"\r\n ></div>\r\n</div>\r\n\r\n<p-overlayPanel\r\n #opVariables\r\n [appendTo]=\"'body'\"\r\n (onHide)=\"closeVariablesPanel()\"\r\n>\r\n <div\r\n class=\"flex flex-column gap-1 p-1 overflow-y-auto scroll-virtual border-round-lg\"\r\n style=\"max-height: 250px; min-width: 250px; background-color: #333333\"\r\n >\r\n @for(variable of filteredVariables(); track variable.id) {\r\n <div\r\n class=\"p-2 cursor-pointer transition-colors transition-duration-200 border-round-lg text-sm text-white option-dropdown\"\r\n (click)=\"selectVariableFromPanel(variable)\"\r\n >\r\n {{ variable.descricao }} (\r\n <span class=\"text-gray-400\">{{ variable.value }}</span> )\r\n </div>\r\n } @empty {\r\n <div class=\"p-2 text-sm text-gray-500\">Nenhuma vari\u00E1vel encontrada.</div>\r\n }\r\n </div>\r\n</p-overlayPanel>\r\n", styles: [":host ::ng-deep .ql-font-roboto{font-family:Roboto,sans-serif}:host ::ng-deep .ql-font-inter{font-family:Inter var,sans-serif}:host ::ng-deep .ql-font-arial{font-family:Arial,Arial,sans-serif}:host ::ng-deep .ql-font-times-new-roman{font-family:Times New Roman,Times,serif}:host ::ng-deep .ql-tooltip.ql-editing[data-mode=video]{transform:translate(40%)}:host ::ng-deep #kv-editor-toolbar{border-radius:6px 6px 0 0;border:1px solid #e5e7eb}:host ::ng-deep #kv-editor{border-radius:0 0 6px 6px;border:1px solid #e5e7eb}.error-border-toolbar{transition:all ease-in .2s;border-top-color:#e24c4c!important;border-bottom-color:#e24c4c!important;border-left-color:#e24c4c!important;border-right-color:#e24c4c!important}.error-border{border-color:#e24c4c!important;transition:all ease-in .2s}:host ::ng-deep .blot-formatter__resize-handle{background:#eaeaea!important}:ng-deep p{text-align:justify!important}::ng-deep .scrollstyle,::ng-deep .ql-editor{overflow-x:hidden}::ng-deep .scrollstyle::-webkit-scrollbar,::ng-deep .ql-editor::-webkit-scrollbar{width:6px}::ng-deep .scrollstyle::-webkit-scrollbar:hover,::ng-deep .ql-editor::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .scrollstyle::-webkit-scrollbar-thumb,::ng-deep .ql-editor::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .scrollstyle:hover::-webkit-scrollbar-thumb,::ng-deep .ql-editor:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .scrollstyle::-webkit-scrollbar-track,::ng-deep .ql-editor::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}:host ::ng-deep .editor-spinner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#ffffff80;display:flex;justify-content:center;align-items:center;z-index:100000;border-radius:inherit}::ng-deep .p-progressbar-indeterminate .p-progressbar-value:after{background:#002542}::ng-deep .p-progressbar-indeterminate .p-progressbar-value:before{background:#002542}::ng-deep .scroll-virtual{overflow-x:hidden}::ng-deep .scroll-virtual::-webkit-scrollbar{width:8px}::ng-deep .scroll-virtual::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .scroll-virtual::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .scroll-virtual:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .scroll-virtual::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}.option-dropdown{background-color:#333;transition:all ease-in .2s}.option-dropdown:hover{background-color:#444}\n"] }]
250
+ }], ctorParameters: () => [{ type: i1.ComponentService }], propDecorators: { canvaHeigth: [{
251
+ type: Input
252
+ }], contentType: [{
253
+ type: Input
254
+ }], debug: [{
255
+ type: Input
256
+ }], onTextChange: [{
257
+ type: Output
258
+ }], onSelectionChange: [{
259
+ type: Output
260
+ }], outputRaw: [{
261
+ type: Output
262
+ }], outputHtml: [{
263
+ type: Output
264
+ }], opVariables: [{
265
+ type: ViewChild,
266
+ args: ['opVariables']
267
+ }], mentionAnchor: [{
268
+ type: ViewChild,
269
+ args: ['mentionAnchor']
270
+ }] } });
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3Iva3YtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFFTixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUdMLE1BQU0sRUFFTixNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUUvRyxPQUFPLEVBR0wsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ25CLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7QUFRckIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUEwQjtJQUUvRCxZQUFZLGdCQUFrQztRQUM1QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQVUxQixzQkFBc0I7UUFDZCxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLE1BQU0sQ0FB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QUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7OEdBbFJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDBtREFGakIsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsOFBDekNsRCwwdlVBMlJBOzsyRkRoUGEsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLFdBQVcsYUFHVixrQkFBa0IsbUJBQW1CO3FGQTBCdkMsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBc0NtQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBQ0ksYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgZWZmZWN0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBJbnB1dCxcclxuICBtb2RlbCxcclxuICBPbkluaXQsXHJcbiAgb3V0cHV0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgc2lnbmFsLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBRdWlsbCBmcm9tICdxdWlsbCc7XHJcbmltcG9ydCB7IE92ZXJsYXlQYW5lbCB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50SW5wdXQgfSBmcm9tICcuLi8uLi8uLi9hcGkvYmFzZS1jb21wb25lbnRzL2Jhc2UtY29tcG9uZW50LWlucHV0JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UHJvdmlkZXJzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2hlbHBlcnMvY29tcG9uZW50LXByb3ZpZGVycyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcGkvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBLdkluc3RydWNvZXNSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMva3YtaW5zdHJ1Y29lcy1yZXBvcnQva3YtaW5zdHJ1Y29lcy1yZXBvcnQuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7XHJcbiAgS3ZFZGl0b3JSZWxhdG9yaW8sXHJcbiAgS3ZFZGl0b3JWYXJpYXZlbCxcclxuICBLdkVkaXRvclF1aWxsU2VydmljZSxcclxuICBLdkVkaXRvclJlbGF0b3Jpb1NlcnZpY2UsXHJcbiAgS3ZFZGl0b3JNZW50aW9uU2VydmljZSxcclxuICBLdkVkaXRvclBkZlNlcnZpY2VcclxufSBmcm9tICcuL2t2LWVkaXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2t2LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4va3YtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBDb21wb25lbnRQcm92aWRlcnMoS3ZFZGl0b3JDb21wb25lbnQpLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50SW5wdXQ8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbXBvbmVudFNlcnZpY2U6IENvbXBvbmVudFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudFNlcnZpY2UpO1xyXG5cclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGxldCByZWFkb25seSA9IHRoaXMucmVhZG9ubHkoKTtcclxuICAgICAgaWYgKHRoaXMucXVpbGwpIHtcclxuICAgICAgICB0aGlzLnF1aWxsLmVuYWJsZSghcmVhZG9ubHkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIEluamXDp8OjbyBkZSBzZXJ2acOnb3NcclxuICBwcml2YXRlIHF1aWxsU2VydmljZSA9IGluamVjdChLdkVkaXRvclF1aWxsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWxhdG9yaW9TZXJ2aWNlID0gaW5qZWN0KEt2RWRpdG9yUmVsYXRvcmlvU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBtZW50aW9uU2VydmljZSA9IGluamVjdChLdkVkaXRvck1lbnRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIHBkZlNlcnZpY2UgPSBpbmplY3QoS3ZFZGl0b3JQZGZTZXJ2aWNlKTtcclxuICBwcml2YXRlIGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRGlhbG9nU2VydmljZSk7XHJcblxyXG4gIC8vIFByb3ByaWVkYWRlcyBkZSBjb25maWd1cmHDp8Ojb1xyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIEVzc2EgcHJvcHJpZWRhZGUgbsOjbyBzZXLDoSBtYWlzIHV0aWxpemFkYSBwb3IgZXNzZSBjb21wb25lbnRlIG5hcyBwcsOzeGltYXMgdmVyc8O1ZXMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2FudmFIZWlndGg6IHN0cmluZyA9ICczODBweCc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRlbnRUeXBlOiAnaHRtbCcgfCAndGV4dCcgPSAnaHRtbCc7XHJcbiAgQElucHV0KCkgZGVidWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gRXZlbnRvc1xyXG4gIEBPdXRwdXQoKSBvblRleHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG91dHB1dFJhdzogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG91dHB1dEh0bWw6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvLyBQcm9wcmllZGFkZXMgaW50ZXJuYXNcclxuICBwcml2YXRlIHVwZGF0aW5nRWRpdG9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBsYXN0U2VsZWN0aW9uUmFuZ2U6IGFueSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBlZGl0b3JSZWFkeVJlc29sdmVyITogKCkgPT4gdm9pZDtcclxuICBwcml2YXRlIGVkaXRvclJlYWR5UHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICB0aGlzLmVkaXRvclJlYWR5UmVzb2x2ZXIgPSByZXNvbHZlO1xyXG4gIH0pO1xyXG5cclxuICAvLyBJbnN0w6JuY2lhIGRvIFF1aWxsXHJcbiAgcXVpbGwhOiBRdWlsbDtcclxuICBodG1sRG9FZGl0b3IgPSAnJztcclxuXHJcbiAgLy8gU2lnbmFscyBwYXJhIGNvbnRyb2xlIGRlIGVzdGFkb1xyXG4gIGluaXRMb2FkQ29tcGxldGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcclxuICBlZGl0b3JUb29sYmFySGVpZ2h0ID0gc2lnbmFsPHN0cmluZz4oJzNyZW0nKTtcclxuICAvLyB0aXBvVmlzdWFsaXphY2FvID0gc2lnbmFsPCd2YWxvcicgfCAnZGVzY3JpY2FvJz4oJ2Rlc2NyaWNhbycpO1xyXG4gIGZpbHRlcmVkVmFyaWFibGVzID0gc2lnbmFsPEt2RWRpdG9yVmFyaWF2ZWxbXT4oW10pO1xyXG4gIGNsZWFyZWRUZW1wbGF0ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8vIElucHV0cyBwYXJhIHJlbGF0w7NyaW9zXHJcbiAgcmVsYXRvcmlvcyA9IGlucHV0PEt2RWRpdG9yUmVsYXRvcmlvW10+KFtdKTtcclxuICBpZFJlbGF0b3Jpb0luaXRpYWwgPSBtb2RlbDxudW1iZXI+KDApO1xyXG4gIHByaW50QnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgbGFiZWxFbXB0eURyb3Bkb3duID0gaW5wdXQ8c3RyaW5nPignU2VsZWNpb25lIHVtIHJlbGF0w7NyaW8nKTtcclxuICBpbnN0cnVjb2VzVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHNob3dIZWFkZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICByZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblxyXG4gIC8vIENvbXB1dGVkIHByb3BlcnRpZXMgcGFyYSByZWxhdMOzcmlvc1xyXG4gIGlkUmVsYXRvcmlvU2VsZWN0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlbGF0b3Jpb1NlcnZpY2UuZ2V0SWRSZWxhdG9yaW9TZWxlY3RlZCgpKTtcclxuICByZWxhdG9yaW8gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlbGF0b3Jpb1NlcnZpY2UuZ2V0UmVsYXRvcmlvU2VsZWN0ZWQoKSk7XHJcbiAgaXNMb2FkaW5nUGRmID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wZGZTZXJ2aWNlLmdldElzTG9hZGluZ1BkZigpKTtcclxuXHJcbiAgLy8gVmlld0NoaWxkIHBhcmEgb3ZlcmxheSBwYW5lbHNcclxuICBAVmlld0NoaWxkKCdvcFZhcmlhYmxlcycpIG9wVmFyaWFibGVzITogT3ZlcmxheVBhbmVsO1xyXG4gIEBWaWV3Q2hpbGQoJ21lbnRpb25BbmNob3InKSBtZW50aW9uQW5jaG9yITogRWxlbWVudFJlZjtcclxuXHJcbiAgbWVzc2FnZXMgPSBbeyBzZXZlcml0eTogJ2luZm8nLCBkZXRhaWw6ICdNZXNzYWdlIENvbnRlbnQnIH1dO1xyXG5cclxuICAvLyBNw6l0b2RvcyBwYXJhIGdlcmVuY2lhciByZWxhdMOzcmlvc1xyXG4gIHNldFJlbGF0b3Jpb1BvcklkKGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlbGF0b3JpbyA9IHRoaXMucmVsYXRvcmlvU2VydmljZS5zZXRSZWxhdG9yaW9Qb3JJZChpZCk7XHJcbiAgICBpZiAocmVsYXRvcmlvKSB7XHJcbiAgICAgIHRoaXMuc2V0UmVsYXRvcmlvKHJlbGF0b3Jpbyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRSZWxhdG9yaW8ocmVsYXRvcmlvOiBLdkVkaXRvclJlbGF0b3Jpbyk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhcmVkVGVtcGxhdGUuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMucmVsYXRvcmlvU2VydmljZS5zZXRSZWxhdG9yaW8ocmVsYXRvcmlvKTtcclxuICAgIGNvbnN0IG1vZGVsbyA9IHJlbGF0b3Jpby5tb2RlbG9SZWxhdG9yaW8gfHwgJyc7XHJcbiAgICBjb25zdCB2YXJpYXZlaXMgPSByZWxhdG9yaW8udmFyaWF2ZWlzIHx8IFtdO1xyXG5cclxuICAgIHRoaXMuaHRtbERvRWRpdG9yID0gdGhpcy5yZWxhdG9yaW9TZXJ2aWNlLnJlbmRlckNvbnRyYXRvKG1vZGVsbywgdmFyaWF2ZWlzKTtcclxuICAgIHRoaXMudXBkYXRpbmdFZGl0b3IgPSB0cnVlO1xyXG4gICAgdGhpcy5lc2NyZXZhVmFsb3IodGhpcy5odG1sRG9FZGl0b3IpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIC8vIEluaWNpYWxpemEgb3MgcmVsYXTDs3Jpb3Mgbm8gc2VydmnDp29cclxuICAgIHRoaXMucmVsYXRvcmlvU2VydmljZS5zZXRSZWxhdG9yaW9zKHRoaXMucmVsYXRvcmlvcygpKTtcclxuXHJcbiAgICBpZiAoIXRoaXMucXVpbGwpIHtcclxuICAgICAgdGhpcy5oYW5kbGVJbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcbiAgICB9LCAxMDAwKTtcclxuXHJcbiAgICBpZiAodGhpcy5pZFJlbGF0b3Jpb0luaXRpYWwoKSkge1xyXG4gICAgICB0aGlzLmNsZWFyZWRUZW1wbGF0ZS5zZXQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnNldFJlbGF0b3Jpb1BvcklkKHRoaXMuaWRSZWxhdG9yaW9Jbml0aWFsKCkpO1xyXG4gICAgfSBlbHNlIHRoaXMuY2xlYXJlZFRlbXBsYXRlLnNldCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhbmRsZUluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLnF1aWxsU2VydmljZS5sb2FkQ3NzKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVRdWlsbEVkaXRvcigpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVF1aWxsRWRpdG9yKCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlnID0ge1xyXG4gICAgICB0aGVtZTogJ3Nub3cnLFxyXG4gICAgICBtb2R1bGVzOiB7XHJcbiAgICAgICAgdG9vbGJhcjogJyNrdi1lZGl0b3ItdG9vbGJhcicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLmxhYmVsID8gdGhpcy5sYWJlbCA6ICcnLFxyXG4gICAgICByZWFkT25seTogdGhpcy5yZWFkb25seSgpLFxyXG4gICAgICBkZWJ1ZzogdGhpcy5kZWJ1ZyxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5xdWlsbCA9IHRoaXMucXVpbGxTZXJ2aWNlLmNyZWF0ZVF1aWxsSW5zdGFuY2UoJyNrdi1lZGl0b3InLCBjb25maWcpO1xyXG5cclxuICAgIHRoaXMuc2V0dXBRdWlsbEV2ZW50cygpO1xyXG4gICAgdGhpcy5lZGl0b3JSZWFkeVJlc29sdmVyKCk7XHJcbiAgICB0aGlzLmluaXRMb2FkQ29tcGxldGUuc2V0KHRydWUpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5mb3JtQ29udHJvbDtcclxuICAgICAgaWYgKGNvbnRyb2wgJiYgY29udHJvbC5tYXJrQXNQcmlzdGluZSkge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBRdWlsbEV2ZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMucXVpbGwub24oJ3NlbGVjdGlvbi1jaGFuZ2UnLCAocmFuZ2UsIG9sZFJhbmdlLCBzb3VyY2UpID0+IHtcclxuICAgICAgaWYgKHJhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5sYXN0U2VsZWN0aW9uUmFuZ2UgPSByYW5nZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgIHJhbmdlOiByYW5nZSxcclxuICAgICAgICBvbGRSYW5nZTogb2xkUmFuZ2UsXHJcbiAgICAgICAgc291cmNlOiBzb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5xdWlsbC5vbigndGV4dC1jaGFuZ2UnLCAoZGVsdGEsIG9sZENvbnRlbnRzLCBzb3VyY2UpID0+IHtcclxuICAgICAgaWYgKHRoaXMucmVsYXRvcmlvcygpLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmhhbmRsZU1lbnRpb24oKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCF0aGlzLnVwZGF0aW5nRWRpdG9yKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGluZ0VkaXRvciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXNjcmV2YVZhbG9yKHRoaXMucXVpbGwuZ2V0U2VtYW50aWNIVE1MKCksIHRoaXMucXVpbGwuZ2V0VGV4dCgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5vblRleHRDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICBkZWx0YTogZGVsdGEsXHJcbiAgICAgICAgICBvbGRDb250ZW50czogb2xkQ29udGVudHMsXHJcbiAgICAgICAgICBzb3VyY2U6IHNvdXJjZSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5vdXRwdXRSYXcuZW1pdCh0aGlzLnF1aWxsLmdldFRleHQoKSk7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRIdG1sLmVtaXQodGhpcy5xdWlsbC5nZXRTZW1hbnRpY0hUTUwoKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0aW5nRWRpdG9yID0gdHJ1ZTtcclxuICAgIHRoaXMuZXNjcmV2YVZhbG9yKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGVzY3JldmFWYWxvcihodG1sdmFsdWU6IGFueSwgcmF3dmFsdWU/OiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5pbml0TG9hZENvbXBsZXRlKCkpIHtcclxuICAgICAgYXdhaXQgdGhpcy5lZGl0b3JSZWFkeVByb21pc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucXVpbGwpIHtcclxuICAgICAgaWYgKHRoaXMudXBkYXRpbmdFZGl0b3IpIHtcclxuICAgICAgICB0aGlzLnF1aWxsLmNsaXBib2FyZC5kYW5nZXJvdXNseVBhc3RlSFRNTChodG1sdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXBkYXRpbmdFZGl0b3IgPSBmYWxzZTtcclxuICAgICAgdGhpcy52YWx1ZSA9IGh0bWx2YWx1ZTtcclxuXHJcbiAgICAgIGlmIChyYXd2YWx1ZSA9PSBcIlxcblwiIHx8IHRoaXMudmFsdWUgPT0gXCJcXG5cIikge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGluZ0VkaXRvciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3V0cHV0SHRtbC5lbWl0KHRoaXMucXVpbGwuZ2V0U2VtYW50aWNIVE1MKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdG9yU2l6ZSgpOiB2b2lkIHtcclxuICAgIGxldCBlZGl0b3JGaWVsZEhlaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrdi1lZGl0b3ItdG9vbGJhcicpPy5vZmZzZXRIZWlnaHQ7XHJcbiAgICBpZiAoZWRpdG9yRmllbGRIZWlnaHQpIHtcclxuICAgICAgdGhpcy5lZGl0b3JUb29sYmFySGVpZ2h0LnNldChgJHtlZGl0b3JGaWVsZEhlaWdodH1weGApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb3BlblJlbGF0b3JpbygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmlzTG9hZGluZ1BkZigpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgaHRtbENvbnRlbnQgPSB0aGlzLnF1aWxsLmdldFNlbWFudGljSFRNTCgpO1xyXG4gICAgY29uc3QgcmVsYXRvcmlvID0gdGhpcy5yZWxhdG9yaW8oKTtcclxuICAgIC8vIGNvbnN0IHRpcG9WaXN1YWxpemFjYW8gPSB0aGlzLnRpcG9WaXN1YWxpemFjYW8oKTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLnBkZlNlcnZpY2Uub3BlblJlbGF0b3JpbyhodG1sQ29udGVudCwgcmVsYXRvcmlvLCAndmFsb3InKTtcclxuICB9XHJcblxyXG4gIC8vIE3DqXRvZG9zIHBhcmEgc2lzdGVtYSBkZSBtZW7Dp8O1ZXNcclxuICBoYW5kbGVNZW50aW9uKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnJlbGF0b3JpbygpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5tZW50aW9uU2VydmljZS5oYW5kbGVNZW50aW9uKHRoaXMucXVpbGwsIHRoaXMucmVsYXRvcmlvKCkhLnZhcmlhdmVpcyk7XHJcbiAgICB0aGlzLmZpbHRlcmVkVmFyaWFibGVzLnNldChyZXN1bHQuZmlsdGVyZWRWYXJpYWJsZXMpO1xyXG5cclxuICAgIGlmIChyZXN1bHQuc2hvdWxkU2hvd1BhbmVsICYmIHJlc3VsdC5tZW50aW9uQm91bmRzKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ZhcmlhYmxlc1BhbmVsKHJlc3VsdC5tZW50aW9uQm91bmRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xvc2VWYXJpYWJsZXNQYW5lbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93VmFyaWFibGVzUGFuZWwoYm91bmRzOiB7IHRvcDogbnVtYmVyOyBsZWZ0OiBudW1iZXIgfSk6IHZvaWQge1xyXG4gICAgY29uc3QgYW5jaG9yRWwgPSB0aGlzLm1lbnRpb25BbmNob3IubmF0aXZlRWxlbWVudDtcclxuICAgIGFuY2hvckVsLnN0eWxlLnRvcCA9IGAke2JvdW5kcy50b3B9cHhgO1xyXG4gICAgYW5jaG9yRWwuc3R5bGUubGVmdCA9IGAke2JvdW5kcy5sZWZ0fXB4YDtcclxuICAgIHRoaXMub3BWYXJpYWJsZXMuc2hvdyhudWxsLCBhbmNob3JFbCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RWYXJpYWJsZUZyb21QYW5lbCh2YXJpYWJsZTogS3ZFZGl0b3JWYXJpYXZlbCk6IHZvaWQge1xyXG4gICAgdGhpcy5tZW50aW9uU2VydmljZS5pbnNlcnRWYXJpYWJsZSh0aGlzLnF1aWxsLCB2YXJpYWJsZSk7XHJcbiAgICB0aGlzLmNsb3NlVmFyaWFibGVzUGFuZWwoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlVmFyaWFibGVzUGFuZWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcFZhcmlhYmxlcykge1xyXG4gICAgICB0aGlzLm9wVmFyaWFibGVzLmhpZGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMubWVudGlvblNlcnZpY2UuY2xvc2VNZW50aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzaG93SW5zdHJ1Y29lcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEt2SW5zdHJ1Y29lc1JlcG9ydENvbXBvbmVudCwge1xyXG4gICAgICBoZWFkZXI6ICdJbnN0cnXDp8O1ZXMnLFxyXG4gICAgICB3aWR0aDogJzQwJScsXHJcbiAgICAgIGhlaWdodDogJzMwJScsXHJcbiAgICAgIG1vZGFsOiB0cnVlLFxyXG4gICAgICBjbG9zYWJsZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmluc3RydWNvZXNUZW1wbGF0ZSgpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJUZW1wbGF0ZSgpIHtcclxuICAgIC8vIExpbXBhIG8gdGVtcGxhdGUgZG8gZWRpdG9yXHJcbiAgICB0aGlzLmNsZWFyZWRUZW1wbGF0ZS5zZXQodHJ1ZSk7XHJcbiAgICB0aGlzLnNldFJlbGF0b3Jpb1BvcklkKDApO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKCcnKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwia3YtZWRpdG9yLWNvbnRhaW5lciBoLWZ1bGwgdy1mdWxsIG1heC1oLWZ1bGwgZmxleCBmbGV4LWNvbHVtbiBvdmVyZmxvdy1oaWRkZW5cIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgI2VkaXRvclxyXG4gICAgaWQ9XCJrdi1lZGl0b3ItdG9vbGJhclwiXHJcbiAgICBbbmdDbGFzc109XCJ7ICdlcnJvci1ib3JkZXItdG9vbGJhcic6IGhhc0NvbnRyb2xFcnJvcigpIH1cIlxyXG4gICAgY2xhc3M9XCJ7eyBzaG93SGVhZGVyKCkgPyAnZmxleCcgOiAnaGlkZGVuJyB9fSBmbGV4LWNvbHVtbiBmbGV4LWluaXRpYWxcIlxyXG4gID5cclxuICAgIEBpZihyZWxhdG9yaW9zKCkubGVuZ3RoID4gMCkge1xyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTJcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHAtMiBib3JkZXItcm91bmQtbGcgYm9yZGVyLTEgYm9yZGVyLWdyYXktMjAwIGhvdmVyOnNoYWRvdy0xIGhvdmVyOmJnLWdyYXktMTAwIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tYWxsIHRyYW5zaXRpb24tZHVyYXRpb24tMzAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJvcC50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRleHQtbGcgdGV4dC1ncmVlbi02MDAgZm9udC1tZWRpdW1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBjb250cmFjdFxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQteHMgdGV4dC1ncmF5LTYwMFwiPnt7XHJcbiAgICAgICAgICAgICFjbGVhcmVkVGVtcGxhdGUoKVxyXG4gICAgICAgICAgICAgID8gcmVsYXRvcmlvKCk/LmxhYmVsIHx8IGxhYmVsRW1wdHlEcm9wZG93bigpXHJcbiAgICAgICAgICAgICAgOiBsYWJlbEVtcHR5RHJvcGRvd24oKVxyXG4gICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgdGV4dC1sZ1wiPlxyXG4gICAgICAgICAgICBrZXlib2FyZF9hcnJvd19kb3duXHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIEBpZighY2xlYXJlZFRlbXBsYXRlKCkpIHtcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHAtMiBib3JkZXItcm91bmQtbGcgYm9yZGVyLTEgYm9yZGVyLWdyYXktMjAwIGhvdmVyOnNoYWRvdy0xIGhvdmVyOmJnLWdyYXktMTAwIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tYWxsIHRyYW5zaXRpb24tZHVyYXRpb24tMzAwXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGVhclRlbXBsYXRlKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0ZXh0LWxnIHRleHQtb3JhbmdlLTYwMCBmb250LW1lZGl1bVwiXHJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCInTGltcGFyIFRlbXBsYXRlJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIGxheWVyc19jbGVhclxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBwLTIgYm9yZGVyLXJvdW5kLWxnIGJvcmRlci0xIGJvcmRlci1ncmF5LTIwMCBob3ZlcjpzaGFkb3ctMSBob3ZlcjpiZy1ncmF5LTEwMCBjdXJzb3ItcG9pbnRlciB0cmFuc2l0aW9uLWFsbCB0cmFuc2l0aW9uLWR1cmF0aW9uLTMwMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2hvd0luc3RydWNvZXMoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRleHQtbGcgdGV4dC1ibHVlLTYwMCBmb250LW1lZGl1bVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIGluZm9cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXhzIHRleHQtZ3JheS02MDBcIj5JbnN0cnXDp8O1ZXM8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgQGlmKHByaW50QnV0dG9uKCkpIHtcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgcC0yIGJvcmRlci1yb3VuZC1sZyBib3JkZXItMSBib3JkZXItZ3JheS0yMDAgaG92ZXI6c2hhZG93LTEgaG92ZXI6YmctZ3JheS0xMDAgY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1hbGwgdHJhbnNpdGlvbi1kdXJhdGlvbi0zMDBcIlxyXG4gICAgICAgIChjbGljayk9XCJvcGVuUmVsYXRvcmlvKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIHRleHQtbGcgZm9udC1tZWRpdW1cIj5cclxuICAgICAgICAgIHByaW50XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXhzIHRleHQtZ3JheS02MDBcIj5JbXByaW1pcjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxwLWRpdmlkZXIgY2xhc3M9XCJ3LWZ1bGxcIj48L3AtZGl2aWRlcj5cclxuXHJcbiAgICB9XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctZnVsbCBmbGV4LWluaXRpYWxcIlxyXG4gICAgPlxyXG4gICAgICBAaWYoaXNMb2FkaW5nKCkpIHtcclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyB3LWZ1bGxcIj5cclxuICAgICAgICA8cC1za2VsZXRvblxyXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctNnJlbVwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwieyBoZWlnaHQ6ICcycmVtJyB9XCJcclxuICAgICAgICA+PC9wLXNrZWxldG9uPlxyXG5cclxuICAgICAgICA8cC1za2VsZXRvblxyXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctNnJlbVwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwieyBoZWlnaHQ6ICcycmVtJyB9XCJcclxuICAgICAgICA+PC9wLXNrZWxldG9uPlxyXG5cclxuICAgICAgICA8cC1za2VsZXRvblxyXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctNnJlbVwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwieyBoZWlnaHQ6ICcycmVtJyB9XCJcclxuICAgICAgICA+PC9wLXNrZWxldG9uPlxyXG5cclxuICAgICAgICA8cC1za2VsZXRvblxyXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctNnJlbVwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwieyBoZWlnaHQ6ICcycmVtJyB9XCJcclxuICAgICAgICA+PC9wLXNrZWxldG9uPlxyXG5cclxuICAgICAgICA8cC1za2VsZXRvblxyXG4gICAgICAgICAgc3R5bGVDbGFzcz1cInctNnJlbVwiXHJcbiAgICAgICAgICBbc3R5bGVdPVwieyBoZWlnaHQ6ICcycmVtJyB9XCJcclxuICAgICAgICA+PC9wLXNrZWxldG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtd3JhcCBnYXAtMiB7e1xyXG4gICAgICAgICAgaXNMb2FkaW5nKCkgPyAnaGlkZGVuJyA6ICdmbGV4J1xyXG4gICAgICAgIH19IHctZnVsbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHMgYm9yZGVyLXJvdW5kLW1kXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicm9ib3RvXCI+Um9ib3RvPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJhcmlhbFwiPkFyaWFsPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJ0aW1lcy1uZXctcm9tYW5cIj5UaW1lcyBOZXcgUm9tYW48L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPk1vbm9zcGFjZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaW50ZXJcIj5JbnRlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPlNhbnMgU2VyaWY8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+U2VyaWY8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj5UaXR1bG88L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj5TdWJ0aXR1bG88L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5Ob3JtYWw8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgdGl0bGU9XCJTaXplXCIgY2xhc3M9XCJxbC1zaXplXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjE1cHhcIj4xNXB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjIwcHhcIj4yMHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMwcHhcIj4zMHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQwcHhcIj40MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjUwcHhcIj41MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjcwcHhcIj43MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjkwcHhcIj45MHB4PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvcC1kaXZpZGVyPlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHMgYm9yZGVyLXJvdW5kLW1kXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtYm9sZFwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWl0YWxpY1wiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXVuZGVybGluZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXN0cmlrZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgPHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvcC1kaXZpZGVyPlxyXG5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHMgYm9yZGVyLXJvdW5kLW1kXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIj48L3NlbGVjdD5cclxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1iYWNrZ3JvdW5kXCI+PC9zZWxlY3Q+XHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICBAaWYodHJ1ZSkge1xyXG4gICAgICAgIDwhLS0gPHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiPjwvcC1kaXZpZGVyPlxyXG5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIj48L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCI+PC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj4gLS0+XHJcblxyXG4gICAgICAgIDxwLWRpdmlkZXIgbGF5b3V0PVwidmVydGljYWxcIj48L3AtZGl2aWRlcj5cclxuXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzIGJvcmRlci1yb3VuZC1tZFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpbmtcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXZpZGVvXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICA8cC1kaXZpZGVyIGxheW91dD1cInZlcnRpY2FsXCI+PC9wLWRpdmlkZXI+XHJcblxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0cyBib3JkZXItcm91bmQtbWRcIj5cclxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saXN0XCIgdmFsdWU9XCJvcmRlcmVkXCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj48L3NlbGVjdD5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIHN0eWxlPVwiaGVpZ2h0OiAzcHg7IGJvcmRlci10b3A6IG5vbmU7IGJvcmRlci1ib3R0b206IG5vbmVcIlxyXG4gICAgW3N0eWxlLmJvcmRlclJpZ2h0XT1cInNob3dIZWFkZXIoKSA/ICcxcHggc29saWQgI2U1ZTdlYicgOiAnbm9uZSdcIlxyXG4gICAgW3N0eWxlLmJvcmRlckxlZnRdPVwic2hvd0hlYWRlcigpID8gJzFweCBzb2xpZCAjZTVlN2ViJyA6ICdub25lJ1wiXHJcbiAgPlxyXG4gICAgQGlmKGlzTG9hZGluZ1BkZigpKSB7XHJcbiAgICA8cC1wcm9ncmVzc0JhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZV09XCJ7IGhlaWdodDogJzNweCcgfVwiIC8+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGlkPVwia3YtZWRpdG9yXCJcclxuICAgIGNsYXNzPVwib3ZlcmZsb3ctYXV0byB3LWZ1bGwgZmxleC0xIHNjcm9sbHN0eWxlIHctZnVsbFwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICdlcnJvci1ib3JkZXInOiBoYXNDb250cm9sRXJyb3IoKSxcclxuICAgICAgJ3BvaW50ZXItZXZlbnRzLW5vbmUgb3BhY2l0eS02MCc6IGlzTG9hZGluZ1BkZigpXHJcbiAgICB9XCJcclxuICAgIFtzdHlsZS5ib3JkZXJUb3BdPVwic2hvd0hlYWRlcigpID8gJ25vbmUnIDogJzFweCBzb2xpZCAjZTVlN2ViJ1wiXHJcbiAgPjwvZGl2PlxyXG48L2Rpdj5cclxuPGt2LWVycm9yIFtoYXNFcnJvcl09XCJoYXNDb250cm9sRXJyb3IoKVwiPnt7IGVycm9NZXNzYWdlKCkgfX08L2t2LWVycm9yPlxyXG5cclxuPCEtLSA8bGluayBocmVmPVwiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9xdWlsbEAyLjAuMi9kaXN0L3F1aWxsLnNub3cuY3NzXCIgcmVsPVwic3R5bGVzaGVldFwiIC8+IC0tPlxyXG48bGluayBocmVmPVwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90b1wiIHJlbD1cInN0eWxlc2hlZXRcIiAvPlxyXG48c2NyaXB0IHNyYz1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vcXVpbGxAMi4wLjIvZGlzdC9xdWlsbC5qc1wiPjwvc2NyaXB0PlxyXG48c2NyaXB0IHNyYz1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0va2F0ZXhAMC4xNi45L2Rpc3Qva2F0ZXgubWluLmpzXCI+PC9zY3JpcHQ+XHJcblxyXG48bGlua1xyXG4gIHJlbD1cInN0eWxlc2hlZXRcIlxyXG4gIGhyZWY9XCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL3F1aWxsQDIuMC4yL2Rpc3QvcXVpbGwuYnViYmxlLmNzc1wiXHJcbi8+XHJcbjxsaW5rXHJcbiAgcmVsPVwic3R5bGVzaGVldFwiXHJcbiAgaHJlZj1cImh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2hpZ2hsaWdodC5qcy8xMS45LjAvc3R5bGVzL2F0b20tb25lLWRhcmsubWluLmNzc1wiXHJcbi8+XHJcbjxsaW5rXHJcbiAgcmVsPVwic3R5bGVzaGVldFwiXHJcbiAgaHJlZj1cImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0va2F0ZXhAMC4xNi45L2Rpc3Qva2F0ZXgubWluLmNzc1wiXHJcbi8+XHJcblxyXG48cC1vdmVybGF5UGFuZWwgI29wIHN0eWxlQ2xhc3M9XCJvdmVyZmxvdy1oaWRkZW5cIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImdyaWQgbS0wIGdhcC0yIHAtMiBtYXgtdy0yMHJlbSBvdmVyZmxvdy15LWF1dG8gc2Nyb2xsc3R5bGVcIlxyXG4gICAgc3R5bGU9XCJtYXgtaGVpZ2h0OiAxNnJlbVwiXHJcbiAgPlxyXG4gICAgQGZvcihpdGVtIG9mIHJlbGF0b3Jpb3MoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29sLTEyIGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLWdyYXktMTAwIHRyYW5zaXRpb24tY29sb3JzIHRyYW5zaXRpb24tZHVyYXRpb24tMjAwIGJvcmRlci1yb3VuZC1sZyBzaGFkb3ctMiBmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCJcclxuICAgICAgKGNsaWNrKT1cInNldFJlbGF0b3JpbyhpdGVtKVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSB3LWZ1bGxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxyXG5cclxuICAgICAgICA8a3YtdGFnc1xyXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2l0aW9uLW9wYWNpdHkgdHJhbnNpdGlvbi1kdXJhdGlvbi0zMDAge3tcclxuICAgICAgICAgICAgaXRlbT8uaWQgPT0gaWRSZWxhdG9yaW9TZWxlY3RlZCgpID8gJ29wYWNpdHktMTAwJyA6ICdvcGFjaXR5LTAnXHJcbiAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICBbdGFnc109XCJbeyBsYWJlbDogJ1NlbGVjaW9uYWRvJywgc2V2ZXJpdHk6ICdwcmltYXJ5JyB9XVwiXHJcbiAgICAgICAgPjwva3YtdGFncz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNTAwXCI+e3sgaXRlbS5kZXNjcmljYW8gfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9wLW92ZXJsYXlQYW5lbD5cclxuXHJcbjxkaXYgY2xhc3M9XCJrdi1lZGl0b3ItY29udGFpbmVyIGZsZXggZmxleC1jb2x1bW4gb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlXCI+XHJcbiAgPGRpdlxyXG4gICAgI21lbnRpb25BbmNob3JcclxuICAgIHN0eWxlPVwicG9zaXRpb246IGZpeGVkOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgb3BhY2l0eTogMFwiXHJcbiAgPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxwLW92ZXJsYXlQYW5lbFxyXG4gICNvcFZhcmlhYmxlc1xyXG4gIFthcHBlbmRUb109XCInYm9keSdcIlxyXG4gIChvbkhpZGUpPVwiY2xvc2VWYXJpYWJsZXNQYW5lbCgpXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMSBwLTEgb3ZlcmZsb3cteS1hdXRvIHNjcm9sbC12aXJ0dWFsIGJvcmRlci1yb3VuZC1sZ1wiXHJcbiAgICBzdHlsZT1cIm1heC1oZWlnaHQ6IDI1MHB4OyBtaW4td2lkdGg6IDI1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzXCJcclxuICA+XHJcbiAgICBAZm9yKHZhcmlhYmxlIG9mIGZpbHRlcmVkVmFyaWFibGVzKCk7IHRyYWNrIHZhcmlhYmxlLmlkKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwicC0yIGN1cnNvci1wb2ludGVyIHRyYW5zaXRpb24tY29sb3JzIHRyYW5zaXRpb24tZHVyYXRpb24tMjAwIGJvcmRlci1yb3VuZC1sZyB0ZXh0LXNtIHRleHQtd2hpdGUgb3B0aW9uLWRyb3Bkb3duXCJcclxuICAgICAgKGNsaWNrKT1cInNlbGVjdFZhcmlhYmxlRnJvbVBhbmVsKHZhcmlhYmxlKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IHZhcmlhYmxlLmRlc2NyaWNhbyB9fSAoXHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1ncmF5LTQwMFwiPnt7IHZhcmlhYmxlLnZhbHVlIH19PC9zcGFuPiApXHJcbiAgICA8L2Rpdj5cclxuICAgIH0gQGVtcHR5IHtcclxuICAgIDxkaXYgY2xhc3M9XCJwLTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+TmVuaHVtYSB2YXJpw6F2ZWwgZW5jb250cmFkYS48L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9wLW92ZXJsYXlQYW5lbD5cclxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './types/kv-editor.types';
2
+ export * from './services/kv-editor-quill.service';
3
+ export * from './services/kv-editor-relatorio.service';
4
+ export * from './services/kv-editor-mention.service';
5
+ export * from './services/kv-editor-pdf.service';
6
+ export * from './config/kv-editor.config';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWVkaXRvci9rdi1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGVzL2t2LWVkaXRvci50eXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMva3YtZWRpdG9yLXF1aWxsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2t2LWVkaXRvci1yZWxhdG9yaW8uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMva3YtZWRpdG9yLW1lbnRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMva3YtZWRpdG9yLXBkZi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWcva3YtZWRpdG9yLmNvbmZpZyc7XHJcbiJdfQ==