keevo-components 2.0.179 → 2.0.180

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (790) hide show
  1. package/ng-package.json +14 -0
  2. package/package.json +32 -42
  3. package/src/assets/.gitkeep +0 -0
  4. package/src/index.ts +1 -0
  5. package/src/lib/api/base-components/base-component-button.ts +29 -0
  6. package/src/lib/api/base-components/base-component-chart.ts +118 -0
  7. package/src/lib/api/base-components/base-component-crud-form.ts +377 -0
  8. package/src/lib/api/base-components/base-component-crud-list.ts +129 -0
  9. package/src/lib/api/base-components/base-component-crud.ts +92 -0
  10. package/src/lib/api/base-components/base-component-dropdown-external.ts +29 -0
  11. package/src/lib/api/base-components/base-component-dropdown-new.ts +112 -0
  12. package/src/lib/api/base-components/base-component-dropdown.ts +265 -0
  13. package/src/lib/api/base-components/base-component-input.ts +121 -0
  14. package/src/lib/api/base-components/base-component-multi-select.ts +187 -0
  15. package/src/lib/api/base-components/base-component-table.ts +366 -0
  16. package/src/lib/api/base-components/base-component.ts +47 -0
  17. package/src/lib/api/components/chart/chart.config.ts +15 -0
  18. package/src/lib/api/components/chart/chart.model.ts +12 -0
  19. package/src/lib/api/components/chart/orchart.config.ts +51 -0
  20. package/src/lib/api/components/chart/orchartnode.ts +44 -0
  21. package/src/lib/api/components/dropdown/filtro.combo.ts +4 -0
  22. package/{lib/api/components/step/step.model.d.ts → src/lib/api/components/step/step.model.ts} +15 -13
  23. package/src/lib/api/components/stepper/kv-stepperpanel.ts +10 -0
  24. package/src/lib/api/components/table/action-item.ts +13 -0
  25. package/src/lib/api/components/table/kv-menuitem.ts +198 -0
  26. package/src/lib/api/components/table/table-dropdown-control.ts +6 -0
  27. package/src/lib/api/components/table/table.config.column.ts +38 -0
  28. package/src/lib/api/components/table/table.config.ts +39 -0
  29. package/src/lib/api/components/table/table.paginate.ts +7 -0
  30. package/{lib/api/components/table/tabledit.config.d.ts → src/lib/api/components/table/tabledit.config.ts} +9 -8
  31. package/src/lib/api/components/table/tableedit.config.column.ts +12 -0
  32. package/src/lib/api/components/tree-table/tree-table-keys.ts +12 -0
  33. package/src/lib/api/components/tree-table/tree-table.config.ts +34 -0
  34. package/src/lib/api/directives/directives.module.ts +19 -0
  35. package/src/lib/api/directives/drag/drag.directive.ts +40 -0
  36. package/src/lib/api/directives/stepper/dynamicinput.directive.ts +23 -0
  37. package/src/lib/api/directives/template/template.directive.ts +15 -0
  38. package/src/lib/api/helpers/component-providers.ts +16 -0
  39. package/src/lib/api/helpers/keevo-validators.ts +174 -0
  40. package/src/lib/api/helpers/severity-color.ts +77 -0
  41. package/src/lib/api/helpers/translate-primeng.ts +25 -0
  42. package/src/lib/api/modules/primeng.module.ts +147 -0
  43. package/src/lib/api/pipes/capitalize.pipe.ts +47 -0
  44. package/src/lib/api/pipes/cpfcnpj.pipe.ts +21 -0
  45. package/src/lib/api/pipes/mask.pipe.ts +24 -0
  46. package/src/lib/api/pipes/pipes.module.ts +26 -0
  47. package/src/lib/api/pipes/telefone.pipe.ts +38 -0
  48. package/src/lib/api/services/base.api.service.ts +115 -0
  49. package/src/lib/api/services/breadcrumbs.service.ts +73 -0
  50. package/src/lib/api/services/chat.service.ts +39 -0
  51. package/src/lib/api/services/component.service.ts +44 -0
  52. package/src/lib/api/services/docs.service.ts +129 -0
  53. package/src/lib/api/services/form.service.ts +139 -0
  54. package/src/lib/api/services/image.cutter.service.ts +290 -0
  55. package/src/lib/api/services/imagens.service.ts +28 -0
  56. package/src/lib/api/services/notification.service.ts +88 -0
  57. package/src/lib/api/services/object.service.ts +33 -0
  58. package/src/lib/api/services/orgchart.service.ts +77 -0
  59. package/src/lib/api/services/pdf.service.ts +54 -0
  60. package/src/lib/api/types/breadcrumb.model.ts +6 -0
  61. package/{lib/api/types/severity.d.ts → src/lib/api/types/severity.ts} +3 -2
  62. package/src/lib/api/types/stimulsoft.reports.d.ts +67463 -0
  63. package/src/lib/components/keevo-components.module.ts +108 -0
  64. package/src/lib/components/kv-avatar/kv-avatar.component.html +75 -0
  65. package/src/lib/components/kv-avatar/kv-avatar.component.scss +162 -0
  66. package/src/lib/components/kv-avatar/kv-avatar.component.spec.ts +23 -0
  67. package/src/lib/components/kv-avatar/kv-avatar.component.ts +165 -0
  68. package/src/lib/components/kv-avatar/kv-avatar.module.ts +32 -0
  69. package/src/lib/components/kv-button/kv-button.component.html +26 -0
  70. package/src/lib/components/kv-button/kv-button.component.spec.ts +23 -0
  71. package/src/lib/components/kv-button/kv-button.component.ts +57 -0
  72. package/src/lib/components/kv-button/kv-button.module.ts +20 -0
  73. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.html +14 -0
  74. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.scss +6 -0
  75. package/src/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.ts +25 -0
  76. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.html +13 -0
  77. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.scss +33 -0
  78. package/src/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.ts +41 -0
  79. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.html +12 -0
  80. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.scss +18 -0
  81. package/src/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.ts +14 -0
  82. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.html +11 -0
  83. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.scss +17 -0
  84. package/src/lib/components/kv-buttons/kv-button-success/kv-button-success.component.ts +14 -0
  85. package/src/lib/components/kv-buttons/kv-button.module.ts +26 -0
  86. package/src/lib/components/kv-card-selection/kv-card-selection.component.html +63 -0
  87. package/src/lib/components/kv-card-selection/kv-card-selection.component.scss +54 -0
  88. package/src/lib/components/kv-card-selection/kv-card-selection.component.spec.ts +23 -0
  89. package/src/lib/components/kv-card-selection/kv-card-selection.component.ts +73 -0
  90. package/src/lib/components/kv-card-selection/kv-card-selection.module.ts +19 -0
  91. package/src/lib/components/kv-carousel/kv-carousel.component.html +26 -0
  92. package/src/lib/components/kv-carousel/kv-carousel.component.scss +47 -0
  93. package/src/lib/components/kv-carousel/kv-carousel.component.spec.ts +23 -0
  94. package/src/lib/components/kv-carousel/kv-carousel.component.ts +40 -0
  95. package/src/lib/components/kv-carousel/kv-carousel.module.ts +19 -0
  96. package/src/lib/components/kv-chart/kv-chart.component.html +38 -0
  97. package/src/lib/components/kv-chart/kv-chart.component.scss +0 -0
  98. package/src/lib/components/kv-chart/kv-chart.component.spec.ts +28 -0
  99. package/src/lib/components/kv-chart/kv-chart.component.ts +174 -0
  100. package/src/lib/components/kv-chart/kv-chart.module.ts +21 -0
  101. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.html +9 -0
  102. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.scss +7 -0
  103. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.spec.ts +23 -0
  104. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.ts +32 -0
  105. package/src/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.ts +14 -0
  106. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.html +231 -0
  107. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.scss +185 -0
  108. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.spec.ts +23 -0
  109. package/src/lib/components/kv-content-viewer/kv-content-viewer.component.ts +172 -0
  110. package/src/lib/components/kv-content-viewer/kv-content-viewer.module.ts +25 -0
  111. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.html +253 -0
  112. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.scss +185 -0
  113. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.spec.ts +23 -0
  114. package/src/lib/components/kv-detailed-list/kv-detailed-list.component.ts +154 -0
  115. package/src/lib/components/kv-error/kv-error.component.html +3 -0
  116. package/src/lib/components/kv-error/kv-error.component.scss +5 -0
  117. package/src/lib/components/kv-error/kv-error.component.ts +27 -0
  118. package/src/lib/components/kv-error/kv-error.module.ts +26 -0
  119. package/src/lib/components/kv-file-upload/kv-file-upload.component.html +134 -0
  120. package/src/lib/components/kv-file-upload/kv-file-upload.component.scss +13 -0
  121. package/src/lib/components/kv-file-upload/kv-file-upload.component.spec.ts +23 -0
  122. package/src/lib/components/kv-file-upload/kv-file-upload.component.ts +200 -0
  123. package/src/lib/components/kv-file-upload/kv-file-upload.module.ts +13 -0
  124. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.html +16 -0
  125. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.scss +18 -0
  126. package/src/lib/components/kv-file-viewer/kv-file-viewer.component.ts +42 -0
  127. package/src/lib/components/kv-file-viewer/kv-file-viewer.module.ts +14 -0
  128. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.html +34 -0
  129. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.scss +17 -0
  130. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.ts +80 -0
  131. package/src/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.ts +15 -0
  132. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.html +103 -0
  133. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.scss +153 -0
  134. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.spec.ts +23 -0
  135. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.component.ts +73 -0
  136. package/src/lib/components/kv-file-viewer-preview/kv-file-viewer-preview.module.ts +18 -0
  137. package/src/lib/components/kv-filter-card/kv-filter-card.component.html +12 -0
  138. package/src/lib/components/kv-filter-card/kv-filter-card.component.scss +76 -0
  139. package/src/lib/components/kv-filter-card/kv-filter-card.component.spec.ts +23 -0
  140. package/src/lib/components/kv-filter-card/kv-filter-card.component.ts +18 -0
  141. package/src/lib/components/kv-filter-card/kv-filter-card.module.ts +23 -0
  142. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.html +94 -0
  143. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.scss +189 -0
  144. package/src/lib/components/kv-filter-cards/kv-filter-cards.component.ts +150 -0
  145. package/src/lib/components/kv-filter-cards/kv-filter-cards.module.ts +20 -0
  146. package/src/lib/components/kv-filter-cards/kv-filter-cards.pipe.ts +24 -0
  147. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.html +25 -0
  148. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.scss +22 -0
  149. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.spec.ts +23 -0
  150. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.ts +21 -0
  151. package/src/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.ts +20 -0
  152. package/src/lib/components/kv-g-icon/kv-g-icon.component.html +1 -0
  153. package/src/lib/components/kv-g-icon/kv-g-icon.component.scss +0 -0
  154. package/src/lib/components/kv-g-icon/kv-g-icon.component.spec.ts +23 -0
  155. package/src/lib/components/kv-g-icon/kv-g-icon.component.ts +10 -0
  156. package/src/lib/components/kv-g-icon/kv-g-icon.module.ts +11 -0
  157. package/src/lib/components/kv-home-card/kv-home-card.component.html +35 -0
  158. package/src/lib/components/kv-home-card/kv-home-card.component.scss +5 -0
  159. package/src/lib/components/kv-home-card/kv-home-card.component.spec.ts +23 -0
  160. package/src/lib/components/kv-home-card/kv-home-card.component.ts +33 -0
  161. package/src/lib/components/kv-home-card/kv-home-card.module.ts +18 -0
  162. package/src/lib/components/kv-icon/kv-icon.component.html +13 -0
  163. package/src/lib/components/kv-icon/kv-icon.component.scss +82 -0
  164. package/src/lib/components/kv-icon/kv-icon.component.spec.ts +28 -0
  165. package/src/lib/components/kv-icon/kv-icon.component.ts +31 -0
  166. package/{lib/components/kv-icon/kv-icon.model.d.ts → src/lib/components/kv-icon/kv-icon.model.ts} +3 -3
  167. package/src/lib/components/kv-icon/kv-icon.module.ts +16 -0
  168. package/src/lib/components/kv-image-upload/kv-image-upload.component.html +64 -0
  169. package/src/lib/components/kv-image-upload/kv-image-upload.component.scss +0 -0
  170. package/src/lib/components/kv-image-upload/kv-image-upload.component.ts +153 -0
  171. package/src/lib/components/kv-image-upload/kv-image-upload.module.ts +10 -0
  172. package/src/lib/components/kv-inputs/kv-check/kv-check.component.html +12 -0
  173. package/src/lib/components/kv-inputs/kv-check/kv-check.component.scss +42 -0
  174. package/src/lib/components/kv-inputs/kv-check/kv-check.component.ts +32 -0
  175. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.html +104 -0
  176. package/src/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.ts +122 -0
  177. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.html +13 -0
  178. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.scss +0 -0
  179. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.spec.ts +23 -0
  180. package/src/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.ts +16 -0
  181. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.html +18 -0
  182. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.scss +0 -0
  183. package/src/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.ts +41 -0
  184. package/src/lib/components/kv-inputs/kv-editor/config/kv-editor.config.ts +120 -0
  185. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.html +283 -0
  186. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.scss +182 -0
  187. package/src/lib/components/kv-inputs/kv-editor/kv-editor.component.ts +319 -0
  188. package/{lib/components/kv-inputs/kv-editor/kv-editor.d.ts → src/lib/components/kv-inputs/kv-editor/kv-editor.ts} +6 -6
  189. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.ts +156 -0
  190. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.ts +190 -0
  191. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.spec.ts +126 -0
  192. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.ts +84 -0
  193. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.spec.ts +176 -0
  194. package/src/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.ts +101 -0
  195. package/src/lib/components/kv-inputs/kv-editor/types/kv-editor.types.ts +36 -0
  196. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.html +37 -0
  197. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.scss +23 -0
  198. package/src/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.ts +167 -0
  199. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.html +24 -0
  200. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.scss +0 -0
  201. package/src/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.ts +35 -0
  202. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.html +23 -0
  203. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.scss +0 -0
  204. package/src/lib/components/kv-inputs/kv-input-number/kv-input-number.component.ts +61 -0
  205. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.html +33 -0
  206. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.scss +5 -0
  207. package/src/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.ts +63 -0
  208. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.html +24 -0
  209. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.scss +0 -0
  210. package/src/lib/components/kv-inputs/kv-input-password/kv-input-password.component.ts +26 -0
  211. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.html +23 -0
  212. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.scss +18 -0
  213. package/src/lib/components/kv-inputs/kv-input-text/kv-input-text.component.ts +40 -0
  214. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.html +30 -0
  215. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.scss +26 -0
  216. package/src/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.ts +38 -0
  217. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.html +53 -0
  218. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.scss +41 -0
  219. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.spec.ts +23 -0
  220. package/src/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.ts +48 -0
  221. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.html +23 -0
  222. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.scss +0 -0
  223. package/src/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.ts +40 -0
  224. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.html +24 -0
  225. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.scss +0 -0
  226. package/src/lib/components/kv-inputs/kv-input-time/kv-input-time.component.ts +27 -0
  227. package/src/lib/components/kv-inputs/kv-inputs.module.ts +100 -0
  228. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.html +87 -0
  229. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.scss +62 -0
  230. package/src/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.ts +54 -0
  231. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.html +19 -0
  232. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.scss +22 -0
  233. package/src/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.ts +63 -0
  234. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.html +26 -0
  235. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.scss +5 -0
  236. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.spec.ts +21 -0
  237. package/src/lib/components/kv-inputs/kv-select-button/kv-select-button.component.ts +30 -0
  238. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.html +28 -0
  239. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.scss +61 -0
  240. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.spec.ts +23 -0
  241. package/src/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.ts +43 -0
  242. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.html +23 -0
  243. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.scss +35 -0
  244. package/src/lib/components/kv-inputs/kv-switch/kv-switch.component.ts +54 -0
  245. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.html +68 -0
  246. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.scss +86 -0
  247. package/src/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.ts +59 -0
  248. package/src/lib/components/kv-label/kv-label.component.html +3 -0
  249. package/src/lib/components/kv-label/kv-label.component.scss +15 -0
  250. package/src/lib/components/kv-label/kv-label.component.spec.ts +23 -0
  251. package/src/lib/components/kv-label/kv-label.component.ts +14 -0
  252. package/src/lib/components/kv-label/kv-label.module.ts +17 -0
  253. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.html +25 -0
  254. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.scss +19 -0
  255. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.spec.ts +28 -0
  256. package/src/lib/components/kv-layout/dropdown-master/dropdown-master.component.ts +34 -0
  257. package/src/lib/components/kv-layout/kv-layout.module.ts +44 -0
  258. package/src/lib/components/kv-layout/layout/kv-layout.component.html +591 -0
  259. package/src/lib/components/kv-layout/layout/kv-layout.component.scss +268 -0
  260. package/src/lib/components/kv-layout/layout/kv-layout.component.spec.ts +23 -0
  261. package/src/lib/components/kv-layout/layout/kv-layout.component.ts +531 -0
  262. package/src/lib/components/kv-layout/top-icons/top-icons.component.html +26 -0
  263. package/src/lib/components/kv-layout/top-icons/top-icons.component.scss +71 -0
  264. package/src/lib/components/kv-layout/top-icons/top-icons.component.spec.ts +23 -0
  265. package/src/lib/components/kv-layout/top-icons/top-icons.component.ts +26 -0
  266. package/src/lib/components/kv-loader/kv-loader.component.html +1 -0
  267. package/src/lib/components/kv-loader/kv-loader.component.ts +11 -0
  268. package/src/lib/components/kv-loader/kv-loader.module.ts +17 -0
  269. package/src/lib/components/kv-loader/kv-loader.service.ts +29 -0
  270. package/src/lib/components/kv-login/kv-login.component.html +101 -0
  271. package/src/lib/components/kv-login/kv-login.component.scss +99 -0
  272. package/src/lib/components/kv-login/kv-login.component.spec.ts +23 -0
  273. package/src/lib/components/kv-login/kv-login.component.ts +97 -0
  274. package/src/lib/components/kv-login/kv-login.module.ts +33 -0
  275. package/src/lib/components/kv-modal/kv-modal.component.html +20 -0
  276. package/src/lib/components/kv-modal/kv-modal.component.scss +37 -0
  277. package/src/lib/components/kv-modal/kv-modal.component.spec.ts +21 -0
  278. package/src/lib/components/kv-modal/kv-modal.component.ts +111 -0
  279. package/src/lib/components/kv-modal/kv-modal.module.ts +12 -0
  280. package/src/lib/components/kv-orgchart/kv-orgchart.component.html +125 -0
  281. package/src/lib/components/kv-orgchart/kv-orgchart.component.scss +73 -0
  282. package/src/lib/components/kv-orgchart/kv-orgchart.component.ts +283 -0
  283. package/src/lib/components/kv-orgchart/kv-orgchart.module.ts +31 -0
  284. package/src/lib/components/kv-page-form/kv-page-form.component.html +91 -0
  285. package/src/lib/components/kv-page-form/kv-page-form.component.scss +100 -0
  286. package/src/lib/components/kv-page-form/kv-page-form.component.spec.ts +28 -0
  287. package/src/lib/components/kv-page-form/kv-page-form.component.ts +206 -0
  288. package/src/lib/components/kv-page-form/kv-page-form.module.ts +33 -0
  289. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.html +276 -0
  290. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.scss +85 -0
  291. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.spec.ts +23 -0
  292. package/src/lib/components/kv-page-stepper/kv-page-stepper.component.ts +223 -0
  293. package/src/lib/components/kv-page-stepper/kv-page-stepper.module.ts +36 -0
  294. package/src/lib/components/kv-pick-list/kv-pick-list.component.html +32 -0
  295. package/src/lib/components/kv-pick-list/kv-pick-list.component.scss +57 -0
  296. package/src/lib/components/kv-pick-list/kv-pick-list.component.spec.ts +26 -0
  297. package/src/lib/components/kv-pick-list/kv-pick-list.component.ts +461 -0
  298. package/src/lib/components/kv-pick-list/kv-pick-list.module.ts +24 -0
  299. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.html +38 -0
  300. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.scss +128 -0
  301. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.spec.ts +21 -0
  302. package/src/lib/components/kv-progress-bar/kv-progress-bar.component.ts +75 -0
  303. package/src/lib/components/kv-progress-bar/kv-progress-bar.module.ts +19 -0
  304. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.html +43 -0
  305. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.scss +130 -0
  306. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.spec.ts +23 -0
  307. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.ts +82 -0
  308. package/src/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.ts +18 -0
  309. package/src/lib/components/kv-report/kv-report.component.html +3 -0
  310. package/src/lib/components/kv-report/kv-report.component.scss +14 -0
  311. package/src/lib/components/kv-report/kv-report.component.spec.ts +28 -0
  312. package/src/lib/components/kv-report/kv-report.component.ts +44 -0
  313. package/src/lib/components/kv-report/kv-report.module.ts +18 -0
  314. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.html +23 -0
  315. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.scss +48 -0
  316. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.spec.ts +28 -0
  317. package/src/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.ts +68 -0
  318. package/src/lib/components/kv-stepper/kv-stepper.component.html +94 -0
  319. package/src/lib/components/kv-stepper/kv-stepper.component.scss +43 -0
  320. package/src/lib/components/kv-stepper/kv-stepper.component.spec.ts +23 -0
  321. package/src/lib/components/kv-stepper/kv-stepper.component.ts +73 -0
  322. package/src/lib/components/kv-stepper/kv-stepper.module.ts +27 -0
  323. package/src/lib/components/kv-steps/kv-steps.component.html +53 -0
  324. package/src/lib/components/kv-steps/kv-steps.component.scss +120 -0
  325. package/src/lib/components/kv-steps/kv-steps.component.ts +122 -0
  326. package/src/lib/components/kv-table/kv-table.component.html +683 -0
  327. package/src/lib/components/kv-table/kv-table.component.spec.ts +28 -0
  328. package/src/lib/components/kv-table/kv-table.component.ts +795 -0
  329. package/src/lib/components/kv-table/kv-table.module.ts +25 -0
  330. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.html +673 -0
  331. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.scss +201 -0
  332. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.spec.ts +28 -0
  333. package/src/lib/components/kv-table-draggable/kv-table-draggable.component.ts +982 -0
  334. package/src/lib/components/kv-table-draggable/kv-table-draggable.module.ts +28 -0
  335. package/src/lib/components/kv-table-edit/kv-table-edit.component.html +913 -0
  336. package/src/lib/components/kv-table-edit/kv-table-edit.component.scss +757 -0
  337. package/src/lib/components/kv-table-edit/kv-table-edit.component.ts +425 -0
  338. package/src/lib/components/kv-table-edit/kv-table-edit.module.ts +31 -0
  339. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.html +635 -0
  340. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.scss +395 -0
  341. package/src/lib/components/kv-table-expandable/kv-table-expandable.component.ts +546 -0
  342. package/src/lib/components/kv-table-expandable/kv-table-expandable.module.ts +22 -0
  343. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.html +25 -0
  344. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.scss +0 -0
  345. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.spec.ts +23 -0
  346. package/src/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.ts +17 -0
  347. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.html +20 -0
  348. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.scss +0 -0
  349. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.spec.ts +23 -0
  350. package/src/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.ts +14 -0
  351. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.html +198 -0
  352. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.scss +92 -0
  353. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.spec.ts +23 -0
  354. package/src/lib/components/kv-table-viewer/kv-table-viewer.component.ts +255 -0
  355. package/src/lib/components/kv-tag/kv-tag.component.html +7 -0
  356. package/src/lib/components/kv-tag/kv-tag.component.scss +65 -0
  357. package/src/lib/components/kv-tag/kv-tag.component.spec.ts +23 -0
  358. package/src/lib/components/kv-tag/kv-tag.component.ts +17 -0
  359. package/src/lib/components/kv-tag/kv-tag.module.ts +18 -0
  360. package/src/lib/components/kv-tags/kv-tags.component.html +26 -0
  361. package/src/lib/components/kv-tags/kv-tags.component.scss +34 -0
  362. package/src/lib/components/kv-tags/kv-tags.component.ts +67 -0
  363. package/src/lib/components/kv-tags/kv-tags.module.ts +18 -0
  364. package/src/lib/components/kv-timeline/kv-timeline.component.html +38 -0
  365. package/src/lib/components/kv-timeline/kv-timeline.component.scss +31 -0
  366. package/src/lib/components/kv-timeline/kv-timeline.component.spec.ts +23 -0
  367. package/src/lib/components/kv-timeline/kv-timeline.component.ts +83 -0
  368. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.html +57 -0
  369. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.scss +15 -0
  370. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.spec.ts +28 -0
  371. package/src/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.ts +338 -0
  372. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.html +72 -0
  373. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.scss +170 -0
  374. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.spec.ts +28 -0
  375. package/src/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.ts +91 -0
  376. package/src/lib/components/kv-tree-environment/models/no-arvore.model.ts +60 -0
  377. package/src/lib/components/kv-tree-table/kv-tree-table.component.html +452 -0
  378. package/src/lib/components/kv-tree-table/kv-tree-table.component.scss +219 -0
  379. package/src/lib/components/kv-tree-table/kv-tree-table.component.spec.ts +21 -0
  380. package/src/lib/components/kv-tree-table/kv-tree-table.component.ts +355 -0
  381. package/src/lib/components/kv-tree-table/kv-tree-table.module.ts +23 -0
  382. package/src/lib/components/kv-tree-view/kv-tree-view.component.html +16 -0
  383. package/src/lib/components/kv-tree-view/kv-tree-view.component.scss +19 -0
  384. package/src/lib/components/kv-tree-view/kv-tree-view.component.spec.ts +23 -0
  385. package/src/lib/components/kv-tree-view/kv-tree-view.component.ts +73 -0
  386. package/src/lib/components/kv-tree-view/kv-tree-view.module.ts +19 -0
  387. package/src/lib/components/kv-widget-card/kv-widget-card.component.html +65 -0
  388. package/src/lib/components/kv-widget-card/kv-widget-card.component.scss +50 -0
  389. package/src/lib/components/kv-widget-card/kv-widget-card.component.spec.ts +28 -0
  390. package/src/lib/components/kv-widget-card/kv-widget-card.component.ts +116 -0
  391. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.html +22 -0
  392. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.scss +36 -0
  393. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.spec.ts +28 -0
  394. package/src/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.ts +41 -0
  395. package/src/lib/components/kv-workspace/kv-workspace.module.ts +45 -0
  396. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.html +20 -0
  397. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.scss +0 -0
  398. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.spec.ts +28 -0
  399. package/src/lib/components/kv-workspace/logo/kv-workspace-logo.component.ts +18 -0
  400. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.html +35 -0
  401. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.scss +29 -0
  402. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.spec.ts +28 -0
  403. package/src/lib/components/kv-workspace/master/kv-workspace-master.component.ts +98 -0
  404. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.html +63 -0
  405. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.scss +62 -0
  406. package/src/lib/components/kv-workspace/workspace/kv-workspace.component.ts +91 -0
  407. package/{public-api.d.ts → src/public-api.ts} +382 -317
  408. package/tsconfig.lib.json +14 -0
  409. package/tsconfig.lib.prod.json +10 -0
  410. package/tsconfig.spec.json +14 -0
  411. package/esm2022/keevo-components.mjs +0 -5
  412. package/esm2022/lib/api/base-components/base-component-button.mjs +0 -39
  413. package/esm2022/lib/api/base-components/base-component-chart.mjs +0 -104
  414. package/esm2022/lib/api/base-components/base-component-crud-form.mjs +0 -308
  415. package/esm2022/lib/api/base-components/base-component-crud-list.mjs +0 -91
  416. package/esm2022/lib/api/base-components/base-component-crud.mjs +0 -80
  417. package/esm2022/lib/api/base-components/base-component-dropdown-external.mjs +0 -31
  418. package/esm2022/lib/api/base-components/base-component-dropdown.mjs +0 -242
  419. package/esm2022/lib/api/base-components/base-component-input.mjs +0 -101
  420. package/esm2022/lib/api/base-components/base-component-multi-select.mjs +0 -174
  421. package/esm2022/lib/api/base-components/base-component-table.mjs +0 -354
  422. package/esm2022/lib/api/base-components/base-component.mjs +0 -51
  423. package/esm2022/lib/api/components/chart/chart.config.mjs +0 -2
  424. package/esm2022/lib/api/components/chart/chart.model.mjs +0 -2
  425. package/esm2022/lib/api/components/chart/orchart.config.mjs +0 -2
  426. package/esm2022/lib/api/components/chart/orchartnode.mjs +0 -2
  427. package/esm2022/lib/api/components/dropdown/filtro.combo.mjs +0 -2
  428. package/esm2022/lib/api/components/step/step.model.mjs +0 -2
  429. package/esm2022/lib/api/components/stepper/kv-stepperpanel.mjs +0 -2
  430. package/esm2022/lib/api/components/table/action-item.mjs +0 -2
  431. package/esm2022/lib/api/components/table/kv-menuitem.mjs +0 -46
  432. package/esm2022/lib/api/components/table/table-dropdown-control.mjs +0 -2
  433. package/esm2022/lib/api/components/table/table.config.column.mjs +0 -2
  434. package/esm2022/lib/api/components/table/table.config.mjs +0 -2
  435. package/esm2022/lib/api/components/table/table.paginate.mjs +0 -10
  436. package/esm2022/lib/api/components/table/tabledit.config.mjs +0 -2
  437. package/esm2022/lib/api/components/table/tableedit.config.column.mjs +0 -2
  438. package/esm2022/lib/api/components/tree-table/tree-table-keys.mjs +0 -2
  439. package/esm2022/lib/api/components/tree-table/tree-table.config.mjs +0 -3
  440. package/esm2022/lib/api/directives/directives.module.mjs +0 -30
  441. package/esm2022/lib/api/directives/drag/drag.directive.mjs +0 -52
  442. package/esm2022/lib/api/directives/stepper/dynamicinput.directive.mjs +0 -31
  443. package/esm2022/lib/api/directives/template/template.directive.mjs +0 -24
  444. package/esm2022/lib/api/helpers/component-providers.mjs +0 -16
  445. package/esm2022/lib/api/helpers/keevo-validators.mjs +0 -144
  446. package/esm2022/lib/api/helpers/severity-color.mjs +0 -73
  447. package/esm2022/lib/api/helpers/translate-primeng.mjs +0 -23
  448. package/esm2022/lib/api/modules/primeng.module.mjs +0 -287
  449. package/esm2022/lib/api/pipes/capitalize.pipe.mjs +0 -47
  450. package/esm2022/lib/api/pipes/cpfcnpj.pipe.mjs +0 -25
  451. package/esm2022/lib/api/pipes/mask.pipe.mjs +0 -29
  452. package/esm2022/lib/api/pipes/pipes.module.mjs +0 -39
  453. package/esm2022/lib/api/pipes/telefone.pipe.mjs +0 -45
  454. package/esm2022/lib/api/services/base.api.service.mjs +0 -74
  455. package/esm2022/lib/api/services/breadcrumbs.service.mjs +0 -64
  456. package/esm2022/lib/api/services/chat.service.mjs +0 -37
  457. package/esm2022/lib/api/services/component.service.mjs +0 -37
  458. package/esm2022/lib/api/services/docs.service.mjs +0 -129
  459. package/esm2022/lib/api/services/form.service.mjs +0 -95
  460. package/esm2022/lib/api/services/image.cutter.service.mjs +0 -193
  461. package/esm2022/lib/api/services/imagens.service.mjs +0 -28
  462. package/esm2022/lib/api/services/notification.service.mjs +0 -69
  463. package/esm2022/lib/api/services/object.service.mjs +0 -39
  464. package/esm2022/lib/api/services/orgchart.service.mjs +0 -64
  465. package/esm2022/lib/api/services/pdf.service.mjs +0 -48
  466. package/esm2022/lib/api/types/breadcrumb.model.mjs +0 -2
  467. package/esm2022/lib/api/types/severity.mjs +0 -2
  468. package/esm2022/lib/components/keevo-components.module.mjs +0 -239
  469. package/esm2022/lib/components/kv-avatar/kv-avatar.component.mjs +0 -142
  470. package/esm2022/lib/components/kv-avatar/kv-avatar.module.mjs +0 -55
  471. package/esm2022/lib/components/kv-button/kv-button.component.mjs +0 -54
  472. package/esm2022/lib/components/kv-button/kv-button.module.mjs +0 -28
  473. package/esm2022/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.mjs +0 -25
  474. package/esm2022/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.mjs +0 -39
  475. package/esm2022/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.mjs +0 -17
  476. package/esm2022/lib/components/kv-buttons/kv-button-success/kv-button-success.component.mjs +0 -17
  477. package/esm2022/lib/components/kv-buttons/kv-button.module.mjs +0 -39
  478. package/esm2022/lib/components/kv-card-selection/kv-card-selection.component.mjs +0 -60
  479. package/esm2022/lib/components/kv-card-selection/kv-card-selection.module.mjs +0 -31
  480. package/esm2022/lib/components/kv-carousel/kv-carousel.component.mjs +0 -34
  481. package/esm2022/lib/components/kv-carousel/kv-carousel.module.mjs +0 -28
  482. package/esm2022/lib/components/kv-chart/kv-chart.component.mjs +0 -166
  483. package/esm2022/lib/components/kv-chart/kv-chart.module.mjs +0 -32
  484. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.mjs +0 -32
  485. package/esm2022/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.mjs +0 -22
  486. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.component.mjs +0 -186
  487. package/esm2022/lib/components/kv-content-viewer/kv-content-viewer.module.mjs +0 -44
  488. package/esm2022/lib/components/kv-detailed-list/kv-detailed-list.component.mjs +0 -171
  489. package/esm2022/lib/components/kv-error/kv-error.component.mjs +0 -26
  490. package/esm2022/lib/components/kv-error/kv-error.module.mjs +0 -35
  491. package/esm2022/lib/components/kv-file-upload/kv-file-upload.component.mjs +0 -191
  492. package/esm2022/lib/components/kv-file-upload/kv-file-upload.module.mjs +0 -23
  493. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.component.mjs +0 -46
  494. package/esm2022/lib/components/kv-file-viewer/kv-file-viewer.module.mjs +0 -20
  495. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.mjs +0 -68
  496. package/esm2022/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.mjs +0 -24
  497. package/esm2022/lib/components/kv-filter-card/kv-filter-card.component.mjs +0 -29
  498. package/esm2022/lib/components/kv-filter-card/kv-filter-card.module.mjs +0 -34
  499. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.component.mjs +0 -92
  500. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.module.mjs +0 -31
  501. package/esm2022/lib/components/kv-filter-cards/kv-filter-cards.pipe.mjs +0 -30
  502. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.mjs +0 -29
  503. package/esm2022/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.mjs +0 -28
  504. package/esm2022/lib/components/kv-g-icon/kv-g-icon.component.mjs +0 -11
  505. package/esm2022/lib/components/kv-g-icon/kv-g-icon.module.mjs +0 -19
  506. package/esm2022/lib/components/kv-home-card/kv-home-card.component.mjs +0 -27
  507. package/esm2022/lib/components/kv-home-card/kv-home-card.module.mjs +0 -32
  508. package/esm2022/lib/components/kv-icon/kv-icon.component.mjs +0 -31
  509. package/esm2022/lib/components/kv-icon/kv-icon.model.mjs +0 -2
  510. package/esm2022/lib/components/kv-icon/kv-icon.module.mjs +0 -24
  511. package/esm2022/lib/components/kv-image-upload/kv-image-upload.component.mjs +0 -136
  512. package/esm2022/lib/components/kv-image-upload/kv-image-upload.module.mjs +0 -18
  513. package/esm2022/lib/components/kv-inputs/kv-check/kv-check.component.mjs +0 -29
  514. package/esm2022/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.mjs +0 -105
  515. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.mjs +0 -18
  516. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.mjs +0 -40
  517. package/esm2022/lib/components/kv-inputs/kv-editor/config/kv-editor.config.mjs +0 -110
  518. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +0 -271
  519. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.mjs +0 -7
  520. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.mjs +0 -135
  521. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.mjs +0 -168
  522. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.mjs +0 -78
  523. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.mjs +0 -95
  524. package/esm2022/lib/components/kv-inputs/kv-editor/types/kv-editor.types.mjs +0 -2
  525. package/esm2022/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.mjs +0 -163
  526. package/esm2022/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.mjs +0 -30
  527. package/esm2022/lib/components/kv-inputs/kv-input-number/kv-input-number.component.mjs +0 -59
  528. package/esm2022/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.mjs +0 -66
  529. package/esm2022/lib/components/kv-inputs/kv-input-password/kv-input-password.component.mjs +0 -33
  530. package/esm2022/lib/components/kv-inputs/kv-input-text/kv-input-text.component.mjs +0 -38
  531. package/esm2022/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.mjs +0 -42
  532. package/esm2022/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.mjs +0 -50
  533. package/esm2022/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.mjs +0 -43
  534. package/esm2022/lib/components/kv-inputs/kv-input-time/kv-input-time.component.mjs +0 -24
  535. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +0 -165
  536. package/esm2022/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.mjs +0 -60
  537. package/esm2022/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.mjs +0 -60
  538. package/esm2022/lib/components/kv-inputs/kv-select-button/kv-select-button.component.mjs +0 -46
  539. package/esm2022/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.mjs +0 -37
  540. package/esm2022/lib/components/kv-inputs/kv-switch/kv-switch.component.mjs +0 -42
  541. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +0 -58
  542. package/esm2022/lib/components/kv-label/kv-label.component.mjs +0 -15
  543. package/esm2022/lib/components/kv-label/kv-label.module.mjs +0 -24
  544. package/esm2022/lib/components/kv-layout/dropdown-master/dropdown-master.component.mjs +0 -28
  545. package/esm2022/lib/components/kv-layout/kv-layout.module.mjs +0 -72
  546. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +0 -454
  547. package/esm2022/lib/components/kv-layout/top-icons/top-icons.component.mjs +0 -15
  548. package/esm2022/lib/components/kv-loader/kv-loader.component.mjs +0 -16
  549. package/esm2022/lib/components/kv-loader/kv-loader.module.mjs +0 -28
  550. package/esm2022/lib/components/kv-loader/kv-loader.service.mjs +0 -29
  551. package/esm2022/lib/components/kv-login/kv-login.component.mjs +0 -62
  552. package/esm2022/lib/components/kv-login/kv-login.module.mjs +0 -47
  553. package/esm2022/lib/components/kv-modal/kv-modal.component.mjs +0 -98
  554. package/esm2022/lib/components/kv-modal/kv-modal.module.mjs +0 -20
  555. package/esm2022/lib/components/kv-orgchart/kv-orgchart.component.mjs +0 -225
  556. package/esm2022/lib/components/kv-orgchart/kv-orgchart.module.mjs +0 -59
  557. package/esm2022/lib/components/kv-page-form/kv-page-form.component.mjs +0 -190
  558. package/esm2022/lib/components/kv-page-form/kv-page-form.module.mjs +0 -41
  559. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.component.mjs +0 -205
  560. package/esm2022/lib/components/kv-page-stepper/kv-page-stepper.module.mjs +0 -51
  561. package/esm2022/lib/components/kv-pick-list/kv-pick-list.component.mjs +0 -386
  562. package/esm2022/lib/components/kv-pick-list/kv-pick-list.module.mjs +0 -39
  563. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.component.mjs +0 -58
  564. package/esm2022/lib/components/kv-progress-bar/kv-progress-bar.module.mjs +0 -28
  565. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.mjs +0 -62
  566. package/esm2022/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.mjs +0 -28
  567. package/esm2022/lib/components/kv-report/kv-report.component.mjs +0 -44
  568. package/esm2022/lib/components/kv-report/kv-report.module.mjs +0 -24
  569. package/esm2022/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.mjs +0 -57
  570. package/esm2022/lib/components/kv-stepper/kv-stepper.component.mjs +0 -74
  571. package/esm2022/lib/components/kv-stepper/kv-stepper.module.mjs +0 -47
  572. package/esm2022/lib/components/kv-steps/kv-steps.component.mjs +0 -105
  573. package/esm2022/lib/components/kv-table/kv-table.component.mjs +0 -680
  574. package/esm2022/lib/components/kv-table/kv-table.module.mjs +0 -40
  575. package/esm2022/lib/components/kv-table-draggable/kv-table-draggable.component.mjs +0 -852
  576. package/esm2022/lib/components/kv-table-draggable/kv-table-draggable.module.mjs +0 -44
  577. package/esm2022/lib/components/kv-table-edit/kv-table-edit.component.mjs +0 -341
  578. package/esm2022/lib/components/kv-table-edit/kv-table-edit.module.mjs +0 -45
  579. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.component.mjs +0 -516
  580. package/esm2022/lib/components/kv-table-expandable/kv-table-expandable.module.mjs +0 -40
  581. package/esm2022/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.mjs +0 -17
  582. package/esm2022/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.mjs +0 -18
  583. package/esm2022/lib/components/kv-table-viewer/kv-table-viewer.component.mjs +0 -241
  584. package/esm2022/lib/components/kv-tag/kv-tag.component.mjs +0 -19
  585. package/esm2022/lib/components/kv-tag/kv-tag.module.mjs +0 -24
  586. package/esm2022/lib/components/kv-tags/kv-tags.component.mjs +0 -36
  587. package/esm2022/lib/components/kv-tags/kv-tags.module.mjs +0 -27
  588. package/esm2022/lib/components/kv-timeline/kv-timeline.component.mjs +0 -77
  589. package/esm2022/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.mjs +0 -326
  590. package/esm2022/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.mjs +0 -100
  591. package/esm2022/lib/components/kv-tree-environment/models/no-arvore.model.mjs +0 -2
  592. package/esm2022/lib/components/kv-tree-table/kv-tree-table.component.mjs +0 -334
  593. package/esm2022/lib/components/kv-tree-table/kv-tree-table.module.mjs +0 -39
  594. package/esm2022/lib/components/kv-tree-view/kv-tree-view.component.mjs +0 -70
  595. package/esm2022/lib/components/kv-tree-view/kv-tree-view.module.mjs +0 -28
  596. package/esm2022/lib/components/kv-widget-card/kv-widget-card.component.mjs +0 -102
  597. package/esm2022/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.mjs +0 -40
  598. package/esm2022/lib/components/kv-workspace/kv-workspace.module.mjs +0 -68
  599. package/esm2022/lib/components/kv-workspace/logo/kv-workspace-logo.component.mjs +0 -22
  600. package/esm2022/lib/components/kv-workspace/master/kv-workspace-master.component.mjs +0 -78
  601. package/esm2022/lib/components/kv-workspace/workspace/kv-workspace.component.mjs +0 -87
  602. package/esm2022/public-api.mjs +0 -322
  603. package/fesm2022/keevo-components.mjs +0 -13709
  604. package/fesm2022/keevo-components.mjs.map +0 -1
  605. package/index.d.ts +0 -5
  606. package/lib/api/base-components/base-component-button.d.ts +0 -15
  607. package/lib/api/base-components/base-component-chart.d.ts +0 -40
  608. package/lib/api/base-components/base-component-crud-form.d.ts +0 -149
  609. package/lib/api/base-components/base-component-crud-list.d.ts +0 -70
  610. package/lib/api/base-components/base-component-crud.d.ts +0 -36
  611. package/lib/api/base-components/base-component-dropdown-external.d.ts +0 -15
  612. package/lib/api/base-components/base-component-dropdown.d.ts +0 -60
  613. package/lib/api/base-components/base-component-input.d.ts +0 -33
  614. package/lib/api/base-components/base-component-multi-select.d.ts +0 -40
  615. package/lib/api/base-components/base-component-table.d.ts +0 -88
  616. package/lib/api/base-components/base-component.d.ts +0 -22
  617. package/lib/api/components/chart/chart.config.d.ts +0 -14
  618. package/lib/api/components/chart/chart.model.d.ts +0 -12
  619. package/lib/api/components/chart/orchart.config.d.ts +0 -41
  620. package/lib/api/components/chart/orchartnode.d.ts +0 -34
  621. package/lib/api/components/dropdown/filtro.combo.d.ts +0 -4
  622. package/lib/api/components/stepper/kv-stepperpanel.d.ts +0 -9
  623. package/lib/api/components/table/action-item.d.ts +0 -13
  624. package/lib/api/components/table/kv-menuitem.d.ts +0 -152
  625. package/lib/api/components/table/table-dropdown-control.d.ts +0 -6
  626. package/lib/api/components/table/table.config.column.d.ts +0 -38
  627. package/lib/api/components/table/table.config.d.ts +0 -36
  628. package/lib/api/components/table/table.paginate.d.ts +0 -10
  629. package/lib/api/components/table/tableedit.config.column.d.ts +0 -11
  630. package/lib/api/components/tree-table/tree-table-keys.d.ts +0 -12
  631. package/lib/api/components/tree-table/tree-table.config.d.ts +0 -31
  632. package/lib/api/directives/directives.module.d.ts +0 -9
  633. package/lib/api/directives/drag/drag.directive.d.ts +0 -11
  634. package/lib/api/directives/stepper/dynamicinput.directive.d.ts +0 -15
  635. package/lib/api/directives/template/template.directive.d.ts +0 -11
  636. package/lib/api/helpers/component-providers.d.ts +0 -2
  637. package/lib/api/helpers/keevo-validators.d.ts +0 -18
  638. package/lib/api/helpers/severity-color.d.ts +0 -5
  639. package/lib/api/helpers/translate-primeng.d.ts +0 -4
  640. package/lib/api/modules/primeng.module.d.ts +0 -70
  641. package/lib/api/pipes/capitalize.pipe.d.ts +0 -10
  642. package/lib/api/pipes/cpfcnpj.pipe.d.ts +0 -7
  643. package/lib/api/pipes/mask.pipe.d.ts +0 -7
  644. package/lib/api/pipes/pipes.module.d.ts +0 -11
  645. package/lib/api/pipes/telefone.pipe.d.ts +0 -7
  646. package/lib/api/services/base.api.service.d.ts +0 -25
  647. package/lib/api/services/breadcrumbs.service.d.ts +0 -16
  648. package/lib/api/services/chat.service.d.ts +0 -17
  649. package/lib/api/services/component.service.d.ts +0 -11
  650. package/lib/api/services/docs.service.d.ts +0 -12
  651. package/lib/api/services/form.service.d.ts +0 -31
  652. package/lib/api/services/image.cutter.service.d.ts +0 -16
  653. package/lib/api/services/imagens.service.d.ts +0 -10
  654. package/lib/api/services/notification.service.d.ts +0 -26
  655. package/lib/api/services/object.service.d.ts +0 -9
  656. package/lib/api/services/orgchart.service.d.ts +0 -20
  657. package/lib/api/services/pdf.service.d.ts +0 -7
  658. package/lib/api/types/breadcrumb.model.d.ts +0 -6
  659. package/lib/components/keevo-components.module.d.ts +0 -39
  660. package/lib/components/kv-avatar/kv-avatar.component.d.ts +0 -36
  661. package/lib/components/kv-avatar/kv-avatar.module.d.ts +0 -15
  662. package/lib/components/kv-button/kv-button.component.d.ts +0 -25
  663. package/lib/components/kv-button/kv-button.module.d.ts +0 -9
  664. package/lib/components/kv-buttons/kv-button-personalize/kv-button-personalize.component.d.ts +0 -11
  665. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +0 -19
  666. package/lib/components/kv-buttons/kv-button-secondary/kv-button-secondary.component.d.ts +0 -7
  667. package/lib/components/kv-buttons/kv-button-success/kv-button-success.component.d.ts +0 -7
  668. package/lib/components/kv-buttons/kv-button.module.d.ts +0 -11
  669. package/lib/components/kv-card-selection/kv-card-selection.component.d.ts +0 -25
  670. package/lib/components/kv-card-selection/kv-card-selection.module.d.ts +0 -10
  671. package/lib/components/kv-carousel/kv-carousel.component.d.ts +0 -17
  672. package/lib/components/kv-carousel/kv-carousel.module.d.ts +0 -9
  673. package/lib/components/kv-chart/kv-chart.component.d.ts +0 -57
  674. package/lib/components/kv-chart/kv-chart.module.d.ts +0 -10
  675. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.component.d.ts +0 -12
  676. package/lib/components/kv-confirmation-modal/kv-confirmation-modal.module.d.ts +0 -10
  677. package/lib/components/kv-content-viewer/kv-content-viewer.component.d.ts +0 -57
  678. package/lib/components/kv-content-viewer/kv-content-viewer.module.d.ts +0 -14
  679. package/lib/components/kv-detailed-list/kv-detailed-list.component.d.ts +0 -62
  680. package/lib/components/kv-error/kv-error.component.d.ts +0 -12
  681. package/lib/components/kv-error/kv-error.module.d.ts +0 -10
  682. package/lib/components/kv-file-upload/kv-file-upload.component.d.ts +0 -35
  683. package/lib/components/kv-file-upload/kv-file-upload.module.d.ts +0 -10
  684. package/lib/components/kv-file-viewer/kv-file-viewer.component.d.ts +0 -21
  685. package/lib/components/kv-file-viewer/kv-file-viewer.module.d.ts +0 -8
  686. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.component.d.ts +0 -24
  687. package/lib/components/kv-file-viewer-novo/kv-file-viewer-novo.module.d.ts +0 -9
  688. package/lib/components/kv-filter-card/kv-filter-card.component.d.ts +0 -13
  689. package/lib/components/kv-filter-card/kv-filter-card.module.d.ts +0 -10
  690. package/lib/components/kv-filter-cards/kv-filter-cards.component.d.ts +0 -31
  691. package/lib/components/kv-filter-cards/kv-filter-cards.module.d.ts +0 -9
  692. package/lib/components/kv-filter-cards/kv-filter-cards.pipe.d.ts +0 -7
  693. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.component.d.ts +0 -11
  694. package/lib/components/kv-filter-fieldset/kv-filter-fieldset.module.d.ts +0 -9
  695. package/lib/components/kv-g-icon/kv-g-icon.component.d.ts +0 -5
  696. package/lib/components/kv-g-icon/kv-g-icon.module.d.ts +0 -9
  697. package/lib/components/kv-home-card/kv-home-card.component.d.ts +0 -24
  698. package/lib/components/kv-home-card/kv-home-card.module.d.ts +0 -11
  699. package/lib/components/kv-icon/kv-icon.component.d.ts +0 -23
  700. package/lib/components/kv-icon/kv-icon.module.d.ts +0 -8
  701. package/lib/components/kv-image-upload/kv-image-upload.component.d.ts +0 -34
  702. package/lib/components/kv-image-upload/kv-image-upload.module.d.ts +0 -8
  703. package/lib/components/kv-inputs/kv-check/kv-check.component.d.ts +0 -12
  704. package/lib/components/kv-inputs/kv-dropdown/kv-dropdown.component.d.ts +0 -34
  705. package/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.d.ts +0 -8
  706. package/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.d.ts +0 -14
  707. package/lib/components/kv-inputs/kv-editor/config/kv-editor.config.d.ts +0 -55
  708. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +0 -70
  709. package/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.d.ts +0 -41
  710. package/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.d.ts +0 -41
  711. package/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.d.ts +0 -28
  712. package/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.d.ts +0 -45
  713. package/lib/components/kv-inputs/kv-editor/types/kv-editor.types.d.ts +0 -32
  714. package/lib/components/kv-inputs/kv-input-calendar/kv-input-calendar.component.d.ts +0 -34
  715. package/lib/components/kv-inputs/kv-input-mask/kv-input-mask.component.d.ts +0 -12
  716. package/lib/components/kv-inputs/kv-input-number/kv-input-number.component.d.ts +0 -19
  717. package/lib/components/kv-inputs/kv-input-number-addon/kv-input-number-addon.component.d.ts +0 -21
  718. package/lib/components/kv-inputs/kv-input-password/kv-input-password.component.d.ts +0 -13
  719. package/lib/components/kv-inputs/kv-input-text/kv-input-text.component.d.ts +0 -11
  720. package/lib/components/kv-inputs/kv-input-text-addon/kv-input-text-addon.component.d.ts +0 -13
  721. package/lib/components/kv-inputs/kv-input-text-checkbox/kv-input-text-checkbox.component.d.ts +0 -18
  722. package/lib/components/kv-inputs/kv-input-textarea/kv-input-textarea.component.d.ts +0 -16
  723. package/lib/components/kv-inputs/kv-input-time/kv-input-time.component.d.ts +0 -10
  724. package/lib/components/kv-inputs/kv-inputs.module.d.ts +0 -38
  725. package/lib/components/kv-inputs/kv-multi-select/kv-multi-select.component.d.ts +0 -20
  726. package/lib/components/kv-inputs/kv-radio-group/kv-radio-group.component.d.ts +0 -20
  727. package/lib/components/kv-inputs/kv-select-button/kv-select-button.component.d.ts +0 -19
  728. package/lib/components/kv-inputs/kv-select-buttons/kv-select-buttons.component.d.ts +0 -26
  729. package/lib/components/kv-inputs/kv-switch/kv-switch.component.d.ts +0 -16
  730. package/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.d.ts +0 -25
  731. package/lib/components/kv-label/kv-label.component.d.ts +0 -7
  732. package/lib/components/kv-label/kv-label.module.d.ts +0 -8
  733. package/lib/components/kv-layout/dropdown-master/dropdown-master.component.d.ts +0 -12
  734. package/lib/components/kv-layout/kv-layout.module.d.ts +0 -18
  735. package/lib/components/kv-layout/layout/kv-layout.component.d.ts +0 -159
  736. package/lib/components/kv-layout/top-icons/top-icons.component.d.ts +0 -16
  737. package/lib/components/kv-loader/kv-loader.component.d.ts +0 -7
  738. package/lib/components/kv-loader/kv-loader.module.d.ts +0 -9
  739. package/lib/components/kv-loader/kv-loader.service.d.ts +0 -10
  740. package/lib/components/kv-login/kv-login.component.d.ts +0 -32
  741. package/lib/components/kv-login/kv-login.module.d.ts +0 -13
  742. package/lib/components/kv-modal/kv-modal.component.d.ts +0 -27
  743. package/lib/components/kv-modal/kv-modal.module.d.ts +0 -10
  744. package/lib/components/kv-orgchart/kv-orgchart.component.d.ts +0 -45
  745. package/lib/components/kv-orgchart/kv-orgchart.module.d.ts +0 -17
  746. package/lib/components/kv-page-form/kv-page-form.component.d.ts +0 -98
  747. package/lib/components/kv-page-form/kv-page-form.module.d.ts +0 -12
  748. package/lib/components/kv-page-stepper/kv-page-stepper.component.d.ts +0 -84
  749. package/lib/components/kv-page-stepper/kv-page-stepper.module.d.ts +0 -14
  750. package/lib/components/kv-pick-list/kv-pick-list.component.d.ts +0 -70
  751. package/lib/components/kv-pick-list/kv-pick-list.module.d.ts +0 -11
  752. package/lib/components/kv-progress-bar/kv-progress-bar.component.d.ts +0 -67
  753. package/lib/components/kv-progress-bar/kv-progress-bar.module.d.ts +0 -9
  754. package/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.component.d.ts +0 -71
  755. package/lib/components/kv-progress-bar-alternative/kv-progress-bar-alternative.module.d.ts +0 -9
  756. package/lib/components/kv-report/kv-report.component.d.ts +0 -18
  757. package/lib/components/kv-report/kv-report.module.d.ts +0 -8
  758. package/lib/components/kv-stacked-bar-chart/kv-stacked-bar-chart.component.d.ts +0 -40
  759. package/lib/components/kv-stepper/kv-stepper.component.d.ts +0 -32
  760. package/lib/components/kv-stepper/kv-stepper.module.d.ts +0 -13
  761. package/lib/components/kv-steps/kv-steps.component.d.ts +0 -21
  762. package/lib/components/kv-table/kv-table.component.d.ts +0 -157
  763. package/lib/components/kv-table/kv-table.module.d.ts +0 -12
  764. package/lib/components/kv-table-draggable/kv-table-draggable.component.d.ts +0 -161
  765. package/lib/components/kv-table-draggable/kv-table-draggable.module.d.ts +0 -13
  766. package/lib/components/kv-table-edit/kv-table-edit.component.d.ts +0 -66
  767. package/lib/components/kv-table-edit/kv-table-edit.module.d.ts +0 -15
  768. package/lib/components/kv-table-expandable/kv-table-expandable.component.d.ts +0 -119
  769. package/lib/components/kv-table-expandable/kv-table-expandable.module.d.ts +0 -13
  770. package/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.d.ts +0 -8
  771. package/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.d.ts +0 -7
  772. package/lib/components/kv-table-viewer/kv-table-viewer.component.d.ts +0 -94
  773. package/lib/components/kv-tag/kv-tag.component.d.ts +0 -8
  774. package/lib/components/kv-tag/kv-tag.module.d.ts +0 -8
  775. package/lib/components/kv-tags/kv-tags.component.d.ts +0 -33
  776. package/lib/components/kv-tags/kv-tags.module.d.ts +0 -8
  777. package/lib/components/kv-timeline/kv-timeline.component.d.ts +0 -20
  778. package/lib/components/kv-tree-environment/components/kv-tree-environment/kv-tree-environment.component.d.ts +0 -52
  779. package/lib/components/kv-tree-environment/components/no-arvore/no-arvore.component.d.ts +0 -24
  780. package/lib/components/kv-tree-environment/models/no-arvore.model.d.ts +0 -52
  781. package/lib/components/kv-tree-table/kv-tree-table.component.d.ts +0 -87
  782. package/lib/components/kv-tree-table/kv-tree-table.module.d.ts +0 -11
  783. package/lib/components/kv-tree-view/kv-tree-view.component.d.ts +0 -21
  784. package/lib/components/kv-tree-view/kv-tree-view.module.d.ts +0 -9
  785. package/lib/components/kv-widget-card/kv-widget-card.component.d.ts +0 -60
  786. package/lib/components/kv-workspace/empresa/kv-workspace-empresa.component.d.ts +0 -14
  787. package/lib/components/kv-workspace/kv-workspace.module.d.ts +0 -19
  788. package/lib/components/kv-workspace/logo/kv-workspace-logo.component.d.ts +0 -11
  789. package/lib/components/kv-workspace/master/kv-workspace-master.component.d.ts +0 -25
  790. package/lib/components/kv-workspace/workspace/kv-workspace.component.d.ts +0 -37
@@ -1,40 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { KvTableExpandableComponent } from './kv-table-expandable.component';
4
- import { FormsModule } from '@angular/forms';
5
- import { KvButtonsModule } from '../kv-buttons/kv-button.module';
6
- import { KvInputsModule } from '../kv-inputs/kv-inputs.module';
7
- import { PrimeNgModule } from '../../api/modules/primeng.module';
8
- import { KvButtonModule } from '../kv-button/kv-button.module';
9
- import * as i0 from "@angular/core";
10
- export class KvTableExpandableModule {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, declarations: [KvTableExpandableComponent], imports: [CommonModule,
13
- PrimeNgModule,
14
- FormsModule,
15
- KvInputsModule,
16
- KvButtonsModule,
17
- KvButtonModule], exports: [KvTableExpandableComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, imports: [CommonModule,
19
- PrimeNgModule,
20
- FormsModule,
21
- KvInputsModule,
22
- KvButtonsModule,
23
- KvButtonModule] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableExpandableModule, decorators: [{
26
- type: NgModule,
27
- args: [{
28
- declarations: [KvTableExpandableComponent],
29
- imports: [
30
- CommonModule,
31
- PrimeNgModule,
32
- FormsModule,
33
- KvInputsModule,
34
- KvButtonsModule,
35
- KvButtonModule
36
- ],
37
- exports: [KvTableExpandableComponent]
38
- }]
39
- }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdGFibGUtZXhwYW5kYWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10YWJsZS1leHBhbmRhYmxlL2t2LXRhYmxlLWV4cGFuZGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBYy9ELE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLGlCQVhuQiwwQkFBMEIsYUFFdkMsWUFBWTtZQUNaLGFBQWE7WUFDYixXQUFXO1lBQ1gsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjLGFBRU4sMEJBQTBCOytHQUV6Qix1QkFBdUIsWUFUaEMsWUFBWTtZQUNaLGFBQWE7WUFDYixXQUFXO1lBQ1gsY0FBYztZQUNkLGVBQWU7WUFDZixjQUFjOzsyRkFJTCx1QkFBdUI7a0JBWm5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBLdlRhYmxlRXhwYW5kYWJsZUNvbXBvbmVudCB9IGZyb20gJy4va3YtdGFibGUtZXhwYW5kYWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgS3ZCdXR0b25zTW9kdWxlIH0gZnJvbSAnLi4va3YtYnV0dG9ucy9rdi1idXR0b24ubW9kdWxlJztcclxuaW1wb3J0IHsgS3ZJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9rdi1pbnB1dHMva3YtaW5wdXRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IFByaW1lTmdNb2R1bGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kdWxlcy9wcmltZW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4va3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtLdlRhYmxlRXhwYW5kYWJsZUNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUHJpbWVOZ01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgS3ZJbnB1dHNNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbnNNb2R1bGUsXHJcbiAgICBLdkJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0t2VGFibGVFeHBhbmRhYmxlQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZUYWJsZUV4cGFuZGFibGVNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import { KvButtonModule } from '../../../kv-button/kv-button.module';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../../kv-button/kv-button.component";
5
- export class ActionsLoteFieldComponent {
6
- constructor() {
7
- this.selectedItems = input([]);
8
- this.actionsLote = input(undefined);
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ActionsLoteFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: ActionsLoteFieldComponent, isStandalone: true, selector: "actions-lote-field", inputs: { selectedItems: { classPropertyName: "selectedItems", publicName: "selectedItems", isSignal: true, isRequired: false, transformFunction: null }, actionsLote: { classPropertyName: "actionsLote", publicName: "actionsLote", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\r\n class=\"h-full flex flex-column gap-8 align-items-center justify-content-center\"\r\n>\r\n <div class=\"flex flex-column gap-3 align-items-center justify-content-center\">\r\n <img\r\n src=\"https://work-assets.keevo.com.br/img/Sem_Dados.png\"\r\n class=\"h-5rem w-auto\"\r\n />\r\n <span class=\"text-gray-600 text-sm font-medium\"\r\n >{{ this.selectedItems()?.length }} itens selecionados</span\r\n >\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n @if(actionsLote()) { @for(action of actionsLote(); track $index) {\r\n <kv-button\r\n [icon]=\"action?.icon || ''\"\r\n [label]=\"action?.label || ''\"\r\n severity=\"secondary\"\r\n type=\"text\"\r\n (onClick)=\"action?.command($event)\"\r\n />\r\n } }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: KvButtonModule }, { kind: "component", type: i1.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup", "popupIcon"], outputs: ["iconChange", "onClick"] }] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ActionsLoteFieldComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'actions-lote-field', standalone: true, imports: [KvButtonModule], template: "<div\r\n class=\"h-full flex flex-column gap-8 align-items-center justify-content-center\"\r\n>\r\n <div class=\"flex flex-column gap-3 align-items-center justify-content-center\">\r\n <img\r\n src=\"https://work-assets.keevo.com.br/img/Sem_Dados.png\"\r\n class=\"h-5rem w-auto\"\r\n />\r\n <span class=\"text-gray-600 text-sm font-medium\"\r\n >{{ this.selectedItems()?.length }} itens selecionados</span\r\n >\r\n </div>\r\n\r\n <div class=\"flex flex-column gap-2\">\r\n @if(actionsLote()) { @for(action of actionsLote(); track $index) {\r\n <kv-button\r\n [icon]=\"action?.icon || ''\"\r\n [label]=\"action?.label || ''\"\r\n severity=\"secondary\"\r\n type=\"text\"\r\n (onClick)=\"action?.command($event)\"\r\n />\r\n } }\r\n </div>\r\n</div>\r\n" }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1sb3RlLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXRhYmxlLXZpZXdlci9jb21wb25lbnRzL2FjdGlvbnMtbG90ZS1maWVsZC9hY3Rpb25zLWxvdGUtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdGFibGUtdmlld2VyL2NvbXBvbmVudHMvYWN0aW9ucy1sb3RlLWZpZWxkL2FjdGlvbnMtbG90ZS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUE7OztBQVNwRSxNQUFNLE9BQU8seUJBQXlCO0lBUHRDO1FBU0Usa0JBQWEsR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUM7UUFFakMsZ0JBQVcsR0FBRyxLQUFLLENBQXlCLFNBQVMsQ0FBQyxDQUFDO0tBQ3hEOzhHQUxZLHlCQUF5QjtrR0FBekIseUJBQXlCLG9YQ1h0Qyx3ekJBeUJBLHlERGxCWSxjQUFjOzsyRkFJYix5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEt2QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4va3YtYnV0dG9uL2t2LWJ1dHRvbi5tb2R1bGUnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FjdGlvbnMtbG90ZS1maWVsZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbS3ZCdXR0b25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLWxvdGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hY3Rpb25zLWxvdGUtZmllbGQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25zTG90ZUZpZWxkQ29tcG9uZW50IHtcclxuXHJcbiAgc2VsZWN0ZWRJdGVtcyA9IGlucHV0PGFueVtdPihbXSk7XHJcblxyXG4gIGFjdGlvbnNMb3RlID0gaW5wdXQ8TWVudUl0ZW1bXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbHVtbiBnYXAtOCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgPGltZ1xyXG4gICAgICBzcmM9XCJodHRwczovL3dvcmstYXNzZXRzLmtlZXZvLmNvbS5ici9pbWcvU2VtX0RhZG9zLnBuZ1wiXHJcbiAgICAgIGNsYXNzPVwiaC01cmVtIHctYXV0b1wiXHJcbiAgICAvPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIHRleHQtc20gZm9udC1tZWRpdW1cIlxyXG4gICAgICA+e3sgdGhpcy5zZWxlY3RlZEl0ZW1zKCk/Lmxlbmd0aCB9fSBpdGVucyBzZWxlY2lvbmFkb3M8L3NwYW5cclxuICAgID5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gZ2FwLTJcIj5cclxuICAgIEBpZihhY3Rpb25zTG90ZSgpKSB7IEBmb3IoYWN0aW9uIG9mIGFjdGlvbnNMb3RlKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgPGt2LWJ1dHRvblxyXG4gICAgICBbaWNvbl09XCJhY3Rpb24/Lmljb24gfHwgJydcIlxyXG4gICAgICBbbGFiZWxdPVwiYWN0aW9uPy5sYWJlbCB8fCAnJ1wiXHJcbiAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAob25DbGljayk9XCJhY3Rpb24/LmNvbW1hbmQoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgfSB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,18 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import { TieredMenuModule } from 'primeng/tieredmenu';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "primeng/tieredmenu";
5
- import * as i2 from "primeng/tooltip";
6
- import * as i3 from "primeng/api";
7
- export class ActionsRowMenuComponent {
8
- constructor() {
9
- this.actionsRow = input(undefined);
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ActionsRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: ActionsRowMenuComponent, isStandalone: true, selector: "actions-row-menu", inputs: { actionsRow: { classPropertyName: "actionsRow", publicName: "actionsRow", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<span\r\n class=\"text-lg right-0 pr-2 material-symbols-outlined cursor-pointer text-gray-800 hover:text-gray-600 transition-all transition-duration-300 absolute\"\r\n (click)=\"menu.toggle($event)\"\r\n>\r\n more_vert\r\n</span>\r\n\r\n<p-tieredMenu #menu [popup]=\"true\" [model]=\"actionsRow()\" appendTo=\"body\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div\r\n [pTooltip]=\"item.tooltip\"\r\n tooltipPosition=\"left\"\r\n class=\"cursor-pointer h-2rem flex align-items-center\"\r\n >\r\n <span class=\"text-sm pl-2\">\r\n {{ item.label }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n</p-tieredMenu>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TieredMenuModule }, { kind: "component", type: i1.TieredMenu, selector: "p-tieredMenu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "autoDisplay", "showTransitionOptions", "hideTransitionOptions", "id", "ariaLabel", "ariaLabelledBy", "disabled", "tabindex"], outputs: ["onShow", "onHide"] }, { kind: "directive", type: i2.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ActionsRowMenuComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'actions-row-menu', standalone: true, imports: [TieredMenuModule], template: "<span\r\n class=\"text-lg right-0 pr-2 material-symbols-outlined cursor-pointer text-gray-800 hover:text-gray-600 transition-all transition-duration-300 absolute\"\r\n (click)=\"menu.toggle($event)\"\r\n>\r\n more_vert\r\n</span>\r\n\r\n<p-tieredMenu #menu [popup]=\"true\" [model]=\"actionsRow()\" appendTo=\"body\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div\r\n [pTooltip]=\"item.tooltip\"\r\n tooltipPosition=\"left\"\r\n class=\"cursor-pointer h-2rem flex align-items-center\"\r\n >\r\n <span class=\"text-sm pl-2\">\r\n {{ item.label }}\r\n </span>\r\n </div>\r\n </ng-template>\r\n</p-tieredMenu>\r\n" }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1yb3ctbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10YWJsZS12aWV3ZXIvY29tcG9uZW50cy9hY3Rpb25zLXJvdy1tZW51L2FjdGlvbnMtcm93LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdGFibGUtdmlld2VyL2NvbXBvbmVudHMvYWN0aW9ucy1yb3ctbWVudS9hY3Rpb25zLXJvdy1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVN0RCxNQUFNLE9BQU8sdUJBQXVCO0lBUHBDO1FBUUUsZUFBVSxHQUFHLEtBQUssQ0FBeUIsU0FBUyxDQUFDLENBQUM7S0FDdkQ7OEdBRlksdUJBQXVCO2tHQUF2Qix1QkFBdUIsK05DWHBDLDJwQkFvQkEseUREYlksZ0JBQWdCOzsyRkFJZix1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVGllcmVkTWVudU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGllcmVkbWVudSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FjdGlvbnMtcm93LW1lbnUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1RpZXJlZE1lbnVNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLXJvdy1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYWN0aW9ucy1yb3ctbWVudS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvbnNSb3dNZW51Q29tcG9uZW50IHtcclxuICBhY3Rpb25zUm93ID0gaW5wdXQ8TWVudUl0ZW1bXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxufVxyXG4iLCI8c3BhblxyXG4gIGNsYXNzPVwidGV4dC1sZyByaWdodC0wIHByLTIgbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBjdXJzb3ItcG9pbnRlciB0ZXh0LWdyYXktODAwIGhvdmVyOnRleHQtZ3JheS02MDAgdHJhbnNpdGlvbi1hbGwgdHJhbnNpdGlvbi1kdXJhdGlvbi0zMDAgYWJzb2x1dGVcIlxyXG4gIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcclxuPlxyXG4gIG1vcmVfdmVydFxyXG48L3NwYW4+XHJcblxyXG48cC10aWVyZWRNZW51ICNtZW51IFtwb3B1cF09XCJ0cnVlXCIgW21vZGVsXT1cImFjdGlvbnNSb3coKVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIFtwVG9vbHRpcF09XCJpdGVtLnRvb2x0aXBcIlxyXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCJcclxuICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBoLTJyZW0gZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gcGwtMlwiPlxyXG4gICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLXRpZXJlZE1lbnU+XHJcbiJdfQ==
@@ -1,241 +0,0 @@
1
- import { Component, computed, contentChildren, effect, inject, input, output, signal, untracked, ViewChild } from '@angular/core';
2
- import { ButtonModule } from 'primeng/button';
3
- import { SkeletonModule } from 'primeng/skeleton';
4
- import { TableModule } from 'primeng/table';
5
- import { KvInputsModule } from "../kv-inputs/kv-inputs.module";
6
- import { KvButtonModule } from "../kv-button/kv-button.module";
7
- import { OverlayPanelModule } from 'primeng/overlaypanel';
8
- import { ActionsLoteFieldComponent } from './components/actions-lote-field/actions-lote-field.component';
9
- import { KvTagsModule } from "../kv-tags/kv-tags.module";
10
- import { CommonModule, DatePipe } from '@angular/common';
11
- import { animate, state, style, transition, trigger } from '@angular/animations';
12
- import { TooltipModule } from 'primeng/tooltip';
13
- import { TieredMenuModule } from 'primeng/tieredmenu';
14
- import { ActionsRowMenuComponent } from './components/actions-row-menu/actions-row-menu.component';
15
- import { CpfCnpjPipe } from '../../api/pipes/cpfcnpj.pipe';
16
- import { TelefonePipe } from '../../api/pipes/telefone.pipe';
17
- import { TemplateDirective } from '../../api/directives/template/template.directive';
18
- import { FormsModule } from '@angular/forms';
19
- import { InputTextModule } from 'primeng/inputtext';
20
- import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';
21
- import * as i0 from "@angular/core";
22
- import * as i1 from "primeng/inputtext";
23
- import * as i2 from "@angular/common";
24
- import * as i3 from "primeng/tooltip";
25
- import * as i4 from "primeng/table";
26
- import * as i5 from "primeng/api";
27
- import * as i6 from "../kv-button/kv-button.component";
28
- import * as i7 from "primeng/overlaypanel";
29
- import * as i8 from "../kv-tags/kv-tags.component";
30
- import * as i9 from "@angular/forms";
31
- export class KvTableViewerComponent {
32
- constructor() {
33
- this.cpfCnpjPipe = inject(CpfCnpjPipe);
34
- this.telefonePipe = inject(TelefonePipe);
35
- this.datePipe = inject(DatePipe);
36
- this.breakpointObserver = inject(BreakpointObserver);
37
- this.columns = input([]);
38
- this.actionsRow = input([]);
39
- this.actionsHeader = input(undefined);
40
- this.actionsLote = input(undefined);
41
- this.data = input([]);
42
- this.totalRecords = input(0);
43
- this.loading = input(false);
44
- this.rows = input(10);
45
- this.rowsPerPageOptions = input([10, 25, 50]);
46
- this.paginator = input(true);
47
- this.lazy = input(true);
48
- this.scrollable = input(true);
49
- this.pageLinks = input(2);
50
- this.currentPageReportTemplate = input('{first} - {last} de {totalRecords}');
51
- this.selectionPageOnly = input(true);
52
- this.selectableTable = input(true);
53
- this.showHeader = input(true);
54
- this.showHeaderTemplate = input(false);
55
- this.tableViewerSize = input('col-8');
56
- this.searchInput = input(true);
57
- this.filterButton = input(true);
58
- this.idName = input(undefined);
59
- this.emptyTableImg = input('https://work-assets.keevo.com.br/img/Nenhum_registro_localizado.png');
60
- this.isSelectedPrimaryItem = input(false);
61
- this.selectedItems = signal([]);
62
- this.selectedItem = signal(null);
63
- this.first = signal(0);
64
- this.searchValue = signal('');
65
- this.lastEmittedSort = signal(null);
66
- this.isMobile = signal(false);
67
- this.onPageChange = output();
68
- this.onClickRowItem = output();
69
- this.onSelectItems = output();
70
- this.onSearch = output();
71
- this.onSort = output();
72
- this.templates = contentChildren(TemplateDirective);
73
- this._templates = input({}, { alias: 'templates' });
74
- this.getCustomTemplate = computed(() => (templatename) => {
75
- const templates = this._templates();
76
- return templates[templatename];
77
- });
78
- this.isRowSelected = computed(() => {
79
- return this.selectedItems()?.length > 0 || this.selectedItem();
80
- });
81
- this.verifyItemSelecionado = computed(() => (rowData) => {
82
- let isSelected;
83
- let idName = this.idName() || 'id';
84
- if (this.selectableTable())
85
- isSelected = this.selectedItems().find((item) => item[idName] == rowData[idName]);
86
- else
87
- isSelected = this.selectedItem()?.[idName] == rowData[idName];
88
- return isSelected;
89
- });
90
- this.transformData = computed(() => (type, value) => {
91
- if (type === 'cpfcnpj')
92
- return this.cpfCnpjPipe.transform(value);
93
- if (type === 'telefone')
94
- return this.telefonePipe.transform(value);
95
- if (type === 'money')
96
- return this.transformMoney(value);
97
- if (type === 'date')
98
- return this.datePipe.transform(value, 'dd/MM/yyyy', 'UTC');
99
- if (type === 'datetime')
100
- return this.datePipe.transform(value, 'dd/MM/yyyy hh:mm');
101
- if (type === 'dateMonthYear')
102
- return this.datePipe.transform(value, 'MM/yyyy');
103
- else
104
- return value;
105
- });
106
- this.handleTableSize = computed(() => {
107
- const selectedItems = this.selectedItems();
108
- const selectedItem = this.selectedItem();
109
- if (selectedItems?.length == 0 && !selectedItem)
110
- return 'col-12';
111
- else
112
- return this.tableViewerSize();
113
- });
114
- this.isPopupButton = computed(() => (action) => {
115
- return (action.items && action.items?.length > 0) || false;
116
- });
117
- this.hasActionsRow = computed(() => {
118
- return this.actionsRow()?.length > 0;
119
- });
120
- this.showSelectedItem = computed(() => {
121
- return this.selectedItems()?.length == 1 || this.selectedItem();
122
- });
123
- this.hasSelectedItems = computed(() => {
124
- return this.selectedItems()?.length > 1;
125
- });
126
- this.returnColspan = computed(() => {
127
- return this.columns().length + 1;
128
- });
129
- this.isEmptyTable = computed(() => {
130
- return this.data()?.length == 0;
131
- });
132
- this.breakpointObserver
133
- .observe([Breakpoints.HandsetPortrait, '(max-width: 768px)'])
134
- .subscribe(state => this.isMobile.set(state.matches));
135
- effect(() => {
136
- this.onSelectItems.emit(this.selectedItems());
137
- this.onSearch.emit(this.searchValue());
138
- });
139
- effect(() => {
140
- const dados = this.data();
141
- const isSelectedPrimaryItem = this.isSelectedPrimaryItem();
142
- if (dados && dados.length > 0 && isSelectedPrimaryItem) {
143
- untracked(() => this.rowSelect(dados[0]));
144
- }
145
- });
146
- }
147
- toggleOverlayPanel(event) {
148
- this.op.toggle(event);
149
- }
150
- closeFilter() {
151
- this.op?.hide();
152
- }
153
- toggleFilter(event) {
154
- this.op?.toggle(event);
155
- }
156
- handlePageChange(event) {
157
- this.first.set(event.first);
158
- this.onPageChange.emit(event);
159
- }
160
- handleSort(event) {
161
- const currentSortState = this.lastEmittedSort();
162
- if (currentSortState && currentSortState.field === event.field && currentSortState.order === event.order) {
163
- return;
164
- }
165
- this.lastEmittedSort.set({ field: event.field, order: event.order });
166
- let ordenacao = `${event.field} ${event.order === 1 ? 'ASC' : 'DESC'} `;
167
- let ordernacaoGroup = { column: event.field, direction: event.order === 1 ? 'ASC' : 'DESC' };
168
- this.onSort.emit({ ordenacao: ordenacao, ordernacaoGroup: ordernacaoGroup });
169
- }
170
- rowSelect(rowData) {
171
- if (this.selectableTable()) {
172
- if (this.selectedItems().includes(rowData))
173
- this.selectedItems.update((items) => items.filter(item => item !== rowData));
174
- else
175
- this.selectedItems.update((items) => [...items, rowData]);
176
- if (this.selectedItems()?.length === 1)
177
- this.onClickRowItem.emit(this.selectedItems()[0]);
178
- else
179
- this.onClickRowItem.emit(rowData);
180
- }
181
- else {
182
- this.selectedItem.set(rowData);
183
- this.onClickRowItem.emit(rowData);
184
- }
185
- }
186
- transformMoney(valor) {
187
- const formatter = new Intl.NumberFormat('pt-BR', {
188
- style: 'currency',
189
- currency: 'BRL',
190
- });
191
- return formatter.format(valor);
192
- }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
194
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvTableViewerComponent, isStandalone: true, selector: "kv-table-viewer", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, actionsRow: { classPropertyName: "actionsRow", publicName: "actionsRow", isSignal: true, isRequired: false, transformFunction: null }, actionsHeader: { classPropertyName: "actionsHeader", publicName: "actionsHeader", isSignal: true, isRequired: false, transformFunction: null }, actionsLote: { classPropertyName: "actionsLote", publicName: "actionsLote", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, rowsPerPageOptions: { classPropertyName: "rowsPerPageOptions", publicName: "rowsPerPageOptions", isSignal: true, isRequired: false, transformFunction: null }, paginator: { classPropertyName: "paginator", publicName: "paginator", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, pageLinks: { classPropertyName: "pageLinks", publicName: "pageLinks", isSignal: true, isRequired: false, transformFunction: null }, currentPageReportTemplate: { classPropertyName: "currentPageReportTemplate", publicName: "currentPageReportTemplate", isSignal: true, isRequired: false, transformFunction: null }, selectionPageOnly: { classPropertyName: "selectionPageOnly", publicName: "selectionPageOnly", isSignal: true, isRequired: false, transformFunction: null }, selectableTable: { classPropertyName: "selectableTable", publicName: "selectableTable", isSignal: true, isRequired: false, transformFunction: null }, showHeader: { classPropertyName: "showHeader", publicName: "showHeader", isSignal: true, isRequired: false, transformFunction: null }, showHeaderTemplate: { classPropertyName: "showHeaderTemplate", publicName: "showHeaderTemplate", isSignal: true, isRequired: false, transformFunction: null }, tableViewerSize: { classPropertyName: "tableViewerSize", publicName: "tableViewerSize", isSignal: true, isRequired: false, transformFunction: null }, searchInput: { classPropertyName: "searchInput", publicName: "searchInput", isSignal: true, isRequired: false, transformFunction: null }, filterButton: { classPropertyName: "filterButton", publicName: "filterButton", isSignal: true, isRequired: false, transformFunction: null }, idName: { classPropertyName: "idName", publicName: "idName", isSignal: true, isRequired: false, transformFunction: null }, emptyTableImg: { classPropertyName: "emptyTableImg", publicName: "emptyTableImg", isSignal: true, isRequired: false, transformFunction: null }, isSelectedPrimaryItem: { classPropertyName: "isSelectedPrimaryItem", publicName: "isSelectedPrimaryItem", isSignal: true, isRequired: false, transformFunction: null }, _templates: { classPropertyName: "_templates", publicName: "templates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPageChange: "onPageChange", onClickRowItem: "onClickRowItem", onSelectItems: "onSelectItems", onSearch: "onSearch", onSort: "onSort" }, queries: [{ propertyName: "templates", predicate: TemplateDirective, isSignal: true }], viewQueries: [{ propertyName: "op", first: true, predicate: ["op"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"h-full flex flex-row p-2 kv-table-viewer overflow-hidden {{\r\n isEmptyTable() ? 'empty-table' : ''\r\n }}\"\r\n>\r\n @if(!this.selectedItem() || !isMobile() && !selectableTable()) {\r\n <div\r\n class=\"h-full {{ handleTableSize() }} m-0 p-0 flex flex-column gap-2\"\r\n [style.transition]=\"'all 0.3s ease-in-out'\"\r\n >\r\n @if(showHeaderTemplate()) {\r\n <div>\r\n <ng-content select=\"[tableHeaderTemplate]\"> </ng-content>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-between flex-initial\"\r\n >\r\n <div class=\"flex flex-row align-items-center gap-2\">\r\n @if(searchInput()) {\r\n <input\r\n style=\"height: 1.875rem\"\r\n placeholder=\"Pesquisar...\"\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"searchValue\"\r\n class=\"text-xs\"\r\n />\r\n\r\n } @if(filterButton()) {\r\n <kv-button\r\n label=\"Filtrar\"\r\n icon=\"filter_alt\"\r\n severity=\"tertiary\"\r\n (onClick)=\"toggleOverlayPanel($event)\"\r\n ></kv-button>\r\n }\r\n\r\n <p-overlayPanel #op [dismissable]=\"false\">\r\n <ng-content select=\"[filtro]\"> </ng-content>\r\n </p-overlayPanel>\r\n </div>\r\n <div class=\"flex flex-row gap-2\">\r\n @if(actionsHeader()) { @for(action of actionsHeader(); track $index) {\r\n <kv-button\r\n [icon]=\"action?.icon || ''\"\r\n [label]=\"action?.label || ''\"\r\n [severity]=\"action['severity'] || 'tertiary'\"\r\n (onClick)=\"action?.command($event)\"\r\n [popupIcon]=\"false\"\r\n [items]=\"action.items || []\"\r\n [popup]=\"isPopupButton()(action)\"\r\n ></kv-button>\r\n } } @if(selectedItem()) {\r\n <kv-button\r\n [pTooltip]=\"'Recolher'\"\r\n icon=\"reorder\"\r\n severity=\"tertiary\"\r\n (onClick)=\"selectedItem.set(null)\"\r\n ></kv-button>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-1 h-full overflow-hidden\">\r\n <p-table\r\n [value]=\"data()\"\r\n [lazy]=\"lazy()\"\r\n [selectionPageOnly]=\"selectionPageOnly()\"\r\n [columns]=\"columns()\"\r\n [paginator]=\"paginator()\"\r\n [rows]=\"rows()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [loading]=\"loading()\"\r\n [pageLinks]=\"pageLinks()\"\r\n [first]=\"first()\"\r\n [scrollable]=\"scrollable()\"\r\n scrollHeight=\"flex\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\r\n (onPage)=\"handlePageChange($event)\"\r\n (onSort)=\"handleSort($event)\"\r\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\r\n [(selection)]=\"selectedItems\"\r\n styleClass=\"p-datatable-sm text-xs overflow-y-auto h-full flex flex-column h-full\"\r\n >\r\n @if(showHeader()) {\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @if(selectableTable()) {\r\n <th style=\"width: 4rem\"><p-tableHeaderCheckbox /></th>\r\n } @for (col of columns; track col.field) {\r\n <th\r\n [pSortableColumn]=\"col.field\"\r\n [pSortableColumnDisabled]=\"!col?.sortable\"\r\n [style]=\"{ width: col.width || 'auto' }\"\r\n >\r\n <div class=\"flex flex-row align-items-center gap-1\">\r\n <span>{{ col.header }}</span>\r\n @if (col.sortable) {\r\n <p-sortIcon [field]=\"col.field\" class=\"pb-1\"></p-sortIcon>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr\r\n class=\"cursor-pointer {{\r\n verifyItemSelecionado()(rowData) && 'bg-gray-100'\r\n }} hover:bg-gray-200\"\r\n >\r\n @if(selectableTable()) {\r\n <td><p-tableCheckbox [value]=\"rowData\" /></td>\r\n } @for (col of columns; track col.field) {\r\n <td (click)=\"rowSelect(rowData)\" style=\"word-break: break-all;\">\r\n @if(col?.template) {\r\n <div class=\"flex flex-row gap-2 align-items-center\">\r\n @if (getCustomTemplate()(col.template.name)) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"getCustomTemplate()(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n />\r\n }\r\n </div>\r\n } @else if(col?.icon) {\r\n <span class=\"material-symbols-outlined text-lg\">\r\n {{ col.icon(rowData) }}\r\n </span>\r\n } @else if(col?.tag) {\r\n <kv-tags [tags]=\"[col.tag(rowData)]\" />\r\n } @else {\r\n {{ transformData()(col.pipe, rowData[col.field]) }}\r\n }\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"returnColspan()\">\r\n <div\r\n class=\"w-full h-full flex align-items-center justify-content-center\"\r\n >\r\n <img [src]=\"emptyTableImg()\" class=\"h-10rem w-auto\" />\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n\r\n }\r\n\r\n <div\r\n class=\"shadow-2 p-0 m-0 col selected-item-field ml-2 flex flex-column\"\r\n [@slideInOut]=\"isRowSelected() ? 'i.n' : 'out'\"\r\n [style.overflow]=\"'hidden'\"\r\n >\r\n @if(hasSelectedItems()) {\r\n <actions-lote-field\r\n class=\"h-full\"\r\n [selectedItems]=\"selectedItems()\"\r\n [actionsLote]=\"actionsLote()\"\r\n />\r\n } @else if(showSelectedItem()) {\r\n <div class=\"bg-gray-100 w-full h-auto p-2 relative\">\r\n @if(hasActionsRow()) {\r\n <actions-row-menu [actionsRow]=\"actionsRow()\" />\r\n }\r\n\r\n @if(isMobile()) {\r\n <div class=\"h-2rem w-2rem\">\r\n <kv-button\r\n icon=\"arrow_back\"\r\n severity=\"tertiary\"\r\n [pTooltip]=\"'Voltar'\"\r\n (onClick)=\"selectedItem.set(null)\"\r\n />\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[selectedItemHeader]\"></ng-content>\r\n </div>\r\n <div class=\"p-2 overflow-y-auto h-full\">\r\n <ng-content select=\"[selectedItem]\"></ng-content>\r\n </div>\r\n }\r\n\r\n <!-- @else { Nenhum item selecionado } -->\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .kv-table-viewer .p-datatable-wrapper{overflow-x:hidden}::ng-deep .kv-table-viewer .p-paginator .p-paginator-pages .p-paginator-page{font-size:.75rem;min-width:2rem;height:2rem}::ng-deep .kv-table-viewer .p-paginator .p-paginator-current{font-size:.75rem}::ng-deep .kv-table-viewer .p-inputwrapper .p-dropdown{margin:0;height:auto}::ng-deep .p-paginator-rpp-options .p-dropdown-panel .p-dropdown-items{padding:.25rem}::ng-deep .p-paginator-rpp-options .p-dropdown-item{border-radius:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center}::ng-deep .p-paginator-rpp-options .p-dropdown-item .p-dropdown-label{padding:.5rem}::ng-deep .p-paginator-rpp-options .p-dropdown-item .p-dropdown-trigger{width:1.5rem}::ng-deep .p-paginator-bottom .p-link{min-width:2rem;height:2rem}::ng-deep .p-paginator{padding:0rem}::ng-deep .p-dropdown-label{font-size:.75rem}::ng-deep .p-datatable-wrapper::-webkit-scrollbar{width:6px}::ng-deep .p-datatable-wrapper::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-datatable-wrapper::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-datatable-wrapper:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-datatable-wrapper::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .empty-table .p-datatable-table{height:100%}::ng-deep .p-menu{padding:.25rem}::ng-deep .p-menu-list .p-menuitem .p-menuitem-content .p-menuitem-link{font-size:.75rem;padding:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i1.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i4.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i4.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i4.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i4.TableCheckbox, selector: "p-tableCheckbox", inputs: ["disabled", "value", "index", "inputId", "name", "required", "ariaLabel"] }, { kind: "component", type: i4.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: KvInputsModule }, { kind: "ngmodule", type: KvButtonModule }, { kind: "component", type: i6.KvButtonComponent, selector: "kv-button", inputs: ["fullWidth", "type", "loading", "severity", "size", "icon", "iconPosition", "label", "disabled", "items", "popup", "popupIcon"], outputs: ["iconChange", "onClick"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i7.OverlayPanel, selector: "p-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "component", type: ActionsLoteFieldComponent, selector: "actions-lote-field", inputs: ["selectedItems", "actionsLote"] }, { kind: "ngmodule", type: KvTagsModule }, { kind: "component", type: i8.KvTagsComponent, selector: "kv-tags", inputs: ["tags", "hover", "clickable"], outputs: ["onClickTag"] }, { kind: "ngmodule", type: TieredMenuModule }, { kind: "component", type: ActionsRowMenuComponent, selector: "actions-row-menu", inputs: ["actionsRow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
195
- trigger('slideInOut', [
196
- state('in', style({
197
- width: '*',
198
- opacity: 1,
199
- transform: 'translateX(0)'
200
- })),
201
- state('out', style({
202
- width: '0px',
203
- opacity: 0,
204
- transform: 'translateX(100%)'
205
- })),
206
- transition('out => in', [
207
- animate('300ms ease-in-out')
208
- ]),
209
- transition('in => out', [
210
- animate('200ms ease-in-out')
211
- ])
212
- ])
213
- ] }); }
214
- }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTableViewerComponent, decorators: [{
216
- type: Component,
217
- args: [{ selector: 'kv-table-viewer', standalone: true, imports: [InputTextModule, CommonModule, TooltipModule, TableModule, SkeletonModule, ButtonModule, KvInputsModule, KvButtonModule, OverlayPanelModule, ActionsLoteFieldComponent, KvTagsModule, TieredMenuModule, ActionsRowMenuComponent, FormsModule], animations: [
218
- trigger('slideInOut', [
219
- state('in', style({
220
- width: '*',
221
- opacity: 1,
222
- transform: 'translateX(0)'
223
- })),
224
- state('out', style({
225
- width: '0px',
226
- opacity: 0,
227
- transform: 'translateX(100%)'
228
- })),
229
- transition('out => in', [
230
- animate('300ms ease-in-out')
231
- ]),
232
- transition('in => out', [
233
- animate('200ms ease-in-out')
234
- ])
235
- ])
236
- ], template: "<div\r\n class=\"h-full flex flex-row p-2 kv-table-viewer overflow-hidden {{\r\n isEmptyTable() ? 'empty-table' : ''\r\n }}\"\r\n>\r\n @if(!this.selectedItem() || !isMobile() && !selectableTable()) {\r\n <div\r\n class=\"h-full {{ handleTableSize() }} m-0 p-0 flex flex-column gap-2\"\r\n [style.transition]=\"'all 0.3s ease-in-out'\"\r\n >\r\n @if(showHeaderTemplate()) {\r\n <div>\r\n <ng-content select=\"[tableHeaderTemplate]\"> </ng-content>\r\n </div>\r\n }\r\n\r\n <div\r\n class=\"flex flex-row align-items-center justify-content-between flex-initial\"\r\n >\r\n <div class=\"flex flex-row align-items-center gap-2\">\r\n @if(searchInput()) {\r\n <input\r\n style=\"height: 1.875rem\"\r\n placeholder=\"Pesquisar...\"\r\n type=\"text\"\r\n pInputText\r\n [(ngModel)]=\"searchValue\"\r\n class=\"text-xs\"\r\n />\r\n\r\n } @if(filterButton()) {\r\n <kv-button\r\n label=\"Filtrar\"\r\n icon=\"filter_alt\"\r\n severity=\"tertiary\"\r\n (onClick)=\"toggleOverlayPanel($event)\"\r\n ></kv-button>\r\n }\r\n\r\n <p-overlayPanel #op [dismissable]=\"false\">\r\n <ng-content select=\"[filtro]\"> </ng-content>\r\n </p-overlayPanel>\r\n </div>\r\n <div class=\"flex flex-row gap-2\">\r\n @if(actionsHeader()) { @for(action of actionsHeader(); track $index) {\r\n <kv-button\r\n [icon]=\"action?.icon || ''\"\r\n [label]=\"action?.label || ''\"\r\n [severity]=\"action['severity'] || 'tertiary'\"\r\n (onClick)=\"action?.command($event)\"\r\n [popupIcon]=\"false\"\r\n [items]=\"action.items || []\"\r\n [popup]=\"isPopupButton()(action)\"\r\n ></kv-button>\r\n } } @if(selectedItem()) {\r\n <kv-button\r\n [pTooltip]=\"'Recolher'\"\r\n icon=\"reorder\"\r\n severity=\"tertiary\"\r\n (onClick)=\"selectedItem.set(null)\"\r\n ></kv-button>\r\n }\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex-1 h-full overflow-hidden\">\r\n <p-table\r\n [value]=\"data()\"\r\n [lazy]=\"lazy()\"\r\n [selectionPageOnly]=\"selectionPageOnly()\"\r\n [columns]=\"columns()\"\r\n [paginator]=\"paginator()\"\r\n [rows]=\"rows()\"\r\n [totalRecords]=\"totalRecords()\"\r\n [loading]=\"loading()\"\r\n [pageLinks]=\"pageLinks()\"\r\n [first]=\"first()\"\r\n [scrollable]=\"scrollable()\"\r\n scrollHeight=\"flex\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\r\n (onPage)=\"handlePageChange($event)\"\r\n (onSort)=\"handleSort($event)\"\r\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\r\n [(selection)]=\"selectedItems\"\r\n styleClass=\"p-datatable-sm text-xs overflow-y-auto h-full flex flex-column h-full\"\r\n >\r\n @if(showHeader()) {\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @if(selectableTable()) {\r\n <th style=\"width: 4rem\"><p-tableHeaderCheckbox /></th>\r\n } @for (col of columns; track col.field) {\r\n <th\r\n [pSortableColumn]=\"col.field\"\r\n [pSortableColumnDisabled]=\"!col?.sortable\"\r\n [style]=\"{ width: col.width || 'auto' }\"\r\n >\r\n <div class=\"flex flex-row align-items-center gap-1\">\r\n <span>{{ col.header }}</span>\r\n @if (col.sortable) {\r\n <p-sortIcon [field]=\"col.field\" class=\"pb-1\"></p-sortIcon>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </ng-template>\r\n }\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr\r\n class=\"cursor-pointer {{\r\n verifyItemSelecionado()(rowData) && 'bg-gray-100'\r\n }} hover:bg-gray-200\"\r\n >\r\n @if(selectableTable()) {\r\n <td><p-tableCheckbox [value]=\"rowData\" /></td>\r\n } @for (col of columns; track col.field) {\r\n <td (click)=\"rowSelect(rowData)\" style=\"word-break: break-all;\">\r\n @if(col?.template) {\r\n <div class=\"flex flex-row gap-2 align-items-center\">\r\n @if (getCustomTemplate()(col.template.name)) {\r\n <ng-container\r\n [ngTemplateOutlet]=\"getCustomTemplate()(col.template.name)\"\r\n [ngTemplateOutletContext]=\"{ $implicit: rowData }\"\r\n />\r\n }\r\n </div>\r\n } @else if(col?.icon) {\r\n <span class=\"material-symbols-outlined text-lg\">\r\n {{ col.icon(rowData) }}\r\n </span>\r\n } @else if(col?.tag) {\r\n <kv-tags [tags]=\"[col.tag(rowData)]\" />\r\n } @else {\r\n {{ transformData()(col.pipe, rowData[col.field]) }}\r\n }\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td [attr.colspan]=\"returnColspan()\">\r\n <div\r\n class=\"w-full h-full flex align-items-center justify-content-center\"\r\n >\r\n <img [src]=\"emptyTableImg()\" class=\"h-10rem w-auto\" />\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n\r\n }\r\n\r\n <div\r\n class=\"shadow-2 p-0 m-0 col selected-item-field ml-2 flex flex-column\"\r\n [@slideInOut]=\"isRowSelected() ? 'i.n' : 'out'\"\r\n [style.overflow]=\"'hidden'\"\r\n >\r\n @if(hasSelectedItems()) {\r\n <actions-lote-field\r\n class=\"h-full\"\r\n [selectedItems]=\"selectedItems()\"\r\n [actionsLote]=\"actionsLote()\"\r\n />\r\n } @else if(showSelectedItem()) {\r\n <div class=\"bg-gray-100 w-full h-auto p-2 relative\">\r\n @if(hasActionsRow()) {\r\n <actions-row-menu [actionsRow]=\"actionsRow()\" />\r\n }\r\n\r\n @if(isMobile()) {\r\n <div class=\"h-2rem w-2rem\">\r\n <kv-button\r\n icon=\"arrow_back\"\r\n severity=\"tertiary\"\r\n [pTooltip]=\"'Voltar'\"\r\n (onClick)=\"selectedItem.set(null)\"\r\n />\r\n </div>\r\n }\r\n\r\n <ng-content select=\"[selectedItemHeader]\"></ng-content>\r\n </div>\r\n <div class=\"p-2 overflow-y-auto h-full\">\r\n <ng-content select=\"[selectedItem]\"></ng-content>\r\n </div>\r\n }\r\n\r\n <!-- @else { Nenhum item selecionado } -->\r\n </div>\r\n</div>\r\n", styles: ["::ng-deep .kv-table-viewer .p-datatable-wrapper{overflow-x:hidden}::ng-deep .kv-table-viewer .p-paginator .p-paginator-pages .p-paginator-page{font-size:.75rem;min-width:2rem;height:2rem}::ng-deep .kv-table-viewer .p-paginator .p-paginator-current{font-size:.75rem}::ng-deep .kv-table-viewer .p-inputwrapper .p-dropdown{margin:0;height:auto}::ng-deep .p-paginator-rpp-options .p-dropdown-panel .p-dropdown-items{padding:.25rem}::ng-deep .p-paginator-rpp-options .p-dropdown-item{border-radius:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center}::ng-deep .p-paginator-rpp-options .p-dropdown-item .p-dropdown-label{padding:.5rem}::ng-deep .p-paginator-rpp-options .p-dropdown-item .p-dropdown-trigger{width:1.5rem}::ng-deep .p-paginator-bottom .p-link{min-width:2rem;height:2rem}::ng-deep .p-paginator{padding:0rem}::ng-deep .p-dropdown-label{font-size:.75rem}::ng-deep .p-datatable-wrapper::-webkit-scrollbar{width:6px}::ng-deep .p-datatable-wrapper::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-datatable-wrapper::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-datatable-wrapper:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-datatable-wrapper::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}::ng-deep .empty-table .p-datatable-table{height:100%}::ng-deep .p-menu{padding:.25rem}::ng-deep .p-menu-list .p-menuitem .p-menuitem-content .p-menuitem-link{font-size:.75rem;padding:.5rem}\n"] }]
237
- }], ctorParameters: () => [], propDecorators: { op: [{
238
- type: ViewChild,
239
- args: ['op']
240
- }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdGFibGUtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXRhYmxlLXZpZXdlci9rdi10YWJsZS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdGFibGUtdmlld2VyL2t2LXRhYmxlLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFB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QixLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztnQ0FDaEIsS0FBSyxFQUFFLEdBQUc7Z0NBQ1YsT0FBTyxFQUFFLENBQUM7Z0NBQ1YsU0FBUyxFQUFFLGVBQWU7NkJBQzNCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztnQ0FDakIsS0FBSyxFQUFFLEtBQUs7Z0NBQ1osT0FBTyxFQUFFLENBQUM7Z0NBQ1YsU0FBUyxFQUFFLGtCQUFrQjs2QkFDOUIsQ0FBQyxDQUFDOzRCQUNILFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3RCLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQzs2QkFDN0IsQ0FBQzs0QkFDRixVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixPQUFPLENBQUMsbUJBQW1CLENBQUM7NkJBQzdCLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDt3REFJZ0IsRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgY29udGVudENoaWxkcmVuLCBlZmZlY3QsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFNrZWxldG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9za2VsZXRvbic7XHJcbmltcG9ydCB7IFRhYmxlTW9kdWxlLCBUYWJsZVBhZ2VFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBLdklucHV0c01vZHVsZSB9IGZyb20gXCIuLi9rdi1pbnB1dHMva3YtaW5wdXRzLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBLdkJ1dHRvbk1vZHVsZSB9IGZyb20gXCIuLi9rdi1idXR0b24va3YtYnV0dG9uLm1vZHVsZVwiO1xyXG5pbXBvcnQgeyBPdmVybGF5UGFuZWwsIE92ZXJsYXlQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvb3ZlcmxheXBhbmVsJztcclxuaW1wb3J0IHsgQWN0aW9uc0xvdGVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hY3Rpb25zLWxvdGUtZmllbGQvYWN0aW9ucy1sb3RlLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEt2VGFnc01vZHVsZSB9IGZyb20gXCIuLi9rdi10YWdzL2t2LXRhZ3MubW9kdWxlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUaWVyZWRNZW51TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90aWVyZWRtZW51JztcclxuaW1wb3J0IHsgQWN0aW9uc1Jvd01lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWN0aW9ucy1yb3ctbWVudS9hY3Rpb25zLXJvdy1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENwZkNucGpQaXBlIH0gZnJvbSAnLi4vLi4vYXBpL3BpcGVzL2NwZmNucGoucGlwZSc7XHJcbmltcG9ydCB7IFRlbGVmb25lUGlwZSB9IGZyb20gJy4uLy4uL2FwaS9waXBlcy90ZWxlZm9uZS5waXBlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9hcGkvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmludGVyZmFjZSBDb2x1bW5UYWJsZVZpZXdlciB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICBoZWFkZXI6IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBpY29uPzogKHJvd0RhdGE6IGFueSkgPT4gc3RyaW5nO1xyXG4gIHRhZz86IChyb3dEYXRhOiBhbnkpID0+IHsgbGFiZWw6IHN0cmluZywgc2V2ZXJpdHk6IHN0cmluZywgaWNvbjogc3RyaW5nIH07XHJcbiAgcGlwZT86ICdjcGZjbnBqJyB8ICd0ZWxlZm9uZScgfCAnbW9uZXknIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdkYXRlTW9udGhZZWFyJyB8IHVuZGVmaW5lZDtcclxuICB0ZW1wbGF0ZT86IHsgbmFtZTogc3RyaW5nIH07XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtdGFibGUtdmlld2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtJbnB1dFRleHRNb2R1bGUsIENvbW1vbk1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgVGFibGVNb2R1bGUsIFNrZWxldG9uTW9kdWxlLCBCdXR0b25Nb2R1bGUsIEt2SW5wdXRzTW9kdWxlLCBLdkJ1dHRvbk1vZHVsZSwgT3ZlcmxheVBhbmVsTW9kdWxlLCBBY3Rpb25zTG90ZUZpZWxkQ29tcG9uZW50LCBLdlRhZ3NNb2R1bGUsIFRpZXJlZE1lbnVNb2R1bGUsIEFjdGlvbnNSb3dNZW51Q29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXRhYmxlLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2t2LXRhYmxlLXZpZXdlci5jb21wb25lbnQuc2NzcycsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcclxuICAgICAgc3RhdGUoJ2luJywgc3R5bGUoe1xyXG4gICAgICAgIHdpZHRoOiAnKicsXHJcbiAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJ1xyXG4gICAgICB9KSksXHJcbiAgICAgIHN0YXRlKCdvdXQnLCBzdHlsZSh7XHJcbiAgICAgICAgd2lkdGg6ICcwcHgnLFxyXG4gICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKSdcclxuICAgICAgfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCdvdXQgPT4gaW4nLCBbXHJcbiAgICAgICAgYW5pbWF0ZSgnMzAwbXMgZWFzZS1pbi1vdXQnKVxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignaW4gPT4gb3V0JywgW1xyXG4gICAgICAgIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JylcclxuICAgICAgXSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZUYWJsZVZpZXdlckNvbXBvbmVudCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ29wJykgb3AhOiBPdmVybGF5UGFuZWw7XHJcblxyXG4gIGNwZkNucGpQaXBlID0gaW5qZWN0KENwZkNucGpQaXBlKTtcclxuICB0ZWxlZm9uZVBpcGUgPSBpbmplY3QoVGVsZWZvbmVQaXBlKTtcclxuICBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7XHJcbiAgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XHJcblxyXG4gIGNvbHVtbnMgPSBpbnB1dDxDb2x1bW5UYWJsZVZpZXdlcltdPihbXSk7XHJcblxyXG4gIGFjdGlvbnNSb3cgPSBpbnB1dDxNZW51SXRlbVtdIHwgW10+KFtdKTtcclxuICBhY3Rpb25zSGVhZGVyID0gaW5wdXQ8TWVudUl0ZW1bXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBhY3Rpb25zTG90ZSA9IGlucHV0PE1lbnVJdGVtW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcblxyXG4gIGRhdGEgPSBpbnB1dDxhbnlbXT4oW10pO1xyXG4gIHRvdGFsUmVjb3JkcyA9IGlucHV0PG51bWJlcj4oMCk7XHJcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICByb3dzID0gaW5wdXQ8bnVtYmVyPigxMCk7XHJcbiAgcm93c1BlclBhZ2VPcHRpb25zID0gaW5wdXQ8bnVtYmVyW10+KFsxMCwgMjUsIDUwXSk7XHJcbiAgcGFnaW5hdG9yID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgbGF6eSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNjcm9sbGFibGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBwYWdlTGlua3MgPSBpbnB1dDxudW1iZXI+KDIpO1xyXG4gIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGUgPSBpbnB1dDxzdHJpbmc+KCd7Zmlyc3R9IC0ge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9Jyk7XHJcbiAgc2VsZWN0aW9uUGFnZU9ubHkgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHJcblxyXG4gIHNlbGVjdGFibGVUYWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNob3dIZWFkZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBzaG93SGVhZGVyVGVtcGxhdGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgdGFibGVWaWV3ZXJTaXplID0gaW5wdXQ8c3RyaW5nPignY29sLTgnKTtcclxuICBzZWFyY2hJbnB1dCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIGZpbHRlckJ1dHRvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIGlkTmFtZSA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICBlbXB0eVRhYmxlSW1nID0gaW5wdXQ8c3RyaW5nPignaHR0cHM6Ly93b3JrLWFzc2V0cy5rZWV2by5jb20uYnIvaW1nL05lbmh1bV9yZWdpc3Ryb19sb2NhbGl6YWRvLnBuZycpO1xyXG4gIGlzU2VsZWN0ZWRQcmltYXJ5SXRlbSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcblxyXG4gIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcclxuICBzZWxlY3RlZEl0ZW0gPSBzaWduYWw8YW55PihudWxsKTtcclxuICBmaXJzdCA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG4gIHNlYXJjaFZhbHVlID0gc2lnbmFsKCcnKTtcclxuICBsYXN0RW1pdHRlZFNvcnQgPSBzaWduYWw8eyBmaWVsZDogc3RyaW5nLCBvcmRlcjogbnVtYmVyIH0gfCBudWxsPihudWxsKTtcclxuICBpc01vYmlsZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgXHJcblxyXG4gIG9uUGFnZUNoYW5nZSA9IG91dHB1dDxUYWJsZVBhZ2VFdmVudD4oKTtcclxuICBvbkNsaWNrUm93SXRlbSA9IG91dHB1dDxhbnk+KCk7XHJcbiAgb25TZWxlY3RJdGVtcyA9IG91dHB1dDxhbnlbXT4oKTtcclxuICBvblNlYXJjaCA9IG91dHB1dDxzdHJpbmc+KCk7XHJcbiAgb25Tb3J0ID0gb3V0cHV0PGFueT4oKTtcclxuXHJcbiAgdGVtcGxhdGVzID0gY29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKTtcclxuICBfdGVtcGxhdGVzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4+KHt9LCB7IGFsaWFzOiAndGVtcGxhdGVzJyB9KTtcclxuICBnZXRDdXN0b21UZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0ZW1wbGF0ZW5hbWU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0+IHtcclxuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRoaXMuX3RlbXBsYXRlcygpO1xyXG4gICAgcmV0dXJuIHRlbXBsYXRlc1t0ZW1wbGF0ZW5hbWVdO1xyXG4gIH0pO1xyXG5cclxuICBpc1Jvd1NlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcygpPy5sZW5ndGggPiAwIHx8IHRoaXMuc2VsZWN0ZWRJdGVtKCk7XHJcbiAgfSk7XHJcblxyXG4gIHZlcmlmeUl0ZW1TZWxlY2lvbmFkbyA9IGNvbXB1dGVkKCgpID0+IChyb3dEYXRhOiBhbnkpID0+IHtcclxuICAgIGxldCBpc1NlbGVjdGVkO1xyXG5cclxuICAgIGxldCBpZE5hbWUgPSB0aGlzLmlkTmFtZSgpIHx8ICdpZCc7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZVRhYmxlKCkpXHJcbiAgICAgIGlzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKS5maW5kKChpdGVtOiBhbnkpID0+IGl0ZW1baWROYW1lXSA9PSByb3dEYXRhW2lkTmFtZV0pO1xyXG4gICAgZWxzZSBpc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEl0ZW0oKT8uW2lkTmFtZV0gPT0gcm93RGF0YVtpZE5hbWVdO1xyXG5cclxuICAgIHJldHVybiBpc1NlbGVjdGVkO1xyXG4gIH0pXHJcblxyXG4gIHRyYW5zZm9ybURhdGEgPSBjb21wdXRlZCgoKSA9PiAodHlwZTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcbiAgICBpZiAodHlwZSA9PT0gJ2NwZmNucGonKSByZXR1cm4gdGhpcy5jcGZDbnBqUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgaWYgKHR5cGUgPT09ICd0ZWxlZm9uZScpIHJldHVybiB0aGlzLnRlbGVmb25lUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgaWYgKHR5cGUgPT09ICdtb25leScpIHJldHVybiB0aGlzLnRyYW5zZm9ybU1vbmV5KHZhbHVlKTtcclxuICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ2RkL01NL3l5eXknLCAnVVRDJyk7XHJcbiAgICBpZiAodHlwZSA9PT0gJ2RhdGV0aW1lJykgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnZGQvTU0veXl5eSBoaDptbScpO1xyXG4gICAgaWYgKHR5cGUgPT09ICdkYXRlTW9udGhZZWFyJykgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnTU0veXl5eScpO1xyXG5cclxuICAgIGVsc2UgcmV0dXJuIHZhbHVlO1xyXG4gIH0pXHJcblxyXG4gIGhhbmRsZVRhYmxlU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKTtcclxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0ZWRJdGVtKCk7XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA9PSAwICYmICFzZWxlY3RlZEl0ZW0pXHJcbiAgICAgIHJldHVybiAnY29sLTEyJztcclxuICAgIGVsc2UgcmV0dXJuIHRoaXMudGFibGVWaWV3ZXJTaXplKCk7XHJcbiAgfSlcclxuXHJcbiAgaXNQb3B1cEJ1dHRvbiA9IGNvbXB1dGVkKCgpID0+IChhY3Rpb246IGFueSkgPT4ge1xyXG4gICAgcmV0dXJuIChhY3Rpb24uaXRlbXMgJiYgYWN0aW9uLml0ZW1zPy5sZW5ndGggPiAwKSB8fCBmYWxzZTtcclxuICB9KVxyXG5cclxuICBoYXNBY3Rpb25zUm93ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc1JvdygpPy5sZW5ndGggPiAwO1xyXG4gIH0pXHJcblxyXG4gIHNob3dTZWxlY3RlZEl0ZW0gPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCk/Lmxlbmd0aCA9PSAxIHx8IHRoaXMuc2VsZWN0ZWRJdGVtKCk7XHJcbiAgfSlcclxuXHJcbiAgaGFzU2VsZWN0ZWRJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMoKT8ubGVuZ3RoID4gMTtcclxuICB9KVxyXG5cclxuICByZXR1cm5Db2xzcGFuID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucygpLmxlbmd0aCArIDE7XHJcbiAgfSk7XHJcblxyXG4gIGlzRW1wdHlUYWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmRhdGEoKT8ubGVuZ3RoID09IDBcclxuICB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcblxyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcclxuICAgICAgLm9ic2VydmUoW0JyZWFrcG9pbnRzLkhhbmRzZXRQb3J0cmFpdCwgJyhtYXgtd2lkdGg6IDc2OHB4KSddKVxyXG4gICAgICAuc3Vic2NyaWJlKHN0YXRlID0+IHRoaXMuaXNNb2JpbGUuc2V0KHN0YXRlLm1hdGNoZXMpKTtcclxuXHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uU2VsZWN0SXRlbXMuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMoKSk7XHJcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0aGlzLnNlYXJjaFZhbHVlKCkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICBjb25zdCBkYWRvcyA9IHRoaXMuZGF0YSgpO1xyXG4gICAgICAgIGNvbnN0IGlzU2VsZWN0ZWRQcmltYXJ5SXRlbSA9IHRoaXMuaXNTZWxlY3RlZFByaW1hcnlJdGVtKCk7XHJcblxyXG4gICAgICAgIGlmKGRhZG9zICYmIGRhZG9zLmxlbmd0aCA+IDAgJiYgaXNTZWxlY3RlZFByaW1hcnlJdGVtKSB7XHJcbiAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5yb3dTZWxlY3QoZGFkb3NbMF0pKTtcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU92ZXJsYXlQYW5lbChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9wLnRvZ2dsZShldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VGaWx0ZXIoKSB7XHJcbiAgICB0aGlzLm9wPy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlRmlsdGVyKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5vcD8udG9nZ2xlKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVBhZ2VDaGFuZ2UoZXZlbnQ6IFRhYmxlUGFnZUV2ZW50KSB7XHJcbiAgICB0aGlzLmZpcnN0LnNldChldmVudC5maXJzdCk7XHJcbiAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNvcnQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgY3VycmVudFNvcnRTdGF0ZSA9IHRoaXMubGFzdEVtaXR0ZWRTb3J0KCk7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRTb3J0U3RhdGUgJiYgY3VycmVudFNvcnRTdGF0ZS5maWVsZCA9PT0gZXZlbnQuZmllbGQgJiYgY3VycmVudFNvcnRTdGF0ZS5vcmRlciA9PT0gZXZlbnQub3JkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFzdEVtaXR0ZWRTb3J0LnNldCh7IGZpZWxkOiBldmVudC5maWVsZCwgb3JkZXI6IGV2ZW50Lm9yZGVyIH0pO1xyXG5cclxuICAgIGxldCBvcmRlbmFjYW8gPSBgJHtldmVudC5maWVsZH0gJHtldmVudC5vcmRlciA9PT0gMSA/ICdBU0MnIDogJ0RFU0MnfSBgO1xyXG4gICAgbGV0IG9yZGVybmFjYW9Hcm91cCA9IHsgY29sdW1uOiBldmVudC5maWVsZCwgZGlyZWN0aW9uOiBldmVudC5vcmRlciA9PT0gMSA/ICdBU0MnIDogJ0RFU0MnIH07XHJcbiAgICB0aGlzLm9uU29ydC5lbWl0KHsgb3JkZW5hY2FvOiBvcmRlbmFjYW8sIG9yZGVybmFjYW9Hcm91cDogb3JkZXJuYWNhb0dyb3VwIH0pO1xyXG4gIH1cclxuXHJcbiAgcm93U2VsZWN0KHJvd0RhdGE6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZVRhYmxlKCkpIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmluY2x1ZGVzKHJvd0RhdGEpKVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy51cGRhdGUoKGl0ZW1zOiBhbnlbXSkgPT4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gcm93RGF0YSkpO1xyXG4gICAgICBlbHNlIHRoaXMuc2VsZWN0ZWRJdGVtcy51cGRhdGUoKGl0ZW1zOiBhbnlbXSkgPT4gWy4uLml0ZW1zLCByb3dEYXRhXSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zKCk/Lmxlbmd0aCA9PT0gMSlcclxuICAgICAgICB0aGlzLm9uQ2xpY2tSb3dJdGVtLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKClbMF0pO1xyXG4gICAgICBlbHNlIHRoaXMub25DbGlja1Jvd0l0ZW0uZW1pdChyb3dEYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLnNldChyb3dEYXRhKTtcclxuICAgICAgdGhpcy5vbkNsaWNrUm93SXRlbS5lbWl0KHJvd0RhdGEpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybU1vbmV5KHZhbG9yOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZm9ybWF0dGVyID0gbmV3IEludGwuTnVtYmVyRm9ybWF0KCdwdC1CUicsIHtcclxuICAgICAgc3R5bGU6ICdjdXJyZW5jeScsXHJcbiAgICAgIGN1cnJlbmN5OiAnQlJMJyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3JtYXR0ZXIuZm9ybWF0KHZhbG9yKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1yb3cgcC0yIGt2LXRhYmxlLXZpZXdlciBvdmVyZmxvdy1oaWRkZW4ge3tcclxuICAgIGlzRW1wdHlUYWJsZSgpID8gJ2VtcHR5LXRhYmxlJyA6ICcnXHJcbiAgfX1cIlxyXG4+XHJcbiAgQGlmKCF0aGlzLnNlbGVjdGVkSXRlbSgpIHx8ICFpc01vYmlsZSgpICYmICFzZWxlY3RhYmxlVGFibGUoKSkge1xyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaC1mdWxsIHt7IGhhbmRsZVRhYmxlU2l6ZSgpIH19IG0tMCBwLTAgZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiXHJcbiAgICBbc3R5bGUudHJhbnNpdGlvbl09XCInYWxsIDAuM3MgZWFzZS1pbi1vdXQnXCJcclxuICA+XHJcbiAgICBAaWYoc2hvd0hlYWRlclRlbXBsYXRlKCkpIHtcclxuICAgIDxkaXY+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZUhlYWRlclRlbXBsYXRlXVwiPiA8L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZmxleC1pbml0aWFsXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgQGlmKHNlYXJjaElucHV0KCkpIHtcclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiAxLjg3NXJlbVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiXHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBwSW5wdXRUZXh0XHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcclxuICAgICAgICAgIGNsYXNzPVwidGV4dC14c1wiXHJcbiAgICAgICAgLz5cclxuXHJcbiAgICAgICAgfSBAaWYoZmlsdGVyQnV0dG9uKCkpIHtcclxuICAgICAgICA8a3YtYnV0dG9uXHJcbiAgICAgICAgICBsYWJlbD1cIkZpbHRyYXJcIlxyXG4gICAgICAgICAgaWNvbj1cImZpbHRlcl9hbHRcIlxyXG4gICAgICAgICAgc2V2ZXJpdHk9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAob25DbGljayk9XCJ0b2dnbGVPdmVybGF5UGFuZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwva3YtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPHAtb3ZlcmxheVBhbmVsICNvcCBbZGlzbWlzc2FibGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmaWx0cm9dXCI+IDwvbmctY29udGVudD5cclxuICAgICAgICA8L3Atb3ZlcmxheVBhbmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTJcIj5cclxuICAgICAgICBAaWYoYWN0aW9uc0hlYWRlcigpKSB7IEBmb3IoYWN0aW9uIG9mIGFjdGlvbnNIZWFkZXIoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGt2LWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25dPVwiYWN0aW9uPy5pY29uIHx8ICcnXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJhY3Rpb24/LmxhYmVsIHx8ICcnXCJcclxuICAgICAgICAgIFtzZXZlcml0eV09XCJhY3Rpb25bJ3NldmVyaXR5J10gfHwgJ3RlcnRpYXJ5J1wiXHJcbiAgICAgICAgICAob25DbGljayk9XCJhY3Rpb24/LmNvbW1hbmQoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbcG9wdXBJY29uXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtpdGVtc109XCJhY3Rpb24uaXRlbXMgfHwgW11cIlxyXG4gICAgICAgICAgW3BvcHVwXT1cImlzUG9wdXBCdXR0b24oKShhY3Rpb24pXCJcclxuICAgICAgICA+PC9rdi1idXR0b24+XHJcbiAgICAgICAgfSB9IEBpZihzZWxlY3RlZEl0ZW0oKSkge1xyXG4gICAgICAgIDxrdi1idXR0b25cclxuICAgICAgICAgIFtwVG9vbHRpcF09XCInUmVjb2xoZXInXCJcclxuICAgICAgICAgIGljb249XCJyZW9yZGVyXCJcclxuICAgICAgICAgIHNldmVyaXR5PVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgKG9uQ2xpY2spPVwic2VsZWN0ZWRJdGVtLnNldChudWxsKVwiXHJcbiAgICAgICAgPjwva3YtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGgtZnVsbCBvdmVyZmxvdy1oaWRkZW5cIj5cclxuICAgICAgPHAtdGFibGVcclxuICAgICAgICBbdmFsdWVdPVwiZGF0YSgpXCJcclxuICAgICAgICBbbGF6eV09XCJsYXp5KClcIlxyXG4gICAgICAgIFtzZWxlY3Rpb25QYWdlT25seV09XCJzZWxlY3Rpb25QYWdlT25seSgpXCJcclxuICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zKClcIlxyXG4gICAgICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yKClcIlxyXG4gICAgICAgIFtyb3dzXT1cInJvd3MoKVwiXHJcbiAgICAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHMoKVwiXHJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZygpXCJcclxuICAgICAgICBbcGFnZUxpbmtzXT1cInBhZ2VMaW5rcygpXCJcclxuICAgICAgICBbZmlyc3RdPVwiZmlyc3QoKVwiXHJcbiAgICAgICAgW3Njcm9sbGFibGVdPVwic2Nyb2xsYWJsZSgpXCJcclxuICAgICAgICBzY3JvbGxIZWlnaHQ9XCJmbGV4XCJcclxuICAgICAgICBbc2hvd0N1cnJlbnRQYWdlUmVwb3J0XT1cInRydWVcIlxyXG4gICAgICAgIFtjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlXT1cImN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGUoKVwiXHJcbiAgICAgICAgKG9uUGFnZSk9XCJoYW5kbGVQYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIChvblNvcnQpPVwiaGFuZGxlU29ydCgkZXZlbnQpXCJcclxuICAgICAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cInJvd3NQZXJQYWdlT3B0aW9ucygpXCJcclxuICAgICAgICBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRJdGVtc1wiXHJcbiAgICAgICAgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtIHRleHQteHMgb3ZlcmZsb3cteS1hdXRvIGgtZnVsbCBmbGV4IGZsZXgtY29sdW1uIGgtZnVsbFwiXHJcbiAgICAgID5cclxuICAgICAgICBAaWYoc2hvd0hlYWRlcigpKSB7XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICBAaWYoc2VsZWN0YWJsZVRhYmxlKCkpIHtcclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDRyZW1cIj48cC10YWJsZUhlYWRlckNoZWNrYm94IC8+PC90aD5cclxuICAgICAgICAgICAgfSBAZm9yIChjb2wgb2YgY29sdW1uczsgdHJhY2sgY29sLmZpZWxkKSB7XHJcbiAgICAgICAgICAgIDx0aFxyXG4gICAgICAgICAgICAgIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmZpZWxkXCJcclxuICAgICAgICAgICAgICBbcFNvcnRhYmxlQ29sdW1uRGlzYWJsZWRdPVwiIWNvbD8uc29ydGFibGVcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZV09XCJ7IHdpZHRoOiBjb2wud2lkdGggfHwgJ2F1dG8nIH1cIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb2wuaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgQGlmIChjb2wuc29ydGFibGUpIHtcclxuICAgICAgICAgICAgICAgIDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wuZmllbGRcIiBjbGFzcz1cInBiLTFcIj48L3Atc29ydEljb24+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCI+XHJcbiAgICAgICAgICA8dHJcclxuICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB7e1xyXG4gICAgICAgICAgICAgIHZlcmlmeUl0ZW1TZWxlY2lvbmFkbygpKHJvd0RhdGEpICYmICdiZy1ncmF5LTEwMCdcclxuICAgICAgICAgICAgfX0gaG92ZXI6YmctZ3JheS0yMDBcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYoc2VsZWN0YWJsZVRhYmxlKCkpIHtcclxuICAgICAgICAgICAgPHRkPjxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cInJvd0RhdGFcIiAvPjwvdGQ+XHJcbiAgICAgICAgICAgIH0gQGZvciAoY29sIG9mIGNvbHVtbnM7IHRyYWNrIGNvbC5maWVsZCkge1xyXG4gICAgICAgICAgICA8dGQgKGNsaWNrKT1cInJvd1NlbGVjdChyb3dEYXRhKVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstYWxsO1wiPlxyXG4gICAgICAgICAgICAgIEBpZihjb2w/LnRlbXBsYXRlKSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKGdldEN1c3RvbVRlbXBsYXRlKCkoY29sLnRlbXBsYXRlLm5hbWUpKSB7XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdldEN1c3RvbVRlbXBsYXRlKCkoY29sLnRlbXBsYXRlLm5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiByb3dEYXRhIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9IEBlbHNlIGlmKGNvbD8uaWNvbikge1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCB0ZXh0LWxnXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBjb2wuaWNvbihyb3dEYXRhKSB9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9IEBlbHNlIGlmKGNvbD8udGFnKSB7XHJcbiAgICAgICAgICAgICAgPGt2LXRhZ3MgW3RhZ3NdPVwiW2NvbC50YWcocm93RGF0YSldXCIgLz5cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICB7eyB0cmFuc2Zvcm1EYXRhKCkoY29sLnBpcGUsIHJvd0RhdGFbY29sLmZpZWxkXSkgfX1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICA8dGQgW2F0dHIuY29sc3Bhbl09XCJyZXR1cm5Db2xzcGFuKClcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBoLWZ1bGwgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImVtcHR5VGFibGVJbWcoKVwiIGNsYXNzPVwiaC0xMHJlbSB3LWF1dG9cIiAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgfVxyXG5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInNoYWRvdy0yIHAtMCBtLTAgY29sIHNlbGVjdGVkLWl0ZW0tZmllbGQgbWwtMiBmbGV4IGZsZXgtY29sdW1uXCJcclxuICAgIFtAc2xpZGVJbk91dF09XCJpc1Jvd1NlbGVjdGVkKCkgPyAnaS5uJyA6ICdvdXQnXCJcclxuICAgIFtzdHlsZS5vdmVyZmxvd109XCInaGlkZGVuJ1wiXHJcbiAgPlxyXG4gICAgQGlmKGhhc1NlbGVjdGVkSXRlbXMoKSkge1xyXG4gICAgPGFjdGlvbnMtbG90ZS1maWVsZFxyXG4gICAgICBjbGFzcz1cImgtZnVsbFwiXHJcbiAgICAgIFtzZWxlY3RlZEl0ZW1zXT1cInNlbGVjdGVkSXRlbXMoKVwiXHJcbiAgICAgIFthY3Rpb25zTG90ZV09XCJhY3Rpb25zTG90ZSgpXCJcclxuICAgIC8+XHJcbiAgICB9IEBlbHNlIGlmKHNob3dTZWxlY3RlZEl0ZW0oKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImJnLWdyYXktMTAwIHctZnVsbCBoLWF1dG8gcC0yIHJlbGF0aXZlXCI+XHJcbiAgICAgIEBpZihoYXNBY3Rpb25zUm93KCkpIHtcclxuICAgICAgPGFjdGlvbnMtcm93LW1lbnUgW2FjdGlvbnNSb3ddPVwiYWN0aW9uc1JvdygpXCIgLz5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmKGlzTW9iaWxlKCkpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC0ycmVtIHctMnJlbVwiPlxyXG4gICAgICAgICAgPGt2LWJ1dHRvblxyXG4gICAgICAgICAgICBpY29uPVwiYXJyb3dfYmFja1wiXHJcbiAgICAgICAgICAgIHNldmVyaXR5PVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwiJ1ZvbHRhcidcIlxyXG4gICAgICAgICAgICAob25DbGljayk9XCJzZWxlY3RlZEl0ZW0uc2V0KG51bGwpXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZWxlY3RlZEl0ZW1IZWFkZXJdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC0yIG92ZXJmbG93LXktYXV0byBoLWZ1bGxcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlbGVjdGVkSXRlbV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIEBlbHNlIHsgTmVuaHVtIGl0ZW0gc2VsZWNpb25hZG8gfSAtLT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,19 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Component for displaying a tag.
5
- */
6
- export class KvTagComponent {
7
- constructor() {
8
- this.severity = input('system');
9
- this.border = input(false);
10
- this.color = input(null);
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.8", type: KvTagComponent, selector: "kv-tag", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: true, isRequired: false, transformFunction: null }, border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\r\n class=\"kv-tag {{severity()}} {{!border() && 'no-border'}}\"\r\n [style.backgroundColor]=\"color() ? color() + '0D' : ''\"\r\n [style.color]=\"color()\"\r\n>\r\n <ng-content></ng-content>\r\n</div> \r\n", styles: [".kv-tag{--kv-text-success: 75, 181, 67;--kv-text-info: 0, 123, 255;--kv-text-warn: 194, 91, 12;--kv-text-danger: 220, 53, 69;--kv-text-contrast: 33, 37, 41;--kv-bg-success: 75, 181, 67;--kv-bg-info: 0, 123, 255;--kv-bg-warn: 255, 235, 209;--kv-bg-danger: 220, 53, 69;--kv-bg-contrast: 33, 37, 41;padding:.2rem .5rem;border-radius:.5rem;font-size:.8rem;font-weight:600}.kv-tag.system{background-color:rgba(var(--kv-color-system),.05);border:1px solid rgba(var(--kv-color-system),.1);color:rgba(var(--kv-color-system),1)}.kv-tag.success{background-color:rgba(var(--kv-bg-success),.05);border:1px solid rgba(var(--kv-bg-success),.1);color:rgba(var(--kv-text-success),1)}.kv-tag.info{background-color:rgba(var(--kv-bg-info),.05);border:1px solid rgba(var(--kv-bg-info),.1);color:rgba(var(--kv-text-info),1)}.kv-tag.warn{background-color:rgba(var(--kv-bg-warn),1);border:1px solid rgba(var(--kv-bg-warn),.1);color:rgba(var(--kv-text-warn),1)}.kv-tag.danger{background-color:rgba(var(--kv-bg-danger),.05);border:1px solid rgba(var(--kv-bg-danger),.1);color:rgba(var(--kv-text-danger),1)}.kv-tag.contrast{background-color:rgba(var(--kv-bg-contrast),1);border:1px solid rgba(var(--kv-bg-contrast),.1);color:rgba(var(--kv-background-card),1)}.kv-tag.no-border{border:none}\n"] }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagComponent, decorators: [{
16
- type: Component,
17
- args: [{ selector: 'kv-tag', template: "<div\r\n class=\"kv-tag {{severity()}} {{!border() && 'no-border'}}\"\r\n [style.backgroundColor]=\"color() ? color() + '0D' : ''\"\r\n [style.color]=\"color()\"\r\n>\r\n <ng-content></ng-content>\r\n</div> \r\n", styles: [".kv-tag{--kv-text-success: 75, 181, 67;--kv-text-info: 0, 123, 255;--kv-text-warn: 194, 91, 12;--kv-text-danger: 220, 53, 69;--kv-text-contrast: 33, 37, 41;--kv-bg-success: 75, 181, 67;--kv-bg-info: 0, 123, 255;--kv-bg-warn: 255, 235, 209;--kv-bg-danger: 220, 53, 69;--kv-bg-contrast: 33, 37, 41;padding:.2rem .5rem;border-radius:.5rem;font-size:.8rem;font-weight:600}.kv-tag.system{background-color:rgba(var(--kv-color-system),.05);border:1px solid rgba(var(--kv-color-system),.1);color:rgba(var(--kv-color-system),1)}.kv-tag.success{background-color:rgba(var(--kv-bg-success),.05);border:1px solid rgba(var(--kv-bg-success),.1);color:rgba(var(--kv-text-success),1)}.kv-tag.info{background-color:rgba(var(--kv-bg-info),.05);border:1px solid rgba(var(--kv-bg-info),.1);color:rgba(var(--kv-text-info),1)}.kv-tag.warn{background-color:rgba(var(--kv-bg-warn),1);border:1px solid rgba(var(--kv-bg-warn),.1);color:rgba(var(--kv-text-warn),1)}.kv-tag.danger{background-color:rgba(var(--kv-bg-danger),.05);border:1px solid rgba(var(--kv-bg-danger),.1);color:rgba(var(--kv-text-danger),1)}.kv-tag.contrast{background-color:rgba(var(--kv-bg-contrast),1);border:1px solid rgba(var(--kv-bg-contrast),.1);color:rgba(var(--kv-background-card),1)}.kv-tag.no-border{border:none}\n"] }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXRhZy9rdi10YWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdGFnL2t2LXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25FOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFSM0I7UUFVRSxhQUFRLEdBQUcsS0FBSyxDQUFnRSxRQUFRLENBQUMsQ0FBQztRQUMxRixXQUFNLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9CLFVBQUssR0FBRyxLQUFLLENBQWdCLElBQUksQ0FBQyxDQUFDO0tBRXBDOzhHQU5ZLGNBQWM7a0dBQWQsY0FBYyw4YUNWM0IsNE5BT0E7OzJGREdhLGNBQWM7a0JBUjFCLFNBQVM7K0JBQ0UsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtdGFnJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtdGFnLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtdGFnLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG4vKipcclxuICogQ29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgdGFnLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEt2VGFnQ29tcG9uZW50IHtcclxuXHJcbiAgc2V2ZXJpdHkgPSBpbnB1dDwnc3lzdGVtJ3wgJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2RhbmdlcicgfCAnY29udHJhc3QnPignc3lzdGVtJyk7XHJcbiAgYm9yZGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGNvbG9yID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcblxyXG59IiwiPGRpdlxyXG4gIGNsYXNzPVwia3YtdGFnIHt7c2V2ZXJpdHkoKX19IHt7IWJvcmRlcigpICYmICduby1ib3JkZXInfX1cIlxyXG4gIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiY29sb3IoKSA/IGNvbG9yKCkgKyAnMEQnIDogJydcIlxyXG4gIFtzdHlsZS5jb2xvcl09XCJjb2xvcigpXCJcclxuPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj4gIFxyXG4iXX0=
@@ -1,24 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { KvTagComponent } from './kv-tag.component';
4
- import * as i0 from "@angular/core";
5
- export class KvTagModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.8", ngImport: i0, type: KvTagModule, declarations: [KvTagComponent], imports: [CommonModule], exports: [KvTagComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagModule, imports: [CommonModule] }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- declarations: [
14
- KvTagComponent
15
- ],
16
- imports: [
17
- CommonModule
18
- ],
19
- exports: [
20
- KvTagComponent
21
- ]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdGFnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXRhZy9rdi10YWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFlcEQsTUFBTSxPQUFPLFdBQVc7OEdBQVgsV0FBVzsrR0FBWCxXQUFXLGlCQVRwQixjQUFjLGFBR2QsWUFBWSxhQUdaLGNBQWM7K0dBR0wsV0FBVyxZQU5wQixZQUFZOzsyRkFNSCxXQUFXO2tCQVh2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixjQUFjO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxjQUFjO3FCQUNmO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgS3ZUYWdDb21wb25lbnQgfSBmcm9tICcuL2t2LXRhZy5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgS3ZUYWdDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgS3ZUYWdDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlRhZ01vZHVsZSB7IH1cclxuIl19
@@ -1,36 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';
2
- import { mapaSeverityColors } from '../kv-filter-cards/kv-filter-cards.component';
3
- import * as i0 from "@angular/core";
4
- export class KvTagsComponent {
5
- constructor() {
6
- this.tags = input();
7
- this.hover = input(false);
8
- this.color = computed(() => (tag) => {
9
- return mapaSeverityColors[tag.severity || 'info'];
10
- });
11
- this.clickable = input(false);
12
- this.background = computed(() => (tag) => {
13
- return this.getTransparentMix(this.color()(tag), 0.15);
14
- });
15
- this.borderColor = computed(() => (tag) => {
16
- return this.getTransparentMix(this.color()(tag), 0.2);
17
- });
18
- this.onClickTag = output();
19
- }
20
- clickTag(event) {
21
- this.onClickTag.emit(event);
22
- }
23
- getTransparentMix(baseHex, opacity = 0.3) {
24
- const r = parseInt(baseHex.slice(1, 3), 16);
25
- const g = parseInt(baseHex.slice(3, 5), 16);
26
- const b = parseInt(baseHex.slice(5, 7), 16);
27
- return `rgba(${r}, ${g}, ${b}, ${opacity})`;
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvTagsComponent, selector: "kv-tags", inputs: { tags: { classPropertyName: "tags", publicName: "tags", isSignal: true, isRequired: false, transformFunction: null }, hover: { classPropertyName: "hover", publicName: "hover", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClickTag: "onClickTag" }, ngImport: i0, template: "@for (tag of tags(); track $index) {\r\n<div\r\n [class.hover-tag]=\"hover()\"\r\n class=\"kv-tag {{clickable() && 'kv-tag-clickable'}}\"\r\n [style.color]=\"color()(tag)\"\r\n (click)=\"clickTag(tag)\"\r\n [style.background]=\"background()(tag)\"\r\n style=\"user-select: none\"\r\n>\r\n @if(tag.icon) {\r\n <span class=\"material-symbols-outlined\" style=\"font-size: 0.75rem\">\r\n {{ tag.icon }}\r\n </span>\r\n }\r\n <span>\r\n {{ tag.label }}\r\n </span>\r\n\r\n @if(tag.value) {\r\n <span\r\n class=\"bg-white border-circle h-1rem w-1rem flex align-items-center justify-content-center\"\r\n >{{ tag.value }}</span\r\n >\r\n }\r\n</div>\r\n}\r\n", styles: [":host{display:block;display:flex;flex-direction:row;gap:10px}.kv-tag{padding:.2rem .5rem;border-radius:2rem;font-size:.7rem;font-weight:400;width:max-content;flex-wrap:nowrap;display:flex;flex-direction:row;align-items:center;gap:.25rem}.kv-tag-clickable:hover{cursor:pointer;transition:all ease-in-out .2s;opacity:.9}.hover-tag{cursor:pointer;transition:all ease-in-out .2s}.hover-tag:hover{font-size:.75rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvTagsComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'kv-tags', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (tag of tags(); track $index) {\r\n<div\r\n [class.hover-tag]=\"hover()\"\r\n class=\"kv-tag {{clickable() && 'kv-tag-clickable'}}\"\r\n [style.color]=\"color()(tag)\"\r\n (click)=\"clickTag(tag)\"\r\n [style.background]=\"background()(tag)\"\r\n style=\"user-select: none\"\r\n>\r\n @if(tag.icon) {\r\n <span class=\"material-symbols-outlined\" style=\"font-size: 0.75rem\">\r\n {{ tag.icon }}\r\n </span>\r\n }\r\n <span>\r\n {{ tag.label }}\r\n </span>\r\n\r\n @if(tag.value) {\r\n <span\r\n class=\"bg-white border-circle h-1rem w-1rem flex align-items-center justify-content-center\"\r\n >{{ tag.value }}</span\r\n >\r\n }\r\n</div>\r\n}\r\n", styles: [":host{display:block;display:flex;flex-direction:row;gap:10px}.kv-tag{padding:.2rem .5rem;border-radius:2rem;font-size:.7rem;font-weight:400;width:max-content;flex-wrap:nowrap;display:flex;flex-direction:row;align-items:center;gap:.25rem}.kv-tag-clickable:hover{cursor:pointer;transition:all ease-in-out .2s;opacity:.9}.hover-tag{cursor:pointer;transition:all ease-in-out .2s}.hover-tag:hover{font-size:.75rem}\n"] }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtdGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rdi10YWdzL2t2LXRhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtdGFncy9rdi10YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFjLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBUzlGLE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBU0UsU0FBSSxHQUFHLEtBQUssRUFBaUIsQ0FBQTtRQUU3QixVQUFLLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFBO1FBRzdCLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUl2QixFQUFFLEVBQUU7WUFDSCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLENBQUE7UUFDbkQsQ0FBQyxDQUFDLENBQUE7UUFFRixjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRWxDLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUk1QixFQUFFLEVBQUU7WUFDSCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7UUFFSCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBSTdCLEVBQUUsRUFBRTtZQUNILE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUlILGVBQVUsR0FBRyxNQUFNLEVBQWUsQ0FBQztLQWFwQztJQVhDLFFBQVEsQ0FBQyxLQUFrQjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZSxFQUFFLFVBQWtCLEdBQUc7UUFDOUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQU8sR0FBRyxDQUFDO0lBQzlDLENBQUM7OEdBOUNVLGVBQWU7a0dBQWYsZUFBZSxtZENWNUIseXFCQTBCQTs7MkZEaEJhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsU0FBUyxjQUNQLEtBQUssbUJBR0EsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEt2U2V2ZXJpdHksIG1hcGFTZXZlcml0eUNvbG9ycyB9IGZyb20gJy4uL2t2LWZpbHRlci1jYXJkcy9rdi1maWx0ZXItY2FyZHMuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtdGFncycsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LXRhZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9rdi10YWdzLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEt2VGFnc0NvbXBvbmVudCB7XHJcblxyXG4gIHRhZ3MgPSBpbnB1dDxLdlRhZ0NvbmZpZ1tdPigpXHJcblxyXG4gIGhvdmVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpXHJcblxyXG5cclxuICBjb2xvciA9IGNvbXB1dGVkKCgpID0+ICh0YWc6e1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHNldmVyaXR5PzogS3ZTZXZlcml0eTtcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbiAgfSkgPT4ge1xyXG4gICAgcmV0dXJuIG1hcGFTZXZlcml0eUNvbG9yc1t0YWcuc2V2ZXJpdHkgfHwgJ2luZm8nXVxyXG4gIH0pXHJcblxyXG4gIGNsaWNrYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgYmFja2dyb3VuZCA9IGNvbXB1dGVkKCgpID0+ICh0YWc6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBzZXZlcml0eT86IEt2U2V2ZXJpdHk7XHJcbiAgICBpY29uPzogc3RyaW5nO1xyXG4gIH0pID0+IHtcclxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zcGFyZW50TWl4KHRoaXMuY29sb3IoKSh0YWcpLCAwLjE1KTtcclxuICB9KTtcclxuXHJcbiAgYm9yZGVyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiAodGFnOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgc2V2ZXJpdHk/OiBLdlNldmVyaXR5O1xyXG4gICAgaWNvbj86IHN0cmluZztcclxuICB9KSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc3BhcmVudE1peCh0aGlzLmNvbG9yKCkodGFnKSwgMC4yKTtcclxuICB9KTtcclxuXHJcblxyXG5cclxuICBvbkNsaWNrVGFnID0gb3V0cHV0PEt2VGFnQ29uZmlnPigpO1xyXG5cclxuICBjbGlja1RhZyhldmVudDogS3ZUYWdDb25maWcgKXtcclxuICAgIHRoaXMub25DbGlja1RhZy5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VHJhbnNwYXJlbnRNaXgoYmFzZUhleDogc3RyaW5nLCBvcGFjaXR5OiBudW1iZXIgPSAwLjMpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGJhc2VIZXguc2xpY2UoMSwgMyksIDE2KTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChiYXNlSGV4LnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoYmFzZUhleC5zbGljZSg1LCA3KSwgMTYpO1xyXG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7b3BhY2l0eX0pYDtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IHR5cGUgS3ZUYWdDb25maWcgPSB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgc2V2ZXJpdHk/OiBLdlNldmVyaXR5O1xyXG4gICAgaWNvbj86IHN0cmluZztcclxuICAgIHZhbHVlPzpudW1iZXI7XHJcbn0iLCJAZm9yICh0YWcgb2YgdGFncygpOyB0cmFjayAkaW5kZXgpIHtcclxuPGRpdlxyXG4gIFtjbGFzcy5ob3Zlci10YWddPVwiaG92ZXIoKVwiXHJcbiAgY2xhc3M9XCJrdi10YWcge3tjbGlja2FibGUoKSAmJiAna3YtdGFnLWNsaWNrYWJsZSd9fVwiXHJcbiAgW3N0eWxlLmNvbG9yXT1cImNvbG9yKCkodGFnKVwiXHJcbiAgKGNsaWNrKT1cImNsaWNrVGFnKHRhZylcIlxyXG4gIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImJhY2tncm91bmQoKSh0YWcpXCJcclxuICBzdHlsZT1cInVzZXItc2VsZWN0OiBub25lXCJcclxuPlxyXG4gIEBpZih0YWcuaWNvbikge1xyXG4gIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiIHN0eWxlPVwiZm9udC1zaXplOiAwLjc1cmVtXCI+XHJcbiAgICB7eyB0YWcuaWNvbiB9fVxyXG4gIDwvc3Bhbj5cclxuICB9XHJcbiAgPHNwYW4+XHJcbiAgICB7eyB0YWcubGFiZWwgfX1cclxuICA8L3NwYW4+XHJcblxyXG4gIEBpZih0YWcudmFsdWUpIHtcclxuICA8c3BhblxyXG4gICAgY2xhc3M9XCJiZy13aGl0ZSBib3JkZXItY2lyY2xlIGgtMXJlbSB3LTFyZW0gZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICA+e3sgdGFnLnZhbHVlIH19PC9zcGFuXHJcbiAgPlxyXG4gIH1cclxuPC9kaXY+XHJcbn1cclxuIl19